LLVM/project 9c6e696 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 minbw-extract-trunc-nuw-user.ll

[SLP]Keep bitwidth if scalar users may become poison

Fixes #233068

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/233229
DeltaFile
+107-0llvm/test/Transforms/SLPVectorizer/X86/minbw-extract-trunc-nuw-user.ll
+41-0llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+148-02 files

LLVM/project fa12c62 — llvm/lib/IR ConstantFold.cpp, llvm/test/Assembler byte.ll

[ConstantFold] Don't fold all-ones `bitcast` to pointers
DeltaFile
+25-0llvm/test/Transforms/InstSimplify/bitcast-vector-fold.ll
+2-1llvm/lib/IR/ConstantFold.cpp
+3-0llvm/test/Assembler/byte.ll
+30-13 files

LLVM/project 0d5e274 — clang/test/CodeGenObjC gnustep2-wasm32-finally.m, llvm/test/CodeGen/Xtensa atomic-rmw.ll

Rebase

Created using spr 1.3.7
DeltaFile
+432-324llvm/test/Transforms/LoopVectorize/AArch64/sve2-histcnt.ll
+333-71llvm/test/Transforms/LoopVectorize/AArch64/gather-do-not-vectorize-addressing.ll
+170-170llvm/test/CodeGen/Xtensa/atomic-rmw.ll
+294-0clang/test/CodeGenObjC/gnustep2-wasm32-finally.m
+178-0llvm/test/Transforms/ExpandIRInsts/X86/expand-fp-convert-small.ll
+166-0llvm/test/Transforms/LoopVectorize/runtime-checks-hoist.ll
+1,573-565190 files not shown
+3,843-1,441196 files

LLVM/project f70209c — llvm/lib/IR ConstantFold.cpp, llvm/test/Transforms/InstCombine byte-cast-pairs.ll

[ConstantFold] Don't fold all-ones `bitcast` to pointers
DeltaFile
+31-0llvm/test/Transforms/InstSimplify/bitcast-vector-fold.ll
+8-0llvm/test/Transforms/InstCombine/byte-cast-pairs.ll
+2-1llvm/lib/IR/ConstantFold.cpp
+41-13 files

LLVM/project 43f2efc — llvm/lib/IR ConstantFold.cpp, llvm/test/Transforms/InstCombine byte-cast-pairs.ll

[IR] Don't fold all-ones `bitcast` to pointers

`FoldBitCast` folded any all-ones value to `getAllOnesValue(DestTy)`.
That asserts for pointers, which `bitcast bN to ptr` can now produce.
There is no pointer constant for an address without provenance, so keep
the cast.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
DeltaFile
+31-0llvm/test/Transforms/InstSimplify/bitcast-vector-fold.ll
+8-0llvm/test/Transforms/InstCombine/byte-cast-pairs.ll
+2-1llvm/lib/IR/ConstantFold.cpp
+41-13 files

LLVM/project 9a0f815 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPUtils.h SLPUtils.cpp

[SLP][modularisation][NFC] Move loop trip-count helpers to SLPUtils (#222614)

Move the BoUpSLP-independent helpers findInnermostNonInvariantLoop and
getLoopTripCount out of SLPVectorizer.cpp into the self-contained
SLPVectorizer/SLPUtils.{h,cpp} module. getLoopTripCount reads the
file-local
LoopAwareTripCount cl::opt, which stays static in SLPVectorizer.cpp and
is
passed to the moved helper as an explicit parameter. NFC.

Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
DeltaFile
+2-34llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+32-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
+11-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
+45-343 files

LLVM/project 71c7675 — lld/ELF Writer.cpp, lld/test/ELF randomize-section-padding.test x86-64-relax-jump-tables-eh-frame-hdr.s

[ELF] Move layout-changing transforms before address assignment (#232189)

finalizeAddressDependentContent assigns addresses, then
--randomize-section-padding and CFI jump table relaxation
(--branch-to-branch, implied by -O2) move input sections, so the first
fixed-point iteration computes address-dependent content from stale
addresses. Since #179089, EhFrameHeader::updateAllocSize caches the
.eh_frame_hdr search table; if no iteration changes anything, the loop
exits and the table keys no longer match the FDEs' initial_location.

Neither transform reads addresses, so run them before the first
assignAddresses. SHF_LINK_ORDER sections are now sorted by the relaxed
layout as well.

LLM-aided. Partially fix #226166

(cherry picked from commit 115554f90f920fc000234c2c247b8318d4e7d2d8)
DeltaFile
+22-0lld/test/ELF/x86-64-relax-jump-tables-eh-frame-hdr.s
+16-0lld/test/ELF/randomize-section-padding.test
+7-6lld/ELF/Writer.cpp
+45-63 files

LLVM/project d946f7b — llvm/lib/Target/PowerPC PPCInstrInfo.cpp, llvm/test/CodeGen/PowerPC cmp-opt-cr0-live.mir

[PowerPC] Don't let optimizeCompareInstr define CR0 while it is still live (#220999)

This replaces the compare-against-zero in
`PPCInstrInfo::optimizeCompareInstr` with the record form of the
instruction defining the compared register only when CR0 is dead at that
point, checked with `MachineBasicBlock::computeRegisterLiveness`
scanning to the end of the block.

Fixes #220996.

## Why

The conversion makes `MI` define CR0. CR0 can still be live there: the
`ANDI_rec_1_{EQ,GT}_BIT` pseudo expansion emits `ANDI_rec` followed by
COPYs of `$cr0eq`/`$cr0gt`, and nothing keeps those copies adjacent to
their `andi.` once other instructions are scheduled in between. A later
compare candidate sitting between an `andi.` and one of its copies gets
converted, clobbers CR0, and the copy then reads the wrong value — the
two flag tests swap conditions.

    [43 lines not shown]
DeltaFile
+72-0llvm/test/CodeGen/PowerPC/cmp-opt-cr0-live.mir
+19-0llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
+91-02 files

LLVM/project a5eac65 — clang/lib/CodeGen CGExpr.cpp, clang/test/CodeGen attr-counted-by-nested-structs.c attr-counted-by-issue200014.c

[Clang][counted_by] Load the count through unions by byte offset (#228309)

`getGEPIndicesToField()` indexed into a union with 0 and kept walking the
counter's struct field numbers, but the union's IR type is its largest
member, so the count was loaded from inside that member instead.

In Linux, `landlock_domain` hits this and FORTIFY panics on every nested
`landlock_restrict_self()` on kernel 7.3.0-rc5-next as of this writing.

I ran into this bug when trying to daily drive the aforementioned
kernel.

Below is a reduced version of `landlock_domain`. The `work` member
stands in for the kernel's `struct work_struct`, which is larger than the
anonymous struct holding the count, so it becomes the union's IR type.

```c
struct dom {
  void *rules[3];

    [21 lines not shown]
DeltaFile
+31-61clang/lib/CodeGen/CGExpr.cpp
+47-0clang/test/CodeGen/attr-counted-by-union-storage.c
+16-16clang/test/CodeGen/builtin-counted-by-ref.c
+11-11clang/test/CodeGen/attr-counted-by-issue200014.c
+4-4clang/test/CodeGen/attr-counted-by-nested-structs.c
+109-925 files

LLVM/project 0b295bc — clang/docs ReleaseNotes.md, clang/lib/Sema SemaTemplateDeduction.cpp

[clang] Treat pack-index-specifiers as non-deduced contexts (#232883)

Per C++26 [temp.deduct.type]p5.2, a pack-index-specifier is a
non-deduced context. Deduction against an unresolved PackIndexingType
used to fail with a bare IncompletePack result that carried no
parameter/argument info, so matching an explicit instantiation, explicit
specialization, or address-of against such a function template was
rejected, and emitting the resulting diagnostic crashed in
DiagnoseBadDeduction (assertion "no parameter found for incomplete
deduction result" in +asserts builds, null dereference otherwise).

A pack-index-specifier whose pack and index are fully substituted
canonicalizes to its selected type, so the PackIndexing case in
DeduceTemplateArgumentsByTypeMatch only ever sees unresolved ones;
returning Success there (deducing nothing) is all that is needed.

Fixes #232220
DeltaFile
+26-0clang/test/SemaCXX/cxx2c-pack-indexing.cpp
+9-10clang/lib/Sema/SemaTemplateDeduction.cpp
+6-0clang/docs/ReleaseNotes.md
+41-103 files

LLVM/project 7fe6f39 — llvm/lib/Analysis ConstantFolding.cpp, llvm/test/Transforms/InstSimplify load.ll

[ConstantFolding] Fold pointer loads from `ConstantByte` to `bitcast`
DeltaFile
+20-1llvm/test/Transforms/InstSimplify/load.ll
+20-0llvm/lib/Analysis/ConstantFolding.cpp
+40-12 files

LLVM/project 272757d — libcxx/include deque, libcxx/include/__vector container_traits.h

[libc++] Don't claim strong emplace guarantee for vector/deque of throwing-move types (#229686)

`__container_traits<vector>` and `__container_traits<deque>` set
`__emplacement_has_strong_exception_safety_guarantee` whenever `T` is
Cpp17CopyInsertable. [vector.modifiers]/2 and [deque.modifiers]/3 only
guarantee "no effects" for an insertion at the end (or at either end for
deque). An insertion in the middle move-constructs and move-assigns
existing elements, and exceptions from those operations are excluded
from the guarantee.

The flat containers use this trait in `__emplace_exact_pos` to decide
whether to clear themselves when an emplacement throws. Because the
trait
is too optimistic, they skip the clear and are left in a state that
breaks their invariants

This patch reports the strong guarantee only when `T` is nothrow move
constructible and nothrow move assignable. In that case the only
operations that can throw (allocation and constructing the new element)

    [11 lines not shown]
DeltaFile
+164-0libcxx/test/std/containers/container.adaptors/flat.map/flat.map.modifiers/emplace_throwing_element.pass.cpp
+89-0libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/emplace_throwing_element.pass.cpp
+6-3libcxx/include/__vector/container_traits.h
+4-4libcxx/test/libcxx/containers/container_traits.compile.pass.cpp
+5-1libcxx/include/deque
+268-85 files

LLVM/project 73bb020 — llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 pr233186.ll

[X86] supportedVectorShift - explicitly check vector element types instead of bitwidth bounds (#233218)

MVT has more types now, we can't just rely on the bitwidth - we need to
check the element types properly.

Fixes #233186
DeltaFile
+89-0llvm/test/CodeGen/X86/pr233186.ll
+10-5llvm/lib/Target/X86/X86ISelLowering.cpp
+99-52 files

LLVM/project 33632ff — clang/lib/Driver Driver.cpp, clang/test/Driver ftime-trace.cpp

[TimeProfiler][Clang] Add zstd-compressed time-trace output support (#228627)

Time trace JSON files can become very large (tens of megabytes) when
profiling with fine granularity (-ftime-trace-granularity=0) or verbose
output (-ftime-trace-verbose), while compressing by ~20x with zstd.

Add support for writing zstd-compressed time-trace output directly using
LLVM's existing llvm::compression facilities:
- Introduce llvm::TimeTraceCompression ({Infer, None, Zstd}) in
TimeProfiler.h and extend llvm::timeTraceProfilerInitialize and
llvm::timeTraceProfilerWrite to infer zstd compression from .zst/.zstd
file extensions via llvm::inferTimeTraceCompressionFromPath when set to
Infer.
- Add -ftime-trace-compress=<none|zstd|infer> driver and CC1 option to
explicitly control compression or infer it from the output filename.
- Update default output filename inference when -ftime-trace is used
without an explicit filename so compressed traces use a .json.zst
extension.

Assisted-by: Antigravity with Gemini
DeltaFile
+65-8llvm/lib/Support/TimeProfiler.cpp
+62-0llvm/unittests/Support/TimeProfilerTest.cpp
+14-4clang/lib/Driver/Driver.cpp
+15-3llvm/include/llvm/Support/TimeProfiler.h
+17-1clang/test/Driver/ftime-trace.cpp
+13-2clang/tools/driver/cc1_main.cpp
+186-185 files not shown
+212-1811 files

LLVM/project b52fb66 — llvm/test/Transforms/InstSimplify load.ll

[ConstantFolding] Add tests for pointer loads from `ConstantByte`
DeltaFile
+16-0llvm/test/Transforms/InstSimplify/load.ll
+16-01 files

LLVM/project 870624b — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPUtils.h SLPUtils.cpp

[SLP][modularisation][NFC] Move loop trip-count helpers to SLPUtils

Move the BoUpSLP-independent helpers findInnermostNonInvariantLoop and
getLoopTripCount out of SLPVectorizer.cpp into the self-contained
SLPVectorizer/SLPUtils.{h,cpp} module. getLoopTripCount reads the file-local
LoopAwareTripCount cl::opt, which stays static in SLPVectorizer.cpp and is
passed to the moved helper as an explicit parameter. NFC.

Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
DeltaFile
+2-34llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+32-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
+11-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
+45-343 files

LLVM/project 2c0a22d — clang/lib/CodeGen CGException.cpp CGObjCRuntime.cpp, clang/test/CodeGenObjC gnustep2-wasm32-finally.m

[CodeGen][Objective-C] Add WebAssembly `@finally` support (#218967)

This PR adds `@finally` support for WebAssembly codegen.

We reuse the existing `CodeGenFunction::FinallyInfo` infrastructure,
which essentially creates a catch-all handler around the try/catch. This
needs a slight adaptation for fit WebAssembly's exception model, where
the catch handlers are merged into a single catchpad.

Additionally, we now emit the rethrow function using the
`EmitNoreturnRuntimeCallOrInvoke` which avoids creating an unnecessary
continuation block here.

Co-authored-by: Hendrik Huebner <hhuebner at Hendriks-MacBook-Pro.local>
DeltaFile
+294-0clang/test/CodeGenObjC/gnustep2-wasm32-finally.m
+82-83clang/lib/CodeGen/CGObjCRuntime.cpp
+155-0clang/test/CodeGenObjCXX/wasm32-eh-objcxx.mm
+29-6clang/lib/CodeGen/CGException.cpp
+560-894 files

LLVM/project e3b7c6a — llvm/lib/CodeGen RegisterPressure.cpp, llvm/test/CodeGen/AMDGPU debug-value-scheduler-crash.mir schedule-pressure-unflagged-dead-physreg-def.mir

RegisterPressure: Detect dead physreg defs from LiveIntervals with lane masks

Extend the fix from #225079 to the lane mask tracking path used by
targets with subregister liveness. adjustLaneLiveness also needs to
force the physreg unit ranges to be computed to identify dead defs,
rather than taking the conservative default when they are not cached.

Without this, an overlapping physreg def missing a dead flag is
counted as a live def. Conservatively assuming it is live doesn't work
because PressureDiff disagrees with the tracker and fails the
EXPENSIVE_CHECKS consistency assert.

This avoids an ll asm test failing when LiveVariables removed; #233202
fixes the missing dead flag for that case. I had additional patches
which nearly eliminate all missing dead flags. Unless the verifier
enforces accurate dead flags, we still need to handle this edge case.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+30-0llvm/test/CodeGen/AMDGPU/schedule-pressure-unflagged-dead-physreg-def.mir
+6-4llvm/lib/CodeGen/RegisterPressure.cpp
+1-1llvm/test/CodeGen/AMDGPU/debug-value-scheduler-crash.mir
+37-53 files

LLVM/project 452106f — llvm/test/CodeGen/AMDGPU machine-scheduler-sink-trivial-remats.mir

AMDGPU: Mark unread physreg defs dead in a scheduler test

These registers defined by IMPLICIT_DEF but never read. Without the
dead flags, the pressure tracker assumes the uncached physreg units
are live out of the region. Ideally physreg dead flags would be
accurate, though this is currently not a verifier enforced rule. This
avoids some test churn in a future pressure tracking commit.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+11-11llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats.mir
+11-111 files

LLVM/project fe04b9b — llvm/lib/CodeGen ExpandIRInsts.cpp, llvm/test/Transforms/ExpandIRInsts/X86 expand-fp-convert-small.ll

[ExpandIRInsts] Don't take the half fast path for saturating fptoi (#232172)

Saturating conversions previously took the half fast path and now skip
it to use the full expansion.

Fixes #231384

Assisted-by: Claude Opus 5.5
DeltaFile
+178-0llvm/test/Transforms/ExpandIRInsts/X86/expand-fp-convert-small.ll
+1-1llvm/lib/CodeGen/ExpandIRInsts.cpp
+179-12 files

LLVM/project b7cdcb2 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPUtils.h SLPReductionUtils.h

[SLP][modularisation][NFC] Move getReductionInstr to SLPReductionUtils, getAggregateSize to SLPUtils (#222613)

Move the BoUpSLP-independent helpers getReductionInstr and
getAggregateSize
out of SLPVectorizer.cpp into the self-contained
SLPVectorizer/SLPReductionUtils.{h,cpp} module.

Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922
DeltaFile
+0-79llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+47-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPReductionUtils.cpp
+29-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
+9-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPReductionUtils.h
+5-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
+90-795 files

LLVM/project 6f4fe36 — llvm/lib/Target/AVR AVRTargetMachine.cpp AVRISelLowering.cpp, llvm/test/CodeGen/AVR/atomics swap.ll store.ll

AVR: Run AtomicExpand

Atomics wider than 16 bits were lowered to __sync_* calls. No AVR
runtime provides __sync_* or __atomic_*, but __sync_* requires a
lock-free implementation, which AVR cannot provide at those sizes.
Use the __atomic_* calls instead.

Alternatively it may be appropriate to change getDefaultThreadModel to
singlethread for avr so all atomics are lowered into non-atomic
sequences.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+2-2llvm/test/CodeGen/AVR/atomics/swap.ll
+2-2llvm/test/CodeGen/AVR/atomics/store.ll
+2-2llvm/test/CodeGen/AVR/atomics/load64.ll
+2-2llvm/test/CodeGen/AVR/atomics/load32.ll
+1-0llvm/lib/Target/AVR/AVRTargetMachine.cpp
+1-0llvm/lib/Target/AVR/AVRISelLowering.cpp
+10-86 files

LLVM/project 70a4494 — clang/include/clang/AST ASTContext.h, clang/lib/AST Decl.cpp ASTContext.cpp

[clang] Remove unused ASTContext::getInstantiatedFromStaticDataMember (NFC) (#233019)

The last caller was removed on August 6, 2013 in commit
39a1e507ff0bef4bd6b2fdbab4e38583d2679617.

This patch also removes the stale FIXME and the commented-out call in
VarDecl::getMemberSpecializationInfo that referred to it.

Assisted-by: Antigravity
DeltaFile
+0-8clang/lib/AST/ASTContext.cpp
+0-7clang/include/clang/AST/ASTContext.h
+0-2clang/lib/AST/Decl.cpp
+0-173 files

LLVM/project c19f3c0 — llvm/include/llvm/IR Attributes.td, llvm/utils/TableGen/Basic Attributes.cpp

[IR][TableGen] Remove unused ComplexStrAttr (NFC) (#233192)

The last use of ComplexStrAttr was removed on February 5, 2026 in
commit 2502e3b7badcaf2d911410978bf8f8638b363854.

This patch removes the ComplexStrAttr TableGen class along with the
ATTRIBUTE_COMPLEXSTR macro, which became unused as a result.

Assisted-by: Antigravity
DeltaFile
+0-3llvm/include/llvm/IR/Attributes.td
+0-1llvm/utils/TableGen/Basic/Attributes.cpp
+0-42 files

LLVM/project bbaed09 — clang/include/clang/AST DeclTemplate.h

[clang] Replace PointerUnion::dyn_cast with llvm::dyn_cast_if_present (NFC) (#233191)

PointerUnion::dyn_cast has been soft-deprecated in favor of
llvm::dyn_cast and llvm::dyn_cast_if_present.  This patch replaces the
former with llvm::dyn_cast_if_present in
FriendTemplateDecl::getFriendDecl.

This is the only place under clang/ where migrating to llvm::dyn_cast
would trigger an assertion failure during check-clang.

Assisted-by: Antigravity
DeltaFile
+1-1clang/include/clang/AST/DeclTemplate.h
+1-11 files

LLVM/project 6c3e3ad — llvm/lib/ExecutionEngine/MCJIT MCJIT.cpp, llvm/unittests/ExecutionEngine/MCJIT MCJITMultipleModuleTest.cpp

MCJIT: Set triple in modules without one from the JIT's triple

Fill in the triple when MCJIT takes a module, as is already done for
the data layout.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+20-0llvm/unittests/ExecutionEngine/MCJIT/MCJITMultipleModuleTest.cpp
+4-0llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp
+24-02 files

LLVM/project 3e96d54 — llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/lib/Transforms/Vectorize/SLPVectorizer SLPUtils.h SLPReductionUtils.h

[SLP][modularisation][NFC] Move getReductionInstr to SLPReductionUtils, getAggregateSize to SLPUtils

Move the reduction-root helper getReductionInstr out of SLPVectorizer.cpp
into the self-contained SLPVectorizer/SLPReductionUtils.{h,cpp} module.

getAggregateSize is not reduction-specific: its only user is
findBuildAggregate and it only computes the element count of a homogeneous
aggregate from its type. Move it to the generic SLPVectorizer/SLPUtils
module instead.

Part of the SLPVectorizer.cpp modularization effort:
https://discourse.llvm.org/t/modularizing-slpvectorizer-cpp/90922

Assisted by AI
DeltaFile
+0-79llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+47-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPReductionUtils.cpp
+29-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.cpp
+9-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPReductionUtils.h
+5-0llvm/lib/Transforms/Vectorize/SLPVectorizer/SLPUtils.h
+90-795 files

LLVM/project 29eff20 — llvm/include/llvm/Target Target.td

[TableGen][NFC] Fix stale header path in Target.td comment (#233015)

`TargetInstrInfo.h` now lives in `llvm/CodeGen/`, not `llvm/Target/`.

Comment-only change.
DeltaFile
+1-1llvm/include/llvm/Target/Target.td
+1-11 files

LLVM/project d88f91c — llvm/test/tools/UpdateTestChecks/update_llc_test_checks x86-mir-only.test, llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs x86_mir_only.ll x86_mir_only.ll.expected

[utils][UpdateLLCTestChecks] Fix broken update_llc_test_checks.py when trying to emit MIR (#233181)

When llc update checks trying to produce MIR, the script later calls an
assembly-output handler that was never initialized.
This fix will guard such cases, so mir checks will be generated by
`mir.add_mir_checks_for_function`.

Fixes: https://github.com/llvm/llvm-project/issues/233180

Signed-off-by: ZakyHermawan <zaky.hermawan9615 at gmail.com>
DeltaFile
+13-12llvm/utils/update_llc_test_checks.py
+13-0llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_mir_only.ll.expected
+12-0llvm/test/tools/UpdateTestChecks/update_llc_test_checks/x86-mir-only.test
+5-0llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/x86_mir_only.ll
+43-124 files

LLVM/project 1063bd5 — llvm/lib/CodeGen/SelectionDAG InstrEmitter.cpp, llvm/test/CodeGen/X86 inline-asm-default-clobbers.ll

SelectionDAG: Mark inline asm clobbers dead when an output covers the read

An inline asm clobber was only marked dead if no glued CopyFromReg
read an overlapping register. A read of an output register that
overlaps a wider clobber kept the whole clobber live, even though the
output def already provides the read value. For example,
"={a1},~{a[0:15]}" left the $agpr0_..._agpr15 clobber live.

Ignore glued reads fully covered by an output def of the asm,
producing the same flags LiveVariables would later add, with a live
def of the output and a dead def of the clobber.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+27-0llvm/test/CodeGen/X86/inline-asm-default-clobbers.ll
+23-3llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp
+50-32 files