LLVM/project 60e80af — llvm/test/Transforms/LoopInterchange loop-control-available-in-outer-preheader.ll

[LoopInterchange] Add tests for loop control values in the outer preheader (NFC) (#235520)

Add test cases where it matters whether the loop control values (the
initial and final values of the IVs) are available in the outer loop
preheader. These are corner cases where the work in #235496 changes
what loop-interchange can handle.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+126-0llvm/test/Transforms/LoopInterchange/loop-control-available-in-outer-preheader.ll
+126-01 files

LLVM/project d38aacb — clang/test/SemaCXX cxx2b-p2266-disable-with-msvc-compat.cpp

[clang] Fix typo in __cplusplus macro (#235489)

Found a possible typo where `__cplusplus` was written as `__cpluscplus`,
since I made the same typo while doing a search.

Corrected to `__cplusplus`, feel free to close if this wasn't a mistake
:)
DeltaFile
+1-1clang/test/SemaCXX/cxx2b-p2266-disable-with-msvc-compat.cpp
+1-11 files

LLVM/project d95fb01 — clang/include/clang/StaticAnalyzer/Core/BugReporter Z3CrosscheckVisitor.h BugReporterVisitors.h

[analyzer][NFC] BugReporterVisitors.h should include MemRegion.h (#235283)

BugReporterVisitors.h includes RangedConstraintManager.h but uses
nothing it declares: RangeSet, Range, ConstraintMap and
SimpleConstraintManager appear nowhere in the file. What the header
actually needs is MemRegion.h, which supplies SubRegion,
MemRegionManager and MemRegion completeness for an inline constructor;
today those arrive only by accident, transitively through
RangedConstraintManager.h -> ProgramState.h. Swapping the include for
the one that carries the used declarations makes the dependency honest
and adds a forward declaration of CallEvent in namespace clang::ento
for the one name that only needs to be incomplete.

One header needs a compensating include: Z3CrosscheckVisitor.h uses
ConstraintMap and was getting RangedConstraintManager.h through
BugReporterVisitors.h, so it now includes it directly. No translation
unit in clangStaticAnalyzerCore, clangStaticAnalyzerCheckers or
clangStaticAnalyzerFrontend required any other change.


    [2 lines not shown]
DeltaFile
+2-1clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h
+1-0clang/include/clang/StaticAnalyzer/Core/BugReporter/Z3CrosscheckVisitor.h
+3-12 files

LLVM/project a5db372 — lld/test/ELF eh-frame-rel.s eh-frame.s, lld/test/ELF/Inputs eh-frame.s

[ELF,test] Enhance eh-frame-merge.s to test CIE/FDE grouping order (#235525)

Fold eh-frame.s, eh-frame-multiple-cie.s, and eh-frame-rel.s into it.
DeltaFile
+121-7lld/test/ELF/eh-frame-merge.s
+0-50lld/test/ELF/eh-frame-multiple-cie.s
+0-12lld/test/ELF/eh-frame.s
+0-7lld/test/ELF/eh-frame-rel.s
+0-3lld/test/ELF/Inputs/eh-frame.s
+121-795 files

LLVM/project 8e09a8e — llvm/include/llvm/ADT DenseMap.h

[ADT] Visit used buckets a word at a time in DenseMap::remove_if (NFC) (#235350)

Use forEachUsed in remove_if. This reduces compile-time a bit, due it
reading used bits in 32 bit chunks, skipping unused buckets.

stage1-O3: +0.10%
stage1-ReleaseThinLTO: +0.06%
stage1-ReleaseLTO-g: +0.08%
stage1-aarch64-O3: +0.10%
stage2-O3: +0.07%
stage2-clang: -0.04%


https://llvm-compile-time-tracker.com/compare.php?from=ebf8c8be5da855de878865b62ca129f543c7528b&to=32d6f33c39f4ceb9f763feb766b52129254b2cc3&stat=instructions:u

Aided by Opus 5.5

PR: https://github.com/llvm/llvm-project/pull/235350
DeltaFile
+2-4llvm/include/llvm/ADT/DenseMap.h
+2-41 files

LLVM/project 5f7a1e3 — llvm/test/LTO/X86 library-options.ll, llvm/tools/llvm-lto llvm-lto.cpp

[llvm-lto] Initialize targets before parseCommandLineOptions (#235523)

Target library options are registered when targets are initialized, so
llvm-lto rejects them as unknown arguments.

Reorder parseCommandLineOptions similar to llvm-lto2.
DeltaFile
+7-6llvm/tools/llvm-lto/llvm-lto.cpp
+5-0llvm/test/LTO/X86/library-options.ll
+12-62 files

LLVM/project 08680c8 — llvm/lib/Target/ARM ARMTargetMachine.cpp

[ARM] Register the Thumb2ITBlockPass. NFC (#235521)

This was missing from the list of initialized passes, add it so that
print-after and pass options work.
DeltaFile
+1-0llvm/lib/Target/ARM/ARMTargetMachine.cpp
+1-01 files

LLVM/project 79ab176 — llvm/test/Transforms/LoopInterchange loop-control-available-in-outer-preheader.ll

[LoopInterchange] Add tests for loop control values in the outer preheader (NFC)

Add test cases where it matters whether the loop control values (the
initial and final values of the IVs) are available in the outer loop
preheader. These are corner cases where the work in #235496 changes
what loop-interchange can handle.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+126-0llvm/test/Transforms/LoopInterchange/loop-control-available-in-outer-preheader.ll
+126-01 files

LLVM/project f0b840b — llvm/test/Transforms/GVN ptr-vector-coercion.ll

[GVN] Add negative test for pointer size mismatch
DeltaFile
+18-0llvm/test/Transforms/GVN/ptr-vector-coercion.ll
+18-01 files

LLVM/project 06eaf2c — llvm/include/llvm/CodeGen/GlobalISel MIPatternMatch.h, llvm/unittests/CodeGen/GlobalISel PatternMatchTest.cpp

[GlobalISel] Move extracted constants into matcher bindings (#235510)

Move from successful local optional results in m_ICst and m_ICstOrSplat
instead of copying their values immediately before destruction. Wide
APInts can transfer their storage to the output binding.

Assisted by: GPT-6.1-Sol
DeltaFile
+17-0llvm/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp
+3-3llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h
+20-32 files

LLVM/project ce72631 — llvm/lib/Transforms/Scalar DeadStoreElimination.cpp

[DSE] Check constant offsets before querying AA in isOverwrite (NFCI) (#235355)

If both accesses have the same underlying object, isOverwrite queries AA
first and only then compares the constant offsets of both pointers to a
common base. The AA-based checks can only return OW_Complete if the
offset comparison does too, so only query AA if the offsets cannot be
compared.

stage1-O3: -0.29%
stage1-ReleaseThinLTO: -0.55%
stage1-ReleaseLTO-g: -0.34%
stage1-aarch64-O3: -0.28%
stage2-O3: -0.26%
stage2-clang: -0.20%


https://llvm-compile-time-tracker.com/compare.php?from=da057cc5880020ccff5fee17ffa145383dcef723&to=4cfa41b754b4f777aba17dc53f62ae89fe7bbd79&stat=instructions:u

Aided by Opus 5.5

PR: https://github.com/llvm/llvm-project/pull/235355
DeltaFile
+26-22llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
+26-221 files

LLVM/project e94a754 — llvm/lib/Analysis TargetTransformInfo.cpp, llvm/test/Analysis/CostModel/X86 reduction.ll

[TTI] Remove unused -costmodel-reduxcost (#235517)

Added in cae8735a5465 (2013, "Costmodel: Add support for horizontal
vector reductions")
and removed by https://reviews.llvm.org/D105484
DeltaFile
+6-6llvm/test/Analysis/CostModel/X86/reduction.ll
+0-4llvm/lib/Analysis/TargetTransformInfo.cpp
+1-1llvm/test/Transforms/LoopUnroll/X86/pr46430.ll
+1-1llvm/test/Transforms/LoopUnroll/X86/pr46430-inseltpoison.ll
+8-124 files

LLVM/project bf7ce8d — lldb/test/API/functionalities/builtin-debugtrap TestBuiltinDebugTrap.py

[LLDB] Changing the SIGILL handling for FreeBSD also
DeltaFile
+7-7lldb/test/API/functionalities/builtin-debugtrap/TestBuiltinDebugTrap.py
+7-71 files

LLVM/project cbe838b — llvm/lib/Target/AMDGPU SIFrameLowering.cpp

AMDGPU: Add implicit buffer pointer live-in for compute shaders (#235508)

When setting up the scratch resource for Mesa compute shaders, the
implicit buffer pointer was copied with S_MOV_B64 without being added
as a live-in, so the machine verifier reported a use of an undefined
register. Only the graphics path, which loads through the pointer,
added it. Add the live-in on both paths.

This was exposed by the new test in #235258.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+3-3llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
+3-31 files

LLVM/project a2d5d37 — llvm/lib/Target/RISCV RISCVPromoteConstant.cpp RISCVLoadStoreOptimizer.cpp

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+153-33llvm/lib/Target/RISCV/RISCV.h
+78-46llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
+61-58llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp
+72-37llvm/lib/Target/RISCV/RISCVMoveMerger.cpp
+66-32llvm/lib/Target/RISCV/RISCVLoadStoreOptimizer.cpp
+44-31llvm/lib/Target/RISCV/RISCVPromoteConstant.cpp
+474-23716 files not shown
+903-42822 files

LLVM/project dcef07b — llvm/lib/Target/RISCV RISCVZilsdOptimizer.cpp RISCVLoadStoreOptimizer.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+162-35llvm/lib/Target/RISCV/RISCV.h
+78-46llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
+61-58llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp
+72-37llvm/lib/Target/RISCV/RISCVMoveMerger.cpp
+66-32llvm/lib/Target/RISCV/RISCVLoadStoreOptimizer.cpp
+64-23llvm/lib/Target/RISCV/RISCVZilsdOptimizer.cpp
+503-23117 files not shown
+980-45523 files

LLVM/project a83dd35 — lldb/source/Plugins/Process/gdb-remote ProcessGDBRemote.cpp, lldb/source/Target Platform.cpp

[LLDB] Support transfer in local machine

A trasnfer can also happen in local machine if the src and dest are not
the same. Support local machine transfer for this case. In Linux, we
never hits this as they don't support coredump and will be bailed out
eariler.
DeltaFile
+10-8lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+5-0lldb/source/Target/Platform.cpp
+15-82 files

LLVM/project faa8e76 — llvm/lib/Target/AMDGPU AMDGPUTargetTransformInfo.cpp

if -> elif
DeltaFile
+1-1llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
+1-11 files

LLVM/project 5ea9e01 — llvm/lib/Target/RISCV RISCVPushPopOptimizer.cpp RISCVPromoteConstant.cpp

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+144-31llvm/lib/Target/RISCV/RISCV.h
+78-46llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
+61-58llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp
+72-37llvm/lib/Target/RISCV/RISCVMoveMerger.cpp
+44-31llvm/lib/Target/RISCV/RISCVPromoteConstant.cpp
+52-21llvm/lib/Target/RISCV/RISCVPushPopOptimizer.cpp
+451-22415 files not shown
+825-39221 files

LLVM/project 49ca7e8 — llvm/lib/Target/RISCV RISCVPromoteConstant.cpp RISCVLoadStoreOptimizer.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+153-33llvm/lib/Target/RISCV/RISCV.h
+78-46llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
+61-58llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp
+72-37llvm/lib/Target/RISCV/RISCVMoveMerger.cpp
+66-32llvm/lib/Target/RISCV/RISCVLoadStoreOptimizer.cpp
+44-31llvm/lib/Target/RISCV/RISCVPromoteConstant.cpp
+474-23716 files not shown
+903-42822 files

LLVM/project b974545 — llvm/include/llvm/CodeGen TargetLowering.h, llvm/lib/CodeGen/SelectionDAG TargetLowering.cpp LegalizeDAG.cpp

[SelectionDAG][NFC] Move expandMODF to TargetLowering (#235010)

* Part of #230886 
* Split from #233204  

Move SelectionDAGLegalize::expandModf into TargetLowering::expandMODF so
target backends can share the expansion logic.
DeltaFile
+1-33llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+29-0llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+7-0llvm/include/llvm/CodeGen/TargetLowering.h
+37-333 files

LLVM/project c1c2658 — llvm/test/Transforms/LoopVectorize alias-mask-interleave-groups.ll runtime-checks-difference.ll

[LV] Add tests for diff checks of accesses not covering the step (NFC). (#235428)

Add a test for alias masks with a load group placed before a store,
which reorders accesses across lanes, and tests for different access
sizes in a reverse loop, with a padded type and in a nested loop.
DeltaFile
+111-0llvm/test/Transforms/LoopVectorize/runtime-checks-difference.ll
+96-0llvm/test/Transforms/LoopVectorize/alias-mask-interleave-groups.ll
+207-02 files

LLVM/project e07946b — llvm/lib/Target/AMDGPU SIFrameLowering.cpp

AMDGPU: Add implicit buffer pointer live-in for compute shaders

When setting up the scratch resource for Mesa compute shaders, the
implicit buffer pointer was copied with S_MOV_B64 without being added
as a live-in, so the machine verifier reported a use of an undefined
register. Only the graphics path, which loads through the pointer,
added it. Add the live-in on both paths.

This was exposed by the new test in #235258.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+3-3llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
+3-31 files

LLVM/project 3f5eeca — llvm/lib/Target/RISCV RISCVRedundantCopyElimination.cpp RISCVPromoteConstant.cpp

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+135-29llvm/lib/Target/RISCV/RISCV.h
+78-46llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
+61-58llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp
+72-37llvm/lib/Target/RISCV/RISCVMoveMerger.cpp
+44-31llvm/lib/Target/RISCV/RISCVPromoteConstant.cpp
+41-23llvm/lib/Target/RISCV/RISCVRedundantCopyElimination.cpp
+431-22414 files not shown
+761-36720 files

LLVM/project f39c50e — llvm/lib/Target/RISCV RISCVPushPopOptimizer.cpp RISCVPromoteConstant.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+144-31llvm/lib/Target/RISCV/RISCV.h
+78-46llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
+61-58llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp
+72-37llvm/lib/Target/RISCV/RISCVMoveMerger.cpp
+44-31llvm/lib/Target/RISCV/RISCVPromoteConstant.cpp
+52-21llvm/lib/Target/RISCV/RISCVPushPopOptimizer.cpp
+451-22415 files not shown
+825-39221 files

LLVM/project a861017 — llvm/lib/Target/RISCV RISCVInsertWriteVXRM.cpp RISCVRedundantCopyElimination.cpp

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+127-27llvm/lib/Target/RISCV/RISCV.h
+78-46llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
+61-58llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp
+44-31llvm/lib/Target/RISCV/RISCVPromoteConstant.cpp
+41-23llvm/lib/Target/RISCV/RISCVRedundantCopyElimination.cpp
+43-18llvm/lib/Target/RISCV/RISCVInsertWriteVXRM.cpp
+394-20313 files not shown
+678-32619 files

LLVM/project 57900e9 — llvm/lib/Target/RISCV RISCVRedundantCopyElimination.cpp RISCVPromoteConstant.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+135-29llvm/lib/Target/RISCV/RISCV.h
+78-46llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
+61-58llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp
+72-37llvm/lib/Target/RISCV/RISCVMoveMerger.cpp
+44-31llvm/lib/Target/RISCV/RISCVPromoteConstant.cpp
+41-23llvm/lib/Target/RISCV/RISCVRedundantCopyElimination.cpp
+431-22414 files not shown
+761-36720 files

LLVM/project 8c4d63a — llvm/lib/Transforms/Utils VNCoercion.cpp, llvm/test/Transforms/GVN ptr-vector-coercion.ll

[GVN] Preserve provenance when forwarding `<1 x ptr>`
DeltaFile
+7-7llvm/lib/Transforms/Utils/VNCoercion.cpp
+3-9llvm/test/Transforms/GVN/ptr-vector-coercion.ll
+10-162 files

LLVM/project 349a6f3 — llvm/include/llvm/CodeGen/GlobalISel MIPatternMatch.h, llvm/unittests/CodeGen/GlobalISel PatternMatchTest.cpp

[GlobalISel] Use signed APInt comparison in constant matchers (#235494)

Use APInt::isSameValue with SignedCompare in m_SpecificICst and
m_SpecificICstOrSplat. This avoids sign-extending equal-width operands
and leaves the requested value unchanged between matches.

Assisted by: GPT-6.1-Sol
DeltaFile
+24-0llvm/unittests/CodeGen/GlobalISel/PatternMatchTest.cpp
+4-14llvm/include/llvm/CodeGen/GlobalISel/MIPatternMatch.h
+28-142 files

LLVM/project 55af52d — llvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp, llvm/test/CodeGen/SPIRV/hlsl-intrinsics group_memory_barrier_with_group_sync.ll group_memory_barrier.ll

[SPIRV] Constants should always live in the entry block (#234291)

Creating constants at the point of observation / use can lead, in
complex control-flow, to their referencing by previous instructions,
which yields broken MIR. This change uses the dedicated interface to
ensure that constants are always created in the entry block and thus
dominate all uses. It is mostly NFC asides from tweaking tests that were
order dependent.
DeltaFile
+19-46llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+1-1llvm/test/CodeGen/SPIRV/hlsl-intrinsics/group_memory_barrier_with_group_sync.ll
+1-1llvm/test/CodeGen/SPIRV/hlsl-intrinsics/group_memory_barrier.ll
+1-1llvm/test/CodeGen/SPIRV/hlsl-intrinsics/device_memory_barrier_with_group_sync.ll
+1-1llvm/test/CodeGen/SPIRV/hlsl-intrinsics/all_memory_barrier_with_group_sync.ll
+23-505 files