LLVM/project 4616f6cllvm/lib/Target/AArch64 AArch64PredicateAsCounterLoopRewrites.cpp

Fixups
DeltaFile
+0-4llvm/lib/Target/AArch64/AArch64PredicateAsCounterLoopRewrites.cpp
+0-41 files

LLVM/project 9046633llvm/lib/CodeGen/GlobalISel LegalizerHelper.cpp, llvm/test/CodeGen/AArch64 double_reduct.ll vecreduce-fmul.ll

[AArch64][GlobalISel] Copy flags in reduction fewerElements (#221608)
DeltaFile
+20-10llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
+8-8llvm/test/CodeGen/AArch64/vecreduce-fmul.ll
+3-3llvm/test/CodeGen/AArch64/double_reduct.ll
+3-3llvm/test/CodeGen/AArch64/GlobalISel/legalize-reduce-fmul.mir
+34-244 files

LLVM/project d8c42e0llvm/test/CodeGen/AArch64 overflow-vec.ll, llvm/test/CodeGen/AMDGPU amdgcn.bitcast.832bit.ll amdgcn.bitcast.896bit.ll

Rebase, address comments

Created using spr 1.3.7
DeltaFile
+57,327-55,762llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+6,634-6,608llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+5,576-5,657llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+4,486-4,550llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+6,589-0llvm/test/CodeGen/AArch64/overflow-vec.ll
+2,884-2,534llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
+83,496-75,1113,698 files not shown
+246,748-159,1373,704 files

LLVM/project da252a8clang/lib/AST/ByteCode Interp.h, clang/test/AST/ByteCode invalid.cpp

[clang][bytecode] Allow pointer type mismatch in SubPtr op (#222940)

The result of the attached test case is 1, which then gets divided by 8
and the end result is 0. This should evaluate.
DeltaFile
+11-0clang/test/AST/ByteCode/invalid.cpp
+2-1clang/lib/AST/ByteCode/Interp.h
+13-12 files

LLVM/project b2ecff0llvm/lib/Target/AArch64 AArch64TargetMachine.cpp AArch64PredicateAsCounterLoopRewrites.cpp

Fixups
DeltaFile
+20-26llvm/lib/Target/AArch64/AArch64PredicateAsCounterLoopRewrites.cpp
+2-1llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
+22-272 files

LLVM/project 1d3366bopenmp/runtime/test/transform/split iterfor.cpp intfor_negstart.c

[OpenMP][NFC] Explicit run-checks for OpenMP 6.0 loop-splitting (#221651)

Move OpenMP 6.0 test flag to RUN lines for loop splitting
DeltaFile
+0-5openmp/runtime/test/transform/split/lit.local.cfg
+2-1openmp/runtime/test/transform/split/iterfor.cpp
+2-1openmp/runtime/test/transform/split/intfor_negstart.c
+2-1openmp/runtime/test/transform/split/intfor.c
+2-1openmp/runtime/test/transform/split/foreach.cpp
+2-1openmp/runtime/test/transform/split/fill_first.c
+10-109 files not shown
+28-1915 files

LLVM/project c44ac9eclang/lib/Sema SemaDecl.cpp, clang/test/APINotes redecl-after-definition.c

[clang][APINotes] Do not drop attributes applied after a definition (#222902)

API notes are matched against whichever declaration the compiler
reaches, which can be a redeclaration that follows the definition. When
the definition lives in one module and the annotated redeclaration in
another, that is exactly what happens: checkNewAttributesAfterDef()
warns "attribute declaration must precede definition" and erases the
attribute, so the annotation is silently lost.

The warning exists to tell users that an attribute they wrote has no
effect. Attributes from API notes are not written in the source, so the
warning has nowhere to point and there is nothing for the user to
correct. Skip attributes with an invalid location, alongside the
existing exceptions.

rdar://186930250

Co-authored-by: Gabor Horvath <gaborh at apple.com>
DeltaFile
+11-0clang/lib/Sema/SemaDecl.cpp
+10-0clang/test/APINotes/redecl-after-definition.c
+9-0clang/test/APINotes/Inputs/Headers/module.modulemap
+5-0clang/test/APINotes/Inputs/Headers/RedeclAnnotation.apinotes
+3-0clang/test/APINotes/Inputs/Headers/RedeclAnnotation.h
+1-0clang/test/APINotes/Inputs/Headers/RedeclDefinition.h
+39-06 files

LLVM/project 1358777llvm/lib/Target/AMDGPU SIRegisterInfo.cpp, llvm/test/CodeGen/AMDGPU sgpr-spill-to-vmem-scc-clobber-reserved-exec-copy.mir

review
DeltaFile
+32-29llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+5-21llvm/test/CodeGen/AMDGPU/sgpr-spill-to-vmem-scc-clobber-reserved-exec-copy.mir
+37-502 files

LLVM/project f55cb17clang/test/SemaTemplate temp_arg_nontype_cxx1z.cpp

[Clang][NFC] Add regression tests for a couple resolved issues (#222944)

Fixes #38721 (Clang 18)
Fixes #58682 (Clang 18)
DeltaFile
+21-0clang/test/SemaTemplate/temp_arg_nontype_cxx1z.cpp
+21-01 files

LLVM/project bb8dc4allvm/lib/Frontend/OpenMP OMPDescriptors.inc, llvm/test/Analysis/CostModel/X86 shuffle-extract_subvector.ll

Merge branch 'main' into users/wizardengineer/ct-select-core
DeltaFile
+2,066-2,066llvm/test/Analysis/CostModel/X86/shuffle-extract_subvector.ll
+840-839llvm/lib/Frontend/OpenMP/OMPDescriptors.inc
+1,173-489llvm/test/CodeGen/AArch64/sve-bf16-combines.ll
+1,482-0llvm/test/CodeGen/LoongArch/memory-barrier-opt.ll
+121-1,318llvm/test/Transforms/Attributor/nofpclass.ll
+1,156-0llvm/test/Transforms/Attributor/nofpclass-fadd-fsub.ll
+6,838-4,712911 files not shown
+35,174-15,914917 files

LLVM/project 0bf534allvm/lib/Target/AMDGPU SIInstrInfo.cpp, llvm/test/CodeGen/AMDGPU verify-vimage-vsample.mir verify-ds-gws-align.mir

[AMDGPU] Remove the VGPR-alignment check from the machine verifier (#219230)

The machine verifier had a check that a 64-bit-or-wider VALU operand uses an even-aligned VGPR/AGPR tuple on subtargets that require it. Now that most operands express their alignment requirement through `_AlignTarget`, the check is redundant: the generic verifier already rejects a register that does not fit its operand's class.

This removes the "Subtarget requires even aligned vector registers" and "Operand has incorrect register class" diagnostics, leaving the generic "Illegal virtual/physical register for instruction".

The image `vaddr` parity check is left in place: single-VGPR alignment cannot be expressed as a register class, so it still needs an explicit check.
DeltaFile
+0-60llvm/test/CodeGen/AMDGPU/verify-gfx90a-aligned-vgprs.mir
+0-51llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+0-24llvm/test/CodeGen/AMDGPU/verify-ds-gws-align.mir
+0-5llvm/test/MachineVerifier/AMDGPU/unsupported-unaligned-vgpr-check-vsrc-operand.mir
+0-4llvm/test/MachineVerifier/AMDGPU/unsupported-subreg-index-aligned-vgpr-check.mir
+0-4llvm/test/CodeGen/AMDGPU/verify-vimage-vsample.mir
+0-1481 files not shown
+0-1527 files

LLVM/project 59658belldb/test/API/functionalities/thread/concurrent_events TestConcurrentManySignals.py

[lldb][test] Disable TestConcurrentManySignals.py on AArch64 Linux (#222948)

It is flakey in pre-commit CI
(https://github.com/llvm/llvm-project/issues/171210) and blocking
https://github.com/llvm/llvm-project/issues/171202 as a result.

No one is going to have time to dig into this soon, so disable it for
now.
DeltaFile
+2-0lldb/test/API/functionalities/thread/concurrent_events/TestConcurrentManySignals.py
+2-01 files

LLVM/project ad72da2llvm/lib/Transforms/Vectorize VPlanRecipes.cpp, llvm/test/Transforms/LoopVectorize force-instruction-cost.ll

[VPlan] Consider VPDerivedIV & VPScalarIVSteps for forced costs. (#222918)

Now that we compute VPDerivedIV and VPScalarIVSteps costs directly in
VPlan, also account for them with forced costs. They never have
underlying instructions, so always add the forced cost for them.

Previously they would have been accounted for in precomputeCosts.

PR: https://github.com/llvm/llvm-project/pull/222918
DeltaFile
+401-100llvm/test/Transforms/LoopVectorize/AArch64/force-target-instruction-cost.ll
+12-12llvm/test/Transforms/LoopVectorize/AArch64/scalable-vectorization-cost-tuning.ll
+6-6llvm/test/Transforms/LoopVectorize/force-instruction-cost.ll
+3-1llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+422-1194 files

LLVM/project ba9efc6llvm/lib/Transforms/Scalar LICM.cpp, llvm/test/Transforms/LICM scalar-promote-aa-tags.ll

[LICM] Do not strip invariant AA tags
DeltaFile
+48-7llvm/lib/Transforms/Scalar/LICM.cpp
+27-20llvm/test/Transforms/LICM/scalar-promote-aa-tags.ll
+75-272 files

LLVM/project a477221llvm/lib/Transforms/Scalar LICM.cpp

Check AA metadata before testing if guaranteed to execute
DeltaFile
+2-3llvm/lib/Transforms/Scalar/LICM.cpp
+2-31 files

LLVM/project 77df249llvm/lib/Transforms/Scalar LICM.cpp

[NFC][LICM] Hoist `isPotentiallyPromotable` to reusable function
DeltaFile
+19-17llvm/lib/Transforms/Scalar/LICM.cpp
+19-171 files

LLVM/project 128b9eallvm/test/Transforms/LICM scalar-promote-aa-tags.ll

[NFC][LICM] Pre-commit tests for loop-invariant store AA
DeltaFile
+427-0llvm/test/Transforms/LICM/scalar-promote-aa-tags.ll
+427-01 files

LLVM/project b964e9bllvm/lib/Target/AMDGPU SIInstrInfo.cpp

Refactor `ExpectedRC` determination
DeltaFile
+20-10llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+20-101 files

LLVM/project edba212llvm/lib/Target/AMDGPU SIInstrInfo.cpp, llvm/test/CodeGen/AMDGPU fix-sgpr-copies-f16-true16.mir v_swap_b16.ll

[AMDGPU][SIInstrInfo] Materialise t16 PHI subreg operands
DeltaFile
+1,527-1,045llvm/test/CodeGen/AMDGPU/frem.ll
+20-26llvm/test/CodeGen/AMDGPU/v_swap_b16.ll
+18-7llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+8-2llvm/test/CodeGen/AMDGPU/fix-sgpr-copies-f16-true16.mir
+1,573-1,0804 files

LLVM/project 442640allvm/test/CodeGen/AMDGPU fix-sgpr-copies-f16-true16.mir

[NFC][AMDGPU] Pre-commit test that exposes subreg copies into PHI nodes
DeltaFile
+68-0llvm/test/CodeGen/AMDGPU/fix-sgpr-copies-f16-true16.mir
+68-01 files

LLVM/project b6782c2llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes LoadStoreVec.h, llvm/lib/Transforms/Vectorize/SandboxVectorizer VecUtils.cpp

[SandboxVectorizer] Dispatch LoadStoreVec::runOnRegion on seed kind
DeltaFile
+139-94llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.cpp
+105-0llvm/test/Transforms/SandboxVectorizer/Passes/LoadStoreVec/load_store_vec_load_seeds.ll
+35-35llvm/test/Transforms/SandboxVectorizer/Passes/LoadStoreVec/load_store_vec.ll
+38-11llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.h
+13-4llvm/lib/Transforms/Vectorize/SandboxVectorizer/VecUtils.cpp
+6-4llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
+336-1481 files not shown
+338-1497 files

LLVM/project cfa4135clang/test/OpenMP target_num_teams_num_threads_attributes.cpp ompx_attributes_codegen.cpp, llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp

[OpenMP] Don't reserve the generic mode warp on SPIR-V (#222763)

#218790 widened a generic mode kernel's thread bound by a warp so that
the main
thread has one of its own. The bound is what lets the runtime's own warp
addition through: `getEffectiveNumThreads()` adds a warp and then clamps
to the
bound, so before that change the addition was clamped straight back off,
which
is why a `thread_limit` below one wavefront ended up with no workers.
Widening
the bound is the fix, and it is also what makes every generic mode
kernel launch
a warp wider than it used to.

`hasGridValue()` covers SPIR-V, so that geometry change reached Level
Zero.
@sarnex reports hangs and intermittent failures there and asked about a
revert

    [48 lines not shown]
DeltaFile
+3-2llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+3-2clang/test/OpenMP/ompx_attributes_codegen.cpp
+3-1clang/test/OpenMP/target_num_teams_num_threads_attributes.cpp
+9-53 files

LLVM/project 853a7fcllvm/lib/Target/ARM ARMTargetMachine.cpp, llvm/test/CodeGen/ARM eabihf-no-fpregs.ll inlineasm-operand-implicit-cast.ll

[ARM] Prevent use of the VFP calling convention when +soft-float is enabled (#221434)

This check was implemented in #111334 for -fpregs and Thumb1 cases, but
+soft-float is a distinct case that can lead to the same silent calling
convention mismatches.

Fix tests that were using +soft-float and the VFP calling convention.

Clarify comment about hard-float support on mve+nofp cores.
DeltaFile
+11-10llvm/test/CodeGen/ARM/GlobalISel/arm-isel-fp.ll
+4-4llvm/lib/Target/ARM/ARMTargetMachine.cpp
+1-1llvm/test/CodeGen/ARM/inlineasm-operand-implicit-cast.ll
+1-0llvm/test/CodeGen/ARM/eabihf-no-fpregs.ll
+17-154 files

LLVM/project a7487f1llvm/lib/Transforms/Vectorize VPlanTransforms.cpp

Move ReplaceUsesInVectorLoopThroughCastsRecursively to static helper func
DeltaFile
+32-28llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+32-281 files

LLVM/project d957c72clang/lib/StaticAnalyzer/Checkers SmartPtrModeling.cpp CallAndMessageChecker.cpp

Add comment for indexes and FIXME.
DeltaFile
+16-5clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp
+2-0clang/lib/StaticAnalyzer/Checkers/SmartPtrModeling.cpp
+18-52 files

LLVM/project c89359blibsycl/include/sycl/__impl context.hpp, libsycl/src context.cpp

[libsycl] Add constructors for context (#214538)

Adds public `constructors` API for the `context` class.

It also adds E2E and unit tests.

Assisted by AI for documentation and testing

---------

Co-authored-by: Kseniya Tikhomirova <kseniya.tikhomirova at intel.com>
DeltaFile
+92-0libsycl/unittests/context/context_ctors.cpp
+57-0libsycl/test/basic/context.cpp
+54-2libsycl/include/sycl/__impl/context.hpp
+12-6libsycl/src/detail/context_impl.cpp
+12-0libsycl/src/context.cpp
+3-0libsycl/unittests/context/CMakeLists.txt
+230-84 files not shown
+234-1010 files

LLVM/project 4ec3afcmlir/lib/IR BuiltinTypes.cpp, mlir/test/IR parser.mlir

[mlir] Accept OpaqueAttr as a valid memory space if the context allows unregistered dialects (#187682)

When a context allows unregistered dialects and an unknown attribute is
encountered, it is wrapped in OpaqueAttr from the builtin dialect.
DeltaFile
+6-0mlir/test/IR/parser.mlir
+6-0mlir/lib/IR/BuiltinTypes.cpp
+12-02 files

LLVM/project 7b30e96llvm/lib/Transforms/Instrumentation PGOInstrumentation.cpp, llvm/unittests/Transforms/Instrumentation PGOInstrumentationTest.cpp

[PGO] Load branch uniformity profiles and mark availability

Uniformity profiles record block observations, but optimizations also
need information about branch decisions. A missing branch annotation
alone cannot tell them whether profile data is absent or no branches
are known to be uniform.

Mark functions when uniformity data is loaded and derive branch
annotations from blocks with a single conditional predecessor. Each
such block measures the lanes taking one outgoing edge. Mark a branch
as uniform only when all its instrumented outgoing edges are classified
as uniform, so one uniform edge cannot hide a divergent edge.

Replace existing branch annotations when loading the profile. This
clears an old uniform classification if the new data no longer supports
it. The function marker lets consumers use these results while keeping
their existing behavior when no uniformity profile is available.
DeltaFile
+18-3llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
+17-1llvm/unittests/Transforms/Instrumentation/PGOInstrumentationTest.cpp
+35-42 files

LLVM/project db5951cllvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes LoadStoreVec.h, llvm/lib/Transforms/Vectorize/SandboxVectorizer VecUtils.cpp

[SandboxVectorizer] Dispatch LoadStoreVec::runOnRegion on seed kind
DeltaFile
+140-94llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.cpp
+86-0llvm/test/Transforms/SandboxVectorizer/Passes/LoadStoreVec/load_store_vec_load_seeds.ll
+35-35llvm/test/Transforms/SandboxVectorizer/Passes/LoadStoreVec/load_store_vec.ll
+38-11llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.h
+13-4llvm/lib/Transforms/Vectorize/SandboxVectorizer/VecUtils.cpp
+6-4llvm/unittests/Transforms/Vectorize/SandboxVectorizer/VecUtilsTest.cpp
+318-1481 files not shown
+320-1497 files

LLVM/project 1fe126elld/ELF Writer.cpp SyntheticSections.cpp, lld/test/ELF invalid-dynamic-debug.test dynamic-debug.test

[dyndbg][LLD][ELF] Initial LLD support for dynamic debugging (#214188)

LLVM's Dynamic Debugging feature (`llvm/docs/DynamicDebugging.md`)
generates optimized relocatable files with an unoptimized relocatable
copy of the functions from its translation unit embedded in a
`SHT_LLVM_DYNDBG_ELF` section named `.debug_llvm_dyndbg`. The
unoptimized functions in the "inner" embedded relocatable reference the
functions and data of the "outer" optimized relocatable.

When LLD encounters dynamic debugging objects, a nested "inner"
relocatable link is run with the embedded "inner" unoptimized objects.
The output is embedded in a `SHT_LLVM_DYNDBG_ELF` section named
`.debug_llvm_dyndbg` and described by an `NT_LLVM_DYNAMIC_DEBUGGING`
note in the "outer" output. The "inner" relocatable link more closely
resembles a final link rather than a regular relocatable `-r` one,
unless the "outer" link is itself a relocatable `-r` link.

The embedded "inner" objects' undefined symbols are added to the "outer"
symbol table so that the "outer" link resolves the dependencies of the

    [10 lines not shown]
DeltaFile
+393-0lld/test/ELF/dynamic-debug.test
+161-0lld/test/ELF/invalid-dynamic-debug.test
+75-13lld/ELF/Driver.cpp
+74-0lld/ELF/InputFiles.cpp
+41-0lld/ELF/SyntheticSections.cpp
+38-2lld/ELF/Writer.cpp
+782-1510 files not shown
+893-2516 files