LLVM/project b001b29 — llvm/test/CodeGen/AArch64 aarch64-combine-gather-lanes.mir

AArch64: Fix missing ... function separators in mir test

update_mir_test_checks misbehaves when the end of function marker
is missing.
DeltaFile
+138-114llvm/test/CodeGen/AArch64/aarch64-combine-gather-lanes.mir
+138-1141 files

LLVM/project 57b0387 — llvm/include/llvm/CodeGen RegAllocEvictionAdvisor.h, llvm/lib/CodeGen FailedReassignCache.cpp

Address feedback
DeltaFile
+12-15llvm/include/llvm/CodeGen/RegAllocEvictionAdvisor.h
+6-5llvm/lib/CodeGen/FailedReassignCache.cpp
+1-1llvm/unittests/Target/AMDGPU/FailedReassignCacheTest.cpp
+19-213 files

LLVM/project 9b2201b — llvm/test/CodeGen/AMDGPU waterfall-call-inreg-agpr.ll

[AMDGPU] Update waterfall-call-inreg-agpr.ll mismatched CC (#235075)

update test such that the call CC matches the CC of the target function

Identified while investigating
https://github.com/llvm/llvm-project/issues/234232
DeltaFile
+4-4llvm/test/CodeGen/AMDGPU/waterfall-call-inreg-agpr.ll
+4-41 files

LLVM/project f90f1b5 — llvm/lib/Transforms/Utils Local.cpp, llvm/test/Transforms/Coroutines coro-await-suspend-lower-invoke.ll

[SimplifyCFG] Propagate unknown weights in ConstantFoldTerminator (#234823)

Before we were just dropping the metadata node which causes a profcheck
failure. Propagate the unknown profile so the profcheck verifier knows
that we have dealt with this case.

Found while doing a bootstrapping build of LLVM with -mllvm
-enable-profcheck-in-pipeline.
DeltaFile
+32-0llvm/test/Transforms/SimplifyCFG/preserve-branchweights.ll
+5-3llvm/test/Transforms/Coroutines/coro-await-suspend-lower-invoke.ll
+2-0llvm/lib/Transforms/Utils/Local.cpp
+39-33 files

LLVM/project 66edef2 — clang/test/Index index-concepts.cpp cursor-ref-dependent-member.cpp, clang/tools/libclang CIndex.cpp

[libclang] Resolve dependent member references in clang_getCursorReferenced

Inside a class template, references to members of a dependent base, such
as 'this->size()' where the base is 'A<T>', aren't bound to a declaration
until instantiation, so clang_getCursorReferenced() returned a null cursor
for them.

Fall back to HeuristicResolver, which clangd uses for the same purpose, to
look the name up in the primary template, and return the result if it's a
single declaration. This also resolves 'type_trait<T>::value' in a
requires-clause or concept to the primary template's static member.

'A<T>::size()' (a qualified reference to an instance member) still isn't
resolved, because HeuristicResolver only considers static members for a
DependentScopeDeclRefExpr.

Addresses part of #15370.

Assisted-by: Claude Opus 5.5
DeltaFile
+33-0clang/test/Index/cursor-ref-dependent-member.cpp
+20-0clang/tools/libclang/CIndex.cpp
+3-3clang/test/Index/index-concepts.cpp
+56-33 files

LLVM/project d577f58 — llvm/lib/CodeGen InlineSpiller.cpp

InlineSpiller: Stop adding kill flags on virtual registers

The spiller was marking uses of the new virtual registers created for
rematerialization and spilling as killed. VirtRegRewriter recomputes
kill flags from live intervals after allocation, so these were never
needed.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+9-16llvm/lib/CodeGen/InlineSpiller.cpp
+9-161 files

LLVM/project b75f5cd — llvm/lib/CodeGen InlineSpiller.cpp, llvm/test/CodeGen/AArch64 regalloc-last-chance-recolor-with-split.mir

[RegAlloc] Restrict statepoint remat by default

Statepoint deopt and GC operands may live in stack slots, but when a
statepoint has more of them than there are registers, InlineSpiller
can rematerialize them into registers in front of it. Greedy then
runs out of registers and the basic allocator asserts.

restrict-statepoint-remat makes these operands spill and fold into
the statepoint instead. It was added off by default pending
validation, and the statepoint register allocation tests already
enable it, so turn it on by default.
DeltaFile
+32-0llvm/test/CodeGen/X86/statepoint-deopt-remat.ll
+9-11llvm/test/CodeGen/AArch64/regalloc-last-chance-recolor-with-split.mir
+3-3llvm/lib/CodeGen/InlineSpiller.cpp
+44-143 files

LLVM/project 2206ef7 — llvm/include/llvm/ADT SmallVector.h

[SmallVector] Resolve the constructor ambiguity. (#235087)

https://github.com/llvm/llvm-project/pull/234861 causes build failures
with some compilers.
This patch uses the solution proposed in
https://github.com/llvm/llvm-project/pull/234861#pullrequestreview-5633532997
DeltaFile
+3-1llvm/include/llvm/ADT/SmallVector.h
+3-11 files

LLVM/project 89e73ef — llvm/include/llvm/CodeGen RegAllocEvictionAdvisor.h, llvm/lib/CodeGen FailedReassignCache.cpp

Address feedback
DeltaFile
+7-7llvm/include/llvm/CodeGen/RegAllocEvictionAdvisor.h
+6-5llvm/lib/CodeGen/FailedReassignCache.cpp
+1-1llvm/unittests/Target/AMDGPU/FailedReassignCacheTest.cpp
+14-133 files

LLVM/project ff6836d — llvm/lib/Target/ARM ARMBaseInstrInfo.cpp MLxExpansionPass.cpp, llvm/test/CodeGen/ARM imm-peephole-thumb.mir imm-peephole-arm.mir

ARM: Stop adding kill flags on new virtual registers

Continue purging uses of kill flags.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+4-7llvm/lib/Target/ARM/MLxExpansionPass.cpp
+3-3llvm/test/CodeGen/ARM/imm-peephole-thumb.mir
+3-3llvm/test/CodeGen/ARM/imm-peephole-arm.mir
+1-1llvm/test/CodeGen/Thumb2/t2peephole-t2ADDrr-to-t2ADDri.ll
+0-1llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
+11-155 files

LLVM/project 6bc4f95 — utils/bazel/llvm-project-overlay/flang/lib/Lower BUILD.bazel

[Bazel] Fixes 5f4b94d (#235070)

This fixes 5f4b94d324ce95d2f1ba1c570fa55d6c2d5657fe (#233252).

Buildkite error link:
https://buildkite.com/llvm-project/upstream-bazel/builds?commit=5f4b94d324ce95d2f1ba1c570fa55d6c2d5657fe

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+1-0utils/bazel/llvm-project-overlay/flang/lib/Lower/BUILD.bazel
+1-01 files

LLVM/project 478e632 — utils/bazel/llvm-project-overlay/clang BUILD.bazel

[bazel] Port 201cb03db44fd670cff3c36c7438d0a2d33140f0 (#235110)
DeltaFile
+1-0utils/bazel/llvm-project-overlay/clang/BUILD.bazel
+1-01 files

LLVM/project 3fb80fc — llvm/lib/Target/AArch64 AArch64MIPeepholeOpt.cpp AArch64InstrInfo.cpp, llvm/test/CodeGen/AArch64 peephole-insvigpr.mir aarch64-combine-gather-lanes.mir

AArch64: Stop adding kill flags on new virtual registers

Continue purging uses of kill flags

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+36-36llvm/test/CodeGen/AArch64/aarch64-combine-gather-lanes.mir
+7-12llvm/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp
+5-8llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+1-1llvm/test/CodeGen/AArch64/peephole-insvigpr.mir
+0-1llvm/lib/Target/AArch64/AArch64MIPeepholeOpt.cpp
+49-585 files

LLVM/project d3aff45 — flang/test/Lower/OpenMP assumption.f90, llvm/test/CodeGen/AMDGPU llvm.prefetch.ll

Merge branch 'main' into users/shiltian/remove-xnack-from-12-5-generic
DeltaFile
+791-26llvm/test/CodeGen/AMDGPU/llvm.prefetch.ll
+140-119llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp
+200-0llvm/test/Transforms/IndVarSimplify/urem-to-select-pgo.ll
+194-0llvm/test/ThinLTO/X86/memprof-icp-import.ll
+171-0llvm/test/ThinLTO/X86/memprof-icp-import-imported-caller.ll
+160-1flang/test/Lower/OpenMP/assumption.f90
+1,656-146235 files not shown
+4,789-1,147241 files

LLVM/project a6cb631 — llvm/lib/ExecutionEngine/Interpreter ExternalFunctions.cpp, llvm/test/ExecutionEngine/MCJIT interp-mangling-escape.ll

[Interpreter] Strip the '\01' mangling escape when looking up external functions

The interpreter looked up external functions, both in its "lle_X_" table
and via dlsym() for libffi calls, using the IR name as-is. A declaration
such as @"\01printf" or @"\01_stat$INODE64" (as produced for asm labels)
was looked up with the escape, and on targets with a global prefix also
with the prefix, so it failed with "Tried to execute an unknown external
function" even though the JIT handled it.

Drop the escape and, if present, the data layout's global prefix before
looking the function up.

Fixes #5852.

Assisted-by: Claude Opus 5.5
DeltaFile
+32-0llvm/test/ExecutionEngine/MCJIT/interp-mangling-escape.ll
+20-5llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
+52-52 files

LLVM/project a6020d7 — llvm/lib/IR RuntimeLibcalls.cpp

RuntimeLibcalls: Don't eagerly compute long double type

Pass in the format so the type can be determined when it's really
needed.
DeltaFile
+4-5llvm/lib/IR/RuntimeLibcalls.cpp
+4-51 files

LLVM/project c37a297 — llvm/lib/Target/PowerPC PPCISelLowering.cpp, llvm/test/CodeGen/PowerPC scalar_cmp.ll

[PowerPC] Remove unnecessary FP_EXTENDS from non-compare operand of FSEL. NFCI (#231540)

The first operand of PPCISD::FSEL always needs to be f64, but not the
second or third operand. Those operands need to match each other and the
result type.

AI tells me that f32 operands are already held in f64 format so an
fp_extend codegens to a copy.

Found while adding verification of SDTCisSameAs in
SDNodeInfo::verifyNode.

Assisted-by: Claude
DeltaFile
+16-16llvm/test/CodeGen/PowerPC/scalar_cmp.ll
+0-4llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+16-202 files

LLVM/project a5c9787 — llvm/lib/Target/ARM ARMRegisterBankInfo.cpp ARMLegalizerInfo.cpp, llvm/test/CodeGen/ARM/GlobalISel constant-fold-barrier.ll

[ARM][GlobalISel] Legalize G_CONSTANT_FOLD_BARRIER

The IRTranslator emits G_CONSTANT_FOLD_BARRIER for the no-op bitcasts that
ConstantHoisting uses to materialize hoisted constants, but ARM had no
legalizer rule or register bank mapping for it, so ordinary code such as
an add and a mul sharing a large constant failed with "unable to legalize
instruction" at -O2.

Mark it legal for s32 (clamping other scalar sizes) and map it to GPRs, as
AArch64, X86, and RISC-V already do. InstructionSelect removes it
generically.

Fixes #235104.

Assisted-by: Claude Opus 5.5
DeltaFile
+63-0llvm/test/CodeGen/ARM/GlobalISel/constant-fold-barrier.ll
+7-0llvm/lib/Target/ARM/ARMLegalizerInfo.cpp
+1-0llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp
+71-03 files

FreeBSD/ports 34eef3b — x11/bosd pkg-plist Makefile

x11/bosd: Fix orphaned picom.conf (poudriere)
DeltaFile
+1-0x11/bosd/pkg-plist
+1-0x11/bosd/Makefile
+2-02 files

LLVM/project ebdcdc3 — llvm/lib/Target/ARM ARMISelLowering.cpp, llvm/test/CodeGen/ARM vbsl.ll

[ARM] Don't create VBSP for vbsl of an illegal vector type

The arm_neon_vbsl intrinsic combine turned every call into ARMISD::VBSP.
That combine runs before type legalization, which doesn't know how to
promote or split VBSP, so a vbsl of an illegal type such as v4i8, v2i16,
or v8i32 crashed with "Don't know how to custom expand this!".

For illegal types, expand to (Mask & A) | (~Mask & B) instead. Split types
still end up as vbsl after legalization.

Fixes #15375.

Assisted-by: Claude Opus 5.5
DeltaFile
+61-0llvm/test/CodeGen/ARM/vbsl.ll
+16-2llvm/lib/Target/ARM/ARMISelLowering.cpp
+77-22 files

LLVM/project d363f23 — llvm/lib/Target/AMDGPU AMDGPULowerBufferFatPointers.cpp SIISelLowering.cpp, llvm/test/CodeGen/AMDGPU loop-prefetch-data.ll llvm.amdgcn.s.prefetch.inst.ll

[AMDGPU] Fix prefetch lowering for buffer, 32-bit and divergent pointers (#232366)

A prefetch is only a hint, but in many cases there are valid prefetches
which crash the backend. Instead of doing that we just drop them as is
already done for prefetches of LDS and private memory.
DeltaFile
+791-26llvm/test/CodeGen/AMDGPU/llvm.prefetch.ll
+117-0llvm/test/CodeGen/AMDGPU/lower-buffer-fat-pointers-prefetch.ll
+42-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.s.prefetch.inst.ll
+26-14llvm/test/CodeGen/AMDGPU/loop-prefetch-data.ll
+17-17llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+30-0llvm/lib/Target/AMDGPU/AMDGPULowerBufferFatPointers.cpp
+1,023-574 files not shown
+1,056-8010 files

LLVM/project 7e5f57e — llvm/lib/Transforms/Utils LibCallsShrinkWrap.cpp, llvm/test/Transforms/Util libcalls-shrinkwrap-long-double.ll libcalls-shrinkwrap-float.ll

[LibCallsShrinkWrap] Shrink-wrap dead tan() calls like sin() and cos()

tan(), tanf(), and tanl() only set errno for a domain error when the
argument is +/-infinity, exactly like sin() and cos(). Treat them the same
way so that a call whose result is unused is only executed when it could
set errno, instead of always.

Fixes #234894.

Assisted-by: Claude Opus 5.5
DeltaFile
+21-0llvm/test/Transforms/Util/libcalls-shrinkwrap-long-double.ll
+21-0llvm/test/Transforms/Util/libcalls-shrinkwrap-float.ll
+21-0llvm/test/Transforms/Util/libcalls-shrinkwrap-double.ll
+3-0llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp
+66-04 files

LLVM/project 22db5ec — compiler-rt/lib/builtins truncsfhf2.c extendhfsf2.c

Revert "[compiler-rt] Restrict __gnu_h2f_ieee and __gnu_f2h_ieee to arm32 EABI" (#235018)

Reverts llvm/llvm-project#220170.

It turns out that LLVM can produce calls to `__gnu_h2f_ieee` and
`__gnu_f2h_ieee` when targeting at least Windows/arm, even if that isn't
an EABI target - contrary to what was said in #220170.

Reverting the change to builtins, expose these functions for non-EABI
targets (like before) until we can avoid emitting the calls to them.
DeltaFile
+1-1compiler-rt/lib/builtins/truncsfhf2.c
+1-1compiler-rt/lib/builtins/extendhfsf2.c
+2-22 files

LLVM/project 6b635a8 — llvm/include/llvm/Frontend/OpenMP OMPDescriptors.h.inc, llvm/lib/Frontend/OpenMP OMPDescriptors.inc

Add required clause set with MAP to DECLARE_MAPPER
DeltaFile
+18-5llvm/lib/Frontend/OpenMP/OMPDescriptors.inc
+1-0llvm/include/llvm/Frontend/OpenMP/OMPDescriptors.h.inc
+19-52 files

LLVM/project 774ee12 — flang/test/Semantics/OpenMP metadirective-common.f90 metadirective-common-v51.f90, llvm/lib/Frontend/OpenMP OMPDescriptors.inc

Make DEFAULT (variant) clause "free" instead of "ultimate"
DeltaFile
+53-0flang/test/Semantics/OpenMP/metadirective-common-v51.f90
+6-0flang/test/Semantics/OpenMP/metadirective-common.f90
+2-2llvm/lib/Frontend/OpenMP/OMPDescriptors.inc
+61-23 files

LLVM/project 985b562 — flang/lib/Semantics check-omp-structure.cpp, flang/test/Semantics/OpenMP depobj-construct-v45.f90 clause-validity01.f90

Check constituent directives in CheckCompoundDirective
DeltaFile
+56-15flang/lib/Semantics/check-omp-structure.cpp
+17-2flang/test/Semantics/OpenMP/clause-validity01.f90
+9-0flang/test/Semantics/OpenMP/depobj-construct-v45.f90
+82-173 files

LLVM/project b17a09d — flang/lib/Semantics check-omp-structure.cpp, flang/test/Semantics/OpenMP depobj-construct-v60.f90

Better coverage of the DEPOBJ checks
DeltaFile
+8-4flang/lib/Semantics/check-omp-structure.cpp
+6-0flang/test/Semantics/OpenMP/depobj-construct-v60.f90
+14-42 files

LLVM/project 08ea22a — flang/lib/Semantics openmp-utils.cpp

Detect LOOP as a leaf construct
DeltaFile
+5-2flang/lib/Semantics/openmp-utils.cpp
+5-21 files

LLVM/project 49a7926 — flang/lib/Semantics check-omp-structure.cpp

format
DeltaFile
+2-1flang/lib/Semantics/check-omp-structure.cpp
+2-11 files

LLVM/project 2e06829 — flang/lib/Semantics check-omp-structure.cpp, flang/test/Semantics/OpenMP depobj-construct-v60.f90

Handle alternative syntax of DEPOBJ
DeltaFile
+50-0flang/test/Semantics/OpenMP/depobj-construct-v60.f90
+12-0flang/lib/Semantics/check-omp-structure.cpp
+62-02 files