[SLP][modularisation][NFC] Move getReductionInstr to SLPReductionUtils, getAggregateSize to SLPUtils
Move the reduction-root helper getReductionInstr out of SLPVectorizer.cpp
into the self-contained SLPVectorizer/SLPReductionUtils.{h,cpp} module.
getAggregateSize is not reduction-specific: its only user is
findBuildAggregate and it only computes the element count of a homogeneous
aggregate from its type. Move it to the generic SLPVectorizer/SLPUtils
module instead.
Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
Assisted by AI
[TableGen][NFC] Fix stale header path in Target.td comment (#233015)
`TargetInstrInfo.h` now lives in `llvm/CodeGen/`, not `llvm/Target/`.
Comment-only change.
[utils][UpdateLLCTestChecks] Fix broken update_llc_test_checks.py when trying to emit MIR (#233181)
When llc update checks trying to produce MIR, the script later calls an
assembly-output handler that was never initialized.
This fix will guard such cases, so mir checks will be generated by
`mir.add_mir_checks_for_function`.
Fixes: https://github.com/llvm/llvm-project/issues/233180
Signed-off-by: ZakyHermawan <zaky.hermawan9615 at gmail.com>
SelectionDAG: Mark inline asm clobbers dead when an output covers the read
An inline asm clobber was only marked dead if no glued CopyFromReg
read an overlapping register. A read of an output register that
overlaps a wider clobber kept the whole clobber live, even though the
output def already provides the read value. For example,
"={a1},~{a[0:15]}" left the $agpr0_..._agpr15 clobber live.
Ignore glued reads fully covered by an output def of the asm,
producing the same flags LiveVariables would later add, with a live
def of the output and a dead def of the clobber.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
www/py-gevent-websocket: Switch to USE_PYTHON=pep517
Build with the PEP 517 frontend (setuptools legacy backend; the source
has no [build-system]); the package metadata becomes dist-info.
PR: 299532
[SLP][modularisation][NFC] Move loop trip-count helpers to SLPUtils
Move the BoUpSLP-independent helpers findInnermostNonInvariantLoop and
getLoopTripCount out of SLPVectorizer.cpp into the self-contained
SLPVectorizer/SLPUtils.{h,cpp} module. getLoopTripCount reads the file-local
LoopAwareTripCount cl::opt, which stays static in SLPVectorizer.cpp and is
passed to the moved helper as an explicit parameter. NFC.
Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
[SLP][modularisation][NFC] Move getReductionInstr to SLPReductionUtils, getAggregateSize to SLPUtils
Move the reduction-root helper getReductionInstr out of SLPVectorizer.cpp
into the self-contained SLPVectorizer/SLPReductionUtils.{h,cpp} module.
getAggregateSize is not reduction-specific: its only user is
findBuildAggregate and it only computes the element count of a homogeneous
aggregate from its type. Move it to the generic SLPVectorizer/SLPUtils
module instead.
Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
Assisted by AI
SelectionDAG: Mark inline asm clobbers dead when an output covers the read
An inline asm clobber was only marked dead if no glued CopyFromReg
read an overlapping register. A read of an output register that
overlaps a wider clobber kept the whole clobber live, even though the
output def already provides the read value. For example,
"={a1},~{a[0:15]}" left the $agpr0_..._agpr15 clobber live.
Ignore glued reads fully covered by an output def of the asm,
producing the same flags LiveVariables would later add, with a live
def of the output and a dead def of the clobber.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
VE: Stop adding kill flags in setjmp custom inserter (#233201)
There is no reason anymore to set these before register allocation.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
The introduction of stack protector support for gcc 4 on alpha some 14 years
ago required the logical stack frame to be laid out in reverse order (this is
a requirement of the MI stack protector code in gcc).
This move, however, forgot to update the preconditions of the "*adddi_fp_hack"
insn, which is used to perform specific stack or frame pointer adjustment in
the prologue.
The change in frame layout would make its preconditions never allow it to be
used anymore, causing internal compiler errors when attempting to compile
routines with more than about 32KB of locals.
Such code appears to be rare enough that this issue hasn't been noticed until
very recently by martijn@.
[NVPTX] Set default value of nvptx-allow-ftz-atomics to false
This restores the strict FTZ default originally introduced in #200732
and temporarily relaxed in #206154.
Frontends can now explicitly opt in to native FTZ-mismatched atomics on a
per-instruction basis using `!atomic.ignore.denormal.mode` metadata (#217585,
#217586, #217587, #217588, #232725, #232726), which is supported in Clang,
Flang, MLIR, and XLA. Users who need the previous behavior globally can still
pass `-nvptx-allow-ftz-atomics=true`.
Update test cases to verify the new default disallow behavior.
[libc][fuzzing] Re-enable math fuzzing with internal headers (#231744)
Re-enable math fuzzing after header inclusion decoupling.
- Replace `<math.h>` with `"hdr/math_function_macros.h"` across math
fuzzers and add CMake dependencies.
- Re-enable `add_subdirectory(math)` in `libc/fuzzing/CMakeLists.txt`.
- Forward `LINK_LIBRARIES` in `add_libc_fuzzer`.
- Skip comparing unspecified `frexp` side-effects for NaN/Inf in
`SingleInputSingleOutputDiff.h`.
Fixes #85680
Assisted-by: Automated tooling, human reviewed.
[flang][CUDA] Emit ignore_denormal_mode for CUDA Fortran atomicadd (#232726)
CUDA Fortran `atomicadd` has the same device semantics as CUDA C++
`atomicAdd()`, targeting PTX `atom.add` (which flushes f32 denormals to
zero on global memory).
Set `ignore_denormal_mode` on `mlir::LLVM::AtomicRMWOp` when lowering
CUDA Fortran `atomicadd` for floating-point types in `genAtomBinOp`,
matching Clang's CUDA/HIP `atomicAdd` lowering (#217587) so it continues
to emit native `atom.add.f32` when `-nvptx-allow-ftz-atomics` defaults
to `false` (#231429).
[SLP][modularisation][NFC] Move isFirstInsertElement/getDebugLocFromPHI to SLPUtils (#222612)
Move the BoUpSLP-independent helpers isFirstInsertElement and
getDebugLocFromPHI out of SLPVectorizer.cpp into the self-contained
SLPVectorizer/SLPUtils.{h,cpp} module.
Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
[tools] Parse library options into LLVMContext (#233194)
cl::ParseCommandLineOptions sets library options in T::Global, so IR
options will no longer affect them after LLVMCore migrates off cl::opt.
Switch to cl::parseCommandLineOptions.