LLVM/project 21b0f6b — llvm/lib/Target/AMDGPU AMDGPULowerModuleLDSPass.cpp, llvm/lib/Target/PowerPC PPCAsmPrinter.cpp

[spr] update

Created using spr 2.0.0-beta.2
DeltaFile
+4-6llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
+5-1llvm/lib/Transforms/IPO/ElimAvailExtern.cpp
+2-2llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
+1-2llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
+1-1llvm/lib/Transforms/Utils/ModuleUtils.cpp
+1-1llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
+14-132 files not shown
+17-148 files

LLVM/project 35a4eba — llvm/test/ThinLTO/X86 cfi-split-lto-sample-profile.ll, llvm/test/Transforms/ThinLTOBitcodeWriter split-internal2.ll split-internal-alias.ll

[spr] update

Created using spr 2.0.0-beta.2
DeltaFile
+111-0llvm/test/ThinLTO/X86/cfi-split-lto-sample-profile.ll
+12-5llvm/tools/llvm-lto2/llvm-lto2.cpp
+6-6llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal2.ll
+6-6llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal-alias.ll
+6-6llvm/test/Transforms/ThinLTOBitcodeWriter/cfi_dso_local_equivalent.ll
+6-6llvm/test/Transforms/ThinLTOBitcodeWriter/cfi-relative-vtable.ll
+147-299 files not shown
+180-5515 files

LLVM/project 5d8b5b1 — llvm/include/llvm/ProfileData InstrProf.h, llvm/lib/ProfileData InstrProf.cpp

[ProfileData] Strip .cfi suffix in InstrProfSymtab (#240955)

Under CFI jump tables, `LowerTypeTests` renames function definitions to
`<name>.cfi`. `InstrProfSymtab::getCanonicalName` did not strip `.cfi`,
preventing canonical GUID lookups from matching `.cfi` function
definitions.

Co-authored-by: Benedict Schlüter <bschlueter at google.com>
Assisted-by: Gemini
DeltaFile
+17-1llvm/unittests/ProfileData/InstrProfTest.cpp
+3-2llvm/lib/ProfileData/InstrProf.cpp
+2-2llvm/include/llvm/ProfileData/InstrProf.h
+22-53 files

LLVM/project 0cabb2d — llvm/lib/Target/AArch64 AArch64RegisterBanks.td AArch64GenRegisterBankInfo.def, llvm/lib/Target/AArch64/GISel AArch64RegisterBankInfo.h AArch64RegisterBankInfo.cpp

[AArch64] Use generated instruction mappings
DeltaFile
+87-406llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
+0-278llvm/lib/Target/AArch64/AArch64GenRegisterBankInfo.def
+136-1llvm/lib/Target/AArch64/AArch64RegisterBanks.td
+2-79llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.h
+225-7644 files

LLVM/project 3d296e0 — llvm/include/llvm/Target/GlobalISel RegisterBank.td, llvm/test/TableGen RegisterBankEmitter.td RegisterBankEmitter-Check.td

[TableGen] Generate instruction mappings for `RegisterBankInfo`
DeltaFile
+603-3llvm/utils/TableGen/RegisterBankEmitter.cpp
+59-0llvm/include/llvm/Target/GlobalISel/RegisterBank.td
+17-0llvm/test/TableGen/RegisterBankEmitter-Check.td
+16-0llvm/test/TableGen/RegisterBankEmitter.td
+695-34 files

LLVM/project f1185ef — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 merge-input-operands.ll

[SLP] Merge redundant input operands of binary-operator nodes (#208670)

Replaces the merged-input machinery of the preceding commits, kept in
the branch history for reference. Load-only, and restricted to
power-of-two pools: otherwise the gathered-loads path may decline the
wide load and leave the operand stuck as a gather.


Co-authored-by: Cursor <cursoragent at cursor.com>
Co-authored-by: Alexey Bataev <a.bataev at outlook.com>
DeltaFile
+29-1llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+3-5llvm/test/Transforms/SLPVectorizer/X86/merge-input-operands.ll
+32-62 files

LLVM/project e31360a — clang/include/clang/CIR/Dialect/IR CIRAttrs.td, clang/lib/CIR/CodeGen CIRGenRecordLayoutBuilder.cpp

[CIR] Track flexible array members in record layout and pass to ABI
DeltaFile
+111-0clang/test/CIR/Transforms/abi-lowering/amdgpu-flexible-array.cir
+84-0clang/test/CIR/CodeGen/call-conv-lowering-x86_64-flexible-array.c
+21-6clang/lib/CIR/Dialect/IR/CIRAttrs.cpp
+11-1clang/test/CIR/IR/record-layout.cir
+5-5clang/lib/CIR/CodeGen/CIRGenRecordLayoutBuilder.cpp
+8-2clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+240-142 files not shown
+251-158 files

LLVM/project bcd44ae — llvm/lib/Target/BPF BPFASpaceCastSimplifyPass.cpp, llvm/test/CodeGen/BPF addr-space-simplify-6.ll

[BPF] Fix use-after-free in bpf-aspace-simplify (#240996)

BPFASpaceCastSimplifyPass rewrites
`addrspacecast M->N (getelementptr (addrspacecast N->M p))` to
`getelementptr p`. When the inner cast has no other uses, the rewrite
erases it. That cast can also be the outer cast of another chain that is
still in the worklist. The pass then reads the erased cast. Clang
crashes on this code:

```c
#define __arena __attribute__((address_space(1)))

struct hdr { int len; int flags; };
int use(int *p);

int f(void __arena *buf, long off)
{
        struct hdr __arena *h = (struct hdr __arena *)((char *)buf + off);
        return use((int *)&h->flags);

    [22 lines not shown]
DeltaFile
+24-0llvm/test/CodeGen/BPF/addr-space-simplify-6.ll
+14-8llvm/lib/Target/BPF/BPFASpaceCastSimplifyPass.cpp
+38-82 files

LLVM/project 8b147fa — llvm/lib/Target/AArch64 AArch64RegisterBanks.td AArch64GenRegisterBankInfo.def, llvm/lib/Target/AArch64/GISel AArch64RegisterBankInfo.h AArch64RegisterBankInfo.cpp

[AArch64] Remove AArch64GenRegisterBankInfo.def
DeltaFile
+87-406llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
+0-278llvm/lib/Target/AArch64/AArch64GenRegisterBankInfo.def
+135-1llvm/lib/Target/AArch64/AArch64RegisterBanks.td
+2-79llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.h
+224-7644 files

LLVM/project 2011c02 — llvm/include/llvm/Target/GlobalISel RegisterBank.td, llvm/test/TableGen RegisterBankEmitter.td RegisterBankEmitter-Check.td

[TableGen] Generate instruction mappings for `RegisterBankInfo`
DeltaFile
+604-3llvm/utils/TableGen/RegisterBankEmitter.cpp
+59-0llvm/include/llvm/Target/GlobalISel/RegisterBank.td
+17-0llvm/test/TableGen/RegisterBankEmitter-Check.td
+16-0llvm/test/TableGen/RegisterBankEmitter.td
+696-34 files

LLVM/project 691118c — lldb/source/Target Process.cpp

[lldb][NFC] A small cleanup in Process::ReadModuleFromMemory (#241137)

I added a check for "if corefile" right after a "if live process"
conditional. Initialize both variables in the same cond expr.
DeltaFile
+11-8lldb/source/Target/Process.cpp
+11-81 files

LLVM/project 88c1da8 — llvm/lib/Target/AMDGPU AMDGPULowerModuleLDSPass.cpp, llvm/lib/Target/PowerPC PPCAsmPrinter.cpp

[spr] update

Created using spr 2.0.0-beta.2
DeltaFile
+4-6llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
+5-1llvm/lib/Transforms/IPO/ElimAvailExtern.cpp
+2-2llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
+1-2llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
+1-1llvm/lib/Transforms/Utils/ModuleUtils.cpp
+1-1llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
+14-132 files not shown
+17-148 files

LLVM/project 75e73d0 — llvm/include/llvm/ExecutionEngine/Orc BindCallControllerHandlerSPS.h, llvm/lib/ExecutionEngine/Orc ReOptimizeLayer.cpp LazyReexports.cpp

[spr] update

Created using spr 2.0.0-beta.2
DeltaFile
+0-60llvm/include/llvm/ExecutionEngine/Orc/BindCallControllerHandlerSPS.h
+23-13llvm/lib/ExecutionEngine/Orc/COFFPlatform.cpp
+24-12llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
+23-12llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp
+16-5llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp
+15-5llvm/lib/ExecutionEngine/Orc/ReOptimizeLayer.cpp
+101-1071 files not shown
+113-1107 files

LLVM/project 8547775 — llvm/include/llvm/ExecutionEngine/Orc BindCallControllerHandlerSPS.h, llvm/lib/ExecutionEngine/Orc ReOptimizeLayer.cpp LazyReexports.cpp

[spr] update

Created using spr 2.0.0-beta.2
DeltaFile
+0-60llvm/include/llvm/ExecutionEngine/Orc/BindCallControllerHandlerSPS.h
+23-13llvm/lib/ExecutionEngine/Orc/COFFPlatform.cpp
+24-12llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
+23-12llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp
+16-5llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp
+15-5llvm/lib/ExecutionEngine/Orc/ReOptimizeLayer.cpp
+101-1071 files not shown
+113-1107 files

LLVM/project a0b23ef — llvm/include/llvm/ExecutionEngine/Orc BindCallControllerHandlerSPS.h, llvm/lib/ExecutionEngine/Orc ReOptimizeLayer.cpp LazyReexports.cpp

[ORC] Replace bindCallControllerHandlerSPS with HandlerSpec (#241133)

Give each existing call-controller handler a descriptor (its default tag
name and SPS signature) and bind it with
bindCallControllerHandler<sps::HandlerSpec<...>>, then remove
bindCallControllerHandlerSPS, which no longer has any users.

Each platform's handler descriptors live in a <platform>_sps_handlers
namespace alongside the platform's existing controller-interface
descriptors. The descriptors for LazyReexportsManager's and
ReOptimizeLayer's handlers follow the same naming scheme.

bindCallControllerHandlerSPS has not appeared in a release, so no
released API is removed.
DeltaFile
+0-60llvm/include/llvm/ExecutionEngine/Orc/BindCallControllerHandlerSPS.h
+23-13llvm/lib/ExecutionEngine/Orc/COFFPlatform.cpp
+24-12llvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
+23-12llvm/lib/ExecutionEngine/Orc/ELFNixPlatform.cpp
+16-5llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp
+15-5llvm/lib/ExecutionEngine/Orc/ReOptimizeLayer.cpp
+101-1071 files not shown
+113-1107 files

LLVM/project 3ff98ef — llvm/test/ThinLTO/X86 cfi-split-lto-sample-profile.ll, llvm/test/Transforms/ThinLTOBitcodeWriter split-internal2.ll split-internal-alias.ll

[spr] update

Created using spr 2.0.0-beta.2
DeltaFile
+111-0llvm/test/ThinLTO/X86/cfi-split-lto-sample-profile.ll
+12-5llvm/tools/llvm-lto2/llvm-lto2.cpp
+6-6llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal2.ll
+6-6llvm/test/Transforms/ThinLTOBitcodeWriter/split-internal-alias.ll
+6-6llvm/test/Transforms/ThinLTOBitcodeWriter/cfi_dso_local_equivalent.ll
+6-6llvm/test/Transforms/ThinLTOBitcodeWriter/cfi-relative-vtable.ll
+147-299 files not shown
+180-5515 files

LLVM/project d1a2228 — llvm/include/llvm/ProfileData InstrProf.h, llvm/lib/ProfileData InstrProf.cpp

[spr] update

Created using spr 2.0.0-beta.2
DeltaFile
+17-1llvm/unittests/ProfileData/InstrProfTest.cpp
+3-2llvm/lib/ProfileData/InstrProf.cpp
+2-2llvm/include/llvm/ProfileData/InstrProf.h
+22-53 files

LLVM/project 42a96b2 — llvm/lib/ProfileData InstrProf.cpp, llvm/unittests/ProfileData InstrProfTest.cpp

[ProfileData] Prefer definitions over declarations in InstrProfSymtab (#240698)

When a function declaration and a definition in a module share a
canonical name or GUID (such as promoted ThinLTO symbols or CFI
jump-table declarations alongside `.cfi` bodies), `InstrProfSymtab`
resolved the GUID to whichever appeared first in module order,
preventing indirect call promotion from inlining the definition when the
declaration appeared earlier.

PR Stack:
* ➤ https://github.com/llvm/llvm-project/pull/240698
* https://github.com/llvm/llvm-project/pull/240955
* https://github.com/llvm/llvm-project/pull/240699

Co-authored-by: Benedict Schlüter <bschlueter at google.com>
Assisted-by: Gemini
DeltaFile
+27-0llvm/unittests/ProfileData/InstrProfTest.cpp
+7-0llvm/lib/ProfileData/InstrProf.cpp
+34-02 files

LLVM/project 14370d3 — clang-tools-extra/docs/clang-tidy/checks/modernize replace-disallow-copy-and-assign-macro.md replace-auto-ptr.md

~
DeltaFile
+0-10clang-tools-extra/docs/clang-tidy/checks/modernize/use-designated-initializers.md
+0-6clang-tools-extra/docs/clang-tidy/checks/modernize/use-default-member-init.md
+0-6clang-tools-extra/docs/clang-tidy/checks/modernize/pass-by-value.md
+1-5clang-tools-extra/docs/clang-tidy/checks/modernize/use-auto.md
+1-3clang-tools-extra/docs/clang-tidy/checks/modernize/replace-disallow-copy-and-assign-macro.md
+1-3clang-tools-extra/docs/clang-tidy/checks/modernize/replace-auto-ptr.md
+3-332 files not shown
+3-398 files

LLVM/project e4da67d — llvm/lib/CodeGen StackProtector.cpp, llvm/lib/Target/AArch64 AArch64ISelLowering.cpp

StackProtector: Take libcall signatures from RuntimeLibcallsInfo

Stop constructing the types by hand, which also missed setting the
calling convention.

This also maintains the special case setting of dso_local, which I
also think should be automatically applied but this requires
additional work.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+51-0llvm/test/Transforms/StackProtector/libcall-decls.ll
+21-17llvm/lib/CodeGen/StackProtector.cpp
+5-5llvm/test/CodeGen/ARM/Windows/stack-protector-musttail.ll
+3-5llvm/lib/Target/X86/X86ISelLoweringCall.cpp
+3-5llvm/lib/Target/ARM/ARMISelLowering.cpp
+3-5llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+86-371 files not shown
+88-437 files

LLVM/project 44bf0f9 — llvm/lib/Analysis MemorySSA.cpp

more cleanup
DeltaFile
+14-124llvm/lib/Analysis/MemorySSA.cpp
+14-1241 files

LLVM/project 1b8a347 — llvm/include/llvm/IR RuntimeLibcalls.td, llvm/test/Transforms/Util/DeclareRuntimeLibcalls bsd.ll

RuntimeLibcalls: Declare __stack_smash_handler with only the function name

OpenBSD's libc defines __stack_smash_handler(const char func[], int
damaged) but never reads damaged, and GCC declares and calls it with
only the first argument. Match the compiler's convention instead of
the C prototype, which would require a dead argument at every call
site.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+1-1llvm/test/Transforms/Util/DeclareRuntimeLibcalls/bsd.ll
+1-1llvm/include/llvm/IR/RuntimeLibcalls.td
+2-22 files

LLVM/project 5413ed3 — llvm/docs MemorySSA.md

fixup! [MemorySSA] Remove ensureOptimizedUses
DeltaFile
+36-34llvm/docs/MemorySSA.md
+36-341 files

LLVM/project ed1e1dc — llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV rvp-insert-subvector.ll

[RISCV][P-ext] Lower RV32 insert_subvector to extract_subector+concat_vectors.

Assisted-by: Claude
DeltaFile
+1-28llvm/test/CodeGen/RISCV/rvp-insert-subvector.ll
+11-13llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+12-412 files

LLVM/project 05085ae — llvm/test/CodeGen/RISCV rvp-insert-subvector.ll

Pre-commit tests
DeltaFile
+154-0llvm/test/CodeGen/RISCV/rvp-insert-subvector.ll
+154-01 files

LLVM/project e291fcb — llvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp, llvm/test/CodeGen/SPIRV layout.ll const-nested-vecs.ll

[SPIR-V] Fix G_PTR_ADD selection for addrspacecast global initializers (#238253)

A constant `GEP` of an `addrspacecast` in a global initializer reaches
instruction selection as `G_ADDRSPACE_CAST` followed by `G_PTR_ADD`.
And the `G_PTR_ADD` selector asserted that its base was a global, so
`llc` aborted.

So, select the access chain from the cast result. The `G_PTR_ADD` offset
is a byte count, so it is used as the Element operand over an `i8`
pointer casted from a typed base.
DeltaFile
+88-0llvm/test/CodeGen/SPIRV/addrspacecast-ptradd-global.ll
+59-27llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+19-0llvm/test/CodeGen/SPIRV/addrspacecast-ptradd-non-null.ll
+3-3llvm/test/CodeGen/SPIRV/const-nested-vecs.ll
+4-1llvm/test/CodeGen/SPIRV/opencl/basic/progvar_prog_scope_init.ll
+2-2llvm/test/CodeGen/SPIRV/layout.ll
+175-331 files not shown
+177-347 files

LLVM/project b4775a0 — clang/test/CIR/Tools cir-offload-merge.cir

fix tests
DeltaFile
+6-6clang/test/CIR/Tools/cir-offload-merge.cir
+6-61 files

LLVM/project 31f6acb — llvm/lib/Target/AMDGPU AMDGPULegalizerInfo.cpp

[AMDGPU][GISel] Use the function stack pointer in legalizeStackSave (#240815)

Currently, `legalizeStackSave` reads the concrete stack pointer
`$sgpr32`, but entry functions do not reserve that register until
`finalizeLowering`.

So, the machine verifier reported an undefined `$sgpr32` on
`G_AMDGPU_WAVE_ADDRESS` in `kernel_store_stacksave`.

Use the reserved `$sp_reg` placeholder instead, until `finalizeLowering`
rewrites it.
DeltaFile
+4-2llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
+4-21 files

LLVM/project 933424d — llvm/include/llvm/IR RuntimeLibcalls.td, llvm/test/Transforms/Util/DeclareRuntimeLibcalls divmod.ll bsd.ll

RuntimeLibcalls: Add missing attributes to memory and allocator libcalls

Add the attributes inferLibFuncAttributes would give these functions.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+53-21llvm/include/llvm/IR/RuntimeLibcalls.td
+35-24llvm/test/Transforms/Util/DeclareRuntimeLibcalls/ppc.ll
+26-21llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+20-16llvm/test/Transforms/Util/DeclareRuntimeLibcalls/windows.ll
+15-12llvm/test/Transforms/Util/DeclareRuntimeLibcalls/bsd.ll
+10-10llvm/test/Transforms/Util/DeclareRuntimeLibcalls/divmod.ll
+159-10416 files not shown
+274-18422 files

LLVM/project 0651368 — libc/src/__support/math expm1f16.h, libc/test/src/math/smoke expm1f16_test.cpp

[libc][math] Correct expm1f16 subnormal rounding and range reporting (#236310)

Correct expm1f16 rounding for nonzero half subnormals and the negative
minimum-normal input. Select adjacent results directly, preserve signed
zero,
and use tininess after rounding for underflow/ERANGE.

Local tests on x86-64 Linux with GCC 13 and Clang 18: 5/5 focused smoke
tests
per compiler. MPFR 4.2.1 value checks cover all 63,488 finite half
encodings
in four rounding modes, with no mismatches. Reporting checks cover
nonzero
subnormals and four adjacent boundary encodings.

MPFR's own underflow flag differs at 0x03ff under upward rounding; the
PR uses
the after-rounding policy. The separate overflow fix is not included.


    [2 lines not shown]
DeltaFile
+61-0libc/test/src/math/smoke/expm1f16_test.cpp
+20-0libc/src/__support/math/expm1f16.h
+81-02 files