LLVM/project 5d5d797 — llvm/lib/Support StringRef.cpp, llvm/unittests/ADT StringRefTest.cpp

[Support] Test StringRef::rfind(StringRef) across 16-byte chunk boundaries

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_0151E9ZnWSo9wtkhiXsH6ZKN
DeltaFile
+20-0llvm/unittests/ADT/StringRefTest.cpp
+3-6llvm/lib/Support/StringRef.cpp
+23-62 files

LLVM/project 76fdcae — mlir/lib/Dialect/Bufferization/Transforms OptimizeAllocationLiveness.cpp, mlir/test/Dialect/Bufferization/Transforms optimize-allocation-liveness.mlir

[mlir][bufferization] In OptimizeAllocationLiveliness optimize `dealloc` placement for unused `alloc`'s (#227975)

Addresses issue https://github.com/llvm/llvm-project/issues/227363

As of this PR (https://github.com/llvm/llvm-project/pull/229296). The
position of the `dealloc` was correctly, and safely moved within
`OptimizeAllocationLiveliness`.

Issue https://github.com/llvm/llvm-project/issues/227363 raises a missed
optimization where if the `alloc` is unused, and the only other
reference to that memory buffer is a `dealloc` the optimization is not
run. This PR fixes this.

When a `lastUser` does not exist, implying the `memref` is unused, we
can just hoist the `dealloc` to be as close to the `allocOp` as possible
DeltaFile
+17-0mlir/test/Dialect/Bufferization/Transforms/optimize-allocation-liveness.mlir
+8-7mlir/lib/Dialect/Bufferization/Transforms/OptimizeAllocationLiveness.cpp
+25-72 files

LLVM/project da074f2 — llvm/lib/Target/AVR AVRDevices.td, llvm/test/MC/AVR inst-ijmp.s inst-icall.s

[AVR] Allow ICALL and IJMP on the reduced cores (#241840)

This patch fix a crash when using function pointer on AVRTiny devices,
for which llvm would emit `icall`.

Signed-off-by: Mintsuki <mintsuki at protonmail.com>
DeltaFile
+2-2llvm/lib/Target/AVR/AVRDevices.td
+2-0llvm/test/MC/AVR/inst-ijmp.s
+2-0llvm/test/MC/AVR/inst-icall.s
+6-23 files

LLVM/project 080bb04 — llvm/include/llvm/IR AutoUpgrade.h, llvm/lib/AsmParser LLParser.cpp

[AutoUpgrade] Add textual IR upgrade of alias scope domains (#241786)

Alias scope domains that have no disjointness flag are implicitly
non-disjoint. Bitcode upgrade functionality was already in #218768; we
move it from `MetadataLoader` to `AutoUpgrade`, to invoke it from
`LLParser::validateEndOfModule`. The alias scope lists are discovered by
iterating over the instructions in the module.

The existing upgrade test file can be used for both upgrade paths. The
test of the bitcode upgrade relied on a (non-upgrading) llvm-as
translation of the textual source; this is replaced by a checked-in
bitcode translation (made using LLVM 21.1.8).
DeltaFile
+113-0llvm/lib/IR/AutoUpgrade.cpp
+1-79llvm/lib/Bitcode/Reader/MetadataLoader.cpp
+14-0llvm/include/llvm/IR/AutoUpgrade.h
+7-1llvm/test/Bitcode/upgrade-alias-scope-domains.ll
+1-0llvm/lib/AsmParser/LLParser.cpp
+0-0llvm/test/Bitcode/upgrade-alias-scope-domains.ll.bc
+136-806 files

LLVM/project bac143f — lldb/source/Core FormatEntity.cpp, lldb/test/API/functionalities/return-value-synthetic Makefile synthetic.py

Revert "Reapply "[lldb] Show synthetic children in the return value of the thread (#241947)" (#242219)

Reverts llvm/llvm-project#242173
DeltaFile
+0-26lldb/test/API/functionalities/return-value-synthetic/TestReturnValueSynthetic.py
+0-14lldb/test/API/functionalities/return-value-synthetic/main.c
+0-9lldb/test/API/functionalities/return-value-synthetic/synthetic.py
+1-7lldb/source/Core/FormatEntity.cpp
+0-3lldb/test/API/functionalities/return-value-synthetic/Makefile
+1-595 files

LLVM/project 1103c35 — llvm/lib/Transforms/InstCombine InstructionCombining.cpp

[InstCombine] Clarify fixpoint error message (NFC) (#241889)

Give more detailed instructions on what to do when encountering this
error. Emphasize that no issue should be filed.
DeltaFile
+8-3llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
+8-31 files

LLVM/project 2ce1a5a — lldb/source/Core FormatEntity.cpp, lldb/test/API/functionalities/return-value-synthetic Makefile synthetic.py

Revert "Reapply "[lldb] Show synthetic children in the return value of the th…"

This reverts commit 8de2ab5d16bcbd3f4525227abd784d0f26ae6598.
DeltaFile
+0-26lldb/test/API/functionalities/return-value-synthetic/TestReturnValueSynthetic.py
+0-14lldb/test/API/functionalities/return-value-synthetic/main.c
+0-9lldb/test/API/functionalities/return-value-synthetic/synthetic.py
+1-7lldb/source/Core/FormatEntity.cpp
+0-3lldb/test/API/functionalities/return-value-synthetic/Makefile
+1-595 files

LLVM/project f3c1e4f — mlir/lib/Dialect/Bufferization/Transforms BufferViewFlowAnalysis.cpp, mlir/test/Dialect/Bufferization/Transforms optimize-allocation-liveness.mlir

[mlir][bufferization] Narrow the call aliasing rule in BufferViewFlowAnalysis to memrefs (#240508)

In `BufferViewFlowAnalysis`, a call op's results are unconditionally
treated as possible views of its operands, regardless of their types.

This change narrows the rule to memrefs: a result is a possible view of
an operand only when both are memrefs. This rule is consistent with the
rest of the analysis, which recognizes only memrefs as buffers.

Without it, `optimize-allocation-liveness` counts a use of a call's
scalar result as a use of the buffer the call received, and places the
dealloc after that use instead of after the call.

Before #229296 the pass moved the free past the `func.return` on the new
test case and produced invalid IR.

Assisted-by: Claude

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+22-0mlir/test/Dialect/Bufferization/Transforms/optimize-allocation-liveness.mlir
+6-3mlir/lib/Dialect/Bufferization/Transforms/BufferViewFlowAnalysis.cpp
+28-32 files

LLVM/project 01b332c — lld/MachO MarkLive.cpp

Store the thread count in MarkLive::numThreads

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_0151E9ZpY6Krqg1C84uMobNg
DeltaFile
+3-3lld/MachO/MarkLive.cpp
+3-31 files

LLVM/project 55b516b — llvm/test/Instrumentation/MemorySanitizer msan_kernel_basic.ll, llvm/test/Instrumentation/MemorySanitizer/PowerPC32 kernel-ppcle.ll

[IRBuilder] Always create at least one GEP in CreateGEP() (#241925)

This makes the behavior more consistent with CreatePtrAdd etc, which
will not implicit drop a zero-offset ptradd. This will avoid additional
churn when switching callers to CreatePtrAdd in the future.

This also reduces the risk of breaking caller assumptions, in particular
that CreateGEP will always return either a constant or a
GetElementPtrInst (unless InstSimplifyFolder is used).
DeltaFile
+33-20llvm/test/Instrumentation/MemorySanitizer/msan_kernel_basic.ll
+25-15llvm/test/Instrumentation/MemorySanitizer/PowerPC32/kernel-ppcle.ll
+15-12llvm/test/Transforms/InterleavedAccess/X86/interleaved-accesses-64bits-avx.ll
+15-12llvm/test/Transforms/InterleavedAccess/X86/interleaved-accesses-64bits-avx-inseltpoison.ll
+13-10llvm/test/Transforms/InterleavedAccess/X86/interleavedLoad.ll
+13-10llvm/test/Transforms/InterleavedAccess/X86/interleavedLoad-inseltpoison.ll
+114-794 files not shown
+127-8210 files

LLVM/project 10f5ec9 — llvm/unittests/ADT StringRefTest.cpp

[Support] Test StringRef::rfind(StringRef) across 16-byte chunk boundaries

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_0151E9ZnWSo9wtkhiXsH6ZKN
DeltaFile
+20-0llvm/unittests/ADT/StringRefTest.cpp
+20-01 files

LLVM/project 67cc849 — lld/MachO MarkLive.cpp

Make addLiveSupport non-virtual

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_0151E9ZpY6Krqg1C84uMobNg
DeltaFile
+8-8lld/MachO/MarkLive.cpp
+8-81 files

LLVM/project 5dabc01 — llvm/test/MachineVerifier/AMDGPU verify-scale-offset.mir

[AMDGPU] Add tests for scale_offset machine verifier. NFC (#241469)
DeltaFile
+22-0llvm/test/MachineVerifier/AMDGPU/verify-scale-offset.mir
+22-01 files

LLVM/project 907a685 — llvm/unittests/ADT StringRefTest.cpp

[Support] Test StringRef::rfind(StringRef) across 16-byte chunk boundaries

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_0151E9ZnWSo9wtkhiXsH6ZKN
DeltaFile
+20-0llvm/unittests/ADT/StringRefTest.cpp
+20-01 files

LLVM/project c36007e — llvm/lib/Target/LoongArch LoongArchISelLowering.cpp

[LoongArch][NFC] Move XOR combine into performXORCombine (#242151)

Extract the inline ISD::XOR handling in PerformDAGCombine into a
dedicated performXORCombine helper, matching how the other opcodes (AND,
OR, SETCC, ...) are structured. No functional change.

Also fix a clang-format issue in emitPseudoVMSKCOND.

Assisted-By: LLM
DeltaFile
+34-33llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+34-331 files

LLVM/project e9fc26d — clang/test/CodeGen/AArch64/sve rinti.c, clang/test/CodeGen/AArch64/sve-intrinsics acle_sve_rinti.c

[clang][CIR] Add tests for SVE RINTI intrinsics (#240757)

adds CIR tests for svrinti (plain SVE) intrinsics.

Moves and adapts `sve-intrinsics/acle_sve_rinti.c` to `sve/rinti.c`

Part of #223963
DeltaFile
+187-0clang/test/CodeGen/AArch64/sve/rinti.c
+0-176clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_rinti.c
+187-1762 files

LLVM/project 44f5dc1 — clang/test/CodeGen/AArch64/sve rintx.c, clang/test/CodeGen/AArch64/sve-intrinsics acle_sve_rintx.c

[clang][CIR] Add tests for SVE RINTX intrinsics (#241369)

adds CIR tests for svrintx (plain SVE) intrinsics.

Move sve-intrinsics/acle_sve_rintx.c to sve/rintx.c and add
CIR checks for all f16/f32/f64 variants with _z/_m/_x predication.

Part of #223963.

Co-authored-by: Ente Wang <ente.wang at h-partners.com>
DeltaFile
+187-0clang/test/CodeGen/AArch64/sve/rintx.c
+0-176clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_rintx.c
+187-1762 files

LLVM/project 5612325 — llvm/include/llvm/IR ConstantRange.h, llvm/lib/IR ConstantRange.cpp

[ConstantRange] Handle llvm.{sshl,ushl}.sat (#242178)

Wire up ConstantRange::intrinsic() to sshl_sat and ushl_sat, restricting
their shift range to [0, BitWidth).

Alive2: https://alive2.llvm.org/ce/z/9WSZqW
DeltaFile
+87-0llvm/test/Transforms/CorrelatedValuePropagation/range.ll
+70-0llvm/test/Transforms/SCCP/intrinsics.ll
+21-3llvm/lib/IR/ConstantRange.cpp
+10-2llvm/unittests/IR/ConstantRangeTest.cpp
+4-2llvm/include/llvm/IR/ConstantRange.h
+192-75 files

LLVM/project c905c39 — lld/MachO MarkLive.cpp

Add live-support sections through MarkLive::addLiveSupport

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_0151E9ZpY6Krqg1C84uMobNg
DeltaFile
+17-18lld/MachO/MarkLive.cpp
+17-181 files

LLVM/project bb46bf0 — lld/MachO MarkLive.cpp

[lld-macho] Collect S_ATTR_LIVE_SUPPORT sections with the markLive roots

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
Claude-Session: https://claude.ai/code/session_0151E9Zq69e8fCB8jwD3kGLe
DeltaFile
+20-8lld/MachO/MarkLive.cpp
+20-81 files

LLVM/project 649d4ed — llvm/lib/Target/AArch64/GISel AArch64RegisterBankInfo.cpp

drop unused declaration
DeltaFile
+0-7llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
+0-71 files

LLVM/project 04e99b4 — flang/include/flang/Evaluate variable.h expression.h, flang/include/flang/Semantics type.h

[flang] Check the kind of subscript, bound, extent, and length expressions (#239633)

Expr<SubscriptInteger> no longer encodes the kind in its type, so
nothing guarantees anymore that subscripts, triplets, substring bounds,
cosubscripts, array bounds, extents, and character lengths have kind
SubscriptIntegerKind. Add IsSubscriptIntegerKind() helpers and CHECK the
kind where such expressions are stored, so that a missing conversion is
caught in the front end instead of surfacing later in lowering.
DeltaFile
+19-1flang/lib/Evaluate/variable.cpp
+10-0flang/include/flang/Evaluate/expression.h
+7-0flang/lib/Evaluate/shape.cpp
+4-2flang/lib/Evaluate/characteristics.cpp
+4-1flang/include/flang/Semantics/type.h
+1-2flang/include/flang/Evaluate/variable.h
+45-64 files not shown
+52-610 files

LLVM/project 709400e — mlir/include/mlir/Dialect/LLVMIR NVVMOps.td, mlir/lib/Dialect/LLVMIR/IR NVVMDialect.cpp

[MLIR][NVVM] Add support for scaled n1 ue8m0 and ue5m3 packed Convert Ops (#239189)

This patch adds support for `scaled::n1::ue8m0` to existing
`f32/f16x2/bf16x2`
to `FP8` (`e4m3x2`, `e5m2x2`), `FP6` (`e2m3x2`, `e3m2x2`) and 
`FP4` (`e2m1x2`) convert Ops.

This also adds support for `ue5m3x2` to `f16x2/bf16x2` and 
`ff/f16/bf16` to `ue5m3` in existing convert Ops.

Lit tests are added to verify the lowering to the intrinsics. 
Negative tests are also added to check the error-handling of invalid
combinations.

PTX ISA Reference:
https://docs.nvidia.com/cuda/parallel-thread-execution/index.html#data-movement-and-conversion-instructions-cvt

---------

Signed-off-by: DharuniRAcharya <dharunira at nvidia.com>
DeltaFile
+460-154mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
+119-42mlir/test/Target/LLVMIR/nvvm/convert_fp6x2.mlir
+78-60mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
+114-24mlir/test/Target/LLVMIR/nvvm/convert_fp4x2.mlir
+113-0mlir/test/Target/LLVMIR/nvvm/convert_ue5m3_invalid.mlir
+106-0mlir/test/Target/LLVMIR/nvvm/convert_ue5m3.mlir
+990-2804 files not shown
+1,101-28710 files

LLVM/project 13e99a6 — llvm/lib/Target/AArch64/GISel AArch64RegisterBankInfo.cpp

remove G_BITCAST in getInstrAlternativeMappings
DeltaFile
+0-49llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
+0-491 files

LLVM/project 83d825c — llvm/test/CodeGen/LoongArch/lasx scalar-load-to-vector.ll, llvm/test/CodeGen/LoongArch/lsx scalar-load-to-vector.ll

update after rebase
DeltaFile
+11-11llvm/test/CodeGen/LoongArch/lasx/scalar-load-to-vector.ll
+9-9llvm/test/CodeGen/LoongArch/lsx/scalar-load-to-vector.ll
+2-2llvm/test/CodeGen/LoongArch/lsx/ir-instruction/uitofp.ll
+2-2llvm/test/CodeGen/LoongArch/lsx/ir-instruction/sitofp.ll
+24-244 files

LLVM/project b1b0376 — llvm/include/llvm/Transforms/Utils AssumeBundleBuilder.h, llvm/lib/Passes PassRegistry.def PassBuilderPipelines.cpp

[Transforms] Remove AssumeSimplify pass (#241939)

This removes the AssumeSimplify pass, which is part of the
KnowledgeRetention framework and not enabled by default.

Our general direction has been to instead simplify assumes directly as
part of other passes like InstCombine instead, and we generally don't
plan to further pursue the KnowledgeRetention framework in its current
form, so this deletes the pass.

If we wanted to have a dedicated assume simplification pass, we would
reimplement it from scratch without using KnowledgeRetention APIs
anyway.
DeltaFile
+0-332llvm/test/Transforms/Util/assume-simplify.ll
+0-247llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp
+0-205llvm/test/Transforms/Util/assume-builder.ll
+0-6llvm/include/llvm/Transforms/Utils/AssumeBundleBuilder.h
+0-3llvm/lib/Passes/PassBuilderPipelines.cpp
+0-1llvm/lib/Passes/PassRegistry.def
+0-7946 files

LLVM/project 6cc503d — llvm/include/llvm/Target LastSubtargetCache.h, llvm/lib/Target/X86 X86TargetMachine.h X86TargetMachine.cpp

X86: Reuse the last subtarget for functions with same attributes

Add a utility for caching subtarget lookups. This returns the last
subtarget without building the subtarget key if the function has the
same attributes or same subtarget-relevant attributes as the last
query. RISCV and AArch64 already do something similar, and this
utility should be adopted across the targets (customized to the
relevant attributes). Also find the subtarget attributes in one
scan.

CTMark instructions executed, geomean: O3 -0.26%, ThinLTO -0.26%.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+61-0llvm/include/llvm/Target/LastSubtargetCache.h
+39-16llvm/lib/Target/X86/X86TargetMachine.cpp
+15-0llvm/lib/Target/X86/X86TargetMachine.h
+115-163 files

LLVM/project 2be5005 — llvm/include/llvm/ADT APFloat.h, llvm/lib/Support APFloat.cpp

[APFloat] Support user defined bit conversions (#240920)

[APFloat] Support user provided conversion to/from bits

This change allows users to provide custom functions to convert to/from
bits.

- fltSemantics has function pointers for conversion and user provided
values of it are supported
- built-in semantics also use these instead of chained if, making the
code less repetitive and slightly faster
- APFloat/IEEFloat internals like types and ranges of significand,
mantissa etc. can only be accessed using FloatRepr interface so only
user defined bitcast functions will be affected by changes

Resubmitted #233961 with fixes for GCC 7
DeltaFile
+405-352llvm/lib/Support/APFloat.cpp
+343-3llvm/unittests/ADT/APFloatTest.cpp
+91-62llvm/include/llvm/ADT/APFloat.h
+839-4173 files

LLVM/project 841a91d — llvm/test/CodeGen/LoongArch/lasx rotl-rotr.ll, llvm/test/CodeGen/LoongArch/lsx rotl-rotr.ll

update tests
DeltaFile
+2-6llvm/test/CodeGen/LoongArch/lasx/rotl-rotr.ll
+2-4llvm/test/CodeGen/LoongArch/lsx/rotl-rotr.ll
+4-102 files

LLVM/project c9a98cb — llvm/test/CodeGen/LoongArch/lasx scalar-to-vector.ll build-vector.ll, llvm/test/CodeGen/LoongArch/lasx/ir-instruction insertelement.ll

update tests
DeltaFile
+10-40llvm/test/CodeGen/LoongArch/lasx/build-vector.ll
+7-19llvm/test/CodeGen/LoongArch/lsx/build-vector.ll
+4-6llvm/test/CodeGen/LoongArch/lasx/ir-instruction/insertelement.ll
+4-4llvm/test/CodeGen/LoongArch/lsx/scalar-to-vector.ll
+4-4llvm/test/CodeGen/LoongArch/lasx/scalar-to-vector.ll
+29-735 files