LLVM/project f5f531b — llvm/include/llvm/Transforms/IPO Attributor.h

[Attributor][NFC] Get the associated value of a call site argument from its use (#240919)

For a call site argument, `getAssociatedValue` computed the operand
number from the use only to look the operand up again. Use the value of
the use directly.

CTMark with `-attributor-enable=light`: -0.19% (O3), -0.20% (ThinLTO).

Co-authored-by: Matt Arsenault <Matthew.Arsenault at amd.com>
Assisted-by: Claude Opus 5.5
DeltaFile
+4-5llvm/include/llvm/Transforms/IPO/Attributor.h
+4-51 files

LLVM/project 00fe3dd — lldb/tools/darwin-mte-launcher darwin-mte-launcher.cpp

[lldb] Make darwin-mte-launcher die from its program's signal (#239873)

When the program the launcher spawns is killed by a signal, the launcher
returns `WEXITSTATUS(status)`, which is 0. A crash under the launcher
then looks like a clean exit, so the shell and API tests that run lldb
through it can't tell that lldb crashed.

This patch makes the launcher re-raise the program's signal so callers
see the crash. It first restores the signal's default action and
unblocks it, since the launcher inherits both from its parent.

The program already had its chance to report the crash, so before
re-raising, we clear the launcher's `EXC_MASK_CRASH` and
`EXC_MASK_CORPSE_NOTIFY` exception ports to avoid a second crash report.
Clearing `EXC_MASK_CRASH` alone, as LLVM does for
`LLVM_DISABLE_CRASH_REPORT`, still lets the system write a report. We
only do this once the program has exited, because the program would
otherwise inherit the ports.


    [2 lines not shown]
DeltaFile
+22-0lldb/tools/darwin-mte-launcher/darwin-mte-launcher.cpp
+22-01 files

LLVM/project 1460556 — llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV rvp-simd-64.ll

[RISCV][P-ext] Use nsrl to for 64-bit extract_vector_elt with variable index on RV32.
DeltaFile
+6-30llvm/test/CodeGen/RISCV/rvp-simd-64.ll
+21-6llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+27-362 files

LLVM/project aa722d4 — llvm/lib/Target/RISCV RISCVOptions.td RISCVSubtarget.cpp

[RISCV] Use std::optional for riscv-max-build-ints-cost command line option (#240976)

This seems more sensible than giving a value of 0 a special meaning. A
explicit value of 0 will be treated as 2 now rather than using the load
latency.
DeltaFile
+3-3llvm/lib/Target/RISCV/RISCVSubtarget.cpp
+1-1llvm/lib/Target/RISCV/RISCVOptions.td
+4-42 files

LLVM/project d319a27 — lldb/include/lldb/Target RegisterContextUnwind.h, lldb/source/Target RegisterContextUnwind.cpp

[lldb] Recognize signal trampolines from CFI before unwind-plan selection (#237016)

Signal dispatch can install a return address at the first instruction of
a trampoline without a preceding call. If the trampoline is not
recognized by name, LLDB can back up that address into the preceding
function before finding its signal-frame CFI.

Extend trap-handler detection to consult .eh_frame as well as platform
and user-provided names. CFI-recognized handlers use the existing
trampoline-entry exception and trap-handler plan selection. Test
recognition without target.trap-handler-names, retain name-only
coverage, and check that a real call inside a signal-marked function
uses the call-site row when the return PC starts a terminal row.

Assisted-by: GPT
DeltaFile
+24-9lldb/source/Target/RegisterContextUnwind.cpp
+14-6lldb/test/Shell/Unwind/trap_frame_sym_ctx.test
+14-0lldb/test/Shell/Unwind/Inputs/trap_frame_sym_ctx.s
+3-6lldb/include/lldb/Target/RegisterContextUnwind.h
+55-214 files

LLVM/project 8ab8856 — llvm/lib/TargetParser Triple.cpp, llvm/unittests/TargetParser TripleTest.cpp

[TargetParser] Return 2 as default wchar_t size for AVR and MSP430 (#240620)

Both are 16-bit targets where clang defines wchar_t as a 16-bit int, but
Triple::getDefaultWCharSize() returned 4 for them. Return 2 for all
16-bit targets, which should be a safe assumption.

Assisted-by: Claude
DeltaFile
+2-0llvm/unittests/TargetParser/TripleTest.cpp
+2-0llvm/lib/TargetParser/Triple.cpp
+4-02 files

LLVM/project e79ba21 — llvm/lib/Target/BPF BPFAdjustOpt.cpp, llvm/test/CodeGen/BPF adjust-opt-icmp7.ll

[BPF] Wrap both cross-BB icmp conditions in BPFAdjustOpt (#231257)

In `BPFAdjustOptImpl::serializeICMPCrossBB`, only `B1`'s branch
condition was wrapped in `@llvm.bpf.passthrough.i1.i1`, leaving `B2`'s
branch condition unwrapped. Because `foldBranchToCommonDest` in
`SimplifyCFG` only checks that `B2`'s branch condition is a `CmpInst`,
`SimplifyCFG` still merged `B2` into `B1` using a `select`. After
3b5fbbd0b5f8 (#226297), `ConstraintElimination`'s `addInfoForInductions`
matched the unwrapped `B2` `icmp` in the merged `select` condition,
deduced a loop header bound on the induction variable, and folded `B1`'s
upper-bound `icmp` to `true` inside `@llvm.bpf.passthrough.i1.i1`,
causing the BPF verifier to reject valid loops.

Additionally, `serializeICMPCrossBB` previously started from a successor
of `B2` via `BB.getSinglePredecessor()`, causing it to match the same
`(B1, B2)` pair twice when both successors of `B2` had `B2` as their
single predecessor.

Fix `serializeICMPCrossBB` to treat `BB` as `B2` directly and wrap both

    [3 lines not shown]
DeltaFile
+47-0llvm/test/CodeGen/BPF/adjust-opt-icmp7.ll
+22-24llvm/lib/Target/BPF/BPFAdjustOpt.cpp
+69-242 files

LLVM/project 72b385f — llvm/lib/Target/AMDGPU AMDGPUInstCombineIntrinsic.cpp, llvm/test/Transforms/InstCombine/AMDGPU amdgcn-demanded-vector-elts.ll

[AMDGPU] Reduce resource align when shrinking buffer loads (#240945)

Since the `align` on buffer intrinsics includes the offset argument,
the demand, `simplifyAMDGCNMemoryIntrinsicDemanded` needs to account
for the value added to that offset, which might reduce the alignment
of the load.

This was *technically* a miscompile before, but it never come up because
this information was never used in codegen.

AI disclosure: Claude wrote the code, I looked at it and wrote the
commit message.
DeltaFile
+14-2llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
+5-5llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-demanded-vector-elts.ll
+19-72 files

LLVM/project 4e22047 — llvm/include/llvm/IR RuntimeLibcalls.td, llvm/test/Transforms/Util/DeclareRuntimeLibcalls divmod.ll

RuntimeLibcalls: Annotate divrem libcall remainder out arguments

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+16-5llvm/include/llvm/IR/RuntimeLibcalls.td
+3-2llvm/test/Transforms/Util/DeclareRuntimeLibcalls/divmod.ll
+19-72 files

LLVM/project 3b39505 — llvm/include/llvm/IR RuntimeLibcalls.td, llvm/test/Transforms/Util/DeclareRuntimeLibcalls systemz.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
+74-26llvm/include/llvm/IR/RuntimeLibcalls.td
+49-35llvm/test/Transforms/Util/DeclareRuntimeLibcalls/ppc.ll
+46-36llvm/test/Transforms/Util/DeclareRuntimeLibcalls/aarch64.ll
+36-28llvm/test/Transforms/Util/DeclareRuntimeLibcalls/windows.ll
+27-21llvm/test/Transforms/Util/DeclareRuntimeLibcalls/bsd.ll
+18-14llvm/test/Transforms/Util/DeclareRuntimeLibcalls/systemz.ll
+250-16015 files not shown
+421-28021 files

LLVM/project 7a5ae34 — llvm/include/llvm/IR RuntimeLibcallsImpl.td RuntimeLibcalls.td, llvm/lib/IR RuntimeLibcalls.cpp

RuntimeLibcalls: Move divrem attributes to TableGen

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+0-21llvm/lib/IR/RuntimeLibcalls.cpp
+2-0llvm/include/llvm/IR/RuntimeLibcalls.td
+1-0llvm/include/llvm/IR/RuntimeLibcallsImpl.td
+3-213 files

LLVM/project 7138896 —

RuntimeLibcalls: Move malloc, calloc and free attributes to TableGen

This requires new attribute plumbing for attributes that have an
argument value.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+0-00 files

LLVM/project adfc08e — llvm/include/llvm/IR RuntimeLibcallsImpl.td RuntimeLibcalls.td, llvm/lib/IR RuntimeLibcalls.cpp

RuntimeLibcalls: Move sqrt attributes to TableGen

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+0-20llvm/lib/IR/RuntimeLibcalls.cpp
+11-1llvm/include/llvm/IR/RuntimeLibcalls.td
+7-2llvm/include/llvm/IR/RuntimeLibcallsImpl.td
+4-4llvm/test/Transforms/Util/DeclareRuntimeLibcalls/hexagon.ll
+3-3llvm/test/Transforms/Util/DeclareRuntimeLibcalls/systemz.ll
+3-2llvm/test/Transforms/Util/DeclareRuntimeLibcalls/arm64ec.ll
+28-326 files

LLVM/project f376511 — llvm/lib/Target/ARM ARMRegisterInfo.td, llvm/test/CodeGen/Thumb inline-asm-tied-r12.ll

ARM: Define the R12 register class explicitly (#241005)

TableGen inferred the R12-only class from hGPR and tcGPR, and it
inherited the Thumb1 allocation order of tcGPR, which only has low
registers. On Thumb1 the class had no allocatable registers, so an
inline asm input tied to r12 failed to allocate. In the future
TableGen should error on allocatable classes without any members.

Define the class explicitly so R12 is in its allocation order. This
fixes a regression from #238705, which started creating tied inline
asm inputs in this class.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+28-0llvm/test/CodeGen/Thumb/inline-asm-tied-r12.ll
+4-0llvm/lib/Target/ARM/ARMRegisterInfo.td
+32-02 files

LLVM/project 47d41c1 — clang/lib/CIR/CodeGen CIRGenItaniumCXXABI.cpp, clang/test/CIR/CodeGen attribute-visibility.c rtti-visibility.cpp

Merge branch 'main' into users/arsenm/runtime-libcalls/sqrt-attrs-tablegen
DeltaFile
+78-0llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-demanded-vector-elts.ll
+53-0clang/test/CIR/CodeGen/rtti-visibility.cpp
+28-21clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
+14-14clang/test/CIR/CodeGenCXX/vtable-linkage.cpp
+20-0llvm/include/llvm/IR/RuntimeLibcallsImpl.td
+5-10clang/test/CIR/CodeGen/attribute-visibility.c
+198-4517 files not shown
+249-7123 files

LLVM/project f05ad4f — lld/docs ReleaseNotes.md

add release notes
DeltaFile
+4-0lld/docs/ReleaseNotes.md
+4-01 files

LLVM/project 41312b7 — llvm/include/llvm/IR RuntimeLibcalls.td RuntimeLibcallsImpl.td, llvm/lib/IR RuntimeLibcalls.cpp

RuntimeLibcalls: Move malloc, calloc and free attributes to TableGen (#240713)

This requires new attribute plumbing for attributes that have an
argument value.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+2-70llvm/lib/IR/RuntimeLibcalls.cpp
+59-11llvm/test/TableGen/RuntimeLibcallEmitter-attributes.td
+38-18llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp
+28-5llvm/include/llvm/IR/RuntimeLibcallsImpl.td
+24-3llvm/include/llvm/IR/RuntimeLibcalls.td
+20-0llvm/test/TableGen/RuntimeLibcallEmitter-attributes-errors.td
+171-1072 files not shown
+179-1128 files

LLVM/project a924ec9 — lld/MachO Options.td Driver.cpp, lld/test/MachO icf-safe-thunks.ll icf-safe-thunks-callers.s

add --icf=relaxed_thunks
DeltaFile
+0-253lld/test/MachO/icf-safe-thunks-callers.s
+253-0lld/test/MachO/icf-relaxed-thunks.s
+21-21lld/MachO/ICF.cpp
+8-4lld/test/MachO/icf-safe-thunks.ll
+6-5lld/MachO/Options.td
+8-3lld/MachO/Driver.cpp
+296-2864 files not shown
+307-28710 files

NetBSD/xsrc HofdHQ3 — external/mit/fontconfig/dist/conf.d 60-latin.conf

   Adjust fontconfig's default preference order to prefer Bitstream Vera
   and Liberation fonts over the Luxi Type1 fonts, which freetype struggles
   to render.  Helps make the default text rendering better in e.g.
   GTK applications and web browsers.

   XXX this change also needs to happen in pkgsrc.

   PR xsrc/60991: fontconfig prefers Luxi Type1 fonts for Latin text, which
   are extremely ugly
VersionDeltaFile
1.2+29-7external/mit/fontconfig/dist/conf.d/60-latin.conf
+29-71 files

LLVM/project 99e2ec4 — llvm/test/CodeGen/AMDGPU/GlobalISel regbankselect-amdgcn.ptr.s.buffer.load.ll

Update nuw copies of tests
DeltaFile
+8-10llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.ptr.s.buffer.load.ll
+8-101 files

LLVM/project 5734a45 — llvm/lib/Target/AMDGPU AMDGPURegBankLegalizeHelper.cpp, llvm/test/CodeGen/AMDGPU/GlobalISel regbankselect-amdgcn.s.buffer.load.ll regbankselect-amdgcn.ptr.s.buffer.load.ll

[AMDGPU][GlobalISel] Fix immediate offset overflow when splitting s.buffer.load

When we're splitting a very large (>128 bit) s.buffer.load into
128-bit buffer loads, we add offsets to each split load. Currently,
when dealing with ptr.s.buffer.load, the code wouldn't subtract enough
from the immediate offset, so that when we added that +128 or +256,
we'd overflow the 12-bit immediate, causing silent overflow.

This commit fixes the issue by correctly calling the offset
splitter with a "alignment" that ensures that all those intermediate
loads don't overflow.

This matches the behavior in SDag and RegisterBankInfo.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+30-34llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.s.buffer.load.ll
+24-24llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.ptr.s.buffer.load.ll
+16-20llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.ptr.s.buffer.load.ll
+8-8llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.buffer.load.ll
+4-1llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
+82-875 files

LLVM/project 7be8505 — llvm/test/CodeGen/AMDGPU/GlobalISel regbankselect-amdgcn.ptr.s.buffer.load.ll

[AMDGPU][GlobalISel] Pre-commit tests for split s.buffer.load offset overflow

Add divergent-offset ptr.s.buffer.load tests where the 256- and 512-bit
loads are split into 128-bit pieces at an offset of 4092, causing
overflow on the immediate field.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+217-0llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.ptr.s.buffer.load.ll
+217-01 files

LLVM/project a5e728e — llvm/test/CodeGen/AMDGPU/GlobalISel regbankselect-amdgcn.ptr.s.buffer.load.ll

Add nuw tests
DeltaFile
+146-0llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.ptr.s.buffer.load.ll
+146-01 files

OpenBSD/src XcjQ2hm — usr.bin/ssh auth2-chall.c

   limit the number of keyboard-interactive devices accepted to 100,
   avoiding a small CPU DoS in sshd-auth (mitigted by MaxStartups and
   PerSourcePenalties).

   Reported by Lei Li (李磊) and Zhongke Guyuan (中科固源)

   ok markus@
VersionDeltaFile
1.62+12-3usr.bin/ssh/auth2-chall.c
+12-31 files

LLVM/project 1099113 — clang/test/OffloadTools/clang-nvlink-wrapper opt-remarks.c, clang/tools/clang-nvlink-wrapper ClangNVLinkWrapper.cpp NVLinkOpts.td

[NvlinkWrapper] opt-remarks-filter -> opt-remarks-passes

`renderRemarksOptions` in Clang's `CommonArgs.cpp` translates
`-foptimization-record-passes` to `--plugin-opt=opt-remarks-passes`.
`lld` expects that, but `clang-nvlink-wrapper` currently expects
`--plugin-opt=opt-remarks-filter` instead, producing errors like:

```
clang-nvlink-wrapper: Unknown command line argument opt-remarks-passes=inline
```

In `NVLinkOpts.td` for `clang-nvlink-wrapper`, this patch adds
`--plugin-opt=opt-remarks-passes` and makes
`--plugin-opt=opt-remarks-filter` an alias.  If there are no users of
the latter, we can consider removing it.

Assisted-by: LLM
DeltaFile
+22-0clang/test/OffloadTools/clang-nvlink-wrapper/opt-remarks.c
+3-1clang/tools/clang-nvlink-wrapper/NVLinkOpts.td
+1-1clang/tools/clang-nvlink-wrapper/ClangNVLinkWrapper.cpp
+26-23 files

LLVM/project 2940c71 — clang/test/CIR/CodeGen attr-alias.c attr-alias-no-proto.c

[mlir][LLVMIR] Drop ClangIR test updates now that #234753 has landed

Assisted-by: Cursor / claude-opus-5.5
DeltaFile
+3-3clang/test/CIR/CodeGen/attr-alias.c
+3-3clang/test/CIR/CodeGen/attr-alias-no-proto.c
+6-62 files

LLVM/project 77cf68f — llvm/test/CodeGen/RISCV rvp-simd-32.ll rvp-simd-64.ll

[RISCV][P-ext] Add tests for extractelement with a variable index. NFC

Assisted-by: Claude
DeltaFile
+109-61llvm/test/CodeGen/RISCV/rvp-simd-64.ll
+36-4llvm/test/CodeGen/RISCV/rvp-simd-32.ll
+145-652 files

LLVM/project bbcc52d — llvm/test/CodeGen/AArch64 bitinsert-bitextract-vector.ll

[AArch64] Use `-global-isel=0` in vector `bitinsert`/`bitextract` test
DeltaFile
+1-1llvm/test/CodeGen/AArch64/bitinsert-bitextract-vector.ll
+1-11 files

LLVM/project 07a5b49 — clang/lib/CIR/CodeGen CIRGenItaniumCXXABI.cpp, clang/test/CIR/CodeGen multi-vtable.cpp thunks.cpp

[CIR] Implement 'dsoLocal and 'protected visibility' (#240985)

This patch implements the setDSOLocal and protectedVisibility missing
features. These are both required to get the 'dso_local' to show up
correctly on RTTI members and to get their visibility correct.
Previously, we approximated it based on the MLIR public/private-ness,
but this doesn't take into account the visibility attribute, nor RTTI
correctly.

This patch adds that, and adds testing for all of the places this
changes. However, note that LLVM-IR will not print dso_local if it is
'implied' so it wasn't as obvious that it was not correctly marked in
CIR (but LLVM-IR effectively 'got it right').

Additionally, mlir default-sets declarations as 'private', so we were
missing a few cases where the linkage wasn't being set properly. This
patch ALSO updates those. This again is something that doesn't really
end up in the LLVM-IR, just in the MLIR types however, so it isn't
really visible, just another 'correctness' fix.
DeltaFile
+53-0clang/test/CIR/CodeGen/rtti-visibility.cpp
+28-21clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
+14-14clang/test/CIR/CodeGenCXX/vtable-linkage.cpp
+5-10clang/test/CIR/CodeGen/attribute-visibility.c
+5-5clang/test/CIR/CodeGen/thunks.cpp
+3-3clang/test/CIR/CodeGen/multi-vtable.cpp
+108-5311 files not shown
+129-6817 files

FreeNAS/freenas 7079a2e — src/middlewared/middlewared/plugins/iscsi_ lio.py

Update how we tell LIO that an extent has resized.
DeltaFile
+2-2src/middlewared/middlewared/plugins/iscsi_/lio.py
+2-21 files