LLVM/project d7d7992llvm/test/tools/llubi fp_cast.ll, llvm/tools/llubi/lib Interpreter.cpp

[llubi] Implement fast-math flags for `uitofp`/`sitofp` (#222858)

Closes #203773
DeltaFile
+39-0llvm/test/tools/llubi/fp_cast.ll
+3-1llvm/tools/llubi/lib/Interpreter.cpp
+42-12 files

LLVM/project 345d699llvm/include/llvm/CodeGen SelectionDAG.h, llvm/lib/CodeGen/SelectionDAG SelectionDAG.cpp

[SelectionDAG] Remove dead functions and declarations (NFC) (#223126)

SelectionDAG::getStore (with Offset): Added on July 31, 2026 in commit
c57b2b6103cb4bb6c4c2bee901c1eee2b966e5f0 without a definition or any
callers.

SelectionDAG::getIndexedLoadVP, SelectionDAG::getIndexedStoreVP: Added
on August 31, 2021 in commit 524ded7d01a700aa6473d09a877be13fe45b85a3
without any callers.

SelectionDAG::getTruncStridedStoreVP: Added on March 10, 2022 in commit
28cfa764c2e3d36b856b3e70d49f17088b90c1f5 without any callers.

Assisted-by: Antigravity
DeltaFile
+0-95llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+0-15llvm/include/llvm/CodeGen/SelectionDAG.h
+0-1102 files

LLVM/project b8d9565clang/include/clang/AST DeclBase.h, clang/lib/AST DeclBase.cpp

[Clang] Do not imply concurrent AST traversal support
DeltaFile
+5-10clang/include/clang/AST/DeclBase.h
+2-2clang/lib/AST/DeclBase.cpp
+7-122 files

LLVM/project e1b6027llvm/test/Transforms/LoopVectorize induction-cost.ll

[LV] Add test for cost of widened pointer induction (NFC). (#223153)

Add a cost test where the pointer induction is used as a value and
remains a VPWidenPointerInductionRecipe.

PR: https://github.com/llvm/llvm-project/pull/223153
DeltaFile
+45-0llvm/test/Transforms/LoopVectorize/induction-cost.ll
+45-01 files

LLVM/project 66573c1llvm/lib/Analysis ScalarEvolution.cpp, llvm/test/Analysis/ScalarEvolution pointer-iv-addrec.ll

[SCEV] Directly form add recurrences for simple pointer IVs. (#222915)

Add support for PN = PHI(Start, gep Self, LoopInvariant) to
createSimpleAffineAddRec.

This allows to handle simple pointer IVs without going through the more
expensive createAddRecFromPHI machinery in many cases.

This is not completely NFC: previously we created SCEVUnknown for a
trivial AddRec with step 0, now we return the start value.

This gives a modest geomean compile-time decrease
 * stage1-O3: -0.05%
 * stage1-ReleaseThinLTO: -0.06%
 * stage1-ReleaseLTO-g: -0.06%
 * stage1-aarch64-O3: -0.07%
 * stage2-O3: -0.05%
 * clang build: -0.08%


    [4 lines not shown]
DeltaFile
+343-0llvm/test/Analysis/ScalarEvolution/pointer-iv-addrec.ll
+51-32llvm/lib/Analysis/ScalarEvolution.cpp
+394-322 files

LLVM/project 25b15ddllvm/lib/Transforms/Scalar LICM.cpp, llvm/test/Transforms/LICM promote-single-thread.ll

LICM: Drop -licm-force-thread-model-single in favor of the module flag

Now that the threading model is carried by the "thread-model" IR module flag,
the hidden -licm-force-thread-model-single override is redundant: a test can
select the single-threaded model by setting the module flag directly.
isThreadLocalObject reads only Module::getThreadModel.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+9-2llvm/test/Transforms/LICM/promote-single-thread.ll
+1-5llvm/lib/Transforms/Scalar/LICM.cpp
+10-72 files

LLVM/project 6c4e42eclang/lib/CodeGen BackendUtil.cpp, llvm/lib/CodeGen CommandFlags.cpp AtomicExpandPass.cpp

CodeGen: Replace TargetOptions::ThreadModel with module flag

Migrate the threading-model consumers off TargetOptions::ThreadModel and onto
the "thread-model" module flag. The main user was ARM's pass config, which is
moved into AtomicExpand, which now performs the single-thread expansion
directly.

Few tests use the -thread-model flag, so delete it and migrate those cases
to use the module flag.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+138-0llvm/test/Transforms/AtomicExpand/ARM/thread-model-single.ll
+47-1llvm/lib/CodeGen/AtomicExpandPass.cpp
+13-5llvm/test/CodeGen/ARM/atomic-op.ll
+11-6llvm/lib/Transforms/Scalar/LICM.cpp
+0-11llvm/lib/CodeGen/CommandFlags.cpp
+0-8clang/lib/CodeGen/BackendUtil.cpp
+209-317 files not shown
+210-5413 files

LLVM/project 0adddbbclang/lib/AST/ByteCode Interp.h Interp.cpp

[clang][bytecode][NFC] Move Remove unused CheckExtern prototype (#223146)

And add an overload taking only a Block.
DeltaFile
+8-2clang/lib/AST/ByteCode/Interp.cpp
+0-3clang/lib/AST/ByteCode/Interp.h
+8-52 files

LLVM/project b86db22libcxx/docs conf.py, libcxx/docs/ReleaseNotes 24.rst 23.rst

[libc++][docs] Use Furo theme

Adopt the shared LLVM Furo configuration and wyvern logo, widen the content area on desktop viewports, and remove page-local contents directives that duplicate Furo's navigation.
DeltaFile
+8-17libcxx/docs/conf.py
+20-0libcxx/docs/_static/custom.css
+0-4libcxx/docs/ReleaseNotes/24.rst
+0-4libcxx/docs/ReleaseNotes/23.rst
+0-4libcxx/docs/ReleaseNotes/22.rst
+0-4libcxx/docs/ReleaseNotes/21.rst
+28-3316 files not shown
+28-8322 files

LLVM/project 73cbde9libcxx/docs/Status Cxx26Issues.csv

[libc++][docs] Preserve updated Cxx26 issue status

Carry the completed libc++24 status for LWG4013 through the generated-table Markdown conversion.
DeltaFile
+1-1libcxx/docs/Status/Cxx26Issues.csv
+1-11 files

LLVM/project 1ae00a5libc/src/__support/FPUtil float80.h

[libc] Enable Float80-type for x86_32 (#221408)

Enables for x86_32 by using Uint<96> 
```CPP
struct Float80 {
  #if __SIZEOF_LONG_DOUBLE__ == 12
    UInt<96> bits;
  #else
    UInt128 bits;
  #endif
 ```
for testing it on x86_32 
it needs -m32 and --msse2 extra flags other than your usual cmake for x86_32
DeltaFile
+4-1libc/src/__support/FPUtil/float80.h
+4-11 files

LLVM/project 0070802flang/docs Unsigned.md Semantics.md, flang/docs/_static custom.css

[flang][docs] Use Furo theme

Adopt the shared LLVM Furo configuration and wyvern logo, widen the content area on desktop viewports, and remove page-local contents directives that duplicate Furo's navigation.
DeltaFile
+8-17flang/docs/conf.py
+20-0flang/docs/_static/custom.css
+0-5flang/docs/Unsigned.md
+0-5flang/docs/Semantics.md
+0-5flang/docs/RuntimeTypeInfo.md
+0-5flang/docs/RuntimeEnvironment.md
+28-3741 files not shown
+28-24047 files

LLVM/project baa2354clang/lib/CodeGen CodeGenModule.cpp, clang/test/CodeGen thread-model.c

clang: Emit the "thread-model" module flag

Emit the threading model as the "thread-model" IR module flag. This
will eventually replace the TargetOptions field.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+11-0clang/test/CodeGen/thread-model.c
+9-0clang/lib/CodeGen/CodeGenModule.cpp
+20-02 files

LLVM/project e234b05llvm/lib/CodeGen CommandFlags.cpp, llvm/test/CodeGen/AArch64 aarch64-p2align-max-bytes-neoverse.ll aarch64-p2align-max-bytes.ll

CodeGen: Remove TargetOptions::LoopAlignment

Delete the module-wide LoopAlignment override and llc's -align-loops
flag that fed it. Loop alignment is now expressed solely through
per-loop llvm.loop.align metadata.

Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
DeltaFile
+135-5llvm/test/CodeGen/X86/innermost-loop-alignment.ll
+40-16llvm/test/CodeGen/RISCV/align-loops.ll
+2-25llvm/test/CodeGen/X86/code-align-loops.ll
+9-6llvm/test/CodeGen/AArch64/aarch64-p2align-max-bytes.ll
+0-6llvm/lib/CodeGen/CommandFlags.cpp
+0-3llvm/test/CodeGen/AArch64/aarch64-p2align-max-bytes-neoverse.ll
+186-614 files not shown
+188-6910 files

LLVM/project 0358146clang/lib/CodeGen BackendUtil.cpp CGLoopInfo.cpp, clang/test/CodeGen align-loops.c

clang: Emit llvm.loop.align metadata for -falign-loops

Make -falign-loops=N attach per-loop llvm.loop.align metadata instead
of setting the module-wide TargetOptions::LoopAlignment. This reuses
the existing [[clang::code_align]] metadata path, with the source
attribute taking precedence over the flag.

Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
DeltaFile
+31-6clang/test/CodeGen/align-loops.c
+4-0clang/lib/CodeGen/CGLoopInfo.cpp
+0-1clang/lib/CodeGen/BackendUtil.cpp
+35-73 files

LLVM/project 7c3884elldb/source/ValueObject DILEval.cpp, lldb/test/API/commands/frame/var-dil/expr/CreateValueFromExpression TestCreateValueFromExpression.py

[lldb] Fix DIL losing StackFrame context after casting to pointer
DeltaFile
+16-9lldb/test/API/commands/frame/var-dil/expr/CreateValueFromExpression/TestCreateValueFromExpression.py
+3-5lldb/source/ValueObject/DILEval.cpp
+19-142 files

LLVM/project 641cbedlldb/source/API SBExpressionOptions.cpp

Remove unused return
DeltaFile
+1-1lldb/source/API/SBExpressionOptions.cpp
+1-11 files

LLVM/project 5eff11forc-rt/include/orc-rt/bedrock/sps SimpleRemoteCA.h, orc-rt/lib/bedrock/sps SimpleRemoteCA.cpp

[orc-rt] Reduce SimpleRemoteCA to transport-independent utils (#223141)

Reduce SimpleRemoteCA to the transport-independent parts: opcodes, setup
and hang-up payload encoding, message validation and dispatch, and the
table of calls awaiting a result. Subclasses are now responsible for the
connection state and synchronization, since they'll usually want to
implement these things for their transports anyway (or the transport
will already manage connection-state/synchronization).

takePendingCall becomes pure virtual, since subclasses must synchronize
access to the pending-call table.

The header moves from orc-rt-internal/ to orc-rt/: with the transport a
subclass concern, there's no reason to preclude library clients from
writing one.
DeltaFile
+110-364orc-rt/test/unit/bedrock/sps/SimpleRemoteCATest.cpp
+54-127orc-rt/lib/bedrock/sps/SimpleRemoteCA.cpp
+76-102orc-rt/include/orc-rt/bedrock/sps/SimpleRemoteCA.h
+240-5933 files

LLVM/project 3569a1fllvm/lib/Target/AMDGPU AMDGPU.td

[AMDGPU] Fix placement of FeatureSupportsXNACK (#223111)

This can't be put into 12_50_Common because of conflict in downstream
code.
DeltaFile
+4-1llvm/lib/Target/AMDGPU/AMDGPU.td
+4-11 files

LLVM/project d411212llvm/lib/Target/RISCV RISCVInstrInfo.cpp RISCVISelLowering.cpp, llvm/lib/Target/RISCV/AsmParser RISCVAsmParser.cpp

[RISCV] Add PseudoTAILX7, PseudoTAILReg for cf-protection-branch (#220657)

Previously, PseudoTAIL selected between X6 and X7 at encode time by
checking the Zicfilp feature bit via getTailExpandUseRegNo. This is
incorrect for the codegen path because -fcf-protection=branch can emit
lpad without requiring Zicfilp to be enabled.

Add PseudoTAILX7 for codegen: when cf-protection-branch is active,
ISelLowering and the machine outliner now emit PseudoTAILX7 which
always expands using X7. The existing PseudoTAIL behavior is unchanged
— it still selects X6 or X7 based on Zicfilp at encode time, as
documented in the assembler manual.

Also add PseudoTAILReg ("tail address, register") assembly form that
lets users explicitly specify the scratch register for AUIPC+JALR
expansion, per the proposed syntax in
https://github.com/riscv-non-isa/riscv-asm-manual/pull/227.
DeltaFile
+37-0llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+35-1llvm/lib/Target/RISCV/RISCVInstrInfo.td
+13-13llvm/test/CodeGen/RISCV/tail-calls.ll
+15-10llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+18-3llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
+15-0llvm/test/MC/RISCV/tail-call.s
+133-274 files not shown
+159-3410 files

LLVM/project 2706780llvm/include/llvm/IR PatternMatch.h, llvm/lib/Transforms/InstCombine InstCombineSelect.cpp

[InstCombine] support trunc condition in foldSelectICmpAndAnd (#223132)

Reland https://github.com/llvm/llvm-project/pull/220690 with the fix for
asan failure see fixup commit
DeltaFile
+101-11llvm/test/Transforms/InstCombine/select-of-bittest.ll
+39-25llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
+11-0llvm/include/llvm/IR/PatternMatch.h
+151-363 files

LLVM/project e17b8cbllvm/docs LangRef.md, llvm/include/llvm/IR Module.h

IR: Introduce "thread-model" module flag (#222768)

Introduce the replacement for TargetOptions::ThreadModel, but
does not yet wire up the uses. This maintains the current values,
but I question if it makes sense to retain "posix" as the default.
POSIX sounds very target opinionated, but isn't used in a non-binary
way anywhere. Alternatively we could have a simple singlethread binary
flag, or name this something more general.

Follows the precedent of float-abi. It happens the triple default
is just POSIX, but theoretically targets like AVR should be defaulting
to singlethread.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+37-0llvm/test/Verifier/module-flags-thread-model.ll
+29-0llvm/docs/LangRef.md
+29-0llvm/test/Linker/module-flags-thread-model.ll
+28-0llvm/include/llvm/Support/CodeGen.h
+13-0llvm/test/Assembler/module-flags-thread-model.ll
+12-0llvm/include/llvm/IR/Module.h
+148-07 files not shown
+184-1413 files

LLVM/project cad1b33libc/cmake/modules LLVMLibCArchitectures.cmake

[libc] Pass correct system include flag for macOS. (#223116)
DeltaFile
+1-1libc/cmake/modules/LLVMLibCArchitectures.cmake
+1-11 files

LLVM/project 25728f8llvm/lib/CodeGen MachineScheduler.cpp, llvm/test/CodeGen/AArch64 misched-postra-only1.mir

[MISched] Fix post-RA pickOnlyChoice debug logs (#222927)

On the way, adding a stable test for `pickOnlyChoice()` scheduling paths
directly, which has been missing, while filechecking the fixed tracing.
DeltaFile
+114-0llvm/test/CodeGen/AArch64/misched-postra-only1.mir
+1-1llvm/lib/CodeGen/MachineScheduler.cpp
+115-12 files

LLVM/project 1f13035libcxx/docs/Status Cxx26Issues.csv, libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop has_unique_object_representations.verify.cpp

[libc++] Test LWG4113: Disallow `has_unique_object_representations<Incomplete[]>` (#169446)

We have been rejecting `has_unique_object_representations<Incomplete[]>`
since LLVM 6.

Some related change landed in Clang 19 due to
6451806ef73bb033be3f6e1599f3bcb224943206, and then a follow-up change
ae9990ed965118e7274a52399b43e3b9fb419a54 simplified error messages.

Test coverage for incomplete enumeration types is skipped for Clang-cl
mode, because an incomplete enumeration type is incorrectly considered
to be complete. See https://llvm.org/PR169472.

Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
DeltaFile
+48-0libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/has_unique_object_representations.verify.cpp
+1-1libcxx/docs/Status/Cxx26Issues.csv
+49-12 files

LLVM/project 18bc801llvm/docs LangRef.md, llvm/include/llvm/IR Module.h

IR: Introduce "thread-model" module flag

Introduce the replacement for TargetOptions::ThreadModel, but
does not yet wire up the uses. This maintains the current values,
but I question if it makes sense to retain "posix" as the default.
POSIX sounds very target opinionated, but isn't used in a non-binary
way anywhere. Alternatively we could have a simple singlethread binary
flag, or name this something more general.

Follows the precedents of float-abi. It happens the triple default
is just POSIX, but theoretically targets like AVR should be defaulting
to singlethread.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+37-0llvm/test/Verifier/module-flags-thread-model.ll
+29-0llvm/docs/LangRef.md
+29-0llvm/test/Linker/module-flags-thread-model.ll
+28-0llvm/include/llvm/Support/CodeGen.h
+13-0llvm/test/Assembler/module-flags-thread-model.ll
+12-0llvm/include/llvm/IR/Module.h
+148-07 files not shown
+184-1413 files

LLVM/project cebfe6cllvm/docs LangRef.md, llvm/lib/CodeGen MachineBlockPlacement.cpp

IR: Add verifier checks and LangRef for llvm.loop.align (#221933)

Verify the nested !{!"llvm.loop.align", i32 N} tag.
Require exactly two operands, an integer constant of type i32 or
smaller, and a positive power-of-two value

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+126-0llvm/test/Verifier/llvm.loop.align.ll
+28-0llvm/test/Assembler/llvm.loop.align.ll
+27-0llvm/lib/IR/Verifier.cpp
+15-0llvm/docs/LangRef.md
+0-3llvm/lib/CodeGen/MachineBlockPlacement.cpp
+196-35 files

LLVM/project eff88dbclang/lib/CIR/Lowering/DirectToLLVM LowerToLLVMOpenCLMetadata.h LowerToLLVM.cpp, clang/test/CIR/CodeGenHIP amdgcnspirv-kernel.hip

[CIR][OpenCL] Lower OpenCL language version metadata to LLVM dialect (#219689)

Propagate CIR OpenCL language version module attributes as LLVM dialect
named metadata before LLVM IR translation.

Assisted-by: Codex / GPT-5.6 Sol
DeltaFile
+43-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVMOpenCLMetadata.cpp
+16-0clang/test/CIR/CodeGenOpenCL/version.cl
+16-0clang/test/CIR/Lowering/opencl-version-metadata.cir
+3-0clang/test/CIR/CodeGenHIP/amdgcnspirv-kernel.hip
+2-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVMOpenCLMetadata.h
+2-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+82-06 files

LLVM/project b80b725llvm/lib/CodeGen RegisterCoalescer.cpp, llvm/test/CodeGen/AArch64 coalescer-empty-subrange-early-lis.ll

RegisterCoalescer: Remove empty subranges after merging subranges

Merging subranges in joinVirtRegs didn't try to clear empty ranges after
refineSubRanges, manifesting in an assert in overlaps checks later.

Exposed with subregister liveness once LiveIntervals runs before TwoAddress.

Co-authored-by: Claude (Claude-Opus-4.8)
DeltaFile
+30-0llvm/test/CodeGen/AArch64/coalescer-empty-subrange-early-lis.ll
+3-0llvm/lib/CodeGen/RegisterCoalescer.cpp
+33-02 files

LLVM/project 7e01a10llvm/lib/CodeGen RegisterCoalescer.cpp

Move removeEmptySubRanges into mergeSubRangeInto
DeltaFile
+4-3llvm/lib/CodeGen/RegisterCoalescer.cpp
+4-31 files