LLVM/project d1217e1lld/ELF SyntheticSections.cpp InputFiles.h, lld/test/ELF verneed-weak.s verneed-as-needed-weak.s

[𝘀𝗽𝗿] initial version

Created using spr 1.3.5-bogner
DeltaFile
+80-0lld/test/ELF/verneed-weak.s
+21-15lld/ELF/SyntheticSections.cpp
+0-18lld/test/ELF/verneed-as-needed-weak.s
+10-4lld/ELF/InputFiles.h
+1-1lld/ELF/SyntheticSections.h
+112-385 files

LLVM/project 6cc18a8llvm/lib/Transforms/Vectorize VPlanPatternMatch.h VPlanUtils.cpp

[VPlan] Support more GEP-like recipes in getSCEVExprForVPValue (NFCI)

Support VPWidenGEPRecipe, VPInstructions and VPRelpicateRecipe with
GEP-like opcodes in getSCEVExprForVPValue via a new matcher binding
source element type and operands.

This is used in code paths when computing SCEV expressions in the
VPlan-based cost model, which should produce costs matching the legacy
cost model.
DeltaFile
+50-0llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
+9-20llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
+59-202 files

LLVM/project 86d3577llvm/lib/Target/X86 X86ISelLoweringCall.cpp X86ISelLowering.h

[X86] Simplify hasCalleePopSRet, NFCI (#176519)

The implementation was rewritten for clarity, and the extra boolean
parameter to the sibcall eligibility check was removed in favor of
recalculating this property. The compile time impact should be
negigible, the vast majority of callers will return early on the
TT.isX86_32() check.

The comments now try to clarify which platforms have this
callee-pop-sret behavior, which was always hard for me to figure out
from the previous code.

I was able to remove two ambiguous checks for `canGuaranteeTCO`, and
what those checks were really doing was checking for `fastcc` and other
calling conventions that pass arguments in registers. Instead of looking
for the `inreg` IR attribute, now the code looks at the CCValAssign to
check if it the pointer is passed in memory or registers, so it works
smoothly with conventions like `fastcc` that don't require explicit
`inreg` annotations.
DeltaFile
+20-41llvm/lib/Target/X86/X86ISelLoweringCall.cpp
+4-4llvm/lib/Target/X86/X86ISelLowering.h
+24-452 files

LLVM/project 3dc5259llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 copyables-with-parent-scalars-in-phis.ll matching-insert-point-for-nodes.ll

[SLP]Do not build bundle for copyables, with parents used in PHI node

If the copyables have parents, used in PHI nodes, this causes complex
schedulable/non-schedulable dependecies, which require complex
processing, but with small profitability. Cut such case early for now to
prevent compiler crashes and compile time blow up.

Fixes #176658
DeltaFile
+49-0llvm/test/Transforms/SLPVectorizer/X86/copyables-with-parent-scalars-in-phis.ll
+17-0llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+5-6llvm/test/Transforms/SLPVectorizer/X86/matching-insert-point-for-nodes.ll
+71-63 files

LLVM/project c7af813llvm/lib/CodeGen/SelectionDAG TargetLowering.cpp, llvm/test/CodeGen/X86 clmul.ll

[DAG] expandCLMUL - if a target supports CLMUL+CLMULH then CLMULR can be merged from the results (#176644)

If a target supports CLMUL + CLMULH, then we can funnel shift the
results together to form CMULR.

Helps x86 PCLMUL targets particularly
DeltaFile
+24-117llvm/test/CodeGen/X86/clmul.ll
+12-0llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+36-1172 files

LLVM/project 1656a07.github/workflows prune-branches.yml

fix

Created using spr 1.3.7
DeltaFile
+2-2.github/workflows/prune-branches.yml
+2-21 files

LLVM/project a5642d6llvm/test/CodeGen/AArch64 neon-dotreduce.ll sve-streaming-mode-fixed-length-trunc.ll, llvm/test/CodeGen/AArch64/GlobalISel split-wide-shifts-multiway.ll

Test
DeltaFile
+1,482-1,547llvm/test/CodeGen/AArch64/neon-dotreduce.ll
+880-884llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-trunc.ll
+368-368llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-int-mulh.ll
+191-195llvm/test/CodeGen/AArch64/GlobalISel/split-wide-shifts-multiway.ll
+168-180llvm/test/CodeGen/AArch64/arm64-subvector-extend.ll
+159-167llvm/test/CodeGen/AArch64/sve-streaming-mode-fixed-length-masked-load.ll
+3,248-3,34131 files not shown
+4,144-4,24537 files

LLVM/project eb77396llvm/lib/CodeGen SafeStack.cpp, llvm/test/Transforms/SafeStack/X86 abi_ssp.ll abi.ll

SafeStack: Use LibcallLoweringInfo analysis pass (#176379)

DeltaFile
+44-15llvm/lib/CodeGen/SafeStack.cpp
+5-5llvm/test/Transforms/SafeStack/X86/abi_ssp.ll
+4-4llvm/test/Transforms/SafeStack/X86/abi.ll
+6-0llvm/test/Transforms/SafeStack/X86/missing-analysis.ll
+2-2llvm/test/Transforms/SafeStack/X86/no-attr.ll
+2-2llvm/test/Transforms/SafeStack/X86/array-aligned.ll
+63-2855 files not shown
+152-11761 files

LLVM/project ae1bd06llvm/lib/Transforms/Vectorize LoopVectorize.cpp VPlanRecipes.cpp

[VPlan] Replace PhiR operand of ComputeAnyOfResult with VPIRFlags. (#175657)

Replace the Phi recipe operand of ComputeAnyOfVResult with VPIRFlags,
building on top of https://github.com/llvm/llvm-project/pull/174026.

PR: https://github.com/llvm/llvm-project/pull/175657
DeltaFile
+23-14llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+16-10llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+39-242 files

LLVM/project 636f34ellvm/lib/FileCheck FileCheck.cpp, llvm/lib/Support regcomp.c Regex.cpp

[regex][FileCheck] Support back-references up to 20. (#174150)

Support `\g{n}`-style back references in `regcomp` as well by increasing
the limit from 9 to 20 and adding additional parsing. Update the limit
checks in FileCheck. The limit can theoretically be removed by
reallocating the regex-matchers internal arrays but I don't find a use
case for that as of now.

Update a test that now should pass when using more than 9
back-references.

Add a new test that tests for the error message explicitly..
DeltaFile
+36-16llvm/lib/Support/regcomp.c
+19-0llvm/unittests/Support/RegexTest.cpp
+13-4llvm/lib/FileCheck/FileCheck.cpp
+2-5llvm/test/FileCheck/capture-limit.txt
+7-0llvm/test/FileCheck/backref-limit.txt
+1-1llvm/lib/Support/Regex.cpp
+78-266 files

LLVM/project 497a6d6llvm/lib/Transforms/Vectorize LoopVectorize.cpp, llvm/test/Transforms/LoopVectorize/AArch64 induction-costs.ll select-costs.ll

Recommit "[VPlan] Only use isAddressSCEVForCost in legacy getAddressAccSCEV"

This reverts commit ed004cf42bf57ca79b57bc3076ef83a8477426ea.

The original commit exposed an independent cost issue, triggering an
assertion. That issue has been fixed in 3457e7efc3.

Reland the patch now that the assertion has been fixed.
DeltaFile
+39-22llvm/test/Transforms/LoopVectorize/AArch64/induction-costs.ll
+3-9llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+2-2llvm/test/Transforms/LoopVectorize/AArch64/select-costs.ll
+44-333 files

LLVM/project 75db543clang Maintainers.rst

[analyzer] Update my maintainer email.
DeltaFile
+1-1clang/Maintainers.rst
+1-11 files

LLVM/project 9e087a6mlir/utils/textmate mlir.json, mlir/utils/vscode tsconfig.json package.json

[mlir][vscode] Update to capture angle brackets in types/attrs (#176665)

This updates the grammar of these types so that it is shown. Expanding
what scopes are shown.

Also enabled skipLibCheck.
DeltaFile
+62-12mlir/utils/textmate/mlir.json
+2-1mlir/utils/vscode/tsconfig.json
+1-1mlir/utils/vscode/package.json
+65-143 files

LLVM/project 258b986mlir/include/mlir/Interfaces ControlFlowInterfaces.h, mlir/lib/Dialect/SCF/IR SCF.cpp

[mlir][Interfaces] Add generic pattern for region inlining
DeltaFile
+233-0mlir/lib/Interfaces/ControlFlowInterfaces.cpp
+41-145mlir/lib/Dialect/SCF/IR/SCF.cpp
+39-0mlir/include/mlir/Interfaces/ControlFlowInterfaces.h
+20-0mlir/test/Dialect/SCF/canonicalize.mlir
+333-1454 files

LLVM/project 3356df3clang/include/clang/Options Options.td, clang/lib/CodeGen CodeGenModule.cpp

[RFC][Clang][AMDGPU] Emit only delta target-features to reduce IR bloat

Currently, AMDGPU functions have `target-features` attribute populated with all default features for the target GPU. This is redundant because the backend can derive these defaults from the `target-cpu` attribute via `AMDGPUTargetMachine::getFeatureString()`.

In this PR, for AMDGPU targets only:

- Functions without explicit target attributes no longer emit `target-features`
- Functions with `__attribute__((target(...)))` or `-target-feature` emit only features that differ from the target's defaults (delta)

The backend already handles missing `target-features` correctly by falling back to the TargetMachine's defaults.

A new cc1 flag `-famdgpu-emit-full-target-features` is added to emit full features when needed.

Example:

Before:

```llvm
attributes #0 = { "target-cpu"="gfx90a" "target-features"="+16-bit-insts,+atomic-buffer-global-pk-add-f16-insts,+atomic-fadd-rtn-insts,+ci-insts,+dl-insts,+dot1-insts,+dot2-insts,..." }

    [13 lines not shown]
DeltaFile
+53-53clang/test/CodeGenOpenCL/amdgpu-features.cl
+70-0clang/test/CodeGenOpenCL/amdgpu-features-default-delta.cl
+43-5clang/lib/CodeGen/CodeGenModule.cpp
+4-6clang/test/CodeGenOpenCL/amdgpu-readonly-features-written-with-no-target.cl
+4-4clang/test/CodeGenOpenCL/amdgpu-enqueue-kernel.cl
+6-0clang/include/clang/Options/Options.td
+180-684 files not shown
+189-7310 files

LLVM/project f006cd7clang/lib/Interpreter IncrementalExecutor.cpp, clang/unittests/Interpreter OutOfProcessInterpreterTests.cpp

[clang-repl] Skip out-of-process execution due to compiler-rt path mismatch (#176198)

On some setups (Solaris), clang-repl attempts to enable out-of-process
execution,
but fails to locate the ORC runtime due to a mismatch between the
toolchain’s
expected compiler-rt path and the actual on-disk layout.

Specifically, ToolChain::getCompilerRT() relies on
getArchNameForCompilerRTLib(),
which returns an architecture name that does not match the Solaris
compiler-rt
directory naming. As a result, the ORC runtime (orc_rt) is not detected
at the
correct path, even though it exists under
lib/clang/<version>/lib/sunos/.

As an initial workaround, special-case Solaris in
getArchNameForCompilerRTLib() to return "sunos", aligning the expected

    [14 lines not shown]
DeltaFile
+84-53clang/unittests/Interpreter/OutOfProcessInterpreterTests.cpp
+3-3clang/lib/Interpreter/IncrementalExecutor.cpp
+87-562 files

LLVM/project 262a782llvm/lib/Target/AMDGPU SIInstrInfo.cpp SIInstrInfo.h, llvm/lib/Target/AMDGPU/Disassembler AMDGPUDisassembler.cpp

[AMDGPU] Fix inline constant encoding for `v_pk_fmac_f16`

This PR handles`v_pk_fmac_f16` inline constant encoding/decoding differences between pre-GFX11 and GFX11+ hardware.

- Pre-GFX11: fp16 inline constants produce (f16, 0) - value in low 16 bits, zero in high.
- GFX11+: fp16 inline constants are duplicated to both halves (f16, f16).
DeltaFile
+56-0llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+14-0llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+12-2llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
+10-0llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+9-1llvm/lib/Target/AMDGPU/SIInstrInfo.h
+8-0llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCCodeEmitter.cpp
+109-36 files not shown
+133-912 files

LLVM/project 3457e7ellvm/lib/Transforms/Vectorize VPlanRecipes.cpp, llvm/test/Transforms/LoopVectorize/AArch64 select-costs.ll

[VPlan] Match inverted logical AND/OR for select costs.

VPlan transforms may invert logical AND/OR selects, which can impact
costs on targets the select is not cheap but the boolean AND/OR is.
Also match the inverted logical AND/OR to improve accuracy of the
cost estimation and fixes the underlying issue for the cost
divergence between legacy and VPlan-based cost model that caused
the revert of 01d34eb38fa058 in ed004cf42bf57c.
DeltaFile
+8-8llvm/test/Transforms/LoopVectorize/AArch64/select-costs.ll
+7-0llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+15-82 files

LLVM/project d75dddaclang/lib/Analysis/LifetimeSafety LifetimeAnnotations.cpp, clang/test/Sema warn-lifetime-analysis-nocfg.cpp

range based for loops
DeltaFile
+52-5clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
+8-0clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp
+60-52 files

LLVM/project e11fe69mlir/include/mlir/Interfaces ControlFlowInterfaces.h, mlir/lib/Dialect/SCF/IR SCF.cpp

[mlir][Interfaces] Add generic pattern for region inlining
DeltaFile
+209-0mlir/lib/Interfaces/ControlFlowInterfaces.cpp
+37-23mlir/lib/Dialect/SCF/IR/SCF.cpp
+21-0mlir/include/mlir/Interfaces/ControlFlowInterfaces.h
+267-233 files

LLVM/project 6c80beemlir/lib/Analysis/DataFlow LivenessAnalysis.cpp

[mlir][dataflow] Fix the LDBG print content of liveness-analysis (NFC) (#176542)

DeltaFile
+2-2mlir/lib/Analysis/DataFlow/LivenessAnalysis.cpp
+2-21 files

LLVM/project 7b67519llvm/include/llvm/Support GenericDomTree.h GenericDomTreeConstruction.h

[Support] Use bump ptr allocator for domtree nodes (#102516)

Avoids one heap allocation per basic block per dominator tree and
improves data locality.
DeltaFile
+20-9llvm/include/llvm/Support/GenericDomTree.h
+5-10llvm/include/llvm/Support/GenericDomTreeConstruction.h
+25-192 files

LLVM/project 55b52d3clang/lib/Analysis/LifetimeSafety LifetimeAnnotations.cpp, clang/lib/Sema SemaAttr.cpp

range based for loops
DeltaFile
+52-5clang/test/Sema/warn-lifetime-analysis-nocfg.cpp
+5-5clang/lib/Sema/SemaAttr.cpp
+8-0clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp
+65-103 files

LLVM/project f4de9b8utils/bazel/llvm-project-overlay/llvm BUILD.bazel

[bazel] Fix llvm-ir2vec
DeltaFile
+2-1utils/bazel/llvm-project-overlay/llvm/BUILD.bazel
+2-11 files

LLVM/project 104c30bmlir/include/mlir/Interfaces ControlFlowInterfaces.h, mlir/lib/Dialect/SCF/IR SCF.cpp

[mlir][Interfaces] Add generic pattern for region inlining
DeltaFile
+160-0mlir/lib/Interfaces/ControlFlowInterfaces.cpp
+50-23mlir/lib/Dialect/SCF/IR/SCF.cpp
+21-0mlir/include/mlir/Interfaces/ControlFlowInterfaces.h
+231-233 files

LLVM/project a4975a8llvm/lib/CodeGen CodeGenPrepare.cpp, llvm/test/Transforms/CodeGenPrepare/AArch64 sink-free-instructions.ll

[CGP][AArch64] Do not sink instructions that might read/write memory. (#176182)

The test case's call instruction was being sank past the point where the
memory
it accessed was valid. Add a check that CGP does not try to sink
instruction that
might be invalid to move.

Fixes #176095
DeltaFile
+92-6llvm/test/Transforms/CodeGenPrepare/AArch64/sink-free-instructions.ll
+1-1llvm/lib/CodeGen/CodeGenPrepare.cpp
+93-72 files

LLVM/project 8640fb3llvm/lib/CodeGen DwarfEHPrepare.cpp, llvm/test/CodeGen/AArch64 dwarf-eh-prepare-dbg.ll

DwarfEHPrepare: Use LibcallLoweringInfo analysis (#176380)

DeltaFile
+39-15llvm/lib/CodeGen/DwarfEHPrepare.cpp
+7-0llvm/test/Transforms/DwarfEHPrepare/missing-analysis.ll
+1-1llvm/test/CodeGen/AArch64/dwarf-eh-prepare-dbg.ll
+1-1llvm/test/CodeGen/X86/dwarf-eh-prepare-dbg.ll
+1-1llvm/test/CodeGen/X86/dwarf-eh-prepare.ll
+1-1llvm/test/CodeGen/X86/dwarf_eh_resume.ll
+50-196 files

LLVM/project 36801a5llvm/lib/CodeGen AtomicExpandPass.cpp, llvm/test/Transforms/AtomicExpand/AMDGPU expand-atomic-i64-agent.ll expand-atomic-i32-agent.ll

AtomicExpand: Use LibcallLoweringInfo analysis (#176384)

DeltaFile
+36-8llvm/lib/CodeGen/AtomicExpandPass.cpp
+8-8llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i64-agent.ll
+8-8llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i32-agent.ll
+8-8llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i32-system.ll
+8-8llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-i64-system.ll
+8-8llvm/test/Transforms/AtomicExpand/AMDGPU/expand-atomic-v2f16-system.ll
+76-4855 files not shown
+220-18561 files

LLVM/project 5475cabllvm/lib/CodeGen StackProtector.cpp, llvm/test/CodeGen/NVPTX no-stack-protector-libcall-error.ll

StackProtector: Use LibcallLoweringInfo analysis (#170329)

DeltaFile
+55-27llvm/lib/CodeGen/StackProtector.cpp
+7-0llvm/test/Transforms/StackProtector/missing-analysis.ll
+2-2llvm/test/CodeGen/X86/stack-protector-atomicrmw-xchg.ll
+1-1llvm/test/CodeGen/NVPTX/no-stack-protector-libcall-error.ll
+1-1llvm/test/Transforms/StackProtector/cross-dso-cfi-stack-chk-fail.ll
+1-1llvm/test/Transforms/StackProtector/stack-chk-fail-alias.ll
+67-326 files

LLVM/project 4ea2517clang-tools-extra/clang-tidy doc8.ini

[clang-tidy][NFC] Update doc8 config (#176622)

DeltaFile
+1-2clang-tools-extra/clang-tidy/doc8.ini
+1-21 files