LLVM/project 61df043llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/PhaseOrdering/AArch64 reassociate-fma-pairs.ll

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+274-67llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+98-110llvm/test/Transforms/SLPVectorizer/AArch64/loop-accumulator-reduction.ll
+22-41llvm/test/Transforms/SLPVectorizer/consecutive-access.ll
+31-30llvm/test/Transforms/SLPVectorizer/AArch64/fma-chain-no-alt-node-reduction.ll
+25-23llvm/test/Transforms/SLPVectorizer/AArch64/fmul-constant-lane-fmuladd-combine.ll
+17-17llvm/test/Transforms/PhaseOrdering/AArch64/reassociate-fma-pairs.ll
+467-28810 files not shown
+549-35816 files

LLVM/project 0273f1dllvm/test/CodeGen/ARM machine-outliner-stack-fixup-thumb.mir

Update CodeGen/ARM/machine-outliner-stack-fixup-thumb.mir
DeltaFile
+1-1llvm/test/CodeGen/ARM/machine-outliner-stack-fixup-thumb.mir
+1-11 files

LLVM/project 89c1bfallvm/lib/CodeGen MachineOutliner.cpp, llvm/test/CodeGen/AArch64 machine-outliner-operand-flags.mir

[AArch64][PAC] Reset `killed` operand flags in outlined functions

Presently, MachineOutliner does not take `killed` operand flags into
account when merging instruction sequences. While it sounds perfectly
reasonable not to inhibit merging of the instruction sequences that
only differ in `killed` flags (for N flags there is technically 2^N
valid ways to drop some subset of them), copying these flags from
an arbitrarily chosen representative instruction may result in
incorrect codegen of PAuth-related pseudo instructions on AArch64.

To keep `killed` flags conservatively correct as if `OUTLINED_FUNCTION`s
are virtually re-inserted at every call site, this patch takes the
simplest approach of resetting every `killed` flag inside the
outlined functions.
DeltaFile
+82-0llvm/test/CodeGen/AArch64/machine-outliner-operand-flags.mir
+1-0llvm/lib/CodeGen/MachineOutliner.cpp
+83-02 files

LLVM/project 0145adeclang/lib/AST/ByteCode Interp.h, clang/test/AST/ByteCode invalid.cpp

[clang][bytecode] Diagnose array-to-pointer-decays on unsized opaque pointers (#226027)
DeltaFile
+12-0clang/test/AST/ByteCode/invalid.cpp
+10-1clang/lib/AST/ByteCode/Interp.h
+22-12 files

LLVM/project d098bf2libc/src/__support/OSUtil/linux/syscall_wrappers renameat.h, libc/src/stdio renameat.h

[libc] Implement renameat in stdio (#225739)

Implement the standard POSIX.1-2008 / POSIX.1-2024 function renameat in
<stdio.h>.

Fixes #225679
DeltaFile
+99-0libc/test/src/stdio/renameat_test.cpp
+42-0libc/src/__support/OSUtil/linux/syscall_wrappers/renameat.h
+33-0libc/src/stdio/linux/renameat.cpp
+26-0libc/src/stdio/renameat.h
+23-0libc/test/src/stdio/CMakeLists.txt
+14-0libc/src/stdio/linux/CMakeLists.txt
+237-06 files not shown
+268-012 files

LLVM/project 896f344llvm/lib/Analysis ConstantFolding.cpp, llvm/test/Transforms/InstCombine vectorgep-crash.ll gep-vector.ll

[ConstantFolding] Use getGetElementPtr() overload accepting DataLayout (#226104)

To directly create the constant GEP in canonical form. The practical
effect is that we a) canonicalize vector GEPs and b) decline to
create a GEP which can't be represented in ptradd form (in the
constant_fold_custom_dl test due to a non-canonical index type).
DeltaFile
+5-3llvm/lib/Analysis/ConstantFolding.cpp
+3-3llvm/test/Transforms/InstCombine/gep-vector.ll
+5-1llvm/test/Transforms/InstCombine/gep-custom-dl.ll
+2-2llvm/test/Transforms/InstCombine/vectorgep-crash.ll
+15-94 files

LLVM/project e051f6dllvm/test/CodeGen/Generic sjlj-eh-prepare.ll, llvm/test/Transforms/SjLjEHPrepare sjlj-eh-prepare.ll

CodeGen: Move Generic sjlj test to Transforms

Test the IR-only SjLjEHPrepare pass in the dedicated pass test
directory. Also add the module flag so it is really triple
independent.
DeltaFile
+47-0llvm/test/Transforms/SjLjEHPrepare/sjlj-eh-prepare.ll
+0-44llvm/test/CodeGen/Generic/sjlj-eh-prepare.ll
+47-442 files

LLVM/project f96febaflang/lib/Optimizer/Transforms/CUDA CUFAddConstructor.cpp, flang/test/Fir/CUDA cuda-managed-descriptor-component.fir cuda-constructor-2.f90

[flang][cuda] Share the managed companion pointer across translation units (#225710)

A non-allocatable managed module variable is accessed through a
companion pointer in the `__nv_managed_data__` section, which the CUDA
runtime fills in with the unified memory address at module
initialization. Every translation unit referencing the variable emitted
its own internal pointer and registered it. The runtime populates only
the registration performed first for a given variable name (*), so every
other unit was left loading through a null pointer and crashed at run
time.

Emit a single pointer with external linkage instead. The unit defining
the variable emits the definition, zero-initialized and in
`__nv_managed_data__`, and registers it; a unit that only USEs the
variable emits a declaration and no registration, resolving to that
definition at link time.

(*) I verified this using the following reproducer:


    [31 lines not shown]
DeltaFile
+53-0flang/test/Fir/CUDA/cuda-managed-pointer-linkage.cuf
+36-13flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp
+40-2flang/test/Fir/CUDA/cuda-constructor-2.f90
+6-1flang/test/Fir/CUDA/cuda-managed-descriptor-component.fir
+135-164 files

LLVM/project 453900cllvm/test/CodeGen/X86 memset.ll, llvm/test/Transforms/LoopVectorize/X86 intrinsiccost.ll

[X86] Prepare bdver tests for TuningPrefer128Bit (#226103)

Ensure the check prefixes correctly handle XOP targets independently,
I've also reordered some of the tests so we can cleanly order the
eventual AVX128/AVX256/AVX512 checks

Help reduce the diff for #225838
DeltaFile
+269-99llvm/test/Transforms/LoopVectorize/X86/intrinsiccost.ll
+87-64llvm/test/CodeGen/X86/memset.ll
+17-83llvm/test/Transforms/SLPVectorizer/X86/fminnum.ll
+17-83llvm/test/Transforms/SLPVectorizer/X86/fmaxnum.ll
+10-10llvm/test/Transforms/SLPVectorizer/X86/fcopysign.ll
+10-10llvm/test/Transforms/SLPVectorizer/X86/fabs.ll
+410-3492 files not shown
+419-3588 files

LLVM/project 7a19120llvm/lib/Target/RISCV RISCVSubtarget.h RISCVTargetTransformInfo.cpp

[RISCV] Remove getMaxLMULForFixedLengthVectors. NFC

The value can no longer be overridden after https://github.com/llvm/llvm-project/pull/207312. Now there's nothing specific about it to fixed vectors, so just inline it.
DeltaFile
+0-6llvm/lib/Target/RISCV/RISCVSubtarget.cpp
+2-4llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+1-1llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
+0-1llvm/lib/Target/RISCV/RISCVSubtarget.h
+3-124 files

LLVM/project 36aa7eallvm/lib/Target/RISCV RISCVTargetTransformInfo.cpp

Use getTypeLegalizationCost
DeltaFile
+5-9llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
+5-91 files

LLVM/project fe66579clang/test/CodeGen/AArch64/sve dup.c, clang/test/CodeGen/AArch64/sve-intrinsics acle_sve_dup.c

[clang][AArch64] Consolidate codegen tests for SVE's DUP intrinsics (#223933)

This patch completes the migration of the tests from:

* clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_dup.c

to:

* clang/test/CodeGen/AArch64/sve/dup.c

`dup.c` covers all the cases previously tested by `acle_sve_dup.c`.
However, unlike `acle_sve_dup.c`, it was only tested as C. Add `-x c++`
RUN lines to provide the equivalent C++ coverage, including lowering
via CIR.
DeltaFile
+0-1,130clang/test/CodeGen/AArch64/sve-intrinsics/acle_sve_dup.c
+146-80clang/test/CodeGen/AArch64/sve/dup.c
+146-1,2102 files

LLVM/project 23cc19allvm/lib/Target/AMDGPU SIWholeQuadMode.cpp, llvm/test/CodeGen/AMDGPU wqm.mir

AMDGPU: Invalidate VCC live ranges when lowering kill instructions (#226040)

lowerKillInstr replaces the kill pseudo with a v_cmp defining VCC plus
two instructions reading it, but left any previously computed VCC
regunit ranges alone. If something had already materialized them, the
new uses have no live segment:

  *** Bad machine code: No live segment at use ***
  - instruction: $exec = S_ANDN2_B64_term $exec, $vcc, implicit-def $scc

Drop the ranges so they are recomputed on demand, as is already done for
EXEC and SCC.

Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+38-0llvm/test/CodeGen/AMDGPU/wqm.mir
+2-0llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
+40-02 files

LLVM/project 373c617llvm/lib/Transforms/Instrumentation SanitizerCoverage.cpp

[SanitizerCoverage] Directly create ptradd constant expression (NFC) (#226107)

Don't go through an IRBuilder without insertion point for a case
that always creates a constant expression.
DeltaFile
+2-3llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
+2-31 files

LLVM/project c223b63llvm/lib/CodeGen RDFGraph.cpp MachineLICM.cpp, llvm/lib/CodeGen/GlobalISel IRTranslator.cpp

CodeGen: Derive ARM EH pointer/selector registers from MCAsmInfo

Whether the exception pointer and selector are delivered in registers is an
object-format property, not a program-state one. ARM was the only target to
consult the exception model here, to test for SjLj EH, and that is a constant
for the triple already recorded in MCAsmInfo. Read it from there and drop the
ExceptionHandling argument that was threaded through
getExceptionPointerRegister and getExceptionSelectorRegister.

This is the effective revert of fdc178994aa7.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+5-9llvm/lib/Target/XCore/XCoreFrameLowering.cpp
+9-4llvm/lib/Target/ARM/ARMISelLowering.cpp
+4-8llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+2-7llvm/lib/CodeGen/MachineLICM.cpp
+3-6llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+2-6llvm/lib/CodeGen/RDFGraph.cpp
+25-4027 files not shown
+79-13433 files

LLVM/project c3fae69llvm/test/CodeGen/AArch64 arm64-ccmp-heuristics.ll, llvm/test/CodeGen/AMDGPU/GlobalISel legalize-load-memory-metadata.mir regbankselect-split-scalar-load-metadata.mir

[llvm] Update tests to use struct path TBAA (#226051)

The new format was introduced more than a decade ago, so make sure it's
used in tests. The tests currently get away with it due to a TBAA
upgrade applied in the IR parser.

Disclosure: AI-generated change.
DeltaFile
+12-4llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-split-scalar-load-metadata.mir
+8-6llvm/test/CodeGen/X86/merge_store_duplicated_loads.ll
+6-5llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-load-memory-metadata.mir
+6-3llvm/test/CodeGen/Hexagon/circ_ld.ll
+6-3llvm/test/CodeGen/AArch64/arm64-ccmp-heuristics.ll
+6-2llvm/test/Transforms/SROA/tbaa-struct2.ll
+44-2340 files not shown
+148-7746 files

LLVM/project c2aef22llvm/lib/Target/AArch64 AArch64InstrInfo.td, llvm/lib/Target/AArch64/GISel AArch64RegisterBankInfo.h AArch64InstructionSelector.cpp

[AArch64][GlobalISel] Improve fixed-point int-to-fp selection (#224055)

Select scalar fixed-point integer-to-float conversions directly in
GlobalISel when their integer operand is already in the FPR bank. Teach
the fixed-point immediate matcher about reciprocal constants. Refine
register-bank selection for scalar conversion intrinsics.
DeltaFile
+152-185llvm/test/CodeGen/AArch64/fcvt-fixed.ll
+56-42llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
+49-4llvm/lib/Target/AArch64/AArch64InstrInfo.td
+9-0llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
+7-0llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.h
+273-2315 files

LLVM/project 39150b4mlir/include/mlir/IR OpImplementation.h, mlir/test/mlir-tblgen op-format.td

[mlir][ODS] Share parser operand storage cleanup (NFC) (#226094)

Group variable-length operand vectors in generated parsers and move
their construction and cleanup into a shared storage template. This
reduces repeated cleanup code in parsers with many optional operand
groups.

Assisted-by: Codex
DeltaFile
+31-9mlir/tools/mlir-tblgen/OpFormatGen.cpp
+20-0mlir/include/mlir/IR/OpImplementation.h
+4-0mlir/test/mlir-tblgen/op-format.td
+55-93 files

LLVM/project 20a530dflang/lib/Optimizer/Transforms/CUDA CUFAddConstructor.cpp, flang/test/Fir/CUDA cuda-managed-descriptor-component.fir cuda-constructor-2.f90

[flang][cuda] Share the managed companion pointer across translation units

A non-allocatable managed module variable is accessed through a companion
pointer in the `__nv_managed_data__` section, which the CUDA runtime fills in
with the unified memory address at module initialization. Every translation
unit referencing the variable emitted its own internal pointer and registered
it. The runtime populates only the registration performed first for a given
variable name (*), so every other unit was left loading through a null pointer and
crashed at run time.

Emit a single pointer with external linkage instead. The unit defining the
variable emits the definition, zero-initialized and in __nv_managed_data__,
and registers it; a unit that only USEs the variable emits a declaration and
no registration, resolving to that definition at link time.

(*) I verified this using the following reproducer:

`exp_mod.f90`:
```fortran

    [31 lines not shown]
DeltaFile
+53-0flang/test/Fir/CUDA/cuda-managed-pointer-linkage.cuf
+36-13flang/lib/Optimizer/Transforms/CUDA/CUFAddConstructor.cpp
+40-2flang/test/Fir/CUDA/cuda-constructor-2.f90
+6-1flang/test/Fir/CUDA/cuda-managed-descriptor-component.fir
+135-164 files

LLVM/project cbfb9a6mlir/lib/Dialect/XeGPU/Transforms XeGPUSgToLaneDistribute.cpp, mlir/test/Dialect/XeGPU sg-to-lane-distribute-unit.mlir

[MLIR][XeGPU] Optimize create_mask sg-to-lane lowering (#221198)
DeltaFile
+178-35mlir/test/Dialect/XeGPU/sg-to-lane-distribute-unit.mlir
+127-45mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToLaneDistribute.cpp
+305-802 files

LLVM/project b568345orc-rt/include CMakeLists.txt, orc-rt/include/orc-rt-internal/bedrock/sys/posix DWARFEHFrameRegistrar.h

[orc-rt] Add DWARFEHFrameRegistrar for .eh_frame registration. (#226093)

Adds sys::posix::DWARFEHFrameRegistrar, which registers JIT'd .eh_frame
sections, and expose it to controllers via the
orc_rt_ci_aa_sps_DWARFEHFrameRegistrar_registerSection and
orc_rt_ci_aa_sps_DWARFEHFrameRegistrar_deregisterSection allocation
actions.

The interface is added to the controller interface on Linux only; on
Darwin, StandaloneMachOUnwindInfoRegistrar is preferred.
DeltaFile
+128-0orc-rt/lib/bedrock/sys/posix/DWARFEHFrameRegistrar.cpp
+39-0orc-rt/include/orc-rt-internal/bedrock/sys/posix/DWARFEHFrameRegistrar.h
+38-0orc-rt/lib/bedrock/sys/posix/sps/DWARFEHFrameRegistrarSPSCI.cpp
+31-0orc-rt/include/orc-rt/bedrock/sps/DWARFEHFrameRegistrarSPSCI.h
+7-0orc-rt/include/CMakeLists.txt
+5-0orc-rt/lib/bedrock/sps/AllSPSCI.cpp
+248-01 files not shown
+250-07 files

LLVM/project a24caacllvm/test/CodeGen/AMDGPU sgpr-spill.mir unpack-non-coissue-insts-post-ra-scheduler.mir, llvm/test/CodeGen/AMDGPU/GlobalISel irtranslator-call.ll

[TableGen][AMDGPU] Introduce register sequences

The overwhelming majority of AMDGPU's registers are synthesized
tuples, and all of them are sequences of adjacent registers of
certain widths. We currently have no adequate representation of
them in TableGen: every such tuple is emitted as a descriptor
carrying its own name string and its own sub- and super-register
lists, so the generated register tables run to well over a
hundred megabytes for this one target. The names spell out every
member, so a four-register tuple is SGPR0_SGPR1_SGPR2_SGPR3.

Describing such tuples by their first and last registers alone
would address these issues. What stands in the way is that
TableGen has no notion of one register following another in a
sequence.

This patch adds such a notion using RegisterSequence instances:

  def : RegisterSequence<[R0, R1, R2, R3]>;

    [29 lines not shown]
DeltaFile
+2,166-2,166llvm/test/CodeGen/AMDGPU/accvgpr-spill-scc-clobber.mir
+1,001-1,001llvm/test/CodeGen/AMDGPU/GlobalISel/irtranslator-call.ll
+864-864llvm/test/CodeGen/AMDGPU/pei-build-av-spill.mir
+634-634llvm/test/CodeGen/AMDGPU/pei-build-spill.mir
+576-576llvm/test/CodeGen/AMDGPU/unpack-non-coissue-insts-post-ra-scheduler.mir
+535-535llvm/test/CodeGen/AMDGPU/sgpr-spill.mir
+5,776-5,776844 files not shown
+31,369-31,168850 files

LLVM/project 2c1c2ddclang/lib/CIR/CodeGen CIRGenOpenMPClause.h CIRGenStmtOpenMP.cpp, clang/test/CIR/CodeGenOpenMP not-yet-implemented.c parallel.c

[CIR][OpenMP] Implement lowering for the 'if' clause for 'parallel' d… (#204999)

Implementing the lowering of the `if` clause for the `#pragma omp
parallel` directive. The clause simply accepts the condition from
`OMPIfClause` and lowers it to an `I1` to allow for emission.

Followed the same approach as the one in my other PR #202466 and based
myself off of PR #172501 that implements the lowering for the
`proc_bind` clause.

### Evidence:
Output of: `python3 build/bin/llvm-lit -sv
clang/test/CIR/CodeGenOpenMP/parallel.c`

```
llvm-lit: /home/pedro/dev/projects/my-llvm-project/llvm/utils/lit/lit/llvm/config.py:569: note: using clang: /home/pedro/dev/projects/my-llvm-project/build/bin/clang

Testing Time: 0.10s


    [2 lines not shown]
DeltaFile
+72-0clang/test/CIR/CodeGenOpenMP/parallel.c
+28-0clang/lib/CIR/CodeGen/CIRGenOpenMPClause.cpp
+6-5clang/lib/CIR/CodeGen/CIRGenStmtOpenMP.cpp
+0-5clang/test/CIR/CodeGenOpenMP/not-yet-implemented.c
+3-0clang/lib/CIR/CodeGen/CIRGenOpenMPClause.h
+109-105 files

LLVM/project 59435d0lldb/test/API/macosx/find-dsym/bundle-with-dot-in-filename Makefile

Revert "[LLDB] Simplify Makefile for TestBundleWithDotInFilename" (#226092)

Reverts llvm/llvm-project#225930

This breaks the Green Dragon bot. Reverting for now.
DeltaFile
+8-5lldb/test/API/macosx/find-dsym/bundle-with-dot-in-filename/Makefile
+8-51 files

LLVM/project 6549d7fllvm/lib/Target/M68k M68kInstrData.td, llvm/test/CodeGen/M68k register-spills.ll

M68k: Use data register classes for the 16->32 extending move pseudos

MOVSXd32d16 and MOVZXd32d16 declared both operands with the XR32/XR16
classes, which include the address registers. The post-RA expansion of
these pseudos emits AND32di, MOV16dd and EXT32, all of which require a
data register, so allocating an address register produces invalid code:

  $a6 = AND32di $a6(tied-def 0), 65535, implicit-def $ccr

Every pattern selecting these pseudos already restricts the source to
MxDRD16, so constrain the pseudos to the data register classes.

This fixes machine verifier errors in the touched test.

Co-Authored-By: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+86-61llvm/test/CodeGen/M68k/register-spills.ll
+1-1llvm/lib/Target/M68k/M68kInstrData.td
+87-622 files

LLVM/project e34e809llvm/lib/Target/Mips MipsCallLowering.h MipsInstructionSelector.cpp, llvm/test/CodeGen/Mips/GlobalISel/irtranslator big-endian.ll

[Mips][GlobalISel] Fix Big Endian lowering (#225972)

Flip on the big-endian switch in Mips call lowering. Fix split memory
piece placement, short-load bit extraction, and unaligned left/right
instruction offsets for big-endian targets.

Add BE/LE test coverage.
DeltaFile
+303-0llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/big-endian-memory.ll
+105-0llvm/test/CodeGen/Mips/GlobalISel/irtranslator/big-endian.ll
+27-13llvm/lib/Target/Mips/MipsLegalizerInfo.cpp
+6-4llvm/lib/Target/Mips/MipsInstructionSelector.cpp
+2-0llvm/lib/Target/Mips/MipsCallLowering.h
+1-0llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/load_store_vec.ll
+444-173 files not shown
+447-179 files

LLVM/project 271cb3fflang/lib/Lower Bridge.cpp, flang/test/Lower do-loop-branch-to-loop-header.f90 do_loop_unstructured.f90

[flang] Lower loops whose branching is confined to their body structurally

Such a loop was classified separately by a previous change but still
lowered as a raw CFG, so its structured form was lost.

Lower it structurally instead, with its body folded into a region that can
hold the branching. The loop keeps its bounds on the op, so it remains
available to whatever transforms or parallelizes it. Only the body is
folded: the loop control statements are emitted as they are for any
structured loop, since a branch from outside may target either of them.

Loops an OpenACC or OpenMP directive owns are lowered the same way, so
they keep their form too.
DeltaFile
+20-134flang/test/Lower/do_loop_unstructured.f90
+119-11flang/lib/Lower/Bridge.cpp
+73-0flang/test/Lower/OpenACC/acc-unstructured-internals.f90
+34-28flang/test/Lower/OpenMP/wsloop-unstructured-cycle.f90
+55-0flang/test/Lower/do-loop-branch-to-loop-header.f90
+50-0flang/test/Lower/OpenMP/metadirective-loop-unstructured.f90
+351-17310 files not shown
+453-24116 files

LLVM/project e92cba6flang/lib/Lower PFTBuilder.cpp, flang/test/Lower pre-fir-tree-assigned-goto.f90

[flang] Resolve an assigned GO TO's targets from the completed assign map

An assigned GO TO reaches any label ASSIGNed to its variable, and a label
list does not bound that: lowering allows a branch to any ASSIGNed label
whether or not the list names it. Branch analysis only sees the ASSIGNs
preceding the GO TO in program order, so the successors it records, and the
incoming branches derived from them, can be incomplete.

The symbol-to-labels map is complete once branch analysis has finished,
which is when the classification runs. Ask it for the full target set
instead of trusting the recorded successors, so a loop whose assigned GO TO
stays within its body is still recognised.
DeltaFile
+45-0flang/test/Lower/pre-fir-tree-assigned-goto.f90
+22-2flang/lib/Lower/PFTBuilder.cpp
+67-22 files

LLVM/project 47d06b4llvm/lib/Target/AMDGPU SIFoldOperands.cpp, llvm/test/CodeGen/AMDGPU true16-fold.mir

[AMDGPU] Simplify true16 SGPR folding (#226082)

Rewrite part of the SGPR folding "hack" from #128929 using
getChannelFromSubReg to avoid relying on the exact numbering of subreg
indices.

This also fixes a potential bug when folding a copy with no subreg on
the source operand like `%1:sgpr_lo16 = COPY %0:sgpr_lo16`. The old
implementation would have generated `%0.sub0:sgpr_lo16` which fails
machine verification.

Co-authored-by: Claude Opus 5 (1M context) <noreply at anthropic.com>

Co-authored-by: Claude Opus 5 (1M context) <noreply at anthropic.com>
DeltaFile
+39-0llvm/test/CodeGen/AMDGPU/true16-fold.mir
+8-27llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
+47-272 files

LLVM/project 441b9d6lldb/test/API/macosx/find-dsym/bundle-with-dot-in-filename Makefile

Revert "[LLDB] Simplify Makefile for TestBundleWithDotInFilename (#225930)"

This reverts commit 408ae6803f0cf2d8a65b00d3e1c9534113c5f0be.
DeltaFile
+8-5lldb/test/API/macosx/find-dsym/bundle-with-dot-in-filename/Makefile
+8-51 files