LLVM/project 991fd93llvm/lib/CodeGen MIRPrinter.cpp, llvm/lib/CodeGen/MIRParser MIParser.cpp

[MIR] Support symbolic inline asm operands (#185893)

Support parsing and printing inline assembly operands in MIR using the
symbolic form instead of numeric register class IDs, thus removing the
need to update tests when the numbers change.

The numeric form remains supported.

---------

Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
DeltaFile
+99-3llvm/lib/CodeGen/MIRParser/MIParser.cpp
+16-16llvm/test/CodeGen/AMDGPU/dst-sel-hazard.mir
+26-0llvm/lib/CodeGen/MIRPrinter.cpp
+11-0llvm/test/CodeGen/MIR/Generic/inline-asm-no-constraint.mir
+11-0llvm/test/CodeGen/MIR/Generic/inline-asm-bad-mem-constraint.mir
+11-0llvm/test/CodeGen/MIR/Generic/inline-asm-bad-regclass.mir
+174-196 files

LLVM/project 7ba7d76libcxx/test/benchmarks/containers/associative associative_container_benchmarks.h

[libc++] Make the associative container query benchmarks more representative (#183036)

Currently the query benchmarks are training the branch predictor
incredibly well, which isn't representative of the real world. This
change causes the branch misses to go from <1% to ~50% with the current
implementation of `__tree::__find_end`.

This patch also removes the `non-existent` benchmarks, since it'd be
non-trivial to write a representative benchmark for that case, and the
benchmark would be relatively low value. We're already searching to leaf
nodes ~50% of the time (since half the nodes are leaves) with the
current benchmark. So we'd only additionally cover a relatively trivial
failure branch that is only taken once per function call. The loop is
already covered through benchmarking with keys existing in the
container.
DeltaFile
+15-57libcxx/test/benchmarks/containers/associative/associative_container_benchmarks.h
+15-571 files

LLVM/project 94da403llvm/lib/Analysis InlineCost.cpp ScalarEvolution.cpp, llvm/unittests/Analysis MemorySSATest.cpp LoopInfoTest.cpp

[Analysis][NFC] Drop use of BranchInst (#186374)

Largely straight-forward replacement.
DeltaFile
+24-24llvm/unittests/Analysis/MemorySSATest.cpp
+22-22llvm/lib/Analysis/InlineCost.cpp
+18-22llvm/lib/Analysis/ScalarEvolution.cpp
+16-16llvm/unittests/Analysis/LoopInfoTest.cpp
+12-16llvm/lib/Analysis/IRSimilarityIdentifier.cpp
+13-13llvm/unittests/Analysis/ScalarEvolutionTest.cpp
+105-11327 files not shown
+210-24033 files

LLVM/project 446c552llvm/test/Analysis/DependenceAnalysis exact-siv-large-btc.ll

[DA] Add test for the Exact SIV test misses dependency (NFC)
DeltaFile
+53-0llvm/test/Analysis/DependenceAnalysis/exact-siv-large-btc.ll
+53-01 files

LLVM/project 95050a2llvm/lib/Analysis DependenceAnalysis.cpp, llvm/test/Analysis/DependenceAnalysis exact-siv-large-btc.ll rdiv-large-btc.ll

[DA] Add precondition `0 <=s UB` to function `inferAffineDomain`
DeltaFile
+23-12llvm/lib/Analysis/DependenceAnalysis.cpp
+16-9llvm/test/Analysis/DependenceAnalysis/exact-siv-large-btc.ll
+1-1llvm/test/Analysis/DependenceAnalysis/rdiv-large-btc.ll
+40-223 files

LLVM/project 77bcad4llvm/lib/Analysis DependenceAnalysis.cpp, llvm/test/Analysis/DependenceAnalysis strong-siv-addrec-wrap.ll exact-siv-addrec-wrap.ll

[DA] Remove calls to the GCD MIV test from `testSIV`
DeltaFile
+9-19llvm/test/Analysis/DependenceAnalysis/strong-siv-addrec-wrap.ll
+9-19llvm/test/Analysis/DependenceAnalysis/exact-siv-addrec-wrap.ll
+9-16llvm/test/Analysis/DependenceAnalysis/infer_affine_domain_ovlf.ll
+12-12llvm/test/Analysis/DependenceAnalysis/run-specific-dependence-test.ll
+4-8llvm/lib/Analysis/DependenceAnalysis.cpp
+2-2llvm/test/Analysis/DependenceAnalysis/exact-siv-overflow.ll
+45-766 files

LLVM/project 9e59354mlir/lib/Dialect/Tosa/Transforms TosaProfileCompliance.cpp, mlir/test/Dialect/Tosa invalid_extension.mlir tosa-validation-version-1p1-valid.mlir

[mlir][tosa] Allow integer gather/scatter ops in fp profile (#183342)

This commit updates profile compliance to allow integer gather and
scatter operations to be used with the floating point profile. This
update aligns with the specification change:
https://github.com/arm/tosa-specification/pull/35.
DeltaFile
+76-66mlir/lib/Dialect/Tosa/Transforms/TosaProfileCompliance.cpp
+57-57mlir/test/Dialect/Tosa/invalid_extension.mlir
+96-0mlir/test/Dialect/Tosa/tosa-validation-version-1p1-valid.mlir
+47-47mlir/test/Dialect/Tosa/profile_pro_fp_unsupported.mlir
+43-44mlir/test/Dialect/Tosa/profile_all_unsupported.mlir
+37-37mlir/test/Dialect/Tosa/profile_pro_int_unsupported.mlir
+356-2516 files not shown
+435-27412 files

LLVM/project 8238ae2clang/lib/CIR/CodeGen CIRGenExprConstant.cpp, clang/test/CIR/CodeGenCXX zero_init_bases.cpp

[CIR] Implement zero-init-bases lowering (#186230)

This showed up in a test suite. A zero-initializer for a whole struct
seems completely sensible, as long as the type is zero-initializable.

This patch doesn't change the non-zero-init behavior (I am working on a
patch to do so, but it is a massive scope), so this is limited to JUST
classes with bases.
DeltaFile
+56-0clang/test/CIR/CodeGenCXX/zero_init_bases.cpp
+0-6clang/lib/CIR/CodeGen/CIRGenExprConstant.cpp
+56-62 files

LLVM/project 0baa7baclang/docs ReleaseNotes.rst, clang/lib/Sema SemaTemplateInstantiateDecl.cpp

[Clang][Sema] Only call PerformDependentDiagnostics for dependent contexts (#177452)
DeltaFile
+26-0clang/test/SemaTemplate/GH176155.cpp
+2-1clang/lib/Sema/SemaTemplateInstantiateDecl.cpp
+1-0clang/docs/ReleaseNotes.rst
+29-13 files

LLVM/project 9d20e75llvm/lib/Transforms/Vectorize VectorCombine.cpp, llvm/test/Transforms/VectorCombine/X86 shuffle-of-selects.ll

[VectorCombine] Fix crash in foldShuffleOfSelects for single-element shuffle result (#185713)

In foldShuffleOfSelects, if the shuffle result has a single element, the
resulting type may be scalar rather than a vector. The later code in
foldShuffleOfSelects assumes the result is a vector and performs cast<
FixedVectorType >, which triggers an assertion.

Fixes #183625
DeltaFile
+15-0llvm/test/Transforms/VectorCombine/X86/shuffle-of-selects.ll
+2-2llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+17-22 files

LLVM/project d7a388cllvm/lib/Target/AMDGPU SIInsertWaitcnts.cpp

[AMDGPU] Pass MF into the SIInsertWaitcnts constructor. NFC. (#186369)

Pass MF into the SIInsertWaitcnts constructor instead of the run method.
This is more natural now that SIInsertWaitcnts is constructed once per
MachineFunction and enables future cleanup by initializing more fields
in the constructor that depend on MF.
DeltaFile
+7-6llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+7-61 files

LLVM/project 8c84b3cllvm/lib/Target/AMDGPU SIInstrInfo.h

[AMDGPU][NFC] Add missing isFLAT check to isVMEM. (#186321)

This was missed in #137148
DeltaFile
+2-1llvm/lib/Target/AMDGPU/SIInstrInfo.h
+2-11 files

LLVM/project d540855mlir/lib/Bytecode/Reader BytecodeReader.cpp, mlir/test/Bytecode bytecode_callback_with_spirv_and_custom_attr.mlir

[mlir][Bytecode] Fix stale deferred worklist entries in attribute callback fallthrough (#186150)

When parseCustomEntry() calls a user attribute/type callback that
internally reads sub-attributes/types via the bytecode reader, the
reader may add entries to the deferredWorklist if the depth limit is
exceeded. If the callback then returns success with an empty entry
(falling through to the regular dialect reader), the reader position is
reset but deferredWorklist retains stale entries from the failed partial
read.

This causes an assert(deferredWorklist.empty()) failure in debug builds
when the fallback dialect reader successfully parses the attribute.

Fix by saving and restoring deferredWorklist.size() around each callback
invocation, discarding any stale entries added during a callback's
partial read when the reader position is rolled back.

Fixes #163337

Assisted-by: Claude Code
DeltaFile
+30-0mlir/test/Bytecode/bytecode_callback_with_spirv_and_custom_attr.mlir
+10-4mlir/lib/Bytecode/Reader/BytecodeReader.cpp
+40-42 files

LLVM/project 0572ad6mlir/lib/Dialect/Shape/IR ShapeCanonicalization.td, mlir/test/Dialect/Shape canonicalize.mlir

[mlir][shape] Fix crash when folding tensor.extract(shape_of(memref)) (#186270)

The `ExtractFromShapeOfExtentTensor` canonicalization pattern was
unconditionally rewriting:

  tensor.extract(shape.shape_of(%arg), %idx) -> tensor.dim(%arg, %idx)

even when `%arg` is a memref. This produced an invalid `tensor.dim`
(whose source operand must be a tensor), which then caused an assertion
failure in `DimOp::getSource()` when subsequent canonicalization
patterns tried to match the op:

Assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible type\!"'
  failed.  [To = TypedValue<TensorType>, From = Value]

Fix: add an `IsTensorType` constraint to
`ExtractFromShapeOfExtentTensor` in `ShapeCanonicalization.td` so the
pattern only fires when `%arg` is a tensor type. The memref case is
intentionally left unfolded (the correct lowering to `memref.dim` would

    [8 lines not shown]
DeltaFile
+31-0mlir/test/Dialect/Shape/canonicalize.mlir
+9-3mlir/lib/Dialect/Shape/IR/ShapeCanonicalization.td
+40-32 files

LLVM/project b4edef4llvm/lib/CodeGen MIRPrinter.cpp, llvm/lib/CodeGen/MIRParser MIParser.cpp

Address feedback.
DeltaFile
+15-26llvm/lib/CodeGen/MIRParser/MIParser.cpp
+0-4llvm/test/CodeGen/MIR/Generic/inline-asm-bad-mem-constraint.mir
+0-4llvm/test/CodeGen/MIR/Generic/inline-asm-bad-regclass.mir
+0-4llvm/test/CodeGen/MIR/Generic/inline-asm-no-constraint.mir
+2-1llvm/lib/CodeGen/MIRPrinter.cpp
+17-395 files

LLVM/project 0a36c87lldb/tools/lldb-dap FifoFiles.cpp FifoFiles.h, lldb/tools/lldb-dap/Handler RequestHandler.cpp

[lldb][windows] add a Windows FifoFile implementation (#185894)

This patch is a prelude to
https://github.com/llvm/llvm-project/pull/174635. It implements a
Windows version of the `FifoFile` class used in lldb-dap.

This change is not used as is, it will be used when
https://github.com/llvm/llvm-project/pull/174635 lands.
DeltaFile
+86-12lldb/tools/lldb-dap/FifoFiles.cpp
+21-3lldb/tools/lldb-dap/FifoFiles.h
+6-2lldb/tools/lldb-dap/RunInTerminal.cpp
+4-4lldb/unittests/DAP/FifoFilesTest.cpp
+3-3lldb/tools/lldb-dap/Handler/RequestHandler.cpp
+1-0lldb/tools/lldb-dap/RunInTerminal.h
+121-246 files

LLVM/project 2cbefc9llvm/lib/Analysis DependenceAnalysis.cpp, llvm/test/Analysis/DependenceAnalysis exact-siv-large-btc.ll rdiv-large-btc.ll

[DA] Add precondition `0 <=s UB` to function `inferAffineDomain`
DeltaFile
+23-12llvm/lib/Analysis/DependenceAnalysis.cpp
+16-9llvm/test/Analysis/DependenceAnalysis/exact-siv-large-btc.ll
+1-1llvm/test/Analysis/DependenceAnalysis/rdiv-large-btc.ll
+40-223 files

LLVM/project e4959f9llvm/utils/gn/secondary/clang-tools-extra/clang-doc/tool BUILD.gn

[gn] port b80248a0ea35df (clang-doc md templates)
DeltaFile
+5-0llvm/utils/gn/secondary/clang-tools-extra/clang-doc/tool/BUILD.gn
+5-01 files

LLVM/project 83c875aclang/lib/AST/ByteCode Descriptor.cpp

[clang][bytecode][NFC] Move local variable into closest scope (#186376)

We don't need ElemLoc unless we have an element ctor func.
DeltaFile
+4-3clang/lib/AST/ByteCode/Descriptor.cpp
+4-31 files

LLVM/project 67d5839llvm/test/Analysis/DependenceAnalysis exact-siv-large-btc.ll

[DA] Add test for the Exact SIV test misses dependency (NFC)
DeltaFile
+53-0llvm/test/Analysis/DependenceAnalysis/exact-siv-large-btc.ll
+53-01 files

LLVM/project 082987fllvm/lib/Target/AMDGPU AMDGPURegBankLegalizeRules.cpp, llvm/test/CodeGen/AMDGPU amdgcn-sin-cos-f16-f32.ll

[AMDGPU][GlobalIsel] Add register bank legalization rules for amdgcn sin cos intrinsics. (#185934)

This patch adds register bank legalization rules for amdgcn sin and cos
operations in the AMDGPU GlobalISel pipeline.
DeltaFile
+76-0llvm/test/CodeGen/AMDGPU/amdgcn-sin-cos-f16-f32.ll
+6-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+82-02 files

LLVM/project 33e80b9llvm/test/CodeGen/X86 bitcnt-big-integer.ll ucmp.ll

[X86] Remove single use assumption in combineVectorSizedSetCCEquality (#182200)

Always allow multiple uses of normal loads in mayFoldIntoVector - scalarisation should break the vector load apart again if we fail to use a vector op.

Closes llvm/llvm-project#164632
DeltaFile
+2,055-2,670llvm/test/CodeGen/X86/bitcnt-big-integer.ll
+1,149-1,243llvm/test/CodeGen/X86/ucmp.ll
+419-714llvm/test/CodeGen/X86/funnel-shift-i512.ll
+491-510llvm/test/CodeGen/X86/bit-manip-i512.ll
+179-117llvm/test/CodeGen/X86/bittest-big-integer.ll
+104-174llvm/test/CodeGen/X86/funnel-shift-i256.ll
+4,397-5,4285 files not shown
+4,672-5,62911 files

LLVM/project 5634068llvm/utils/gn/secondary/clang/test BUILD.gn, llvm/utils/gn/secondary/clang/tools/ssaf-format BUILD.gn

[gn] port b02ef5abab026 / 5d7a502a9d923 (clang-ssaf-format)
DeltaFile
+10-0llvm/utils/gn/secondary/clang/tools/ssaf-format/BUILD.gn
+1-0llvm/utils/gn/secondary/clang/test/BUILD.gn
+11-02 files

LLVM/project 620b308llvm/docs SourceLevelDebugging.rst

[docs] Fix line wrapping in SourceLevelDebugging.rst (#186377)
DeltaFile
+7-7llvm/docs/SourceLevelDebugging.rst
+7-71 files

LLVM/project 603f1e9llvm/lib/Target/AArch64 AArch64ConditionOptimizer.cpp

[NFC][AArch64] ConditionOptimizer Improve readability of cmp adjustment code (#185532)

Change the 'CmpInfo' tuple to a struct and rename adjustCmp() to
getAdjustedCmpInfo()
DeltaFile
+32-37llvm/lib/Target/AArch64/AArch64ConditionOptimizer.cpp
+32-371 files

LLVM/project 61a9cd4mlir/include/mlir/Conversion Passes.td, mlir/include/mlir/Dialect/MPI/IR MPIOps.td

[MLIR][MPI] adding MemoryEffects to MPI ops for buffer-deallocation-pipeline (#186158)
DeltaFile
+24-24mlir/include/mlir/Dialect/MPI/IR/MPIOps.td
+10-6mlir/include/mlir/Conversion/Passes.td
+5-4mlir/lib/Conversion/ShardToMPI/ShardToMPI.cpp
+0-1mlir/test/Conversion/ShardToMPI/convert-shard-to-mpi.mlir
+39-354 files

LLVM/project ae7ee99llvm/utils/gn/secondary/clang/tools/ssaf-linker BUILD.gn

[gn] fix rebase mishap in 52c224a12e564 due to fcd230adc6cb6
DeltaFile
+1-1llvm/utils/gn/secondary/clang/tools/ssaf-linker/BUILD.gn
+1-11 files

LLVM/project 979c772llvm/utils/gn/secondary/clang/test BUILD.gn, llvm/utils/gn/secondary/clang/tools/ssaf-linker BUILD.gn

[gn] port 5cafc12f06ea93, ef375ca2329b01 (clang-ssaf-linker)
DeltaFile
+10-0llvm/utils/gn/secondary/clang/tools/ssaf-linker/BUILD.gn
+1-0llvm/utils/gn/secondary/clang/test/BUILD.gn
+11-02 files

LLVM/project fcd230aclang/lib/Analysis/Scalable/Serialization/JSONFormat JSONFormatImpl.cpp, clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat JSONFormatImpl.cpp

[clang][ssaf][NFC] Move SSAF from Analysis/Scalable/ to ScalableStaticAnalysisFramework/ (#186156)

- Rename `clang/{include,lib,unittests}/Analysis/Scalable/` to
`clang/{include,lib,unittests}/ScalableStaticAnalysisFramework/Core/`
- Update header-guards with their new paths
- Rename the library `clangAnalysisScalable` to
`clangScalableStaticAnalysisFrameworkCore`
- Add a new `Clang_ScalableStaticAnalysisFramework` module to
`module.modulemap`
- Update GN build files, GitHub PR labeler, and documentation
- Harmonise license comments
- Add a missing header-guard
DeltaFile
+0-2,524clang/unittests/Analysis/Scalable/Serialization/JSONFormatTest/LUSummaryTest.cpp
+2,524-0clang/unittests/ScalableStaticAnalysisFramework/Serialization/JSONFormatTest/LUSummaryTest.cpp
+2,344-0clang/unittests/ScalableStaticAnalysisFramework/Serialization/JSONFormatTest/TUSummaryTest.cpp
+0-2,344clang/unittests/Analysis/Scalable/Serialization/JSONFormatTest/TUSummaryTest.cpp
+0-1,202clang/lib/Analysis/Scalable/Serialization/JSONFormat/JSONFormatImpl.cpp
+1,202-0clang/lib/ScalableStaticAnalysisFramework/Core/Serialization/JSONFormat/JSONFormatImpl.cpp
+6,070-6,070178 files not shown
+14,647-14,631184 files

LLVM/project 15b1888llvm/lib/Target/AMDGPU SIInsertWaitcnts.cpp

[AMDGPU] Change SIInsertWaitcnts MLI and PDT to references. NFC. (#186367)

These analyses are always available.
DeltaFile
+10-10llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+10-101 files