LLVM/project 9a894ffllvm/lib/Transforms/IPO IROutliner.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.av.load.b128.ll amdgcn.bitcast.1024bit.ll

Rebase

Created using spr 1.3.7
DeltaFile
+2,825-2,887llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+4,862-0llvm/test/Transforms/LoopVectorize/vplan-based-stride-mv.ll
+4,058-0llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.ptr.s.buffer.load.ll
+3,291-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.load.b128.ll
+2,988-0llvm/test/Transforms/LoopVectorize/VPlan/vplan-based-stride-mv.ll
+0-2,975llvm/lib/Transforms/IPO/IROutliner.cpp
+18,024-5,8622,851 files not shown
+154,244-94,0442,857 files

LLVM/project 610a310mlir/include/mlir/Dialect/LLVMIR LLVMAttrDefs.td LLVMOps.td, mlir/lib/CAPI/Dialect LLVM.cpp

[MLIR][LLVM] Share LLVM metadata attribute translation (#203016)

Share LLVM dialect metadata materialization through `ModuleTranslation`
so named metadata and metadata-as-value lowering use one conversion
path. Resolve metadata symbol references to functions, globals, aliases,
and ifuncs, and diagnose malformed required metadata before lowering.

Rename `MDFuncAttr` to `MDGlobalValueAttr` to reflect its support for
symbol-backed global values.
DeltaFile
+19-43mlir/lib/Target/LLVMIR/Dialect/LLVMIR/LLVMToLLVMIRTranslation.cpp
+53-0mlir/lib/Target/LLVMIR/ModuleTranslation.cpp
+32-1mlir/test/Target/LLVMIR/llvmir-named-metadata.mlir
+13-10mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
+13-8mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td
+10-9mlir/lib/CAPI/Dialect/LLVM.cpp
+140-719 files not shown
+204-10215 files

LLVM/project ecb50abmlir/lib/Target/LLVMIR ModuleImport.cpp, mlir/test/Target/LLVMIR/Import import-failure.ll

[MLIR][LLVM] Reject distinct generic metadata on import (#212455)

Reject distinct nodes when converting generic LLVM metadata into LLVM
dialect attributes because `MDNodeAttr` cannot preserve node identity.
Apply the policy recursively so top-level and nested nodes use the
existing unsupported-metadata failure path while finite acyclic uniqued
nodes remain importable.
DeltaFile
+25-0mlir/test/Target/LLVMIR/Import/import-failure.ll
+6-2mlir/lib/Target/LLVMIR/ModuleImport.cpp
+31-22 files

LLVM/project 1be2288clang/lib/Analysis/LifetimeSafety LifetimeAnnotations.cpp FactsGenerator.cpp, clang/test/Sema/LifetimeSafety safety.cpp

[LifetimeSafety] Support allocating/freeing builtins
DeltaFile
+21-8clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+24-2clang/test/Sema/LifetimeSafety/safety.cpp
+20-0clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp
+5-0clang/test/Sema/LifetimeSafety/Inputs/lifetime-analysis.h
+70-104 files

LLVM/project 07a12d8llvm/lib/Transforms/IPO IROutliner.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.av.load.b128.ll amdgcn.bitcast.1024bit.ll

Rebase

Created using spr 1.3.7
DeltaFile
+2,825-2,887llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+4,058-0llvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.ptr.s.buffer.load.ll
+3,291-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.load.b128.ll
+0-2,975llvm/lib/Transforms/IPO/IROutliner.cpp
+0-2,850llvm/unittests/Analysis/IRSimilarityIdentifierTest.cpp
+1,139-1,149llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-fdiv.mir
+11,313-9,8612,111 files not shown
+118,162-84,4762,117 files

LLVM/project df8c73bclang/include/clang/Analysis/Analyses/LifetimeSafety Loans.h, clang/lib/Analysis/LifetimeSafety Loans.cpp LifetimeAnnotations.cpp

[LifetimeSafety] Support allocating/freeing functions annotated with ownership_takes/ownership_returns
DeltaFile
+134-0clang/test/Sema/LifetimeSafety/safety.cpp
+51-0clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+17-3clang/lib/Sema/SemaLifetimeSafety.h
+12-4clang/include/clang/Analysis/Analyses/LifetimeSafety/Loans.h
+14-0clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp
+8-3clang/lib/Analysis/LifetimeSafety/Loans.cpp
+236-102 files not shown
+256-108 files

LLVM/project a7b2404clang/include/clang/Analysis/Analyses/LifetimeSafety Loans.h, clang/lib/Analysis/LifetimeSafety Loans.cpp LifetimeAnnotations.cpp

[LifetimeSafety] Support allocating/freeing functions annotated with ownership_takes/ownership_returns
DeltaFile
+134-0clang/test/Sema/LifetimeSafety/safety.cpp
+51-0clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+17-3clang/lib/Sema/SemaLifetimeSafety.h
+12-4clang/include/clang/Analysis/Analyses/LifetimeSafety/Loans.h
+14-0clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp
+8-3clang/lib/Analysis/LifetimeSafety/Loans.cpp
+236-102 files not shown
+256-108 files

LLVM/project 60f965bclang-tools-extra/clang-tidy/readability UseStdMinMaxCheck.cpp, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] Fix trailing semicolon and lost comment in readability-use-std-min-max (#208782)

Fix two bugs in readability-use-std-min-max when the if body has no
braces.

For brace-less if bodies, If->getEndLoc() points to the expression end
rather than the trailing semicolon, truncating replacements and losing
comments. We find the semicolon via findNextToken and extend the range
consistent with compound statement logic.

Before:
  if (n < -1) n = -1 ;          ->  n = std::max(n, -1); ;
  if (n > 1) n = 1/*comment*/;  ->  n = std::min(n, 1);;

After:
  if (n < -1) n = -1 ;          ->  n = std::max(n, -1);
  if (n > 1) n = 1/*comment*/;  ->  n = std::min(n, 1); /*comment*/

Fixes #208708.

AI Usage: This patch is AI-assisted, reviewed and verified by me.
DeltaFile
+12-0clang-tools-extra/test/clang-tidy/checkers/readability/use-std-min-max.cpp
+7-1clang-tools-extra/clang-tidy/readability/UseStdMinMaxCheck.cpp
+4-0clang-tools-extra/docs/ReleaseNotes.rst
+23-13 files

LLVM/project 63f9de8llvm/test/CodeGen/AArch64/GlobalISel store-merging-debug.mir store-merging.mir

[AArch64][GlobalISel] Update store merging tests to concrete types. NFC (#213429)
DeltaFile
+86-86llvm/test/CodeGen/AArch64/GlobalISel/store-merging.mir
+38-38llvm/test/CodeGen/AArch64/GlobalISel/store-merging-debug.mir
+124-1242 files

LLVM/project 71b120fllvm/lib/Target/AMDGPU VOP1Instructions.td AMDGPU.td

[AMDGPU] Use SubtargetPredicates for the f32/f16 -> fp8/bf8 conversions (#213383)

The follow-up #212888 left for the other direction. HasCvtFP8SDWASrcSel
and HasCvtFP8ByteSel replace isGFX940Plus and isGFX11Plus on the f32 ->
fp8/bf8 conversions, which split by the same encoding characteristic, so
the two feature descriptions become direction-neutral. The f16 ->
fp8/bf8 conversions had no feature at all, so add
FeatureF16FP8ConversionInsts, the mirror of the existing
FeatureFP8F16ConversionInsts, and use it in place of isGFX1250Plus.

Assisted-By: Claude Opus 5
DeltaFile
+16-14llvm/lib/Target/AMDGPU/VOP3Instructions.td
+11-4llvm/lib/Target/AMDGPU/AMDGPU.td
+1-1llvm/lib/Target/AMDGPU/VOP1Instructions.td
+28-193 files

LLVM/project fc4b0bellvm/lib/Analysis ConstantFolding.cpp, llvm/lib/Target/AMDGPU SIISelLowering.cpp

Fold constant `0` at instcombine.
DeltaFile
+0-25llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+10-0llvm/lib/Analysis/ConstantFolding.cpp
+10-252 files

LLVM/project 232e8b5libcxx/docs/Status Cxx26Issues.csv, libcxx/include/__atomic atomic.h

[libc++] Implement LWG4169: `std::atomic<T>`'s default constructor should be constrained (#131950)

Drive-by: Rename `constexpr_noexcept.compile.pass.cpp` to
`ctor.default.pass.cpp` as test coverage is added to it, and compile and
run it in all modes.
DeltaFile
+71-0libcxx/test/std/atomics/atomics.types.generic/ctor.default.pass.cpp
+0-41libcxx/test/std/atomics/atomics.types.generic/constexpr_noexcept.compile.pass.cpp
+4-1libcxx/include/__atomic/atomic.h
+1-1libcxx/docs/Status/Cxx26Issues.csv
+76-434 files

LLVM/project a2756bdmlir/include/mlir-c IR.h, mlir/lib/CAPI/IR IR.cpp

Address review: fix -Wenum-compare build failure, add structural hash, expand flag coverage
DeltaFile
+115-2mlir/test/CAPI/ir.c
+11-16mlir/lib/CAPI/IR/IR.cpp
+19-7mlir/include/mlir-c/IR.h
+145-253 files

LLVM/project 50b15d6mlir/include/mlir-c IR.h, mlir/lib/CAPI/IR IR.cpp

[mlir-c] Add structural operation equivalence
DeltaFile
+70-0mlir/test/CAPI/ir.c
+25-0mlir/include/mlir-c/IR.h
+24-0mlir/lib/CAPI/IR/IR.cpp
+119-03 files

LLVM/project 9947b7fmlir/cmake/modules AddMLIR.cmake, mlir/lib CMakeLists.txt

[MLIR][CMake] Extend MLIRIR PCH reuse to transitive dependants

llvm_update_pch() only offers a PCH to targets that name the defining
library as a *direct* dependency, because across LLVM subprojects a
transitively reused PCH drags in unrelated headers and causes name
collisions. Within MLIR that concern is much weaker: mlir/IR/pch.h holds
MLIR core headers that essentially every MLIR library includes anyway.

Add mlir_reuse_ir_pch(), which offers MLIRIR's PCH to any target that
actually reaches MLIRIR through its link graph. The reachability check
matters: a PCH containing MLIR IR headers emits out-of-line symbols that
only libMLIRIR provides, so handing it to a Support-only target such as
tblgen-lsp-server breaks the link.

The helper is called from add_mlir_library() and add_mlir_tool(), and
again from mlir_target_link_libraries(), where most tests, unittests and
libMLIR.so-avoiding libraries actually attach their MLIR dependencies. It
is idempotent and skips targets that define their own PCH, that opt out
with DISABLE_PCH_REUSE, that override RTTI/EH, or that contain C/ObjC

    [18 lines not shown]
DeltaFile
+135-2mlir/cmake/modules/AddMLIR.cmake
+7-4mlir/lib/CMakeLists.txt
+5-0mlir/lib/Tools/PDLL/ODS/CMakeLists.txt
+5-0mlir/lib/Tools/PDLL/AST/CMakeLists.txt
+1-0mlir/unittests/CMakeLists.txt
+153-65 files

LLVM/project 6b98f82cmake/Modules GetTripleCMakeSystemName.cmake, llvm/include/llvm/TargetParser TripleName.def

cmake: Derive CMake system name from a triple via new mechanism (#208773)
DeltaFile
+118-110llvm/include/llvm/TargetParser/TripleName.def
+206-0llvm/test/tools/TargetParser/get_triple_system_name_test.py
+148-0llvm/utils/get_triple_system_name.py
+40-0cmake/Modules/GetTripleCMakeSystemName.cmake
+4-4llvm/lib/TargetParser/Triple.cpp
+6-0llvm/test/tools/TargetParser/get-triple-system-name.test
+522-1146 files

LLVM/project 2605272llvm/lib/Target/RISCV RISCVInstrInfoC.td, llvm/test/MC/RISCV priv-invalid.s

[𝘀𝗽𝗿] initial version

Created using spr 1.3.8-beta.1-arichardson
DeltaFile
+465-0llvm/test/MC/RISCV/rvy/rvyc-valid-load-store.s
+199-0llvm/test/MC/RISCV/rvy/rvy-valid-load-store.s
+91-95llvm/lib/Target/RISCV/RISCVInstrInfoC.td
+170-0llvm/test/TableGen/getRegClassFromMatchKind.td
+158-0llvm/test/MC/RISCV/rvy/rvyc-invalid-load-store.s
+91-47llvm/test/MC/RISCV/priv-invalid.s
+1,174-14252 files not shown
+2,275-47258 files

LLVM/project de41429llvm/lib/Target/RISCV RISCVInstrInfo.td RISCVInstrInfoC.td, llvm/test/MC/RISCV target-abi-invalid.s priv-invalid.s

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

Created using spr 1.3.8-beta.1-arichardson

[skip ci]
DeltaFile
+82-88llvm/lib/Target/RISCV/RISCVInstrInfoC.td
+170-0llvm/test/TableGen/getRegClassFromMatchKind.td
+91-47llvm/test/MC/RISCV/priv-invalid.s
+61-59llvm/test/MC/RISCV/target-abi-invalid.s
+44-50llvm/lib/Target/RISCV/RISCVInstrInfo.td
+85-1llvm/utils/TableGen/AsmMatcherEmitter.cpp
+533-24536 files not shown
+816-40442 files

LLVM/project f9a6d13llvm/lib/Transforms/InstCombine InstCombineLoadStoreAlloca.cpp, llvm/test/Transforms/InstCombine atomic.ll

[InstCombine] Don't change the type of elementwise atomic loads
DeltaFile
+11-0llvm/test/Transforms/InstCombine/atomic.ll
+3-0llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
+14-02 files

LLVM/project 586a5ballvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/lib/Target/RISCV/MCTargetDesc RISCVBaseInfo.cpp

add more error cases

Created using spr 1.3.8-beta.1-arichardson
DeltaFile
+12-6llvm/unittests/Target/RISCV/RISCVBaseInfoTest.cpp
+11-6llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.cpp
+4-4llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+27-163 files

LLVM/project a77fad1llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/lib/Target/RISCV/MCTargetDesc RISCVBaseInfo.cpp

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.8-beta.1-arichardson

[skip ci]
DeltaFile
+4-4llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+2-4llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.cpp
+1-2llvm/unittests/Target/RISCV/RISCVBaseInfoTest.cpp
+7-103 files

LLVM/project c27bee2llvm/lib/Target/AMDGPU VOP3PInstructions.td SIInstrInfo.h

[AMDGPU] Generalize MFMA VGPR->AGPR opcode mapping (NFC) (#213274)

Move the VGPR/AGPR pairing out of MFMATable into a generalized
AGPRFormTable class and rename getMFMASrcCVDstAGPROp to getAGPRFormOp.
MFMATable inherits AGPRFormTable, so the instantiation sites and the
generated table are unchanged.

Other instruction families with paired VGPR/AGPR pseudos, such as DS,
can now be tagged with AGPRFormTable.

Related to #168983
DeltaFile
+10-5llvm/lib/Target/AMDGPU/SIInstrInfo.td
+3-4llvm/lib/Target/AMDGPU/AMDGPURewriteAGPRCopyMFMA.cpp
+1-5llvm/lib/Target/AMDGPU/VOP3PInstructions.td
+3-3llvm/lib/Target/AMDGPU/SIInstrInfo.h
+3-3llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
+20-205 files

LLVM/project 3c3a18eclang/include/clang/Basic OffloadArch.h, clang/lib/Basic Cuda.cpp OffloadArch.cpp

clang: Store vendor GPU kinds in OffloadArch instead of re-listing GPUs (#213362)

OffloadArch was a flat enum that hand-duplicated every AMDGPU and NVPTX
target, plus a few edge cases. This was yet another place that needed
updating every time a new target is added, which should now be avoided.
Replace with a tagged union-like scheme.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+103-143clang/include/clang/Basic/OffloadArch.h
+73-136clang/lib/Basic/OffloadArch.cpp
+42-19clang/unittests/Basic/OffloadArchTest.cpp
+12-28clang/lib/Basic/Cuda.cpp
+27-10clang/test/Misc/target-invalid-cpu-note/nvptx.c
+12-14clang/lib/Driver/Driver.cpp
+269-3508 files not shown
+304-38114 files

LLVM/project 521ac0dllvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/lib/Target/RISCV/MCTargetDesc RISCVBaseInfo.cpp

clang-format

Created using spr 1.3.8-beta.1-arichardson
DeltaFile
+4-4llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+2-4llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.cpp
+1-2llvm/unittests/Target/RISCV/RISCVBaseInfoTest.cpp
+7-103 files

LLVM/project c72e559mlir/include/mlir/IR pch.h, mlir/lib CMakeLists.txt

[MLIR][CMake] Add PCH for MLIRIR

Add a precompiled header for MLIRIR, following the infrastructure added in
llvm#176420 and the per-component PCHs for llvm/IR (llvm#183303),
llvm/CodeGen (llvm#183346) and clang/AST (llvm#183358).

The header list was selected with the same methodology: compile all 1173
CUs under mlir/lib with -ftime-trace, rank mlir headers by the time spent
parsing them (including transitively included headers), then greedily pick
the header with the largest marginal coverage until the marginal gain
falls off. Candidates were restricted to headers already reachable from
MLIRIR's own sources, so the PCH does not invert the library layering.

Over the mlir/lib CUs, the selected set covers 1227s of 3674s total
frontend time (33%). On a Release+assertions build of mlir-opt
(Apple M-series, -j16), clean build wall time goes from 468.3s to 440.8s
(-5.9%); 715 of 1536 MLIR objects reuse the PCH.

mlir/lib/CMakeLists.txt gains an explicit add_subdirectory(IR) before the

    [7 lines not shown]
DeltaFile
+47-0mlir/include/mlir/IR/pch.h
+8-8mlir/lib/Tools/mlir-lsp-server/LSPServer.cpp
+4-1mlir/lib/CMakeLists.txt
+3-0mlir/lib/IR/CMakeLists.txt
+62-94 files

LLVM/project b12686dllvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/lib/Target/RISCV/AsmParser RISCVAsmParser.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.8-beta.1-arichardson
DeltaFile
+61-59llvm/test/MC/RISCV/target-abi-invalid.s
+67-1llvm/unittests/Target/RISCV/RISCVBaseInfoTest.cpp
+36-30llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.cpp
+10-16llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+8-14llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+10-7llvm/lib/TargetParser/RISCVISAInfo.cpp
+192-1278 files not shown
+241-14214 files

LLVM/project 733727dllvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/lib/Target/RISCV/AsmParser RISCVAsmParser.cpp

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

Created using spr 1.3.8-beta.1-arichardson

[skip ci]
DeltaFile
+61-59llvm/test/MC/RISCV/target-abi-invalid.s
+36-30llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.cpp
+42-1llvm/unittests/Target/RISCV/RISCVBaseInfoTest.cpp
+10-16llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+8-14llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+6-6llvm/test/CodeGen/RISCV/target-abi-invalid.ll
+163-1264 files not shown
+187-13210 files

LLVM/project 3d7fc37llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/lib/Target/RISCV/AsmParser RISCVAsmParser.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.8-beta.1-arichardson
DeltaFile
+61-59llvm/test/MC/RISCV/target-abi-invalid.s
+36-30llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.cpp
+42-1llvm/unittests/Target/RISCV/RISCVBaseInfoTest.cpp
+10-16llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+8-14llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+6-6llvm/test/CodeGen/RISCV/target-abi-invalid.ll
+163-1264 files not shown
+187-13210 files

LLVM/project b94b699llvm/lib/TargetParser RISCVISAInfo.cpp, llvm/unittests/Target/RISCV CMakeLists.txt RISCVBaseInfoTest.cpp

[RISCV] Fix ISCVISAInfo::computeDefaultABI() result for xcheriot (#212129)

XCheriot was not considered in this function, so RV32E+XCheriot
defaulted
to ilp32e instead of cheriot when no -target-abi was given.

Since this function does not have unit test coverage, this adds new
tests
for the ABI inference functions: RISCVISAInfo::computeDefaultABI() and
RISCVABI::computeTargetABI.

This change was created with the help of AI tools
DeltaFile
+50-0llvm/unittests/Target/RISCV/RISCVBaseInfoTest.cpp
+21-0llvm/unittests/TargetParser/RISCVISAInfoTest.cpp
+2-0llvm/lib/TargetParser/RISCVISAInfo.cpp
+1-0llvm/unittests/Target/RISCV/CMakeLists.txt
+74-04 files

LLVM/project d9e6999llvm/lib/Target/X86/MCTargetDesc X86AsmBackend.cpp

[X86AsmBackend] Define reset() hook (#213409)

Noticed when reviewing #175830: MCObjectStreamer::reset frees the
fragments PendingBA and PrevInstPosition point into, but X86AsmBackend
keeps them. Define the hook.
DeltaFile
+7-0llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
+7-01 files