[libc++] Add a target to validate the conformance status CSV files (#238977)
This adds a libcxx-validate-conformance-csvs target which runs
`libcxx/utils/conformance csv validate` on all the status CSV files, to
make sure they don't get broken. Also add to the CI jobs.
[libc][math] Fix low-precision range reporting and rounding (#236472)
Group five related fixes that share implementation or test-registration
files:
- Raise overflow/inexact for directed finite exponential overflow
results.
- Avoid intermediate range exceptions in atanbf16, expbf16 and exp2bf16,
and correct expbf16 underflow rounding.
- Correct sinhf16 subnormal rounding/reporting and exp2m1f16 at 0x8461.
Finite-overflow errno choices are unchanged. The exp2m1f16 correction
uses
the accurate pass. The expm1f16 subnormal fix in #236310 is not
included.
Tests: 38 smoke configurations per compiler with GCC 13 and Clang 18 on
x86-64 Linux. MPFR 4.2.1 value checks cover five functions' finite
domains
in all four rounding modes; exception/errno checks cover scoped inputs.
[5 lines not shown]
[AMDGPU] Declare command line options in TableGen (#234514)
Move the AMDGPU CodeGen cl::opts into AMDGPUOptions.td.
AMDGPUTargetMachine holds `const AMDGPUOptions &CLOpts`, and
AMDGPUSubtarget copies it. IR passes without a TargetMachine read the
options from their LLVMContext.
ScanOptions, CarriedLatency, AntiHintRule and LoweringKind (renamed
LDSLoweringKind) move to AMDGPUSubtarget.h under llvm::AMDGPU.
Options passed to isPassEnabled whose default is true become
BoolOrDefault, so an explicit value still overrides the optimization
level.
Negative spellings are renamed to positive ones, with the old spellings
kept as aliases (the bare flags only; tests passing `=0`/`=1` use the
new spellings):
```
[24 lines not shown]
[libc][math] Report range errors at half precision logarithm poles (#236471)
Set ERANGE on the existing pole paths: zero for logf16, log2f16 and
log10f16, and -1 for log2p1f16 and log10p1f16. Keep the existing
negative
infinity result and FE_DIVBYZERO behavior. Use the conditional errno
helper
and update the smoke tests.
Tests: 20 smoke configurations per compiler with GCC 13 and Clang 18 on
x86-64 Linux.
Assisted-by: GitHub Copilot
Signed-off-by: sriramshastry <sriramshastry at gmail.com>
[IPO] Declare inliner and function specialization command line options in TableGen (#240202)
Port the options of Inliner, PartialInlining, FunctionSpecialization,
SCCP and ExpandVariadics. -enable-scc-inline-advisor-printing, read in
the pass constructor, remains cl::opt.
* ExpandVariadics reads its override in runOnModule instead of the
constructor.
* InstCostVisitor takes IPOOptions.
* Rename -disable-partial-inlining and -disable-mr-partial-inlining to
positive spellings, and -force-specialization to -funcspec-force. The
old spellings remain aliases.
* Invalid -cgscc-inline-replay-* values now report the library option
diagnostic.
* Remove an unused extern of -min-block-execution in
CoroAnnotationElide.
LLM-aided
[libc][stdfix] Fix overflow in EXP_HI table for exphk (#240253)
In `exphk`, `x_rounded = 5.5` maps to `hi = 6` and `mid = -0.5`, where
`exp(6)` overflows `short accum` and clamps `EXP_HI[11]` to
`SACCUM_MAX`.
Shift `hi` to `[-6, 5]` and `mid` to `[0, 0.875]`, and tighten the
overflow bound from `0x1.64p2hk` to `0x1.63p2hk` so `x = 0x1.638p2hk`
does not overflow `short accum`.
[mlir][ODS] Include headers declaring used type and attribute constraints
#236155 added `cppIncludes` to traits and interfaces so that generated
declarations include the headers of the traits they use.
Extend `cppIncludes` to type and attribute constraints. It lists the C++
headers declaring the C++ classes a constraint refers to. A single header is
not always enough: e.g. `TypeAttrOf<T>` needs `BuiltinAttributes.h` and the
header of `T`. Generated op
declarations now include the headers of the constraints of their operands,
results and attributes, and generated attribute and type declarations
include the headers of attribute and type parameters.
The builtin type and attribute constraints and the builtin dialect
attributes, types and locations set their headers, as do the base classes of
dialect attributes and types.
Co-authored-by: Claude <noreply at anthropic.com>
[Offload][NFC] Plugin Interface clean-up (#240434)
Remove dead code, unnecessary headers, and fix one comment that
references the wrong routine.
Static code analysis done by Claude.
[SPIRV] Declare command line options in TableGen (#239474)
Move the cl::opts into SPIRVOptions.td. SPIRVTargetMachine holds `const
SPIRVOptions &CLOpts`, and SPIRVSubtarget copies it.
SPIRVCtorDtorLowering and SPIRVRemoveUnusedResources have no
TargetMachine and read the LLVMContext. SPIRVFPContractMode moves to
SPIRVSubtarget.h.
-spirv-ext becomes a StringRef that SPIRVSubtarget parses, so a
malformed value is now a fatal usage error when the target machine is
created rather than an option parsing error, and the disabled extension
set moves from a static into SPIRVSubtarget.
Rename -avoid-spirv-capabilities to -spirv-avoid-capabilities,
-translator-compatibility-mode to -spirv-translator-compatibility-mode,
and -disable-spirv-remove-unused-resources to
-spirv-enable-remove-unused-resources, keeping the old spellings as
aliases.
[2 lines not shown]
sysutils/ttyd: unbreak at the run-time: libwebsockets compatibility, service start/stop/status
Items that were broken:
- ttyd didn't listen on the prescribed port since
net/libwebsockets was updated to 5.1.0 on Nov 1st.
I only noticed this yesterday when I updated the system and
ttyd stopped listening. This rendered it unusable.
- 'service start/stop/status' were not working properly since
pid file wasn't created. 'service start' was starting new
instances of ttyd every time regardless of the previous
instances.
- there was no log file so it was difficult to see what was going
on with ttyd.
Changes:
- backported the patch fixing compatibility with the latest
libwebsockets release
- add the ttyd.pid file that fixes the 'service ttyd ...' command
- add the ttyd.log file that is a prerequisite to fix
[3 lines not shown]