LLVM/project 62e6fe8llvm/include/llvm/SandboxIR Context.h, llvm/lib/SandboxIR Context.cpp

Reapply "[SandboxIR] Callback registration now allows specifying order" (#221099)

This reverts commit f111407c0502851409a887c8e5dea4a3ec190d4e.
Should fix the sanitizer issue.
DeltaFile
+98-0llvm/unittests/SandboxIR/SandboxIRTest.cpp
+57-16llvm/include/llvm/SandboxIR/Context.h
+33-39llvm/lib/SandboxIR/Context.cpp
+188-553 files

LLVM/project fe38babclang/lib/CIR/Lowering/DirectToLLVM LowerToLLVMOpenCLMetadata.h LowerToLLVM.cpp, clang/test/CIR/CodeGenOpenCL version.cl

[CIR][OpenCL] Lower OpenCL language version metadata to LLVM dialect

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
+2-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVMOpenCLMetadata.h
+2-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+79-05 files

LLVM/project 9d25213clang/lib/CIR/CodeGen CIRGenModule.cpp, clang/lib/CodeGen CodeGenModule.cpp

fix: Supply the HIP SPIR-V version only for metadata emission

Fix the assertion exposed by PR #214246 under the version invariant from PR #219687. Supply OpenCL 2.0 in classic CodeGen and CIRGen without changing HIP language options or enabling OpenCL-only Sema restrictions.

Assisted-by: Codex / GPT-6
DeltaFile
+8-0clang/test/CodeGenHIP/hipspv-kernel.cpp
+8-0clang/test/SemaHIP/atomic-init.hip
+4-2clang/lib/CIR/CodeGen/CIRGenModule.cpp
+3-1clang/lib/CodeGen/CodeGenModule.cpp
+2-0clang/test/CIR/CodeGenHIP/amdgcnspirv-kernel.hip
+25-35 files

LLVM/project 980d3d1clang/test/CIR/CodeGenHIP amdgcnspirv-kernel.hip

fix: Check HIP SPIR-V version metadata after lowering
DeltaFile
+3-0clang/test/CIR/CodeGenHIP/amdgcnspirv-kernel.hip
+3-01 files

LLVM/project 1fe17e8clang/lib/CIR/CodeGen CIRGenModule.h CIRGenModule.cpp, clang/test/CIR/CodeGenOpenCL version.cl

[CIR][OpenCL] Emit OpenCL language version metadata in CIR

Emit OpenCL and C++ for OpenCL language version attributes from CIRGen. Preserve the compatible OpenCL version and the C++ for OpenCL version separately so later lowering does not infer one from the other.

Assisted-by: Codex / GPT-5.6 Sol
DeltaFile
+15-0clang/test/CIR/CodeGenOpenCL/version.cl
+13-0clang/lib/CIR/CodeGen/CIRGenModule.cpp
+4-0clang/test/CodeGenCUDASPIRV/kernel-cc.cu
+1-0clang/lib/CIR/CodeGen/CIRGenModule.h
+33-04 files

LLVM/project 6cb27b6clang/lib/CIR/Dialect/IR CIRDialect.cpp

fix: separate CIR attribute dispatch from OpenCL verification
DeltaFile
+20-8clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+20-81 files

LLVM/project 5e95dbeclang/include/clang/CIR/Dialect/IR CIRDialect.td CIROpenCLAttrs.td, clang/lib/CIR/Dialect/IR CIROpenCLAttrs.cpp CIRDialect.cpp

[CIR][OpenCL] Add OpenCL language version module attributes

Add structured CIR module attributes for OpenCL and C++ for OpenCL language versions. Verify their module-level placement and version components so lowering can consume explicit source-language version state.

Assisted-by: Codex / GPT-5.6 Sol
DeltaFile
+76-0clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+73-0clang/test/CIR/IR/invalid-version.cir
+28-0clang/include/clang/CIR/Dialect/IR/CIROpenCLAttrs.td
+19-0clang/test/CIR/IR/version.cir
+15-0clang/lib/CIR/Dialect/IR/CIROpenCLAttrs.cpp
+5-0clang/include/clang/CIR/Dialect/IR/CIRDialect.td
+216-01 files not shown
+219-17 files

LLVM/project 419c22cllvm/include/llvm/TableGen Record.h, llvm/lib/TableGen Record.cpp

[TableGen] Unique the remaining Init pools in a UniquingSet. NFC (#221394)

Follow-up to #219630. Every one of these keys is a handful of scalars,
pointers and trailing-object arrays already stored in the node, so a
typed key removes the FoldingSetNodeID serialization on every get() and
the profile rebuild on every hit.

llvm-tblgen instructions retired, minimum of five interleaved runs:

```
  RISCV   -gen-asm-matcher     -3.492%
  RISCV   -gen-register-info   -4.027%
  X86     -gen-dag-isel        -1.573%
  AMDGPU  -gen-subtarget       -1.140%
```

Aided by Opus 5
DeltaFile
+30-185llvm/lib/TableGen/Record.cpp
+30-10llvm/include/llvm/TableGen/Record.h
+60-1952 files

LLVM/project 5115f32llvm/lib/Transforms/Vectorize VPlan.h VPlanRecipes.cpp, llvm/test/Transforms/LoopVectorize replicate-region-branch-weights.ll

[VPlan] Preserve branch weights from VPlan0 through to codegen. (#213143)

This patch adds support for carrying through branch weights from the
original scalar loop through VPlan.

The flow is as follows:

1. On the scalar VPlan, we import the branch weights from the existing
   IR branches and add them as !prof metadata to VPInstruction terminators
2. The predicator dissolves the control flow and each block will get
     executed unconditionally. What remains are predicated recipes, with
     their lanes executing with probability relative to the header. Compute
     the executing probabilities as sum of probabilities of all incoming
     edges.
3. Each masked recipe gets the execution probability attached as custom
    !vplan.execution.frequency metadata 
4. When creating replicate regions, a predicated recipe is replaced by
    explicit control fold. The execution frequency from the recipe is
    converted to profile metadata and added to the newly introduced 

    [23 lines not shown]
DeltaFile
+976-0llvm/test/Transforms/LoopVectorize/VPlan/execution-frequencies-match-bfi.ll
+342-238llvm/test/Transforms/LoopVectorize/replicate-region-branch-weights.ll
+97-0llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
+68-0llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+60-2llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+47-13llvm/lib/Transforms/Vectorize/VPlan.h
+1,590-2535 files not shown
+1,677-27211 files

LLVM/project 94cb123clang-tools-extra/include-cleaner/lib WalkAST.cpp, clang-tools-extra/include-cleaner/unittests WalkASTTest.cpp

[include-cleaner] Support Objective-C literals and boxed expressions in WalkAST (#216201)

This change adds AST visitors for ObjCBoxedExpr, ObjCArrayLiteral,
ObjCDictionaryLiteral, and ObjCStringLiteral. This ensures that the
underlying class interfaces (such as NSNumber, NSArray, NSDictionary,
and NSString) and any associated categories used for these literals are
correctly reported as referenced. Unit tests are included to verify the
new behavior.
DeltaFile
+75-0clang-tools-extra/include-cleaner/unittests/WalkASTTest.cpp
+28-0clang-tools-extra/include-cleaner/lib/WalkAST.cpp
+103-02 files

LLVM/project f42c87bllvm/lib/Target/AMDGPU AMDGPUISelLowering.cpp, llvm/test/CodeGen/AMDGPU fmin_legacy.ll fmed3.ll

[AMDGPU] Fix legacy fmin/fmax combines to preserve NaN and zero ties (#220519)
DeltaFile
+467-6llvm/test/CodeGen/AMDGPU/select-flags-to-fmin-fmax.ll
+77-60llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+48-37llvm/test/CodeGen/AMDGPU/fmed3.ll
+58-9llvm/test/CodeGen/AMDGPU/GlobalISel/fmin_legacy.ll
+54-7llvm/test/CodeGen/AMDGPU/GlobalISel/fmax_legacy.ll
+19-33llvm/test/CodeGen/AMDGPU/fmin_legacy.ll
+723-15210 files not shown
+802-19616 files

LLVM/project 45b1e62llvm/lib/CodeGen TypePromotion.cpp, llvm/test/Transforms/TypePromotion/ARM casts.ll

[TypePromotion] Support trunc-to-i1 conditions (#216311)

InstCombine may rewrite `icmp ne (X & 1), 0` to `trunc X to i1`
(#178977). Start TypePromotion searches from operands of scalar
trunc-to-i1 instructions, treating the trunc as a boolean boundary
without promoting its result or traversing its users.

Assisted-by: AI
DeltaFile
+31-9llvm/lib/CodeGen/TypePromotion.cpp
+27-0llvm/test/Transforms/TypePromotion/ARM/casts.ll
+58-92 files

LLVM/project 03de3d1llvm/include/llvm/Support/LSP Transport.h, llvm/unittests/Support/LSP Transport.cpp

[Support] Fix -Wunused-template from debugString

This is not used in the header (outside of a non-instantiated template),
so triggers -Wunused-template. Move it into the class definition to
prevent this without adding any namespace pollution.

Reviewers: MaskRay, kazutakahirata

Pull Request: https://github.com/llvm/llvm-project/pull/221478
DeltaFile
+8-7llvm/include/llvm/Support/LSP/Transport.h
+1-1llvm/unittests/Support/LSP/Transport.cpp
+9-82 files

LLVM/project b04639flldb/tools/lldb-fuzzer/lldb-target-fuzzer CMakeLists.txt target.dict

[lldb] Add a fuzzing dictionary for lldb-target-fuzzer (#221348)

target.dict gives the mutator the magic bytes and required keys for
every object file format.  Without a seed dictionary, blind mutation
essentially never lands the exact multi-byte magic these formats gate
on.

Assisted-by: claude
DeltaFile
+52-0lldb/tools/lldb-fuzzer/lldb-target-fuzzer/target.dict
+1-0lldb/tools/lldb-fuzzer/lldb-target-fuzzer/CMakeLists.txt
+53-02 files

LLVM/project 2e4ad2fllvm/docs CodeReview.rst

[docs] Fix a broken link in the 'Non-Experts Should Review Code' section (#221461)
DeltaFile
+3-2llvm/docs/CodeReview.rst
+3-21 files

LLVM/project f98cf8ellvm/lib/Target/AMDGPU AMDGPURegBankLegalizeHelper.cpp SIISelLowering.cpp, llvm/test/CodeGen/AMDGPU div_i128.ll select-undef.ll

[AMDGPU] Freeze select condition before splitting into two halves (#219942)
DeltaFile
+108-72llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-select.mir
+23-0llvm/test/CodeGen/AMDGPU/select-undef.ll
+12-8llvm/test/CodeGen/AMDGPU/div_i128.ll
+5-3llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+1-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
+149-835 files

LLVM/project 3daf505llvm/docs MemProf.md

[MemProf][Docs] Add more information on static data partitioning (#220446)

Clarify some sentences that I found hard to parse. Also update the docs
now that a linker script is no longer required.
DeltaFile
+1-2llvm/docs/MemProf.md
+1-21 files

LLVM/project c744816llvm/include/llvm/Support/LSP Transport.h, llvm/unittests/Support/LSP Transport.cpp

feedback

Created using spr 1.3.7
DeltaFile
+8-7llvm/include/llvm/Support/LSP/Transport.h
+1-1llvm/unittests/Support/LSP/Transport.cpp
+9-82 files

LLVM/project 8f270bcllvm/test/Transforms/Attributor nofpclass-bitcast-int-to-fp.ll

[KnownFPClass] Add regression tests for #174869 (#220279)

This PR just adds regression tests for
https://github.com/llvm/llvm-project/issues/174869

Otherwise, the original issue was fixed by
https://github.com/llvm/llvm-project/pull/215708 for
`APFloat::isIEEELikeFP` types (bfloat16, and ieee16/32/64/128).
DeltaFile
+28-0llvm/test/Transforms/Attributor/nofpclass-bitcast-int-to-fp.ll
+28-01 files

LLVM/project 3cc6423llvm/test/Transforms/SLPVectorizer/AMDGPU inst-count-heuristic.ll

[SLP][AMDGPU][NFC] Remove unreachable GFX940/GFX941 checks (#220745)

`inst-count-heuristic.ll` only runs
`-check-prefix=GFX950/GFX942/GFX906;` the `GFX941/GFX940 CHECK` blocks
had no matching `RUN` line and were never executed.
DeltaFile
+0-42llvm/test/Transforms/SLPVectorizer/AMDGPU/inst-count-heuristic.ll
+0-421 files

LLVM/project b30b65a.github/workflows premerge.yaml

[CI][Github] Hash-pin AArch64 CI image (#221475)

Otherwise we end up picking up the latest version of the image that uses
clang 23 which causes issues. This also is security best practice as
described in our security best practices doc.

Fixes #221470.
DeltaFile
+1-1.github/workflows/premerge.yaml
+1-11 files

LLVM/project 2c874e7llvm/include/llvm/Support/LSP Transport.h, mlir/cmake/modules AddMLIRPython.cmake

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+1-1llvm/include/llvm/Support/LSP/Transport.h
+2-0mlir/cmake/modules/AddMLIRPython.cmake
+3-12 files

LLVM/project 36c0882mlir/lib/Dialect/Linalg/TransformOps LinalgTransformOps.cpp, mlir/lib/Dialect/Linalg/Transforms Vectorization.cpp Loops.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+0-26mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
+0-22mlir/lib/Dialect/SCF/IR/SCF.cpp
+0-18mlir/lib/Dialect/Linalg/Transforms/Loops.cpp
+0-16mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
+0-15mlir/lib/Tools/mlir-pdll-lsp-server/Protocol.cpp
+0-15mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
+0-11217 files not shown
+9-22023 files

LLVM/project 22fa171llvm/include/llvm/Support/LSP Transport.h, mlir/cmake/modules AddMLIRPython.cmake

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+1-1llvm/include/llvm/Support/LSP/Transport.h
+2-0mlir/cmake/modules/AddMLIRPython.cmake
+3-12 files

LLVM/project 9a29ecdllvm/include/llvm/Support/LSP Transport.h

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+1-1llvm/include/llvm/Support/LSP/Transport.h
+1-11 files

LLVM/project 0818078llvm/include/llvm/Support/LSP Transport.h

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+1-1llvm/include/llvm/Support/LSP/Transport.h
+1-11 files

LLVM/project 025e4b1llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer VecUtils.h, llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes BundleVec.h

[SandboxVec][VecUtils] Introduce DeadInstrMorgue

Move dead instructions collector and erasor into VecUtils, so that
it is usable by both, BundleVec and LoadStoreVec, vectorizers. NFC
DeltaFile
+2-47llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BundleVec.cpp
+48-0llvm/lib/Transforms/Vectorize/SandboxVectorizer/VecUtils.cpp
+19-0llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/VecUtils.h
+3-8llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/BundleVec.h
+72-554 files

LLVM/project 2fb12bcmlir/tools/mlir-tblgen DialectGen.cpp

[mlir][tblgen] Prune unused filterForDialect template [-Wunused-template] (#221422)

`filterForDialect` lost its last caller in 4957518ef57f (May 2022) and
has been dead since. It is a static file-scope function template, so
`-Wunused-template` flags it and `-Werror` builds fail. Removing it also
orphans the `DialectFilterIterator` alias and the `llvm::Record`
using-declaration, which nothing else references, so this drops all
three.

Co-authored-by: Henrich Lauko <hlauko at nvidia.com>
DeltaFile
+0-20mlir/tools/mlir-tblgen/DialectGen.cpp
+0-201 files

LLVM/project 8aec646llvm/lib/CodeGen RegAllocFast.cpp

[RegAllocFast] Document the allocation algorithm. NFC (#219835)

Add a file-level overview: block-local allocation, a stack slot for
every value crossing a block boundary, no liveness analysis or coalescing,
and a backward walk where uses acquire registers and defs release them.

Correct two stale claims: RegUnitStates is indexed by register unit, not
by physical register, and allocateInstruction() runs eight phases rather
than the two its comment described.

Drop a redundant local in reloadAtBegin(), and assert the def operand
that isTiedToNotUndef() documents.

Aided by Opus 5
DeltaFile
+56-37llvm/lib/CodeGen/RegAllocFast.cpp
+56-371 files

LLVM/project ccf1638llvm/include/llvm/CodeGenTypes LowLevelType.h, llvm/lib/CodeGenTypes LowLevelType.cpp

[CodeGenTypes] Make LLT::ExtendedLLT atomic (#219546)
DeltaFile
+13-3llvm/include/llvm/CodeGenTypes/LowLevelType.h
+2-2llvm/lib/CodeGenTypes/LowLevelType.cpp
+15-52 files