LLVM/project d8faf7fllvm/include/llvm/Support GenericDomTreeConstruction.h, llvm/unittests/Support GenericDomTreeTest.cpp

[spr] initial version

Created using spr 1.3.8-wip
DeltaFile
+18-17llvm/include/llvm/Support/GenericDomTreeConstruction.h
+0-5llvm/unittests/Support/GenericDomTreeTest.cpp
+18-222 files

LLVM/project 068ec1aclang/lib/CodeGen CGBuiltin.cpp, clang/test/CodeGen builtin-clear-padding-codegen.c

[clang] fix __builtin_clear_padding not working with virtual base pointers on Windows (#211355)

Fixes https://github.com/llvm/llvm-project/issues/209787
It was an oversight that the builtin only takes care of the virtual
function table pointer but not the virtual base pointer. On Itanium
there is one pointer so it wasn't a problem but on windows msvc , this
is a problem. And the runtime test in libcxx CI was disabled in llvm 23
because we don't use trunk clang in our libcxx CI in general. and after
we flipped to llvm 24, the test started to fail on downstream (chromium)
where they use trunk clang with trunk libc++ on Windows.

We do have FileCheck test in clang test which covers this virtual case.
However, the target triple in the FileCheck under test were
`x86_64-linux-gnu` and `x86_64-windows-gnu` , which does not cover the
Windows msvc ABI. I updated the test to test `x86_64-pc-windows-msvc` in
this PR to cover that ABI.
DeltaFile
+598-627clang/test/CodeGenCXX/builtin-clear-padding-codegen.cpp
+317-471clang/test/CodeGen/builtin-clear-padding-codegen.c
+7-0clang/lib/CodeGen/CGBuiltin.cpp
+922-1,0983 files

LLVM/project ddc72e6llvm/lib/Transforms/InstCombine InstCombineCompares.cpp, llvm/test/Transforms/InstCombine cast_ptr.ll

more tests

Created using spr 1.3.8-wip
DeltaFile
+57-0llvm/test/Transforms/InstCombine/cast_ptr.ll
+2-0llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
+59-02 files

LLVM/project b9c05callvm/lib/Analysis ScalarEvolution.cpp

[SCEV] Fix MSan uninitialized value in createSCEV (#211996)

In #180244 (8e76c3f0d29a), handling of Instruction::Sub in
createSCEV declared PtrLHS and PtrRHS as uninitialized local variables.
When only one side matched m_PtrToInt, the other variable remained
uninitialized. Passing it by value to GetOp copied uninitialized shadow
bytes, causing MemorySanitizer to report use-of-uninitialized-value.

Initialize PtrLHS and PtrRHS to nullptr upon declaration.

Assisted-by: Gemini
DeltaFile
+1-1llvm/lib/Analysis/ScalarEvolution.cpp
+1-11 files

LLVM/project f539edfllvm/include/llvm/LTO/legacy ThinLTOCodeGenerator.h, llvm/lib/LTO ThinLTOCodeGenerator.cpp

[LTO] Include debug options in legacy ThinLTO cache keys (#211474)

Legacy ThinLTO omits -mllvm options from cache keys, which can cause it
to reuse objects built with different code-generation settings.

Include these options in cache keys, matching modern ThinLTO behavior.
DeltaFile
+43-0llvm/test/tools/lto/legacy-thinlto-cache-key.ll
+8-0llvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h
+6-1llvm/tools/lto/lto.cpp
+4-2llvm/lib/LTO/ThinLTOCodeGenerator.cpp
+61-34 files

LLVM/project 43da8efllvm/lib/Transforms/Vectorize VectorCombine.cpp, llvm/test/Transforms/PhaseOrdering/X86 fmaddsub.ll

Revert "[VectorCombine] Fold binop(shuffle(V1, Mask), shuffle(V2, Mask)) -> shuffle(binop(V1, V2), Mask)" (#211994)

Reverts llvm/llvm-project#211530 while I investigate some compilation timeouts
DeltaFile
+64-27llvm/test/Transforms/PhaseOrdering/X86/fmaddsub.ll
+0-69llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+9-8llvm/test/Transforms/VectorCombine/X86/shuffletoidentity-bitcast.ll
+4-3llvm/test/Transforms/VectorCombine/AArch64/shuffletoidentity.ll
+4-2llvm/test/Transforms/VectorCombine/X86/permute-of-binops.ll
+3-2llvm/test/Transforms/VectorCombine/pr197910.ll
+84-1116 files

LLVM/project e50a4d2llvm/lib/Analysis ScalarEvolution.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+1-1llvm/lib/Analysis/ScalarEvolution.cpp
+1-11 files

LLVM/project 3055342clang/test/SemaOpenCL builtins-amdgcn-error-gfx12.cl builtins-amdgcn-global-load-store-target-error.cl

clang/AMDGPU: Migrate cc1 tests to subarch triples (9) (#211954)
DeltaFile
+8-8clang/test/SemaOpenCL/builtins-amdgcn-error-gfx12.cl
+6-6clang/test/SemaOpenCL/builtins-amdgcn-global-load-store-target-error.cl
+5-5clang/test/SemaOpenCL/builtins-amdgcn-raw-ptr-buffer-load-lds-target-error.cl
+5-5clang/test/SemaOpenCL/builtins-amdgcn-error-gfx10.cl
+5-5clang/test/SemaOpenCL/builtins-amdgcn-cmp-deprecated.cl
+4-4clang/test/SemaOpenCL/builtins-amdgcn-wave32-func-attr.cl
+33-3342 files not shown
+93-9148 files

LLVM/project 0818e7fllvm/lib/Transforms/Vectorize VectorCombine.cpp, llvm/test/Transforms/PhaseOrdering/X86 fmaddsub.ll

Revert "[VectorCombine] Fold binop(shuffle(V1, Mask), shuffle(V2, Mask)) -> s…"

This reverts commit b7fa8b21227c7c6a1c625db9ceab4acb485c2e6b.
DeltaFile
+64-27llvm/test/Transforms/PhaseOrdering/X86/fmaddsub.ll
+0-69llvm/lib/Transforms/Vectorize/VectorCombine.cpp
+9-8llvm/test/Transforms/VectorCombine/X86/shuffletoidentity-bitcast.ll
+4-3llvm/test/Transforms/VectorCombine/AArch64/shuffletoidentity.ll
+4-2llvm/test/Transforms/VectorCombine/X86/permute-of-binops.ll
+3-2llvm/test/Transforms/VectorCombine/pr197910.ll
+84-1116 files

LLVM/project a6d9e7ellvm/test/TableGen ProcessorAlias.td, llvm/utils/TableGen SubtargetEmitter.cpp

sort
DeltaFile
+10-3llvm/utils/TableGen/SubtargetEmitter.cpp
+2-1llvm/test/TableGen/ProcessorAlias.td
+12-42 files

LLVM/project db06c0ellvm/lib/Transforms/InstCombine InstCombineCompares.cpp, llvm/test/Transforms/InstCombine cast_ptr.ll

[spr] initial version

Created using spr 1.3.8-wip
DeltaFile
+57-0llvm/test/Transforms/InstCombine/cast_ptr.ll
+6-1llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp
+63-12 files

LLVM/project 943d649clang/test/SemaHIP builtins-amdgcn-gfx1250-cooperative-atomics-templated.hip amdgpu-feature-builtins-return-type-deduction.hip

clang/AMDGPU: Migrate cc1 tests to subarch triples (8) (#211870)

Rewrite SemaHIP cc1 test RUN lines to the new subarch triple form,
dropping the redundant -target-cpu.

Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
DeltaFile
+2-2clang/test/SemaHIP/builtins-amdgcn-gfx1250-cooperative-atomics-templated.hip
+2-2clang/test/SemaHIP/amdgpu-feature-builtins-return-type-deduction.hip
+2-2clang/test/SemaHIP/amdgpu-builtin-in-lambda.hip
+2-2clang/test/SemaHIP/amdgpu-builtin-in-lambda-with-unsupported-attribute.hip
+1-1clang/test/SemaHIP/builtins-amdgcn-raw-buffer-atomic-add.hip
+1-1clang/test/SemaHIP/builtins-amdgcn-raw-buffer-atomic-fmin-max.hip
+10-1015 files not shown
+25-2521 files

LLVM/project 38f619cllvm/include/llvm/MC MCSubtargetInfo.h, llvm/lib/CodeGen TargetSubtargetInfo.cpp

TableGen: Use a compact table for CPU aliases

Previously each ProcessorAlias was emitted as a full SubtargetSubTypeKV
entry in the processor subtype table, duplicating the canonical
processor's feature masks and scheduling model index. At 104 bytes per
entry: AArch64's 18 aliases added ~1.8KB, and X86 will add more as aliases
are introduced.

Emit aliases into a separate SubtargetSubTypeAliasKV table instead. Each
alias is just a name string offset plus the index of the canonical
processor it resolves to.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+88-46llvm/utils/TableGen/SubtargetEmitter.cpp
+29-6llvm/include/llvm/MC/MCSubtargetInfo.h
+21-9llvm/lib/MC/MCSubtargetInfo.cpp
+18-11llvm/test/TableGen/ProcessorAlias.td
+6-6llvm/lib/CodeGen/TargetSubtargetInfo.cpp
+3-3llvm/unittests/CodeGen/MFCommon.inc
+165-814 files not shown
+172-8710 files

LLVM/project 5fb4910llvm/lib/Target/X86 X86.td

X86: Use ProcessorAlias for duplicated processor names

Many X86 processors were defined multiple times under different names,
emitting an identical ProcessorModel for each spelling and duplicating
the feature masks, tune features, and scheduling model index in the subtype
table.

Define each processor once under its canonical name and express the
alternate spellings with ProcessorAlias, using the tablegen alias
mechanism. This deduplicates the redundant subtype table entries and saves
about 4.6k with the new alias table.

Co-Authored-By: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+116-131llvm/lib/Target/X86/X86.td
+116-1311 files

LLVM/project 58651fbllvm/lib/Target/AMDGPU GCNProcessors.td

AMDGPU: Use ProcessorAlias for legacy arch names

Older targets have aliasing names which were previously implemented
by defining a second copy of the processor, identical except for the name
Use the recently improved tablegen mechanism for defining name-only aliases.
This dedupliates some redundant table entries, like the sched model.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+18-60llvm/lib/Target/AMDGPU/GCNProcessors.td
+18-601 files

LLVM/project 790c44cllvm/lib/Target/X86 X86.td

pentium alias
DeltaFile
+2-2llvm/lib/Target/X86/X86.td
+2-21 files

LLVM/project 4792e54llvm/include/llvm/MC MCSubtargetInfo.h, llvm/include/llvm/Target Target.td

TableGen: Add first class support for processor aliases

Previously isCPUStringValid was virtual so TableGen could emit an
AArch64 specific hack for recognizing cpu aliases. Teach tablegen
about aliases, and insert each alias into the CPU subtype table as its
own entry (sorted by name, carrying the canonical processor's features
and scheduling model).

There is further opportunity for code sharing improvements. AArch64's
aliases are consumed by ARMTargetDefEmitter to emit a custom inc file
in TargetParser which should be universalized.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+44-43llvm/utils/TableGen/SubtargetEmitter.cpp
+34-0llvm/test/TableGen/ProcessorAliasErrors.td
+24-0llvm/test/TableGen/ProcessorAlias.td
+7-0llvm/include/llvm/Target/Target.td
+0-6llvm/lib/Target/AArch64/AArch64Processors.td
+1-1llvm/include/llvm/MC/MCSubtargetInfo.h
+110-506 files

LLVM/project 9184bb0llvm/include/llvm/IR PassManagerInternal.h PassManager.h

[IR][NFC] Remove vtables from analysis passes (#211864)

Similar to #209414 but for AnalysisPassConcept. This avoids vtables for
every analysis pass.
DeltaFile
+57-38llvm/include/llvm/IR/PassManagerInternal.h
+2-2llvm/include/llvm/IR/PassManager.h
+2-1llvm/include/llvm/IR/PassManagerImpl.h
+61-413 files

LLVM/project 6436ba9llvm/lib/Transforms/Instrumentation AddressSanitizer.cpp, llvm/test/Instrumentation/AddressSanitizer asan-detect-invalid-pointer-pair.ll

[spr] initial version

Created using spr 1.3.8-wip
DeltaFile
+13-0llvm/test/Instrumentation/AddressSanitizer/asan-detect-invalid-pointer-pair.ll
+1-1llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
+14-12 files

LLVM/project 678ee28llvm/lib/Target/AArch64 SVEShuffleOpts.cpp AArch64.h

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

Created using spr 1.3.7

[skip ci]
DeltaFile
+3-3llvm/lib/Target/AArch64/SVEShuffleOpts.cpp
+3-2llvm/lib/Target/AArch64/AArch64.h
+3-1llvm/lib/Target/AArch64/AArch64PassRegistry.def
+9-63 files

LLVM/project 217af2fllvm/include/llvm/Transforms/Utils AssignGUID.h, llvm/lib/Target/AArch64 SVEShuffleOpts.cpp AArch64.h

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+3-3llvm/lib/Target/AArch64/SVEShuffleOpts.cpp
+3-2llvm/lib/Target/AArch64/AArch64.h
+1-3llvm/include/llvm/Transforms/Utils/AssignGUID.h
+3-1llvm/lib/Target/AArch64/AArch64PassRegistry.def
+10-94 files

LLVM/project 02fa1bellvm/include/llvm/CodeGen MachineCheckDebugify.h, llvm/include/llvm/Transforms/Scalar AlignmentFromAssumptions.h LogicalSROA.h

[Passes] Replace PassInfoMixin with {Optional,Required}PassInfoMixin

There were a couple passes that landed after the mass migration that
need to be updated to eventually make PassInfoMixin private. For backend
passes I looked at whether LegacyPM passes called skipFunction rather
than whether or not they should be enabled to try and preserve existing
behavior where possible.

We still need to wait a bit in order to avoid PassInfoMixin to a detail
namespace and fully remove isRequired from PassInfoMixin given there are
a lot of out-of-tree passes that have not yet been moved over. I'm
hoping to have patches out within a week.

Reviewers: arsenm, aeubanks

Pull Request: https://github.com/llvm/llvm-project/pull/211874
DeltaFile
+6-4llvm/lib/Target/AArch64/AArch64.h
+3-2llvm/lib/Target/Lanai/Lanai.h
+2-1llvm/lib/Target/MSP430/MSP430.h
+1-1llvm/include/llvm/CodeGen/MachineCheckDebugify.h
+1-1llvm/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h
+1-1llvm/include/llvm/Transforms/Scalar/LogicalSROA.h
+14-103 files not shown
+17-139 files

LLVM/project ac0fbaaflang/lib/Lower ConvertExpr.cpp, llvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll maximumnum.ll

rebase + fwrapv-pointer

Created using spr 1.3.8-wip
DeltaFile
+13,068-0llvm/test/CodeGen/RISCV/GlobalISel/atomicrmw-max-min-umax-umin.ll
+6,560-6,119llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+5,575-5,393llvm/test/CodeGen/AMDGPU/maximumnum.ll
+5,454-5,259llvm/test/CodeGen/AMDGPU/minimumnum.ll
+4,728-4,968llvm/test/CodeGen/AMDGPU/bf16.ll
+0-7,750flang/lib/Lower/ConvertExpr.cpp
+35,385-29,4896,099 files not shown
+231,076-190,4466,105 files

LLVM/project bcd5798clang/lib/StaticAnalyzer/Checkers/RetainCountChecker RetainCountDiagnostics.cpp

[clang][NFC]Remove unused variable (#211983)

The patch resolves the following warning.
```bash
clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp:504:16: warning: variable ‘i’ set but not used [-Wunused-but-set-variable=]
  504 |       unsigned i = 0;
      |                ^
```

A count variable was set and incremented inside of a for loop but never
actually used inside of the loop or anywhere else in its scope.
DeltaFile
+1-3clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp
+1-31 files

LLVM/project 9881786llvm/lib/Target/AArch64 AArch64InstrInfo.cpp SVEInstrFormats.td, llvm/lib/Target/AArch64/MCTargetDesc AArch64MCTargetDesc.h

[AArch64] Add a OPERAND_IMM_UINT1 operand type (#211986)
DeltaFile
+6-0llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+3-0llvm/test/CodeGen/AArch64/verify-imm.mir
+3-0llvm/tools/llvm-exegesis/lib/AArch64/Target.cpp
+2-0llvm/lib/Target/AArch64/SVEInstrFormats.td
+1-0llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h
+15-05 files

LLVM/project d7f6d6bllvm/include/llvm/IR PassManagerInternal.h

remove private

Created using spr 1.3.8-wip
DeltaFile
+0-1llvm/include/llvm/IR/PassManagerInternal.h
+0-11 files

LLVM/project bf7b5a0clang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/CodeGen CIRGenAtomic.cpp

[CIR] Add support for atomic fmaximum/fminimum/fmaximumnum/fminimumnum (#211845)

This patch adds CIR support for the following atomic builtin functions:

- `__atomic_fetch_fmaximum`
- `__atomic_fetch_fminimum`
- `__atomic_fetch_fmaximumnum`
- `__atomic_fetch_fminimumnum`

The scoped versions of these atomic builtin functions are supported as
well.

Specifically, this patch contains the following changes:

- It updates the `cir.atomic.fetch` operation and adds new fetch
operators including `maximum`, `minimum`, `maximumnum`, and
`minimumnum`. These operators accept floating-point inputs only.
- It updates the LLVM lowering of the `cir.atomic.fetch` operation. The
LLVM lowering now will lower `maximum`, `minimum`, `maximumnum`, and

    [6 lines not shown]
DeltaFile
+84-0clang/test/CIR/CodeGen/atomic-scoped.c
+60-0clang/test/CIR/CodeGen/atomic.c
+36-9clang/lib/CIR/CodeGen/CIRGenAtomic.cpp
+24-2clang/include/clang/CIR/Dialect/IR/CIROps.td
+16-2clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+14-1clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+234-141 files not shown
+243-157 files

LLVM/project cd7d586llvm/docs LangRef.md

Update doc
DeltaFile
+5-5llvm/docs/LangRef.md
+5-51 files

LLVM/project 339792fmlir/include/mlir-c ExtensibleDialect.h, mlir/include/mlir/Bindings/Python IRCore.h

[MLIR][Python] Support IsIsolatedFromAbove trait for python-defined operations (#211849)

This PR adds dynamic `IsIsolatedFromAbove` trait support and exposes it
to Python as `IsIsolatedFromAboveTrait`.

The test verifies that a region with the trait cannot capture an SSA
value from above, while a region without the trait can.

Assisted by Codex/GPT 5.6 Sol (for writing test cases).
DeltaFile
+63-0mlir/test/python/dialects/ext.py
+23-0mlir/lib/Bindings/Python/IRCore.cpp
+9-0mlir/include/mlir-c/ExtensibleDialect.h
+8-0mlir/lib/CAPI/IR/ExtensibleDialect.cpp
+8-0mlir/include/mlir/IR/ExtensibleDialect.h
+6-0mlir/include/mlir/Bindings/Python/IRCore.h
+117-06 files

LLVM/project c64a5b0clang/bindings/python/clang cindex.py, clang/bindings/python/tests/cindex test_code_completion.py test_enums.py

[libclang/python] Remove CompletionString.AvailabilityKindCompat (#210682)

This completes the fourth step of
https://github.com/llvm/llvm-project/pull/156680
This change is a follow-up to
https://github.com/llvm/llvm-project/pull/160296, following the release
branching, to ensure a one release-cycle deprecation period.

---------

Co-authored-by: Vlad Serebrennikov <serebrennikov.vladislav at gmail.com>
DeltaFile
+16-72clang/bindings/python/tests/cindex/test_code_completion.py
+2-48clang/bindings/python/clang/cindex.py
+4-0clang/docs/ReleaseNotes.md
+0-1clang/bindings/python/tests/cindex/test_enums.py
+22-1214 files