LLVM/project f7e2b83 — llvm/lib/Target/AMDGPU GCNSubtarget.h SIISelLowering.cpp

AMDGPU: Remove amdgpu-scalarize-global-loads option (#230744)

This was added to avoid updating many tests when the global load to scalar 
load optimization was first added, but all tests have now converted off of it. 
This was also weirdly wired into the subtarget.
DeltaFile
+0-9llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
+2-4llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+0-4llvm/lib/Target/AMDGPU/GCNSubtarget.h
+2-173 files

LLVM/project e3f3b3e — clang-tools-extra/clang-tidy/modernize UseEqualsDefaultCheck.cpp, clang-tools-extra/docs ReleaseNotes.md

[clang-tidy] Improve modernize-use-equals-default check to handle explicit parent constructor calls (#226456)

Now capture this pattern:

struct Base {};
struct C : Base {
    C() : Base() {}
};

And turn it into

struct Base {};
struct C : Base {
    C() = default;
};
DeltaFile
+28-0clang-tools-extra/test/clang-tidy/checkers/modernize/use-equals-default.cpp
+10-6clang-tools-extra/clang-tidy/modernize/UseEqualsDefaultCheck.cpp
+4-0clang-tools-extra/docs/ReleaseNotes.md
+42-63 files

LLVM/project 2f14ed9 — llvm/lib/Transforms/Instrumentation AddressSanitizer.cpp

[ASan] Remove unused -asan-debug (#230745)
DeltaFile
+0-3llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
+0-31 files

LLVM/project 58b1156 — llvm/lib/Target/AMDGPU GCNSubtarget.h SIISelLowering.cpp

AMDGPU: Remove amdgpu-scalarize-global-loads option

This was added to avoid updating many tests when the global load to scalar load
optimization was first added, but all tests have now converted off of it. This
was also weirdly wired into the subtarget.
DeltaFile
+0-9llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
+2-4llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+0-4llvm/lib/Target/AMDGPU/GCNSubtarget.h
+2-173 files

LLVM/project ff3ba2b — llvm/lib/Support KnownFPClass.cpp, llvm/test/Transforms/Attributor nofpclass-sqrt.ll

Revert "[KnownFPClass] Refine positive zero result for sqrt" (#230741)

Reverts llvm/llvm-project#214987

Causes a miscompile with nsz: `fcmp une (sqrt nsz fp128 -0.0), 0.0`
folds to true. Reported by Linaro CI (Fujitsu C/0055/0055_0004,
LLVM-2292).
https://godbolt.org/z/cYb3Gah6n
DeltaFile
+6-139llvm/test/Transforms/Attributor/nofpclass-sqrt.ll
+4-9llvm/lib/Support/KnownFPClass.cpp
+10-1482 files

LLVM/project 53310c9 — llvm/include/llvm/Transforms/Instrumentation PGOInstrumentation.h InstrProfiling.h, llvm/lib/Frontend/Driver CodeGenOptions.cpp

[Instrumentation] Stop exporting cl::opts. NFC (#230725)

Replace the `extern cl::opt` declarations of -profile-correlate in
FrontendDriver and -pgo-instrument-cold-function-only in Passes with
getters, and delete clang's unused declaration of the former. This
prepares for moving Instrumentation's options into TableGen.

Aided by Opus 5.5
DeltaFile
+3-9llvm/lib/Frontend/Driver/CodeGenOptions.cpp
+5-2llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
+5-1llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
+2-3llvm/lib/Passes/PassBuilderPipelines.cpp
+3-0llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h
+3-0llvm/include/llvm/Transforms/Instrumentation/InstrProfiling.h
+21-151 files not shown
+21-187 files

LLVM/project 98863ae — llvm/lib/Support KnownFPClass.cpp, llvm/test/Transforms/Attributor nofpclass-sqrt.ll

Revert "[KnownFPClass] Refine positive zero result for sqrt (#214987)"

This reverts commit dfabf2df7d27cbaf96b849251c36b8228762ee87.
DeltaFile
+6-139llvm/test/Transforms/Attributor/nofpclass-sqrt.ll
+4-9llvm/lib/Support/KnownFPClass.cpp
+10-1482 files

LLVM/project 095663b — clang/lib/Parse ParseDecl.cpp, clang/test/Interpreter execute.cpp

Revert "[clang-repl] Fix crashing on unusable top-level declarations" (#230734)

Reverts llvm/llvm-project#230054

This is causing a test failure on a Windows bot:
https://lab.llvm.org/buildbot/#/builders/46/builds/42541
DeltaFile
+0-4clang/test/Interpreter/execute.cpp
+1-3clang/lib/Parse/ParseDecl.cpp
+1-72 files

LLVM/project a2dc8b4 — clang/lib/AST/ByteCode InterpFrame.cpp, clang/test/AST/ByteCode cxx20.cpp

[clang][bytecode] Fix a crash with invalid function frames (#230524)

This happens with the fake frames we create for the `TrivialCopy`
opcode.
DeltaFile
+20-0clang/test/AST/ByteCode/cxx20.cpp
+5-0clang/lib/AST/ByteCode/InterpFrame.cpp
+25-02 files

LLVM/project 2181986 — clang/lib/Parse ParseDecl.cpp, clang/test/Interpreter execute.cpp

Revert "[clang-repl] Fix crashing on unusable top-level declarations (#230054)"

This reverts commit 6e92994f7a95d11cf450f6bec62104a0028b83cb.
DeltaFile
+0-4clang/test/Interpreter/execute.cpp
+1-3clang/lib/Parse/ParseDecl.cpp
+1-72 files

LLVM/project d19748b — llvm/lib/Analysis/models regalloc-eviction-test-model.inc inline-oz-test-model.inc

[MLGO] Remove std includes from pre-generated test models (#230724)

c90b6414e607 (#227941) always registers the test models in
llvm/lib/Analysis/models/*.inc.

The generated InlinerModels.h and RegAllocEvictModels.h include each
model header inside a namespace.

With LLVM_ENABLE_MODULES=ON, the models' `#include <map>` and `#include
<string>` become module imports inside that namespace, which clang
rejects:

error: redundant #include of module 'std_map' appears within namespace
'llvm::regalloc_Model1_ns'
           [-Wmodules-import-nested-redundant]

This patch removes the includes, since MLInlineAdvisor.cpp and
MLRegAllocEvictAdvisor.cpp already include <map> and <string> before the
model headers.

    [3 lines not shown]
DeltaFile
+0-2llvm/lib/Analysis/models/regalloc-eviction-test-model.inc
+0-2llvm/lib/Analysis/models/inline-oz-test-model.inc
+0-42 files

LLVM/project 006de98 — llvm/lib/Target/Mips MipsMachineFunction.cpp, llvm/test/CodeGen/Mips tls-static.ll global-pointer-reg.ll

[Mips] Remove unused -mips-fix-global-base-reg (#230733)

Unused since 3ecc5273c148 (2012). Remove its RUN
lines from tls-static.ll, whose STATIC32/STATIC64 checks cover the same
output, and delete the disabled global-pointer-reg.ll.
DeltaFile
+0-24llvm/test/CodeGen/Mips/global-pointer-reg.ll
+0-15llvm/test/CodeGen/Mips/tls-static.ll
+0-5llvm/lib/Target/Mips/MipsMachineFunction.cpp
+0-443 files

LLVM/project 6d14e84 — clang/test/CodeGen/AArch64/sve recps.c, clang/test/CodeGen/AArch64/sve-intrinsics acle_sve_recps.c

[clang][CIR] Add tests for SVE RECPS intrinsics (#229228)

Tests for plain SVE `svrecps`
(https://developer.arm.com/architectures/instruction-sets/intrinsics#q=svrecps).

Port: `clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_recps.c` to
`clang/test/CodeGen/AArch64/sve/recps.c`

Part of https://github.com/llvm/llvm-project/issues/223963.
DeltaFile
+71-0clang/test/CodeGen/AArch64/sve/recps.c
+0-68clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_recps.c
+71-682 files

LLVM/project 496b3b5 — bolt/lib/Passes LongJmp.cpp

[BOLT] Restore -relax-plt as a deprecated no-op option

c6ee71d5e8a5 removed -relax-plt from the AArch64 relaxation pass, which
makes llvm-bolt reject existing command lines that still pass it.
Re-add the option as a hidden no-op that only prints a deprecation
warning, so scripts using it keep working.
DeltaFile
+7-0bolt/lib/Passes/LongJmp.cpp
+7-01 files

LLVM/project 196fffe — llvm/lib/Target/RISCV RISCVTargetTransformInfo.cpp RISCVSubtarget.cpp, llvm/lib/Target/RISCV/MCTargetDesc RISCVInstPrinter.cpp

[RISCV] Declare command line options in TableGen (#230014)

Move the cl::opts of RISCVCodeGen into RISCVOptions.td, and those of
RISCVDesc and RISCVAsmParser into MCTargetDesc/RISCVMCOptions.td,
registered by LLVMInitializeRISCVTargetMC(). RISCVTargetMachine holds
`const RISCVOptions &CLOpts` and RISCVSubtarget copies it;
RISCVAsmBackend, RISCVInstPrinter, and RISCVTargetStreamer hold `const
RISCVMCOptions &CLOpts`. -riscv-rvv-regalloc (RegisterPassParser) stays
cl::opt.

`llvm-objdump -M emit-x8-as-fp` now sets a file-static flag instead of
writing the cl::opt.

-riscv-br-merging-base-cost now takes effect when given once; it
previously required getNumOccurrences() > 1.

Aided by Opus 5.5
DeltaFile
+132-0llvm/lib/Target/RISCV/RISCVOptions.td
+24-95llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
+15-79llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+17-55llvm/lib/Target/RISCV/RISCVSubtarget.cpp
+15-21llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp
+6-29llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
+209-27928 files not shown
+376-41134 files

LLVM/project 3882ac1 — llvm/lib/Target/AMDGPU AMDGPUInstCombineIntrinsic.cpp

Update for comments
DeltaFile
+12-12llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
+12-121 files

LLVM/project 796a67e — llvm/lib/Target/AMDGPU AMDGPUInstCombineIntrinsic.cpp, llvm/test/Transforms/InstCombine/AMDGPU llvm.amdgcn.sudot.ll llvm.amdgcn.dot.ll

[AMDGPU] Fold add of a variable into a zero dot accumulator

When the dot intrinsic has a zero accumulator, no clamp and a single
add user, fold the add operand into the accumulator:
```llvm
  %dot = call i32 @llvm.amdgcn.sdot4(i32 %a, i32 %b, i32 0, i1 false)
  %r = add i32 %dot, %x
=>
  %r = call i32 @llvm.amdgcn.sdot4(i32 %a, i32 %b, i32 %x, i1 false)
```
If %x is defined after the dot in the same block, the dot is moved
down to the add. The fold is skipped across blocks to avoid sinking
the dot into a loop.
DeltaFile
+112-0llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.dot.ll
+25-11llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
+2-4llvm/test/Transforms/InstCombine/AMDGPU/llvm.amdgcn.sudot.ll
+139-153 files

LLVM/project 34c7f5a — clang/test/Interpreter value-print-temporaries_99994.cpp value-print-temporaries_99998.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+1-0clang/test/Interpreter/value-print-temporaries_99994.cpp
+1-0clang/test/Interpreter/value-print-temporaries_99998.cpp
+1-0clang/test/Interpreter/value-print-temporaries_99997.cpp
+1-0clang/test/Interpreter/value-print-temporaries_99996.cpp
+1-0clang/test/Interpreter/value-print-temporaries_99995.cpp
+1-0clang/test/Interpreter/value-print-temporaries_99999.cpp
+6-099,994 files not shown
+100,000-0100,000 files

LLVM/project 17f8bd5 — clang/include/clang/Basic BuiltinsAMDGPU.td, clang/test/CodeGenOpenCL builtins-amdgcn-gfx1250-tensor-load-store.cl

[Clang][AMDGPU] Use unsigned int for tensor builtin D# groups (#230714)

The D# tensor descriptor groups of __builtin_amdgcn_tensor_load_to_lds
and __builtin_amdgcn_tensor_store_from_lds are bit fields, not signed
values. D0 was already declared as a vector of unsigned int; D1 through
D4 are now consistent with it.

OpenCL does not allow lax vector conversions, so the tests are updated
to pass unsigned vectors. The generated IR is unchanged.

Reference: https://github.com/llvm/llvm-project/pull/193310

Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+13-15clang/test/CodeGenOpenCL/builtins-amdgcn-gfx1250-tensor-load-store.cl
+2-2clang/test/SemaOpenCL/builtins-amdgcn-error-gfx1250-param.cl
+2-2clang/include/clang/Basic/BuiltinsAMDGPU.td
+17-193 files

LLVM/project aed5dbc — lldb/docs conf.py index.md, lldb/docs/man lldb.rst

[lldb][docs] Use project-local documentation links

Replace same-project absolute URLs with relative Markdown links and Sphinx
cross-references so local and archived documentation stays self-contained.
Update generated Python API docstrings accordingly, and enable the absolute
link check for the LLDB docs to keep it that way.
DeltaFile
+4-4lldb/docs/use/lldbdap.md
+4-4lldb/docs/resources/lldbdap-contributing.md
+3-3lldb/docs/man/lldb.rst
+2-2lldb/docs/index.md
+3-0lldb/docs/conf.py
+1-1lldb/include/lldb/API/SBThread.h
+17-147 files not shown
+24-2113 files

LLVM/project dccbcb7 — llvm/docs conf.py

[docs] Enable absolute documentation link checks

Configure the LLVM documentation URL prefixes so the Sphinx build rejects
absolute links to documents in the same project. Clang is already configured.

Part of #214861
DeltaFile
+11-1llvm/docs/conf.py
+11-11 files

LLVM/project 53191d4 — clang/docs ReleaseNotes.md, clang/lib/Parse ParseTemplate.cpp

[clang][Parse] Delay template-id destruction in NTTP default arguments (#230513)

There was a UAF when the lambda appears within NTTP default arguments.

Co-authored-by: Emery Conrad <emery.conrad at chicagotrading.com>
Co-authored-by: Sebastian Schwartz <sebastian.schwartz at chicagotrading.com>
Co-authored-by: Emery Conrad <emery.conrad at chicagotrading.com>
Assisted-by: Claude Code (claude-opus-5-5)
DeltaFile
+26-0clang/test/Parser/cxx2a-constrained-template-param.cpp
+5-0clang/lib/Parse/ParseTemplate.cpp
+4-0clang/docs/ReleaseNotes.md
+35-03 files

LLVM/project 590e335 — utils/bazel/llvm-project-overlay/clang BUILD.bazel

[Bazel] Fixes fa70420 (#230722)

This fixes fa70420c78df1aff63387108f8c357cb0cb8b99c (#229586).

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

Co-authored-by: Google Bazel Bot <google-bazel-bot at google.com>
DeltaFile
+19-1utils/bazel/llvm-project-overlay/clang/BUILD.bazel
+19-11 files

LLVM/project fa70420 — clang/include/clang/CIR/Dialect/IR CIRDialectBytecode.td, clang/lib/CIR/Dialect/IR CIRDialectBytecode.cpp

[CIR] Add bytecode encodings for attributes (#229586)

Without a BytecodeDialectInterface, MLIR encodes a dialect's attributes
through their assembly format, embedding the printed text in the
bytecode. This adds native encodings for 27 CIR attributes (constants,
constant initializers, global views, method/data-member pointers, C++
special-member attributes, and small metadata attributes), modelled on
the LLVM dialect's bytecode support.

On attribute-dense modules this shrinks the bytecode ~30-40% (8.6KB to
5.4KB across the new tests). The room ahead is huge, emitting bytecode
for CIRGenModule.cpp (441MB of CIR text) still exceeds 22GB RSS and 30
minutes with these encodings (64GB and 45 minutes without), since types
keep using the assembly fallback. This is paving towards selfhosting
with bytecode.

Coverage is partial by design: anything not listed keeps using the
assembly-format fallback, exactly as before. Types keep the fallback too
until the type encodings land separately.

    [3 lines not shown]
DeltaFile
+298-0clang/include/clang/CIR/Dialect/IR/CIRDialectBytecode.td
+208-0clang/lib/CIR/Dialect/IR/CIRDialectBytecode.cpp
+73-0clang/test/CIR/Bytecode/global-view.cir
+58-0clang/test/CIR/Bytecode/attributes.cir
+43-0clang/test/CIR/Bytecode/constants.cir
+34-0clang/test/CIR/Bytecode/special-member.cir
+714-07 files not shown
+789-013 files

LLVM/project acd27db — compiler-rt/lib/scudo/standalone quarantine.h, compiler-rt/lib/scudo/standalone/tests quarantine_test.cpp

[scudo] Check quarantine batch bounds in release builds (#230247)

[Attacking Scudo's Quarantine, section 3: Write Where
Ptr](https://un1fuzz.github.io/articles/quarantine_attack.html#a3)
describes corrupting a quarantine batch's `Count` so that enqueue writes
the freed pointer outside the batch. The original [PoC and exploit code
are
here](https://github.com/un1fuzz/scudo_research/tree/main/quarantine_arbitrary_return).
`push_back()` currently guards its index with a debug-only check; an
oversized count also bypasses enqueue's full-batch equality check.

Make that bound a release-build check. Also validate both counts before
deciding whether batches can merge, enforce merge capacity in
production, and check the count before shuffling (which precedes
recycling). The capacity comparison uses subtraction after validating
both operands, avoiding corrupted-count addition wrapping around.

This closes the out-of-bounds enqueue primitive described in section 3.
It does not address section 2's Double Return attack using in-range

    [23 lines not shown]
DeltaFile
+88-0compiler-rt/lib/scudo/standalone/tests/quarantine_test.cpp
+10-4compiler-rt/lib/scudo/standalone/quarantine.h
+98-42 files

LLVM/project 6bcb0a8 — clang/lib/CIR/CodeGen CIRGenBuiltinX86.cpp

[CIR][NFC] Add missing NYI handling for some x86 builtins (#230609)

While doing a recent code review, I noticed that there were some x86
builtins that were incorrectly falling through to code that handles
builtins below them in a switch. This change adds an errorNYI diagnostic
rather than falling through.
DeltaFile
+4-0clang/lib/CIR/CodeGen/CIRGenBuiltinX86.cpp
+4-01 files

LLVM/project edee7da — llvm/test/CodeGen/AMDGPU combine-and-sext-bool.ll or.ll

test(AMDGPU): trim boolean combine coverage
DeltaFile
+0-246llvm/test/CodeGen/AMDGPU/or.ll
+0-30llvm/test/CodeGen/AMDGPU/combine-and-sext-bool.ll
+0-2762 files

LLVM/project 5973b94 — llvm/test/CodeGen/AMDGPU or.ll

test(AMDGPU): drop extra OR test subtargets
DeltaFile
+0-264llvm/test/CodeGen/AMDGPU/or.ll
+0-2641 files

LLVM/project f0c6683 — llvm/test/CodeGen/AMDGPU sra.ll udiv.ll

AMDGPU: Index loads by workitem id in tests shared with r600 (#230667)

These tests relied on -amdgpu-scalarize-global-loads=false to select
vector loads from uniform pointer arguments. They also have r600 run
lines, so keep the kernels and index the input pointers by the workitem
id instead. Also fix shl_v2i16 not using its computed pointers, and
v_shl_32_i64 using the workgroup id. Also add some uniform variants
of some cases.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+5,761-3,731llvm/test/CodeGen/AMDGPU/srem.ll
+6,118-2,908llvm/test/CodeGen/AMDGPU/clmul.ll
+1,327-1,552llvm/test/CodeGen/AMDGPU/mul.ll
+718-729llvm/test/CodeGen/AMDGPU/sdiv.ll
+481-458llvm/test/CodeGen/AMDGPU/udiv.ll
+481-275llvm/test/CodeGen/AMDGPU/sra.ll
+14,886-9,6534 files not shown
+15,809-10,10110 files

LLVM/project 0b73529 — llvm/lib/Target/AMDGPU SIISelLowering.cpp, llvm/test/CodeGen/AMDGPU combine-or-sext-bool.ll or.ll

fix(AMDGPU): guard OR folds with shared conditions

A shared uniform condition still needs materializing after folding a
divergent OR to a select, and sharing can introduce an extra SCC
conversion. The extension's single-use check does not prevent this
code-size regression.

Check the condition's uses and divergence as well. Add regression and
control cases, and consolidate the boolean OR tests in or.ll.
DeltaFile
+633-0llvm/test/CodeGen/AMDGPU/or.ll
+0-286llvm/test/CodeGen/AMDGPU/combine-or-sext-bool.ll
+10-2llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+643-2883 files