LLVM/project d0b46fb — llvm/lib/Transforms/Scalar InferAddressSpaces.cpp, llvm/test/Transforms/InferAddressSpaces/AMDGPU constexpr-addrspacecast.ll

[InferAddressSpaces] Treat addrspacecast constant expressions from flat as roots (#241118)

The pass uses the pointer operand of an `addrspacecast` instruction as a
root, but it misses the same cast folded into a constant expression
unless the constant is itself in a root position, such as a load or
store pointer. So a round trip from LDS through flat back to LDS is not
folded when it is, for example, a call operand.

This PR treats such casts in any operand as roots, including nested
ones. Other constant expressions only produce another flat pointer.

Fixes LCOMPILER-3204.

This PR was assisted by AI but I reviewed all the changes.
DeltaFile
+71-0llvm/test/Transforms/InferAddressSpaces/AMDGPU/constexpr-addrspacecast.ll
+24-0llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp
+95-02 files

LLVM/project efda9c9 — clang/docs ReleaseNotes.md UsersManual.md, clang/include/clang/Lex HeaderSearchOptions.h

[clang] Add -fpch-base-dir-is-cwd (#239791)

Serialize PCH input paths relative to the current working directory, so
a build tree can be moved while preserving its relative layout. Reuse
the existing relocatable AST prefix stripping without storing a reader
base directory or enabling sysroot-based re-rooting.

This is the PCH equivalent of -fmodule-file-home-is-cwd.

Assisted-by: Muse
DeltaFile
+88-0clang/test/PCH/pch-base-dir-is-cwd.c
+11-3clang/include/clang/Lex/HeaderSearchOptions.h
+12-0clang/docs/UsersManual.md
+7-0clang/lib/Serialization/ASTWriter.cpp
+6-0clang/docs/ReleaseNotes.md
+5-0clang/lib/Frontend/FrontendActions.cpp
+129-33 files not shown
+139-39 files

LLVM/project 8392de9 — lld/MachO InputFiles.cpp, lld/test/MachO arm64e-reject-mixed.s arm64e-input-abi.s

Give reasons in the comments instead of citing ld-prime

Assisted-by: Claude Code
DeltaFile
+5-10lld/MachO/InputFiles.cpp
+2-4lld/test/MachO/arm64e-input-abi.s
+1-2lld/test/MachO/arm64e-reject-mixed.s
+8-163 files

LLVM/project ef8b398 — lldb/source/Plugins/ABI/AArch64 ABISysV_arm64.cpp, lldb/test/API/functionalities/return-value TestReturnValue.py

[lldb] Fix struct return values on SysV arm64 (#242068)

d963a7c39891 inverted the byte size check in
LoadValueFromConsecutiveGPRRegisters, so the function failed for every
type with a known size. LLDB never read struct values from registers on
non-Apple AArch64 targets.

This fixes TestReturnValueSynthetic on AArch64 Linux and removes the
AArch64 parts of the llvm.org/pr44132 and llvm.org/pr44161 workarounds.

assisted by claude
DeltaFile
+0-3lldb/test/API/lang/cpp/trivial_abi/TestTrivialABI.py
+1-1lldb/test/API/functionalities/return-value/TestReturnValue.py
+1-1lldb/source/Plugins/ABI/AArch64/ABISysV_arm64.cpp
+2-53 files

LLVM/project 145f64f — .github CODEOWNERS

[github] Remove stale CODEOWNERS entries (#241029)

If you navigate to
[.github/CODEOWNERS](http://github.com/llvm/llvm-project/blob/main/.github/CODEOWNERS),
GitHub reports invalid owners in the rules for MLIR Sparsifier, MLIR
Python bindings, and BOLT.

I assume this happened because these owners previously had commit
access, but it lapsed due to the removal of commit rights that haven't
been exercised in the last year. (See
[AdminTasks.md](https://llvm.org/docs/AdminTasks.html))

I confirmed that each owners entry is at least over a year old, and is
therefore probably stale.

I decided to leave a comment of "Emeritus owner" for each owner. The
idea is that, if one ever wants to reclaim commit access rights, you can
just do that, it just requires filing a ticket for a github admin, and
regaining ownership is just a matter of moving your name out of the
comment section.
DeltaFile
+7-4.github/CODEOWNERS
+7-41 files

LLVM/project fb09db1 — .github CODEOWNERS

Fix CODEOWNERS error, remove Lanza from ClangIR owners (#207294)

The github project reports:
Unknown owner on line 39: make sure <name> exists and has write access
to the repository

I assume Nathan's commit access lapsed and he has the `triage` role now.

I added a comment saying he is an emeritus owner. This is reversible,
and I assume if he needs or wants write access, we can revisit this in
the future.
DeltaFile
+6-4.github/CODEOWNERS
+6-41 files

LLVM/project f25418e — clang/test/ClangScanDeps modules-redefinition.m modules-excluded-header.m

[clang][deps][test] Migrate more module graph tests to scan-deps-filter, NFC (#242019)

Pipe these tests' output through `scan-deps-filter` so they only assert
on the fields they check. Unrelated fields that are added or reordered
no longer break them.
DeltaFile
+7-20clang/test/ClangScanDeps/modules-full-by-mult-mod-names.c
+4-15clang/test/ClangScanDeps/link-libraries.c
+4-7clang/test/ClangScanDeps/module-in-stable-dir-by-name.c
+6-4clang/test/ClangScanDeps/modules-full-by-mult-mod-names-diagnostics.c
+3-5clang/test/ClangScanDeps/modules-redefinition.m
+3-5clang/test/ClangScanDeps/modules-excluded-header.m
+27-564 files not shown
+40-6310 files

LLVM/project 64a4033 — llvm/test/Transforms/LoopVectorize select-profile-regression.ll

[VPlan] Precommit test updates for #237684 (#241476)

Pulling out for
https://github.com/llvm/llvm-project/pull/237684/changes#r4537003281
from that PR.

This just makes us check globals so we can assert for profile data, and
then also adds profile metadata to the function so we can see the
addition to the select afterwards.
DeltaFile
+92-0llvm/test/Transforms/LoopVectorize/select-profile-regression.ll
+92-01 files

LLVM/project 8c3d123 — clang/lib/CIR/CodeGen CIRGenItaniumCXXABI.cpp CIRGenModule.cpp, clang/test/CIR/CodeGen constructor-destructor-return-this.cpp

[CIR] Implement 'ctor/dtor returns this' (#240954)

This is a blocking feature for a few of the ABIs, plus is a command line
option for existing itanium ABIs. This patch fills in the handful of
"NYI" spots.

The real 'interesting' part of this is the tests. This was well-tested
in the CodeGenCXX classic codegen test, so this patch enables those of
which can be enabled trivially (or with minor SSA name removals).

SOME of those run-lines are not yet converted because they have
unsupported platforms in their RUN lines, but we intend to convert those
eventually.
DeltaFile
+86-83clang/test/CodeGenCXX/constructor-destructor-return-this.cpp
+145-0clang/test/CIR/CodeGen/constructor-destructor-return-this.cpp
+9-7clang/lib/CIR/CodeGen/CIRGenCall.cpp
+11-1clang/lib/CIR/CodeGen/CIRGenCXXABI.h
+9-0clang/lib/CIR/CodeGen/CIRGenModule.cpp
+3-4clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
+263-951 files not shown
+264-967 files

LLVM/project edd7737 — llvm/test/CodeGen/AArch64/GlobalISel select-arith-shifted-reg.mir, llvm/test/CodeGen/AMDGPU wmma-hazards.mir threeaddr-wmma.mir

CodeGen: Add missing '...' end markers to MIR tests

The MIR parser is overly permissive and accepts a '---' start of
function document after a function ends without the end
marker. update_mir_test_checks will silently stop emitting checks
after the last properly terminated function. Add the missing markers
and fix tests that were missing checks. Found and corrected by slop
script.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+60-1llvm/test/CodeGen/ARM/GlobalISel/arm-legalize-fp.mir
+12-14llvm/test/CodeGen/AMDGPU/threeaddr-wmma.mir
+17-2llvm/test/CodeGen/AArch64/GlobalISel/select-arith-shifted-reg.mir
+8-8llvm/test/CodeGen/ARM/ifcvt-size.mir
+0-11llvm/test/CodeGen/AMDGPU/wmma-hazards.mir
+5-5llvm/test/CodeGen/SPARC/tn0013.mir
+102-41400 files not shown
+503-195406 files

LLVM/project 90c0408 — llvm/lib/Target/AMDGPU AMDGPUISelDAGToDAG.cpp

format
DeltaFile
+1-2llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
+1-21 files

LLVM/project f2bc0b1 — llvm/lib/Target/SPIRV SPIRVLegalizePointerCast.cpp, llvm/test/CodeGen/SPIRV/pointers vector-scalar-load-store-alloca.ll vector-scalar-load-store.ll

[SPIR-V] Fix scalar to equal-width vector storage casts (#241032)

The HLSL any api recently switch from a target intrinsic to using a
vector reduce intrinsic. This made the intrinsic subject to instcombine
scalar representations of a vector.

Specifically it is possible now to produce an i64 load from <4 x i16>
storage. Pointer-cast legalization then incorrectly changed the
pointer’s element type, generating invalid OpAccessChain instructions.

The fix was to preserve the vector storage type and bitcast values for
equal-width scalar loads and stores.
DeltaFile
+32-0llvm/test/CodeGen/SPIRV/pointers/vector-scalar-load-store.ll
+29-0llvm/test/CodeGen/SPIRV/pointers/vector-scalar-load-store-alloca.ll
+20-0llvm/lib/Target/SPIRV/SPIRVLegalizePointerCast.cpp
+81-03 files

LLVM/project 8f2caf9 — llvm/include/llvm/IR Instructions.h, llvm/lib/IR Instruction.cpp

IR: Add LoadInst::isAtomic and StoreInst::isAtomic

isSimple and the many callers of isAtomic on a LoadInst or StoreInst
went through the out of line opcode switch in Instruction::isAtomic.
Shadow it with an inline ordering check, like isVolatile.

CTMark instructions:u, geomean: O3 -0.05%, ThinLTO -0.08%

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+6-0llvm/include/llvm/IR/Instructions.h
+2-2llvm/lib/IR/Instruction.cpp
+8-22 files

LLVM/project eec2f32 — llvm/lib/IR Instruction.cpp

IR: Check willreturn before volatility in Instruction::willReturn

Most calls are not volatile intrinsics, so check the attribute first
and skip the intrinsic volatility switch for calls without
willreturn. Found while trying to squeeze a little more out of
attributor-light, but it shows a tiny improvement with the current
defaults.

CTMark instructions:u, geomean: O3 -0.04%, ThinLTO -0.04%

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+2-5llvm/lib/IR/Instruction.cpp
+2-51 files

LLVM/project b0a4304 — lldb/docs/man lldb-server.md lldb-server.rst, llvm/test/Transforms/SLPVectorizer/AArch64 gathered-vectorized-lanes-mixed-inserts.ll

Fix cfi-ignorelist precommit checks (d2f deletes through same-layout class)

Created using spr 2.0.0-beta.2
DeltaFile
+0-345lldb/docs/man/lldb.rst
+337-0lldb/docs/man/lldb.md
+0-196lldb/docs/man/lldb-server.rst
+187-0lldb/docs/man/lldb-server.md
+133-0llvm/test/Transforms/SLPVectorizer/AArch64/gathered-vectorized-lanes-mixed-inserts.ll
+92-0llvm/test/Transforms/SLPVectorizer/AMDGPU/gathered-load-strided-picks.ll
+749-54146 files not shown
+1,281-86852 files

LLVM/project 60032ae — lldb/docs/man lldb-server.md lldb-server.rst, llvm/test/Transforms/SLPVectorizer/AArch64 gathered-vectorized-lanes-mixed-inserts.ll

Fix cfi-ignorelist precommit checks (d2f deletes through same-layout class)

Created using spr 2.0.0-beta.2
DeltaFile
+0-345lldb/docs/man/lldb.rst
+337-0lldb/docs/man/lldb.md
+0-196lldb/docs/man/lldb-server.rst
+187-0lldb/docs/man/lldb-server.md
+133-0llvm/test/Transforms/SLPVectorizer/AArch64/gathered-vectorized-lanes-mixed-inserts.ll
+92-0llvm/test/Transforms/SLPVectorizer/AMDGPU/gathered-load-strided-picks.ll
+749-54146 files not shown
+1,281-86852 files

LLVM/project c4e1a3b — lldb/docs/man lldb-server.md lldb-server.rst, llvm/test/Transforms/SLPVectorizer/AArch64 gathered-vectorized-lanes-mixed-inserts.ll

Fix cfi-ignorelist precommit checks (d2f deletes through same-layout class)

Created using spr 2.0.0-beta.2
DeltaFile
+0-345lldb/docs/man/lldb.rst
+337-0lldb/docs/man/lldb.md
+0-196lldb/docs/man/lldb-server.rst
+187-0lldb/docs/man/lldb-server.md
+133-0llvm/test/Transforms/SLPVectorizer/AArch64/gathered-vectorized-lanes-mixed-inserts.ll
+92-0llvm/test/Transforms/SLPVectorizer/AMDGPU/gathered-load-strided-picks.ll
+749-54144 files not shown
+1,269-85050 files

LLVM/project 73fdc9d — lldb/docs/man lldb-server.md lldb-server.rst, llvm/test/Transforms/SLPVectorizer/AArch64 gathered-vectorized-lanes-mixed-inserts.ll

Fix cfi-ignorelist precommit checks (d2f deletes through same-layout class)

Created using spr 2.0.0-beta.2
DeltaFile
+0-345lldb/docs/man/lldb.rst
+337-0lldb/docs/man/lldb.md
+0-196lldb/docs/man/lldb-server.rst
+187-0lldb/docs/man/lldb-server.md
+133-0llvm/test/Transforms/SLPVectorizer/AArch64/gathered-vectorized-lanes-mixed-inserts.ll
+92-0llvm/test/Transforms/SLPVectorizer/AMDGPU/gathered-load-strided-picks.ll
+749-54144 files not shown
+1,269-85050 files

LLVM/project 1a42ae2 — lldb/docs/man lldb-server.md lldb-server.rst, llvm/test/Transforms/SLPVectorizer/AArch64 gathered-vectorized-lanes-mixed-inserts.ll

Fix cfi-ignorelist precommit checks (d2f deletes through same-layout class)

Created using spr 2.0.0-beta.2
DeltaFile
+0-345lldb/docs/man/lldb.rst
+337-0lldb/docs/man/lldb.md
+0-196lldb/docs/man/lldb-server.rst
+187-0lldb/docs/man/lldb-server.md
+133-0llvm/test/Transforms/SLPVectorizer/AArch64/gathered-vectorized-lanes-mixed-inserts.ll
+92-0llvm/test/Transforms/SLPVectorizer/AMDGPU/gathered-load-strided-picks.ll
+749-54143 files not shown
+1,269-84749 files

LLVM/project 89d511f — lldb/docs/man lldb-server.md lldb-server.rst, llvm/test/Transforms/SLPVectorizer/AArch64 gathered-vectorized-lanes-mixed-inserts.ll

Fix cfi-ignorelist precommit checks (d2f deletes through same-layout class)

Created using spr 2.0.0-beta.2
DeltaFile
+0-345lldb/docs/man/lldb.rst
+337-0lldb/docs/man/lldb.md
+0-196lldb/docs/man/lldb-server.rst
+187-0lldb/docs/man/lldb-server.md
+133-0llvm/test/Transforms/SLPVectorizer/AArch64/gathered-vectorized-lanes-mixed-inserts.ll
+92-0llvm/test/Transforms/SLPVectorizer/AMDGPU/gathered-load-strided-picks.ll
+749-54142 files not shown
+1,269-84448 files

LLVM/project f0d7f95 — lldb/docs/man lldb-server.md lldb-server.rst, llvm/test/Transforms/SLPVectorizer/AArch64 gathered-vectorized-lanes-mixed-inserts.ll

Fix cfi-ignorelist precommit checks (d2f deletes through same-layout class)

Created using spr 2.0.0-beta.2
DeltaFile
+0-345lldb/docs/man/lldb.rst
+337-0lldb/docs/man/lldb.md
+0-196lldb/docs/man/lldb-server.rst
+187-0lldb/docs/man/lldb-server.md
+133-0llvm/test/Transforms/SLPVectorizer/AArch64/gathered-vectorized-lanes-mixed-inserts.ll
+92-0llvm/test/Transforms/SLPVectorizer/AMDGPU/gathered-load-strided-picks.ll
+749-54142 files not shown
+1,269-84448 files

LLVM/project 1861231 — lldb/docs/man lldb-server.md lldb-server.rst, llvm/test/Transforms/SLPVectorizer/AArch64 gathered-vectorized-lanes-mixed-inserts.ll

Fix cfi-ignorelist precommit checks (d2f deletes through same-layout class)

Created using spr 2.0.0-beta.2
DeltaFile
+0-345lldb/docs/man/lldb.rst
+337-0lldb/docs/man/lldb.md
+0-196lldb/docs/man/lldb-server.rst
+187-0lldb/docs/man/lldb-server.md
+133-0llvm/test/Transforms/SLPVectorizer/AArch64/gathered-vectorized-lanes-mixed-inserts.ll
+92-0llvm/test/Transforms/SLPVectorizer/AMDGPU/gathered-load-strided-picks.ll
+749-54142 files not shown
+1,269-84448 files

LLVM/project 5f42647 — lldb/docs/man lldb-server.md lldb-server.rst, llvm/test/Transforms/SLPVectorizer/AArch64 gathered-vectorized-lanes-mixed-inserts.ll

Fix cfi-ignorelist precommit checks (d2f deletes through same-layout class)

Created using spr 2.0.0-beta.2
DeltaFile
+0-345lldb/docs/man/lldb.rst
+337-0lldb/docs/man/lldb.md
+0-196lldb/docs/man/lldb-server.rst
+187-0lldb/docs/man/lldb-server.md
+133-0llvm/test/Transforms/SLPVectorizer/AArch64/gathered-vectorized-lanes-mixed-inserts.ll
+92-0llvm/test/Transforms/SLPVectorizer/AMDGPU/gathered-load-strided-picks.ll
+749-54142 files not shown
+1,269-84448 files

LLVM/project 8fef658 — lld/MachO InputFiles.cpp, lld/docs ReleaseNotes.md

Say ld-prime instead of ld64 in the comments

These comments and the release note describe ld-prime, the linker in Xcode 27.1.

Assisted-by: Claude Code
DeltaFile
+9-8lld/MachO/InputFiles.cpp
+4-4lld/test/MachO/arm64e-input-abi.s
+2-2lld/test/MachO/arm64e-reject-mixed.s
+1-1lld/docs/ReleaseNotes.md
+16-154 files

LLVM/project 659fd9f — lld/MachO InputFiles.cpp, lld/test/MachO arm64e-input-abi.s

Say ld-prime instead of ld64 in the comments

These comments describe ld-prime, the linker in Xcode 27.1.

Assisted-by: Claude Code
DeltaFile
+5-5lld/test/MachO/arm64e-input-abi.s
+4-4lld/MachO/InputFiles.cpp
+9-92 files

LLVM/project dcbfa06 — llvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp, llvm/test/Analysis/CostModel/AArch64 reduce-and.ll reduce-xor.ll

[AArch64][COST]Cost non-pow2 i1 and/or/xor reductions

A non-pow2 i1 vector is padded with the identity and reduced as the
promoted integer vector; the i1 umaxv/uminv lowering does not apply.
Zero identity costs one masking and, all-ones costs lane inserts.

Required to support non-power-of-2 vectorization in SLP

Assisted-by: Cursor

Pull-request: https://github.com/llvm/llvm-project/pull/238380
Reviewers: davemgreen, david-arm, huntergr-arm, paulwalker-arm, sdesmalen-arm
Reviewed-by: paulwalker-arm
DeltaFile
+17-0llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+9-0llvm/test/Analysis/CostModel/AArch64/reduce-or.ll
+6-0llvm/test/Analysis/CostModel/AArch64/reduce-xor.ll
+2-2llvm/test/Transforms/VectorCombine/AArch64/icmp-vector-reduce.ll
+3-0llvm/test/Analysis/CostModel/AArch64/reduce-and.ll
+37-25 files

LLVM/project 68b468d — llvm/test/CodeGen/ARM/GlobalISel arm-instruction-select-combos.mir arm-instruction-select.mir

ARM: Use inline register class syntax in MIR tests

Delete the registers section when unnecessary.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+297-663llvm/test/CodeGen/ARM/GlobalISel/arm-legalize-fp.mir
+168-394llvm/test/CodeGen/ARM/GlobalISel/arm-regbankselect.mir
+168-378llvm/test/CodeGen/ARM/GlobalISel/arm-instruction-select-cmp.mir
+141-313llvm/test/CodeGen/ARM/GlobalISel/arm-legalize-binops.mir
+130-303llvm/test/CodeGen/ARM/GlobalISel/arm-instruction-select.mir
+102-226llvm/test/CodeGen/ARM/GlobalISel/arm-instruction-select-combos.mir
+1,006-2,277183 files not shown
+1,792-4,684189 files

LLVM/project f08a68a — clang/lib/Headers hlx_hexagon_protos.h, libc/utils/docgen math.yaml

Rebase, address comments

Created using spr 2.0.0-beta.1
DeltaFile
+1,457-1,437llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+1,308-1,292llvm/test/Transforms/Util/DeclareRuntimeLibcalls/windows.ll
+1,208-1,190llvm/test/Transforms/Util/DeclareRuntimeLibcalls/ppc.ll
+1,086-1,074llvm/test/Transforms/Util/DeclareRuntimeLibcalls/bsd.ll
+1,945-0libc/utils/docgen/math.yaml
+1,822-0clang/lib/Headers/hlx_hexagon_protos.h
+8,826-4,9932,768 files not shown
+67,970-33,7552,774 files

LLVM/project 41366ed — offload/libompaccsupport device.cpp, offload/plugins-nextgen/common/include MemoryManager.h

[Offload][Omp] Manage memory through liboffload APIs (#241895)

Remove the liboffload allocation helpers and use `olMemAlloc` and
`olMemFree`.

For allocations, this means the `HstPtr` is no longer passed and can be
dropped from the internal interfaces (many of the mechanical changes in
this PR are because of this).

For free, the kind is no longer passed and so the wrong pointer kind
errors can longer be detected.

Also, because liboffload checks on its internal structures before
calling the plugins, double_free and free_host pointers errors return
different errors (so tests are adjusted).

After this, parts of the support of `OFFLOAD_TRACK_ALLOCATION_TRACES`
are effectively dead and could be removed in a later PR.


    [4 lines not shown]
DeltaFile
+24-37offload/libompaccsupport/device.cpp
+7-45offload/test/sanitizer/double_free.c
+0-35offload/test/sanitizer/free_wrong_ptr_kind.cpp
+14-19offload/plugins-nextgen/common/include/MemoryManager.h
+0-32offload/test/sanitizer/free_wrong_ptr_kind.c
+14-18offload/plugins-nextgen/common/src/PluginInterface.cpp
+59-18616 files not shown
+108-29222 files

LLVM/project 326f709 — lld/MachO ObjC.cpp, lld/test/MachO objc-category-conflicts.s

Add addend to classMap key
DeltaFile
+16-4lld/test/MachO/objc-category-conflicts.s
+7-5lld/MachO/ObjC.cpp
+23-92 files