LLVM/project eefb335llvm/include/llvm/Support GenericLoopInfoImpl.h GenericLoopInfo.h, llvm/lib/Transforms/Scalar LoopInterchange.cpp

[LoopInfo] Merge changeTopLevelLoop and replaceChildLoopWith. NFC (#221503)

Both replace a loop among its siblings with a new one.
DeltaFile
+11-14llvm/include/llvm/Support/GenericLoopInfo.h
+0-17llvm/include/llvm/Support/GenericLoopInfoImpl.h
+1-4llvm/lib/Transforms/Utils/LoopSimplify.cpp
+1-1llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+13-364 files

LLVM/project 10d3708llvm/include/llvm/Analysis ScalarEvolution.h, llvm/lib/Analysis ScalarEvolution.cpp

[IndVarSimplify] Batch forgetValue calls in sinkUnusedInvariants (#219025)

It looks like every `forgetValue` clears the cached SCEV for an
instruction and everything downstream of it, by walking its def-use
children in `visitAndClearUsers` / `PushDefUseChildren` with a fresh
`Visited` each call. Since `sinkUnusedInvariants` calls `forgetValue`
once per sunk instruction, the overlapping users get re-walked over and
over, so it ends up $O(n^2)$.
```cpp
void ScalarEvolution::forgetValue(Value *V) {
  SmallPtrSet<Instruction *, 8> Visited;
  visitAndClearUsers(Worklist, Visited, ToForget);
  ...
}

// visitAndClearUsers
while (!Worklist.empty()) {
  Instruction *I = Worklist.pop_back_val();
  ...

    [23 lines not shown]
DeltaFile
+13-0llvm/lib/Analysis/ScalarEvolution.cpp
+5-1llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
+4-0llvm/include/llvm/Analysis/ScalarEvolution.h
+22-13 files

LLVM/project 25348f5llvm/docs/CommandGuide llc.md, llvm/include/llvm/Target TargetOptions.h

CodeGen: Remove TargetOptions::NoTrappingFPMath (#221429)

This was replaced by the no-trapping-math attribute.
The one ARMAsmPrinter use already accounts for it.

no-trapping-math should probably replaced by !strictfp, but that's
another problem.
DeltaFile
+33-0llvm/test/CodeGen/ARM/eabi-attribute-no-trapping-math.ll
+0-9llvm/lib/CodeGen/CommandFlags.cpp
+1-6llvm/include/llvm/Target/TargetOptions.h
+0-4llvm/docs/CommandGuide/llc.md
+1-3llvm/test/CodeGen/ARM/build-attributes.ll
+1-2llvm/lib/Target/ARM/ARMAsmPrinter.cpp
+36-241 files not shown
+36-267 files

LLVM/project 50ba64allvm/docs/CommandGuide llc.md, llvm/include/llvm/Target TargetOptions.h

CodeGen: Remove TargetOptions::NoTrappingFPMath

This was replaced by the no-trapping-math attribute.
The one ARMAsmPrinter use already accounts for it.

no-trapping-math should probably replaced by !strictfp, but that's
another problem.
DeltaFile
+33-0llvm/test/CodeGen/ARM/eabi-attribute-no-trapping-math.ll
+0-9llvm/lib/CodeGen/CommandFlags.cpp
+1-6llvm/include/llvm/Target/TargetOptions.h
+0-4llvm/docs/CommandGuide/llc.md
+1-3llvm/test/CodeGen/ARM/build-attributes.ll
+1-2llvm/lib/Target/ARM/ARMAsmPrinter.cpp
+36-241 files not shown
+36-267 files

LLVM/project cb25e7cmlir/cmake/modules AddMLIRPython.cmake

[MLIR][Python] Pass -Wno-unused-template to nanobind build

As with a lot of other warnings, the nanobind build is also not clean
under -Wunused-template. This was enabled by default for clang 23
(although reverted for 23.1.1). Disable it in case it gets enabled again
and also in case anyone enables it manually.

Reviewers: joker-eph, makslevental, dcaballe

Pull Request: https://github.com/llvm/llvm-project/pull/221479
DeltaFile
+2-0mlir/cmake/modules/AddMLIRPython.cmake
+2-01 files

LLVM/project dd4a3eblldb/tools/lldb-fuzzer/lldb-target-fuzzer target.dict, llvm/test/CodeGen/AMDGPU div_i128.ll select-undef.ll

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+108-72llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-select.mir
+52-0lldb/tools/lldb-fuzzer/lldb-target-fuzzer/target.dict
+0-42llvm/test/Transforms/SLPVectorizer/AMDGPU/inst-count-heuristic.ll
+28-0llvm/test/Transforms/Attributor/nofpclass-bitcast-int-to-fp.ll
+23-0llvm/test/CodeGen/AMDGPU/select-undef.ll
+12-8llvm/test/CodeGen/AMDGPU/div_i128.ll
+223-1228 files not shown
+244-13814 files

LLVM/project 76aa59dclang-tools-extra/docs/clang-tidy/checks/readability non-const-parameter.md redundant-control-flow.md

[clang-tidy][docs] Rewrite readability check docs to Markdown [3/5]
DeltaFile
+98-101clang-tools-extra/docs/clang-tidy/checks/readability/qualified-auto.md
+49-50clang-tools-extra/docs/clang-tidy/checks/readability/named-parameter.md
+47-50clang-tools-extra/docs/clang-tidy/checks/readability/operators-representation.md
+34-37clang-tools-extra/docs/clang-tidy/checks/readability/redundant-access-specifiers.md
+34-34clang-tools-extra/docs/clang-tidy/checks/readability/redundant-control-flow.md
+32-34clang-tools-extra/docs/clang-tidy/checks/readability/non-const-parameter.md
+294-3064 files not shown
+380-39810 files

LLVM/project 5d1e048clang-tools-extra/docs/clang-tidy/checks/readability named-parameter.rst named-parameter.md

[clang-tidy][docs] Rename readability check docs to Markdown [3/5]
DeltaFile
+0-141clang-tools-extra/docs/clang-tidy/checks/readability/qualified-auto.rst
+141-0clang-tools-extra/docs/clang-tidy/checks/readability/qualified-auto.md
+0-87clang-tools-extra/docs/clang-tidy/checks/readability/operators-representation.rst
+87-0clang-tools-extra/docs/clang-tidy/checks/readability/operators-representation.md
+0-73clang-tools-extra/docs/clang-tidy/checks/readability/named-parameter.rst
+73-0clang-tools-extra/docs/clang-tidy/checks/readability/named-parameter.md
+301-30114 files not shown
+612-61220 files

LLVM/project a65eb87mlir/lib/Dialect/SCF/IR SCF.cpp, mlir/test/Dialect/SCF canonicalize.mlir

[mlir][scf] Fix WhileMoveIfDown with duplicated scf.condition operands (#219458)
DeltaFile
+41-0mlir/test/Dialect/SCF/canonicalize.mlir
+17-9mlir/lib/Dialect/SCF/IR/SCF.cpp
+58-92 files

LLVM/project 509dc38clang/lib/CodeGen BackendUtil.cpp, llvm/include/llvm/MC MCTargetOptions.h

MC: Move BinutilsVersion from TargetOptions to MCTargetOptions (#221435)
DeltaFile
+10-0llvm/lib/MC/MCTargetOptions.cpp
+0-9llvm/lib/Target/TargetMachine.cpp
+8-0llvm/include/llvm/MC/MCTargetOptions.h
+3-2clang/lib/CodeGen/BackendUtil.cpp
+0-4llvm/include/llvm/Target/TargetOptions.h
+2-2llvm/tools/llc/llc.cpp
+23-173 files not shown
+25-229 files

LLVM/project 116c6b5clang/lib/AST/ByteCode Compiler.cpp, clang/test/AST/ByteCode initializer_list.cpp

[clang][bytecode] Add missing condition scope to CXXForRangeStmt (#221520)

Fixes https://github.com/llvm/llvm-project/issues/221401
DeltaFile
+26-1clang/test/AST/ByteCode/initializer_list.cpp
+3-0clang/lib/AST/ByteCode/Compiler.cpp
+29-12 files

LLVM/project 2be71ecclang-tools-extra/docs/clang-tidy/checks/readability isolate-declaration.md implicit-bool-conversion.md

[clang-tidy][docs] Rewrite readability check docs to Markdown [2/5]
DeltaFile
+2,189-2,212clang-tools-extra/docs/clang-tidy/checks/readability/identifier-naming.md
+118-117clang-tools-extra/docs/clang-tidy/checks/readability/identifier-length.md
+110-108clang-tools-extra/docs/clang-tidy/checks/readability/function-cognitive-complexity.md
+84-94clang-tools-extra/docs/clang-tidy/checks/readability/implicit-bool-conversion.md
+88-90clang-tools-extra/docs/clang-tidy/checks/readability/magic-numbers.md
+63-66clang-tools-extra/docs/clang-tidy/checks/readability/isolate-declaration.md
+2,652-2,6874 files not shown
+2,794-2,83210 files

LLVM/project b82c4c7clang-tools-extra/docs/clang-tidy/checks/readability implicit-bool-conversion.rst implicit-bool-conversion.md

[clang-tidy][docs] Rename readability check docs to Markdown [2/5]
DeltaFile
+0-3,287clang-tools-extra/docs/clang-tidy/checks/readability/identifier-naming.rst
+3,287-0clang-tools-extra/docs/clang-tidy/checks/readability/identifier-naming.md
+0-166clang-tools-extra/docs/clang-tidy/checks/readability/function-cognitive-complexity.rst
+166-0clang-tools-extra/docs/clang-tidy/checks/readability/function-cognitive-complexity.md
+0-164clang-tools-extra/docs/clang-tidy/checks/readability/implicit-bool-conversion.rst
+164-0clang-tools-extra/docs/clang-tidy/checks/readability/implicit-bool-conversion.md
+3,617-3,61714 files not shown
+4,245-4,24520 files

LLVM/project 89b97e9llvm/lib/Target/RISCV RISCVInstrInfoXwch.td, llvm/test/MC/RISCV xwchc-valid.s

[RISC-V] Use an optional offset for Xwch instructions

Following up on the previous commits to remove unnecessary InstAlias.

This commit was prepared with the help of AI.

Reviewed By: lenary, ArcaneNibble

Pull Request: https://github.com/llvm/llvm-project/pull/215005
DeltaFile
+12-25llvm/lib/Target/RISCV/RISCVInstrInfoXwch.td
+24-0llvm/test/MC/RISCV/xwchc-valid.s
+36-252 files

LLVM/project 78bacccclang/include/clang/Basic AttrDocs.td, llvm/test/CodeGen/AArch64 vector-ldst-align-float.ll

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.8-beta.1-arichardson

[skip ci]
DeltaFile
+17,286-3,454llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-sve-instructions.s
+13,787-6,856llvm/test/tools/llvm-mca/AArch64/Cortex/C1Nano-sve-instructions.s
+9,921-0llvm/test/CodeGen/AArch64/vector-ldst-align-float.ll
+7,985-1,589llvm/test/tools/llvm-mca/AArch64/Cortex/C1Premium-neon-instructions.s
+6,355-3,146llvm/test/tools/llvm-mca/AArch64/Cortex/C1Nano-neon-instructions.s
+4,430-4,297clang/include/clang/Basic/AttrDocs.td
+59,764-19,34214,551 files not shown
+868,878-452,11214,557 files

LLVM/project 8e7fa6fllvm/lib/Target/RISCV RISCVInstrInfo.td RISCVInstrInfoXqci.td, llvm/test/MC/RISCV xqciio-invalid.s xqcilo-pseudos-invalid.s

[RISC-V] Use an optional offset for Xqc* instructions

Following up on the previous commits to remove unnecessary InstAlias.

This commit was prepared with the help of AI.

Reviewed By: lenary

Pull Request: https://github.com/llvm/llvm-project/pull/215002
DeltaFile
+14-78llvm/lib/Target/RISCV/RISCVInstrInfoXqci.td
+37-25llvm/test/MC/RISCV/xqcilsm-invalid.s
+11-17llvm/test/MC/RISCV/xqciio-invalid.s
+14-14llvm/test/MC/RISCV/xqcilo-pseudos-invalid.s
+6-0llvm/lib/Target/RISCV/RISCVInstrInfo.td
+82-1345 files

LLVM/project e16901cclang/lib/AST/ByteCode Compiler.cpp

[clang][bytecode] Use IsNonNull opcode in CXXNewExpr (#221515)

Instead of emitting a null pointer and checking that for equality.
DeltaFile
+2-4clang/lib/AST/ByteCode/Compiler.cpp
+2-41 files

LLVM/project 03ff69fclang/lib/AST/ByteCode Compiler.cpp

[clang][bytecode] Do pointer-to-bool convesions without classify() (#221516)
DeltaFile
+6-5clang/lib/AST/ByteCode/Compiler.cpp
+6-51 files

LLVM/project ad426edclang-tools-extra/docs/clang-tidy/checks/readability else-after-return.md

Update clang-tools-extra/docs/clang-tidy/checks/readability/else-after-return.md

Co-authored-by: EugeneZelenko <eugene.zelenko at gmail.com>
DeltaFile
+1-1clang-tools-extra/docs/clang-tidy/checks/readability/else-after-return.md
+1-11 files

LLVM/project 72417ebllvm/lib/Target/Xtensa CMakeLists.txt

[Xtensa] Depend on CodeGenTypes to fix BUILD_SHARED_LIBS=on build (#221511)
DeltaFile
+1-0llvm/lib/Target/Xtensa/CMakeLists.txt
+1-01 files

LLVM/project bf085faclang/lib/AST/ByteCode Record.h

[clang][bytecode] Cache Is(Unnamed)BitFields bools in `Record::Field` (#221392)

We need to query those a lot and we can save them in the padding bytes
of `Record::Field`.
DeltaFile
+8-3clang/lib/AST/ByteCode/Record.h
+8-31 files

LLVM/project ad9259cclang-tools-extra/include-cleaner/unittests WalkASTTest.cpp

[include-cleaner] Add WalkAST unit tests for Objective-C constructs (#220763)

Adds test coverage for walking AST nodes related to:
- Objective-C interface inheritance (`@interface Derived : Base`)
- Forward class and protocol declarations (`@class` and `@protocol`)
- Objective-C interface types used as function arguments

This is just to make sure that current code is covered. No new features.
DeltaFile
+48-0clang-tools-extra/include-cleaner/unittests/WalkASTTest.cpp
+48-01 files

LLVM/project 012428cllvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 divrem-by-select.ll masked-urem.ll

[X86] Lower i64 vector division and remainder through float division (#215043)

Follow up to #205263 which handled i8/i16/i32.

i64 needs a different algorithm because f64 cannot hold a 64 bit
quotient exactly. Instead of one divide the quotient is built from a
reciprocal and two rounded down multiplies plus a correction for the off
by one (https://sneller.ai/blog/avx512-int-div/). That needs the
directed rounding forms which only exist as 512 bit AVX512DQ
instructions, so the whole i64 path is gated on DQ and 512 bit types
being legal.

Operands that are provably narrow enough to fit the f64 mantissa skip
the chain entirely and take the same convert divide convert path as the
<=i32 case.

strictfp i64 uses the SAE forms the same way the <=i32 path does.

combineIntDivRem is now a small dispatcher over two helpers since the

    [4 lines not shown]
DeltaFile
+414-0llvm/test/CodeGen/X86/vector-idiv-i64.ll
+310-87llvm/test/CodeGen/X86/vector-idiv-sdiv-512.ll
+298-48llvm/test/CodeGen/X86/masked-udiv.ll
+292-48llvm/test/CodeGen/X86/masked-urem.ll
+189-123llvm/test/CodeGen/X86/divrem-by-select.ll
+195-75llvm/lib/Target/X86/X86ISelLowering.cpp
+1,698-3815 files not shown
+2,374-48011 files

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