LLVM/project 56674d6llvm/lib/Support UnicodeNameToCodepointGenerated.cpp, llvm/test/CodeGen/AArch64 bf16-v8-instructions.ll

Merge branch 'main' into users/el-ev/invalid_nul_constraint_diag
DeltaFile
+23,873-20,923llvm/lib/Support/UnicodeNameToCodepointGenerated.cpp
+8,633-8,584llvm/test/CodeGen/Thumb2/mve-clmul.ll
+12,365-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.load.b128.ll
+1,243-8,768llvm/test/CodeGen/X86/vector-replicaton-i1-mask.ll
+7,616-740llvm/test/CodeGen/AArch64/bf16-v8-instructions.ll
+8,195-0llvm/test/MC/AMDGPU/gfx13_asm_vop3.s
+61,925-39,0158,203 files not shown
+516,613-234,9208,209 files

LLVM/project d4550ccclang/lib/Sema OpenCLBuiltins.td, clang/test/SemaOpenCL intel-bfloat16-conversions-builtins.cl

[OpenCL] Add cl_intel_bfloat16_conversions builtins (#199422)

Add cl_intel_bfloat16_conversions declarations to OpenCLBuiltins.td
and cover the extension with a dedicated header-free SPIR test.

Specification:

https://registry.khronos.org/OpenCL/extensions/intel/cl_intel_bfloat16_conversions.html

Co-authored-by: Copilot
DeltaFile
+65-0clang/test/SemaOpenCL/intel-bfloat16-conversions-builtins.cl
+17-0clang/lib/Sema/OpenCLBuiltins.td
+82-02 files

LLVM/project cd27e2eclang/test/AST ast-dump-lambda-json.cpp ast-dump-template-json-win32-mangler-crash.cpp, lldb/tools/lldb-dap/extension package-lock.json

rebase

Created using spr 1.3.7
DeltaFile
+23,873-20,923llvm/lib/Support/UnicodeNameToCodepointGenerated.cpp
+12,365-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.load.b128.ll
+3,903-0llvm/test/CodeGen/NVPTX/machine-cse-predicate-inversion.ll
+2,504-1,285lldb/tools/lldb-dap/extension/package-lock.json
+0-3,387clang/test/AST/ast-dump-lambda-json.cpp
+7-3,217clang/test/AST/ast-dump-template-json-win32-mangler-crash.cpp
+42,652-28,8123,510 files not shown
+159,432-86,9803,516 files

LLVM/project a1d4f6aclang/test/AST ast-dump-lambda-json.cpp ast-dump-template-json-win32-mangler-crash.cpp, lldb/tools/lldb-dap/extension package-lock.json

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+23,873-20,923llvm/lib/Support/UnicodeNameToCodepointGenerated.cpp
+12,365-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.load.b128.ll
+3,903-0llvm/test/CodeGen/NVPTX/machine-cse-predicate-inversion.ll
+2,504-1,285lldb/tools/lldb-dap/extension/package-lock.json
+0-3,387clang/test/AST/ast-dump-lambda-json.cpp
+7-3,217clang/test/AST/ast-dump-template-json-win32-mangler-crash.cpp
+42,652-28,8123,510 files not shown
+159,432-86,9803,516 files

LLVM/project 9ebd3a0clang/test/AST ast-dump-lambda-json.cpp ast-dump-template-json-win32-mangler-crash.cpp, lldb/tools/lldb-dap/extension package-lock.json

rebase

Created using spr 1.3.7
DeltaFile
+23,873-20,923llvm/lib/Support/UnicodeNameToCodepointGenerated.cpp
+12,365-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.load.b128.ll
+3,903-0llvm/test/CodeGen/NVPTX/machine-cse-predicate-inversion.ll
+2,504-1,285lldb/tools/lldb-dap/extension/package-lock.json
+0-3,387clang/test/AST/ast-dump-lambda-json.cpp
+7-3,217clang/test/AST/ast-dump-template-json-win32-mangler-crash.cpp
+42,652-28,8123,510 files not shown
+159,432-86,9803,516 files

LLVM/project b293cf5clang/test/AST ast-dump-lambda-json.cpp ast-dump-template-json-win32-mangler-crash.cpp, lldb/tools/lldb-dap/extension package-lock.json

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+23,873-20,923llvm/lib/Support/UnicodeNameToCodepointGenerated.cpp
+12,365-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.load.b128.ll
+3,903-0llvm/test/CodeGen/NVPTX/machine-cse-predicate-inversion.ll
+2,504-1,285lldb/tools/lldb-dap/extension/package-lock.json
+0-3,387clang/test/AST/ast-dump-lambda-json.cpp
+7-3,217clang/test/AST/ast-dump-template-json-win32-mangler-crash.cpp
+42,652-28,8123,510 files not shown
+159,432-86,9803,516 files

LLVM/project 23b754fllvm/lib/Target/RISCV RISCVInstrInfoZb.td

[RISCV] Use the new "let append" TableGen feature to reduce duplication. NFC (#199596)

Similar to #198761, use this to add [IsRV64] where needed.
DeltaFile
+22-23llvm/lib/Target/RISCV/RISCVInstrInfoZb.td
+22-231 files

LLVM/project d7856fellvm/lib/Target/RISCV/GISel RISCVLegalizerInfo.cpp, llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv legalize-insert-subvector.mir legalize-extract-subvector.mir

[RISCV][GISel] Add exact flag to G_LSHR in RISCVLegalizerInfo::legalizeVScale (#199595)

This matches what is in SelectionDAG.
DeltaFile
+36-36llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-insert-subvector.mir
+14-14llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-extract-subvector.mir
+11-11llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-vscale-rv32.mir
+4-4llvm/test/CodeGen/RISCV/GlobalISel/legalizer/rvv/legalize-vscale-rv64.mir
+4-2llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp
+69-675 files

LLVM/project 386e356clang/docs ReleaseNotes.rst, clang/lib/AST MicrosoftMangle.cpp

[AArch64] Add support for MSVC-style mangling for SVE (#196738)

Fixes #196170

Recent MSVC toolchains added support for AArch64 SVE types and use
dedicated builtin manglings such as `$_CD` instead of the older
artificial `__clang` struct manglings.

Update Clang's Microsoft mangling implementation to match MSVC for
supported SVE builtin types.

Unsupported SVE types continue using the existing artificial tag
mangling until MSVC gains support for them.

Adds representative coverage for:
* scalar SVE types
* tuple/vector SVE types
* fallback manglings for unsupported types
DeltaFile
+194-6clang/lib/AST/MicrosoftMangle.cpp
+50-8clang/test/CodeGenCXX/aarch64-mangle-sve-vectors-msvc.cpp
+3-0clang/docs/ReleaseNotes.rst
+247-143 files

LLVM/project 03c8a83libcxx/include string tuple, libcxx/include/__configuration hardening.h

[libc++] Address most LLVM23 TODOs (#199397)

There is still one LLVM23 TODO left that can only be resolved once we
update GCC.
DeltaFile
+0-17libcxx/include/__configuration/hardening.h
+2-12libcxx/include/string
+1-6libcxx/include/tuple
+3-353 files

LLVM/project 189fb5aclang/include/clang/Analysis/Analyses/LifetimeSafety LifetimeAnnotations.h, clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp LifetimeAnnotations.cpp

[LifetimeSafety] Propagate inner origins through std::move and related casts
DeltaFile
+37-5clang/test/Sema/warn-lifetime-safety.cpp
+12-5clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+15-0clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp
+5-0clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeAnnotations.h
+3-0clang/test/Sema/Inputs/lifetime-analysis.h
+72-105 files

LLVM/project 50a110allvm/lib/CodeGen CodeGenPrepare.cpp, llvm/test/Transforms/CodeGenPrepare/X86 split-store-alignment.ll

[CodeGenPrepare] splitMergedValStore: don't split atomic stores. (#199592)

splitMergedValStore notices when you do e.g.

    z = x | (y << 32)
    store z

and may split this up into 32-bit two stores, of x and y, depending
e.g. on the type of x and y.

It skips this optimization for volatile stores, but currently does NOT
skip it for atomics (!!).  So an atomic store can be split up into two
(non-atomic!) stores.

This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply at anthropic.com>
DeltaFile
+60-0llvm/test/Transforms/CodeGenPrepare/X86/split-store-alignment.ll
+2-2llvm/lib/CodeGen/CodeGenPrepare.cpp
+62-22 files

LLVM/project d1902d3llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV rvp-bitcast-const-fold.ll

[RISCV][P-ext] Fold bitcast of v4i8/v2i16 const splat to scalar on RV64 (#199513)

clang lowers `int8x4_t f(int8x4_t a) { return ~a; }` to a
bitcast-wrapped vector xor with splat(-1). v4i8/v2i16 aren't legal on
RV64, so the xor gets scalarized to i64 with the constant still wrapped
in BITCAST:
      `i64 = xor X, (bitcast (v8i8 splat -1))`

The scalar `not` PatFrag (xor X, -1) requires a literal constant and
can't see through BITCAST, so XORI -1 (= `not`) misses and we emit `li
-1; xor` (2 insns). The v8i8/v4i16/v2i32 paths stay at vector level and
match the bitcast-aware vector `vnot` td-pat, so they're fine; only the
widened-from-v4i8/v2i16 path falls through to scalar `not`.

Fix it by folding the bitcast of a v4i8/v2i16 constant splat to a scalar
i32 constant pre-legalization. Type promotion sign-extends to i64 -1 and
XORI matches.
DeltaFile
+90-0llvm/test/CodeGen/RISCV/rvp-bitcast-const-fold.ll
+24-2llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+114-22 files

LLVM/project 5723dd0llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV rvp-simd-64.ll

[RISCV][P-ext] Split v4i16/v8i8 MUL on RV32. (#199504)
DeltaFile
+8-68llvm/test/CodeGen/RISCV/rvp-simd-64.ll
+4-3llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+12-712 files

LLVM/project b929dballvm/lib/Target/X86 X86FixupInstTuning.cpp

[X86] FixupInstTuning: ProcessShiftLeftToAdd should return true after mutating. (#199589)

I think this is almost NFC, though it should affect some of the
compilation statistics like "number of instrs changed by X pass".

This bug was found by a large run of Opus 4.7 looking for bugs in LLVM.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply at anthropic.com>
DeltaFile
+1-1llvm/lib/Target/X86/X86FixupInstTuning.cpp
+1-11 files

LLVM/project 7dabf94llvm/lib/CodeGen/SelectionDAG LegalizeIntegerTypes.cpp, llvm/test/CodeGen/RISCV/rvv pr199509.ll

[SelectionDAG] Handle CSE in PromoteIntOp_VP_STRIDED. (#199562)

If the UpdateNodeOperands triggers CSE, we need to handle result
replacement ourselves because strided load has 2 results.
DeltaFile
+17-0llvm/test/CodeGen/RISCV/rvv/pr199509.ll
+7-1llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
+24-12 files

LLVM/project b938d8bllvm/include/llvm/Analysis DependenceAnalysis.h, llvm/lib/Analysis DependenceAnalysis.cpp

[DA] Consolidate accumulating GCD functions (NFCI) (#197936)

This patch consolidates two functions `accumulateCoefficientsGCD` and
`analyzeCoefficientsForGCD` by merging the latter into the former. These
two functions are very similar, and keeping both of them does not make
much sense.
DeltaFile
+11-29llvm/lib/Analysis/DependenceAnalysis.cpp
+5-5llvm/include/llvm/Analysis/DependenceAnalysis.h
+16-342 files

LLVM/project fb35b3eclang/lib/Driver OffloadBundler.cpp, clang/test/Driver clang-offload-bundler-multi-compress.c

Merge branch 'main' into users/kasuga-fj/da-consolidate-acc-gcd
DeltaFile
+451-0llvm/test/Transforms/LoopVectorize/select-cmp-blend-chain.ll
+0-323llvm/test/Transforms/LoopVectorize/X86/constant-fold.ll
+200-116clang/lib/Driver/OffloadBundler.cpp
+272-0llvm/test/Transforms/LoopVectorize/VPlan/constant-fold.ll
+187-0clang/test/Driver/clang-offload-bundler-multi-compress.c
+0-183compiler-rt/lib/asan/asan_poisoning.cpp
+1,110-62242 files not shown
+1,480-1,08248 files

LLVM/project 9b64fa9llvm/lib/Analysis DependenceAnalysis.cpp

address reivew comment
DeltaFile
+0-1llvm/lib/Analysis/DependenceAnalysis.cpp
+0-11 files

LLVM/project 3ad6af9mlir/docs Tokens.md LangRef.md

address comments: symbols / IsolatedFromAbove
DeltaFile
+6-1mlir/docs/Tokens.md
+1-2mlir/docs/LangRef.md
+7-32 files

LLVM/project 955ba23mlir/docs Tokens.md

Update mlir/docs/Tokens.md

Co-authored-by: Mehdi Amini <joker.eph at gmail.com>
DeltaFile
+2-1mlir/docs/Tokens.md
+2-11 files

LLVM/project fc3e151mlir/include/mlir/IR BuiltinOps.td

drop unrealized_conversion_cast change
DeltaFile
+3-3mlir/include/mlir/IR/BuiltinOps.td
+3-31 files

LLVM/project 69f9322mlir/docs Tokens.md LangRef.md

move structural contract to LangRef
DeltaFile
+20-40mlir/docs/Tokens.md
+27-6mlir/docs/LangRef.md
+47-462 files

LLVM/project 972be7emlir/docs Tokens.md

call out IsolatedFromAbove restriction
DeltaFile
+4-0mlir/docs/Tokens.md
+4-01 files

LLVM/project 95d4e8dmlir/test/Dialect/Builtin/Bytecode builtin_fixed_0.mlirbc

regenerate bytecode
DeltaFile
+0-0mlir/test/Dialect/Builtin/Bytecode/builtin_fixed_0.mlirbc
+0-01 files

LLVM/project 183f61amlir/include/mlir/Dialect/LLVMIR LLVMIntrinsicOps.td LLVMOps.td, mlir/lib/Dialect/LLVMIR/IR LLVMTypeSyntax.cpp LLVMTypes.cpp

remove LLVM token type
DeltaFile
+23-37mlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp
+15-10mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
+11-11mlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp
+9-9mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
+7-7mlir/test/Target/LLVMIR/Import/intrinsic.ll
+6-7mlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
+71-8112 files not shown
+94-10918 files

LLVM/project 6cca037mlir/docs Tokens.md, mlir/docs/Traits _index.md

[mlir][IR] Require token producer and consumer traits

Add marker traits for operations that intentionally produce or consume the
builtin token type. The verifier now rejects token results without
TokenProducerTrait, token operands without TokenConsumerTrait, token entry
block arguments whose parent op does not produce tokens, and token block
arguments outside entry blocks.

Extend the Test dialect token ops to cover valid opt-in cases and each
verifier rejection path.

Assisted-by: Codex
DeltaFile
+100-2mlir/test/IR/token-type.mlir
+93-3mlir/lib/IR/Verifier.cpp
+28-3mlir/test/lib/Dialect/Test/TestOps.td
+14-7mlir/docs/Tokens.md
+14-0mlir/docs/Traits/_index.md
+12-0mlir/include/mlir/IR/OpDefinition.h
+261-152 files not shown
+268-168 files

LLVM/project 50fded2mlir/docs Tokens.md

Update mlir/docs/Tokens.md

Co-authored-by: Mehdi Amini <joker.eph at gmail.com>
DeltaFile
+2-0mlir/docs/Tokens.md
+2-01 files

LLVM/project 8c7c6a9mlir/docs/Dialects LLVM.md, mlir/lib/IR Verifier.cpp

address comments
DeltaFile
+5-9mlir/lib/IR/Verifier.cpp
+1-2mlir/docs/Dialects/LLVM.md
+6-112 files

LLVM/project 8882b47mlir/docs Tokens.md

address comments
DeltaFile
+2-3mlir/docs/Tokens.md
+2-31 files