LLVM/project 5d188c4lld/ELF SymbolTable.cpp

[ELF] Version scripts: simplify version suffix handling. NFC (#223194)

Use StringRef::split instead of index arithmetic.
DeltaFile
+12-19lld/ELF/SymbolTable.cpp
+12-191 files

LLVM/project da93296llvm/lib/Target/AMDGPU AMDGPUTargetParser.td

Apply suggestion from @shiltian

Co-authored-by: Shilei Tian <i at tianshilei.me>
DeltaFile
+1-3llvm/lib/Target/AMDGPU/AMDGPUTargetParser.td
+1-31 files

LLVM/project b6ca452llvm/utils/gn/secondary/llvm/lib/Frontend/HLSL BUILD.gn, llvm/utils/gn/secondary/llvm/unittests/Frontend BUILD.gn

[gn build] Port 4214b4601f49 (#223190)
DeltaFile
+1-0llvm/utils/gn/secondary/llvm/unittests/Frontend/BUILD.gn
+1-0llvm/utils/gn/secondary/llvm/lib/Frontend/HLSL/BUILD.gn
+2-02 files

LLVM/project d65afeallvm/utils/gn/secondary/lldb/source/Plugins/SymbolFile/DWARF BUILD.gn

[gn build] Port 0f47e798205b (#223189)
DeltaFile
+1-0llvm/utils/gn/secondary/lldb/source/Plugins/SymbolFile/DWARF/BUILD.gn
+1-01 files

LLVM/project ca8f82bllvm/lib/Support KnownFPClass.cpp, llvm/test/Transforms/InstCombine known-bits.ll

[KnownFPClass] Restrict KnownFPClass::bitcast/toKnownBits deductions to verified FP semantics (#221133)

`KnownFPClass::bitcast` and `KnownFPClass::toKnownBits` previously made
deductions for floating-point semantics whose bit representations had
not been verified.

I have made it so `KnownFPClass::bitcast` and
`KnownFPClass::toKnownBits` return `fcAllFlags`/unknown for any
`APFloat` semantics we have not verified. Currently, this prevents
potentially invalid deductions for `PPCDoubleDouble` (mostly in regards
to the signbit and endianess). It also allows these functions to be
"safely" used with the 4/6/8 bit floating point types since we
conservatively return unknown.

Currently the list of supported/verified semantics for both `bitcast`
and `toKnownBits` are:
```
IEEEhalf
BFloat

    [4 lines not shown]
DeltaFile
+71-0llvm/unittests/Support/KnownFPClassTest.cpp
+34-0llvm/lib/Support/KnownFPClass.cpp
+3-1llvm/test/Transforms/InstCombine/known-bits.ll
+108-13 files

LLVM/project 9f58baellvm/lib/Target/AMDGPU AMDGPU.td, llvm/lib/Target/AMDGPU/Utils AMDGPUBaseInfo.cpp

[AMDGPU] Fix LDS reporting for gfx6

Change-Id: Idaa597f95d7a3028e3848726948892b1f66a220d
DeltaFile
+17-0llvm/unittests/Target/AMDGPU/AMDGPUUnitTests.cpp
+7-7llvm/test/CodeGen/AMDGPU/occupancy-levels.ll
+5-4llvm/lib/Target/AMDGPU/AMDGPU.td
+4-3llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+5-1llvm/unittests/TargetParser/TargetParserTest.cpp
+38-155 files

LLVM/project e7d233bclang/lib/ScalableStaticAnalysis/SourceTransformation/Transformations CppBoundedBuffers.cpp

clang-format
DeltaFile
+2-2clang/lib/ScalableStaticAnalysis/SourceTransformation/Transformations/CppBoundedBuffers.cpp
+2-21 files

LLVM/project 0b53ccbclang/lib/ScalableStaticAnalysis/SourceTransformation CMakeLists.txt, clang/lib/ScalableStaticAnalysis/SourceTransformation/Transformations CppBoundedBuffers.cpp

[SSAF][clang-reforge] Retrofit expressions after CppBoundedBuffers decl rewrites

PR #210457 introduces declaration rewriting.  When CppBoundedBuffers
rewrites a declaration or return type to a bounded_ptr/bounded_array,
some of the existing uses of that entity needs retrofit.

This commit creates expression rewrites for the following patterns:

- Append '.data()' to call arguments when necessary parameter is not
  transformed but argument is transformed.
- Append '.as_bounded<T>()' to call arguments when both parameter and
  argument are transformed but element types are not identical.
- Rewrite '&e[i]' to '(e + i)' and '&*e'/'&(*e)' to 'e', if 'e' is
  transformed.
- Rewrite '(T*)e', 'static_cast<T*>(e)', and 'reinterpret_cast<T*>(e)'
  to 'e.as_bounded<T>()', if 'e' is transformed.

The 3rd step of
rdar://187125348
DeltaFile
+446-5clang/lib/ScalableStaticAnalysis/SourceTransformation/Transformations/CppBoundedBuffers.cpp
+246-1clang/unittests/ScalableStaticAnalysis/SourceTransformation/CppBoundedBuffersTest.cpp
+9-0clang/lib/ScalableStaticAnalysis/SourceTransformation/CMakeLists.txt
+7-0llvm/utils/gn/secondary/clang/lib/ScalableStaticAnalysis/SourceTransformation/BUILD.gn
+708-64 files

LLVM/project ae7f200llvm/lib/Target/AMDGPU GCNSubtarget.cpp AMDGPUAsmPrinter.cpp, llvm/lib/Target/AMDGPU/Utils AMDGPUBaseInfo.h AMDGPUBaseInfo.cpp

[AMDGPU] Add getLDSAllocGranule to TargetParser

Expose the LDS allocation granule from GPUKind and subarch without an
MCSubtargetInfo. Use the dedicated granularity features and consolidate
backend users on the byte-valued query.

Change-Id: Ic0c9345e7657ec3c6978a646628598cb7608b390
DeltaFile
+28-0llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+16-0llvm/unittests/TargetParser/TargetParserTest.cpp
+0-14llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+4-3llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
+0-5llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+2-2llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
+50-241 files not shown
+54-247 files

LLVM/project 568ace4llvm/lib/Target/AMDGPU R600Processors.td AMDGPUFeatures.td, llvm/lib/Target/AMDGPU/Utils AMDGPUBaseInfo.cpp

[AMDGPU] Model LDS allocation granularity with subtarget features

Add numeric LDS allocation granularity features, expose them through the TargetParser feature bitset, and use them in the existing backend query.

Generic targets select the largest covered allocation granularity so their resource calculations remain conservative.

Change-Id: Icdd501d008c9d3cd566bdc8bde4a75d566ecb90a
DeltaFile
+45-0llvm/unittests/TargetParser/TargetParserTest.cpp
+23-3llvm/lib/Target/AMDGPU/AMDGPU.td
+16-0llvm/lib/Target/AMDGPU/AMDGPUFeatures.td
+6-6llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+6-1llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+4-2llvm/lib/Target/AMDGPU/R600Processors.td
+100-126 files

LLVM/project 981de5dllvm/lib/Target/AMDGPU AMDGPUFeatures.td, llvm/test/TableGen AMDGPUTargetDefLocalMemorySize.td

[AMDGPU] Validate generic-target addressable local memory size

Apply the generic numeric at-most comparison to addressable LDS size. A
generic target must not advertise more local memory than any GPU it covers.

Keep the backend fallback of 32768 bytes and add integration tests using
the real LDS features for valid coverage, over-advertised capacity, and
conflicting feature values.

Change-Id: I9fffbe532b8b5bc8875f20f394f29e2e6899f52e
DeltaFile
+51-0llvm/test/TableGen/AMDGPUTargetDefLocalMemorySize.td
+6-2llvm/lib/Target/AMDGPU/AMDGPUFeatures.td
+57-22 files

LLVM/project ab0e486llvm/lib/Target/AMDGPU AMDGPUTargetParser.td, llvm/test/TableGen AMDGPUTargetDefNumericFeatures.td

[AMDGPU] Generalize generic-target numeric property validation

Describe numeric properties with a field name, fallback value, and an
at-least, at-most, or equal comparison against each covered GPU. Keep exact
feature-record matching for unannotated frontend capabilities.

Share numeric evaluation and metadata defaults with table emission, while
rejecting conflicting values within a GPU. Reuse feature closures during
validation and emission.

Cover comparison policies, defaults, implied features, and malformed
metadata with synthetic TableGen tests.

Change-Id: I287dd5211ab542a7e8d03bd4a9eca4ac6460f588
DeltaFile
+192-90llvm/utils/TableGen/Basic/AMDGPUTargetDefEmitter.cpp
+278-0llvm/test/TableGen/AMDGPUTargetDefNumericFeatures.td
+26-2llvm/lib/Target/AMDGPU/AMDGPUTargetParser.td
+496-923 files

LLVM/project 97e2989llvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/Target/AMDGPU GCNSubtarget.h GCNSubtarget.cpp

[AMDGPU] Use SIMD-mode terminology for LDS queries

Change-Id: I6d6900868d58374d295126c52f67ffcdd8676902
DeltaFile
+10-9llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+4-5llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
+5-0llvm/lib/Target/AMDGPU/GCNSubtarget.h
+1-1llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+20-154 files

LLVM/project 148ee2bllvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 cancelled-copyable-self-use-deps.ll

[SLP] Fix dep accounting when cancelling a bundle with copyable elements

Restore the parent-edge copyable data as a user of the instruction only
if the cancelled element displaced it at creation (chained copyable
self-use); otherwise the extra user dependency is never released and
scheduling asserts.

Fixes #223139

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/223174
DeltaFile
+58-0llvm/test/Transforms/SLPVectorizer/X86/cancelled-copyable-self-use-deps.ll
+11-3llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+69-32 files

LLVM/project 1180206llvm/lib/CodeGen MachineBasicBlock.cpp, llvm/test/CodeGen/WebAssembly splitcriticaledge-physreg-liveness.mir

CodeGen: Clear physreg ranges after SplitCriticalEdge

After critical edge spliting replaces a terminator, clear referenced
physreg ranges. The block's terminators may be replaced, and may
reference physical registers (e.g. WebAssebly's ARGUMENTS. When
LiveIntervals is available, repairIntervalsInRange only repairs virtual
registers, so the tracked physreg units were stale.

It feels like a bug that repairIntervalsInRange doesn't touch physregs,
but I've left that for a future change.

Co-Authored-By: Claude claude-opus-4.8 <noreply at anthropic.com>
DeltaFile
+60-0llvm/test/CodeGen/WebAssembly/splitcriticaledge-physreg-liveness.mir
+7-0llvm/lib/CodeGen/MachineBasicBlock.cpp
+67-02 files

LLVM/project eb9844bclang/docs ReleaseNotes.md, clang/lib/CodeGen CGBuiltin.cpp

[clang][ARM] Use sponentry for setjmp on Windows ARM32 (#222366)

On Windows, _setjmp and _setjmpex take a second argument, the frame,
which the CRT stores in the jmp_buf and which longjmp later hands to
RtlUnwindEx as the frame to unwind. On aarch64, this is the stack pointer
on entry to the function, while x86_64 takes the function frame address.
ARM expects the same as aarch64 here, the stack pointer on entry.

Assisted-by: Claude Opus 5 (Anthropic)
DeltaFile
+14-0clang/test/CodeGen/ms-setjmp.c
+7-4clang/lib/CodeGen/CGBuiltin.cpp
+5-0clang/docs/ReleaseNotes.md
+26-43 files

LLVM/project 9ccfbb7clang/lib/ScalableStaticAnalysis/SourceTransformation/Transformations CppBoundedBuffers.cpp

rename function for consistency
DeltaFile
+5-5clang/lib/ScalableStaticAnalysis/SourceTransformation/Transformations/CppBoundedBuffers.cpp
+5-51 files

LLVM/project 0fb9994clang/lib/ScalableStaticAnalysis/SourceTransformation CMakeLists.txt, clang/lib/ScalableStaticAnalysis/SourceTransformation/Transformations CppBoundedBuffers.cpp

[SSAF][clang-reforge] Retrofit expressions after CppBoundedBuffers decl rewrites

PR #210457 introduces declaration rewriting.  When CppBoundedBuffers
rewrites a declaration or return type to a bounded_ptr/bounded_array,
some of the existing uses of that entity needs retrofit.

This commit creates expression rewrites for the following patterns:

- Append '.data()' to call arguments when necessary parameter is not
  transformed but argument is transformed.
- Append '.as_bounded<T>()' to call arguments when both parameter and
  argument are transformed but element types are not identical.
- Rewrite '&e[i]' to '(e + i)' and '&*e'/'&(*e)' to 'e', if 'e' is
  transformed.
- Rewrite '(T*)e', 'static_cast<T*>(e)', and 'reinterpret_cast<T*>(e)'
  to 'e.as_bounded<T>()', if 'e' is transformed.

The 3rd step of
rdar://187125348
DeltaFile
+453-5clang/lib/ScalableStaticAnalysis/SourceTransformation/Transformations/CppBoundedBuffers.cpp
+246-0clang/unittests/ScalableStaticAnalysis/SourceTransformation/CppBoundedBuffersTest.cpp
+9-0clang/lib/ScalableStaticAnalysis/SourceTransformation/CMakeLists.txt
+7-0llvm/utils/gn/secondary/clang/lib/ScalableStaticAnalysis/SourceTransformation/BUILD.gn
+715-54 files

LLVM/project 5b57cd8llvm/include/llvm/CodeGen TargetRegisterInfo.h, llvm/lib/CodeGen AllocationOrder.h TargetRegisterInfo.cpp

Merge branch 'users/mssefat/anti-hints-pr3-amdgpu-apply' into users/mssefat/anti-hints-pr4-amdgpu-pre-ra
DeltaFile
+156-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.anti-hints.mir
+49-36llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+7-1llvm/lib/Target/AMDGPU/SIRegisterInfo.h
+5-2llvm/include/llvm/CodeGen/TargetRegisterInfo.h
+3-3llvm/lib/CodeGen/TargetRegisterInfo.cpp
+5-0llvm/lib/CodeGen/AllocationOrder.h
+225-422 files not shown
+231-448 files

LLVM/project 6ecc29fllvm/lib/Target/AMDGPU SIRegisterInfo.h SIRegisterInfo.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.mfma.anti-hints.mir

Addressed review
DeltaFile
+156-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.mfma.anti-hints.mir
+49-36llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+7-1llvm/lib/Target/AMDGPU/SIRegisterInfo.h
+212-373 files

LLVM/project 559c01bllvm/include/llvm/CodeGen TargetRegisterInfo.h, llvm/lib/CodeGen AllocationOrder.cpp RegAllocGreedy.cpp

Merge branch 'users/mssefat/anti-hints-pr2-mir-serialize' into users/mssefat/anti-hints-pr3-amdgpu-apply
DeltaFile
+5-2llvm/include/llvm/CodeGen/TargetRegisterInfo.h
+3-3llvm/lib/CodeGen/TargetRegisterInfo.cpp
+4-1llvm/lib/CodeGen/RegAllocGreedy.cpp
+5-0llvm/lib/CodeGen/AllocationOrder.h
+2-1llvm/lib/CodeGen/AllocationOrder.cpp
+19-75 files

LLVM/project 3e4f989llvm/include/llvm/CodeGen TargetRegisterInfo.h, llvm/lib/CodeGen AllocationOrder.cpp RegAllocGreedy.cpp

Merge branch 'users/mssefat/anti-hints-pr1-infra' into users/mssefat/anti-hints-pr2-mir-serialize
DeltaFile
+5-2llvm/include/llvm/CodeGen/TargetRegisterInfo.h
+3-3llvm/lib/CodeGen/TargetRegisterInfo.cpp
+4-1llvm/lib/CodeGen/RegAllocGreedy.cpp
+5-0llvm/lib/CodeGen/AllocationOrder.h
+2-1llvm/lib/CodeGen/AllocationOrder.cpp
+19-75 files

LLVM/project 22cdb36llvm/include/llvm/CodeGen TargetRegisterInfo.h, llvm/lib/CodeGen AllocationOrder.cpp RegAllocGreedy.cpp

Addressed review
DeltaFile
+5-2llvm/include/llvm/CodeGen/TargetRegisterInfo.h
+3-3llvm/lib/CodeGen/TargetRegisterInfo.cpp
+4-1llvm/lib/CodeGen/RegAllocGreedy.cpp
+5-0llvm/lib/CodeGen/AllocationOrder.h
+2-1llvm/lib/CodeGen/AllocationOrder.cpp
+19-75 files

LLVM/project 8a3d12cllvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/Target/AMDGPU GCNSubtarget.cpp

[AMDGPU] Add getLocalMemorySize to TargetParser

Add getLocalMemorySize and getAddressableLocalMemorySize, both taking a
GPUKind or a Triple::SubArchType, so the LDS a work-group gets can be
queried from a GPU name alone without an MCSubtargetInfo. The first
returns the physical block available in the current mode, the second
caps it at what one work-group can address, mirroring the IsaInfo pair.

The number of SIMDs a work-group runs on is a per-kernel mode rather
than a property of the GPU, so it stays a parameter. GCNSubtarget
initializes its cached sizes from the new entry points. There is no
functional change.

Change-Id: Ib71428b66032a231ed491d6294122b359abfe7e2
Co-Authored-By: Claude Opus 5 (1M context) <noreply at anthropic.com>
DeltaFile
+56-0llvm/unittests/TargetParser/TargetParserTest.cpp
+39-3llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+30-0llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+4-3llvm/lib/Target/AMDGPU/GCNSubtarget.cpp
+129-64 files

LLVM/project d295bc8llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPCostAnalysis.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+269-128llvm/test/Transforms/SLPVectorizer/X86/reduction-logical.ll
+117-115llvm/test/Transforms/SLPVectorizer/AArch64/externally-used-copyables.ll
+97-30llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+61-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPCostAnalysis.cpp
+35-18llvm/test/Transforms/SLPVectorizer/zext-incoming-for-neg-icmp.ll
+7-38llvm/test/Transforms/SLPVectorizer/AMDGPU/reduction-i1-mask.ll
+586-3299 files not shown
+624-37515 files

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