LLVM/project efdf43bclang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/Dialect/IR CIRDialect.cpp

[CIR] Split CIR_UnaryOp into individual operations

Split the monolithic cir.unary operation (which dispatched on a
UnaryOpKind enum) into four separate operations: cir.inc, cir.dec,
cir.minus, and cir.not.

This follows the same pattern used when cir.binop was split into
individual binary operations (AddOp, SubOp, etc.).

Changes:
- Add CIR_UnaryOpInterface with getInput()/getResult() methods
- Add CIR_UnaryOp and CIR_UnaryOpWithOverflowFlag base classes
- Define IncOp, DecOp, MinusOp, NotOp with per-op folds
- Add Involution trait to NotOp for not(not(x)) -> x folding
- Replace createUnaryOp() with createInc/Dec/Minus/Not builders
- Split LLVM lowering into four separate patterns
- Split LoweringPrepare complex-type handling per unary op
- Update CIRCanonicalize and CIRSimplify for new op types
- Update all codegen files to use bool params instead of UnaryOpKind

    [6 lines not shown]
DeltaFile
+91-105clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+56-88clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+111-28clang/include/clang/CIR/Dialect/IR/CIROps.td
+62-62clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-CtorDtor.cpp
+41-41clang/test/CIR/CodeGenOpenACC/private-clause-pointer-array-recipes-NoOps.cpp
+36-36clang/test/CIR/CodeGenOpenACC/loop-reduction-clause-inline-ops.cpp
+397-36076 files not shown
+1,390-1,36482 files

LLVM/project 516347alibc/src/__support/math ceill.h, libc/test/shared shared_math_test.cpp

link issue
DeltaFile
+2-13libc/src/__support/math/ceill.h
+3-5libc/test/shared/shared_math_test.cpp
+5-182 files

LLVM/project 7370190libclc/opencl/lib/amdgcn SOURCES, libclc/opencl/lib/amdgcn/printf __printf_alloc.cl

libclc: Add __printf_alloc implementation

AMDGPU OpenCL printf implementation emits a call to this helper
function.
DeltaFile
+36-0libclc/opencl/lib/amdgcn/printf/__printf_alloc.cl
+1-0libclc/opencl/lib/amdgcn/SOURCES
+37-02 files

LLVM/project 0482fe0llvm/test/CodeGen/WebAssembly ctselect-fallback-vector.ll ctselect-fallback-patterns.ll

[LLVM][WebAssembly] Regenerate ct.select test CHECK lines

Update CHECK lines to match the new constant-time AND/OR/XOR expansion
from the CT_SELECT legalization fix.
DeltaFile
+196-238llvm/test/CodeGen/WebAssembly/ctselect-fallback-vector.ll
+166-256llvm/test/CodeGen/WebAssembly/ctselect-fallback-patterns.ll
+129-201llvm/test/CodeGen/WebAssembly/ctselect-fallback.ll
+127-186llvm/test/CodeGen/WebAssembly/ctselect-fallback-edge-cases.ll
+10-16llvm/test/CodeGen/WebAssembly/ctselect-side-effects.ll
+628-8975 files

LLVM/project ef02361llvm/test/CodeGen/WebAssembly ctselect-fallback-vector.ll ctselect-fallback-patterns.ll

[ConstantTime][WebAssembly] Add comprehensive tests for ct.select
DeltaFile
+714-0llvm/test/CodeGen/WebAssembly/ctselect-fallback-vector.ll
+641-0llvm/test/CodeGen/WebAssembly/ctselect-fallback-patterns.ll
+552-0llvm/test/CodeGen/WebAssembly/ctselect-fallback.ll
+376-0llvm/test/CodeGen/WebAssembly/ctselect-fallback-edge-cases.ll
+226-0llvm/test/CodeGen/WebAssembly/ctselect-side-effects.ll
+2,509-05 files

LLVM/project f6436b3llvm/lib/Target/X86 X86InstrInfo.cpp X86ISelLowering.cpp, llvm/test/CodeGen/X86 ctselect-i386-fp.ll

[LLVM][X86] Add f80 support for ct.select

Add special handling for x86_fp80 types in CTSELECT lowering by splitting
them into three 32-bit chunks, performing constant-time selection on each
chunk, and reassembling the result. This fixes crashes when compiling
tests with f80 types.

Also updated ctselect.ll to match current generic fallback implementation.
DeltaFile
+463-452llvm/lib/Target/X86/X86InstrInfo.cpp
+126-146llvm/test/CodeGen/X86/ctselect-i386-fp.ll
+63-0llvm/lib/Target/X86/X86ISelLowering.cpp
+9-12llvm/lib/Target/X86/X86InstrInfo.h
+661-6104 files

LLVM/project 63418f3. nasty-fix-constant.patch, llvm/lib/Target/X86 X86ISelLowering.cpp X86InstrInfo.cpp

[LLVM][X86] Add native ct.select support for X86 and i386

Add native X86 implementation with CMOV instructions and comprehensive tests:
- X86 ISelLowering with CMOV for x86_64 and i386
- Fallback bitwise operations for i386 targets without CMOV
- Post-RA expansion for pseudo-instructions
- Comprehensive test coverage:
  - Edge cases (zero conditions, large integers)
  - i386-specific tests (FP, MMX, non-CMOV fallback)
  - Vector operations
  - Optimization patterns

The basic test demonstrating fallback is in the core infrastructure PR.
DeltaFile
+2,994-0nasty-fix-constant.patch
+639-1,228llvm/test/CodeGen/X86/ctselect.ll
+1,274-0llvm/test/CodeGen/X86/ctselect-vector.ll
+763-28llvm/lib/Target/X86/X86ISelLowering.cpp
+722-0llvm/test/CodeGen/X86/ctselect-i386-fp.ll
+604-5llvm/lib/Target/X86/X86InstrInfo.cpp
+6,996-1,26112 files not shown
+8,721-1,26618 files

LLVM/project c494d57llvm/lib/Target/ARM ARMISelLowering.cpp ARMBaseInstrInfo.cpp, llvm/test/CodeGen/ARM ctselect-vector.ll ctselect-half.ll

[LLVM][ARM] Add native ct.select support for ARM32 and Thumb

This patch implements architecture-specific lowering for ct.select on ARM
(both ARM32 and Thumb modes) using conditional move instructions and
bitwise operations for constant-time selection.

Implementation details:
- Uses pseudo-instructions that are expanded Post-RA to bitwise operations
- Post-RA expansion in ARMBaseInstrInfo for BUNDLE pseudo-instructions
- Handles scalar integer types, floating-point, and half-precision types
- Handles vector types with NEON when available
- Support for both ARM and Thumb instruction sets (Thumb1 and Thumb2)
- Special handling for Thumb1 which lacks conditional execution
- Comprehensive test coverage including half-precision and vectors

The implementation includes:
- ISelLowering: Custom lowering to CTSELECT pseudo-instructions
- ISelDAGToDAG: Selection of appropriate pseudo-instructions
- BaseInstrInfo: Post-RA expansion of BUNDLE to bitwise instruction sequences

    [3 lines not shown]
DeltaFile
+2,179-0llvm/test/CodeGen/ARM/ctselect-vector.ll
+975-0llvm/test/CodeGen/ARM/ctselect-half.ll
+530-66llvm/lib/Target/ARM/ARMISelLowering.cpp
+555-0llvm/test/CodeGen/ARM/ctselect.ll
+335-2llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
+327-2llvm/lib/Target/ARM/ARMISelLowering.h
+4,901-704 files not shown
+5,185-21310 files

LLVM/project a5ce1aallvm/lib/Target/AArch64 AArch64ISelLowering.cpp AArch64InstrInfo.td, llvm/test/CodeGen/AArch64 ctselect.ll

[LLVM][AArch64] Add native ct.select support for ARM64

This patch implements architecture-specific lowering for ct.select on AArch64
using CSEL (conditional select) instructions for constant-time selection.

Implementation details:
- Uses CSEL family of instructions for scalar integer types
- Uses FCSEL for floating-point types (F16, BF16, F32, F64)
- Post-RA MC lowering to convert pseudo-instructions to real CSEL/FCSEL
- Handles vector types appropriately
- Comprehensive test coverage for AArch64

The implementation includes:
- ISelLowering: Custom lowering to CTSELECT pseudo-instructions
- InstrInfo: Pseudo-instruction definitions and patterns
- MCInstLower: Post-RA lowering of pseudo-instructions to actual CSEL/FCSEL
- Proper handling of condition codes for constant-time guarantees
DeltaFile
+153-0llvm/test/CodeGen/AArch64/ctselect.ll
+56-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+40-0llvm/lib/Target/AArch64/AArch64InstrInfo.td
+35-4llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
+18-0llvm/lib/Target/AArch64/AArch64MCInstLower.cpp
+11-0llvm/lib/Target/AArch64/AArch64ISelLowering.h
+313-46 files

LLVM/project 89b18c0llvm/test/CodeGen/Mips ctselect-fallback-vector.ll ctselect-fallback-patterns.ll

[LLVM][MIPS] Add comprehensive tests for ct.select
DeltaFile
+830-0llvm/test/CodeGen/Mips/ctselect-fallback-vector.ll
+426-0llvm/test/CodeGen/Mips/ctselect-fallback-patterns.ll
+371-0llvm/test/CodeGen/Mips/ctselect-fallback.ll
+244-0llvm/test/CodeGen/Mips/ctselect-fallback-edge-cases.ll
+183-0llvm/test/CodeGen/Mips/ctselect-side-effects.ll
+2,054-05 files

LLVM/project 1a0a014clang/docs LanguageExtensions.rst, clang/include/clang/Basic Builtins.td

[ConstantTime][Clang] Add __builtin_ct_select for constant-time selection
DeltaFile
+683-0clang/test/Sema/builtin-ct-select.c
+373-0clang/test/Sema/builtin-ct-select-edge-cases.c
+64-0clang/lib/Sema/SemaChecking.cpp
+44-0clang/docs/LanguageExtensions.rst
+13-0clang/lib/CodeGen/CGBuiltin.cpp
+8-0clang/include/clang/Basic/Builtins.td
+1,185-06 files

LLVM/project 882c497llvm/test/CodeGen/RISCV ctselect-fallback-vector-rvv.ll ctselect-fallback-edge-cases.ll

[LLVM][RISCV] Regenerate ct.select test CHECK lines

Update CHECK lines to match the new constant-time AND/OR/XOR expansion
from the CT_SELECT legalization fix.
DeltaFile
+132-344llvm/test/CodeGen/RISCV/ctselect-fallback-vector-rvv.ll
+66-78llvm/test/CodeGen/RISCV/ctselect-fallback-edge-cases.ll
+62-77llvm/test/CodeGen/RISCV/ctselect-fallback-patterns.ll
+6-7llvm/test/CodeGen/RISCV/ctselect-side-effects.ll
+266-5064 files

LLVM/project a3c8bb2llvm/test/CodeGen/RISCV ctselect-fallback-vector-rvv.ll ctselect-fallback-patterns.ll

[ConstantTime][RISCV] Add comprehensive tests for ct.select

Add comprehensive test suite for RISC-V fallback implementation:
- Edge cases (zero conditions, large integers, sign extension)
- Pattern matching (nested selects, chains)
- Vector support with RVV extensions
- Side effects and memory operations

The basic fallback test is in the core infrastructure PR.
DeltaFile
+804-0llvm/test/CodeGen/RISCV/ctselect-fallback-vector-rvv.ll
+383-0llvm/test/CodeGen/RISCV/ctselect-fallback-patterns.ll
+214-0llvm/test/CodeGen/RISCV/ctselect-fallback-edge-cases.ll
+176-0llvm/test/CodeGen/RISCV/ctselect-side-effects.ll
+1,577-04 files

LLVM/project 9d45e79llvm/test/CodeGen/Mips ctselect-fallback-vector.ll ctselect-fallback-patterns.ll

[LLVM][MIPS] Regenerate ct.select test CHECK lines

Update CHECK lines to match the new constant-time AND/OR/XOR expansion
from the CT_SELECT legalization fix.
DeltaFile
+262-320llvm/test/CodeGen/Mips/ctselect-fallback-vector.ll
+133-164llvm/test/CodeGen/Mips/ctselect-fallback-patterns.ll
+117-141llvm/test/CodeGen/Mips/ctselect-fallback.ll
+100-123llvm/test/CodeGen/Mips/ctselect-fallback-edge-cases.ll
+11-13llvm/test/CodeGen/Mips/ctselect-side-effects.ll
+623-7615 files

LLVM/project 43fdb1fllvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll amdgcn.bitcast.512bit.ll, llvm/test/CodeGen/RISCV clmul.ll

Merge remote-tracking branch 'origin/main' into users/wizardengineer/ct-select-core

# Conflicts:
#       llvm/lib/CodeGen/TargetLoweringBase.cpp
DeltaFile
+84,317-78,372llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+66,293-29,491llvm/test/CodeGen/RISCV/rvv/clmulh-sdnode.ll
+25,751-24,782llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+23,663-20,281llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+21,867-18,577llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+25,051-14,920llvm/test/CodeGen/RISCV/clmul.ll
+246,942-186,4239,853 files not shown
+982,681-491,0609,859 files

LLVM/project ff11354clang/lib/Format IntegerLiteralSeparatorFixer.cpp

[clang-format][NFC] Use the newly added AllowLiteralDigitSeparator (#185165)

Use LangOptions::AllowLiteralDigitSeparator added in #184235 for the
IntegerLiteralSeparator option.
DeltaFile
+6-6clang/lib/Format/IntegerLiteralSeparatorFixer.cpp
+6-61 files

LLVM/project b5f3ea1utils/bazel/llvm-project-overlay/lldb/source/Plugins BUILD.bazel plugin_config.bzl

[Bazel] Fixes 58efc42 (#185227)

Fixes 58efc42.
DeltaFile
+4-23utils/bazel/llvm-project-overlay/lldb/source/Plugins/BUILD.bazel
+1-1utils/bazel/llvm-project-overlay/lldb/source/Plugins/plugin_config.bzl
+5-242 files

LLVM/project a063166llvm/test/CodeGen/RISCV ctselect-fallback-vector-rvv.ll ctselect-fallback-patterns.ll

[ConstantTime][RISCV] Add comprehensive tests for ct.select

Add comprehensive test suite for RISC-V fallback implementation:
- Edge cases (zero conditions, large integers, sign extension)
- Pattern matching (nested selects, chains)
- Vector support with RVV extensions
- Side effects and memory operations

The basic fallback test is in the core infrastructure PR.
DeltaFile
+804-0llvm/test/CodeGen/RISCV/ctselect-fallback-vector-rvv.ll
+383-0llvm/test/CodeGen/RISCV/ctselect-fallback-patterns.ll
+214-0llvm/test/CodeGen/RISCV/ctselect-fallback-edge-cases.ll
+176-0llvm/test/CodeGen/RISCV/ctselect-side-effects.ll
+1,577-04 files

LLVM/project 453c34fllvm/test/CodeGen/RISCV ctselect-fallback-vector-rvv.ll ctselect-fallback-edge-cases.ll

[LLVM][RISCV] Regenerate ct.select test CHECK lines

Update CHECK lines to match the new constant-time AND/OR/XOR expansion
from the CT_SELECT legalization fix.
DeltaFile
+132-344llvm/test/CodeGen/RISCV/ctselect-fallback-vector-rvv.ll
+66-78llvm/test/CodeGen/RISCV/ctselect-fallback-edge-cases.ll
+62-77llvm/test/CodeGen/RISCV/ctselect-fallback-patterns.ll
+6-7llvm/test/CodeGen/RISCV/ctselect-side-effects.ll
+266-5064 files

LLVM/project 362e0a6clang/docs LanguageExtensions.rst, clang/include/clang/Basic Builtins.td

[ConstantTime][Clang] Add __builtin_ct_select for constant-time selection
DeltaFile
+683-0clang/test/Sema/builtin-ct-select.c
+373-0clang/test/Sema/builtin-ct-select-edge-cases.c
+64-0clang/lib/Sema/SemaChecking.cpp
+44-0clang/docs/LanguageExtensions.rst
+13-0clang/lib/CodeGen/CGBuiltin.cpp
+8-0clang/include/clang/Basic/Builtins.td
+1,185-06 files

LLVM/project cea1708llvm/lib/CodeGen/SelectionDAG LegalizeDAG.cpp SelectionDAGBuilder.cpp, llvm/test/CodeGen/RISCV ctselect-fallback.ll

[ConstantTime] Fix CT_SELECT expansion to preserve constant-time guarantees

Create CT_SELECT nodes for scalar types regardless of target support, so
they survive DAGCombiner (visitCT_SELECT is conservative). Expand to
AND/OR/XOR during operation legalization after SETCC is lowered, preventing
the sext(setcc)->select fold chain that converts constant-time patterns
into data-dependent conditional moves (e.g. movn/movz on MIPS).

The mask uses SUB(0, AND(Cond, 1)) instead of SIGN_EXTEND because type
legalization already promoted i1 to the SetCC result type, making
SIGN_EXTEND a no-op for same-width types.
DeltaFile
+144-115llvm/test/CodeGen/X86/ctselect.ll
+10-12llvm/test/CodeGen/RISCV/ctselect-fallback.ll
+12-8llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+13-3llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+179-1384 files

LLVM/project 58efc42lldb/source/Plugins/LanguageRuntime/CPlusPlus ItaniumABIRuntime.cpp CPPLanguageRuntime.cpp, lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI ItaniumABILanguageRuntime.cpp ItaniumABILanguageRuntime.h

[LLDB] Move Itanium language runtime to C++ language runtime (#169225)

In order to support the Microsoft ABI alongside the Itanium one in the
same process from different DLLs, this moves the Itanium ABI runtime
plugin to the C++ language runtime (see
https://github.com/llvm/llvm-project/pull/168941#discussion_r2547684264).

Before this PR, the C++ language runtime wasn't a plugin. Instead, its
functionality was provided by the Itanium ABI plugin.

All Itanium specific methods are moved to a new class
`ItaniumABIRuntime`. This includes resolving the dynamic type, setting
exception filters, and getting the exception object.
The other methods were added to `CPPLanguageRuntime`.

`language cplusplus demangle` moved to `CommandObjectCPlusPlus`.

The Clang REPL depended on the C++ runtime. Now that it's a plugin, this
failed the layering check. Since the REPL doesn't use the C++ runtime, I
removed the dependency.
DeltaFile
+0-690lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.cpp
+452-0lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABIRuntime.cpp
+184-1lldb/source/Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.cpp
+0-127lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.h
+68-0lldb/source/Plugins/LanguageRuntime/CPlusPlus/CommandObjectCPlusPlus.cpp
+64-0lldb/source/Plugins/LanguageRuntime/CPlusPlus/ItaniumABIRuntime.h
+768-8185 files not shown
+862-83911 files

LLVM/project f34adfelldb/cmake/modules AddLLDB.cmake

build: add `LINKER:` modifier to `/DELAYLOAD:` options (#185086)

When building with the GNU driver, we would pass in `/DELAYLOAD:...`
without indicating that this is a linker flag. `clang` does not
implictly forward non-consumed options to the linker like `cl` does, and
this would cause the build to fail.
DeltaFile
+2-1lldb/cmake/modules/AddLLDB.cmake
+2-11 files

LLVM/project 7dd069dutils/bazel MODULE.bazel.lock .bazelversion

[bazel] Bump to latest point release (#185139)

Only minor fixes, just staying up to date.
DeltaFile
+11-10utils/bazel/MODULE.bazel.lock
+1-1utils/bazel/.bazelversion
+12-112 files

LLVM/project 0c9dfe1utils/bazel/llvm-project-overlay/third-party/unittest BUILD.bazel

[bazel] Disable parse_headers on gtest headers (#185138)

One of the headers has a circular dependency issue that makes it not
isolated

```
.../googletest/include/gtest/internal/custom/gtest-printers.h:53:12: error: no member named 'testing' in the global namespace
   53 |   *OS << ::testing::PrintToString(S.str());
      |          ~~^
```
DeltaFile
+1-0utils/bazel/llvm-project-overlay/third-party/unittest/BUILD.bazel
+1-01 files

LLVM/project 2a38eaclibclc/clc/include/clc/subgroup clc_subgroup.h, libclc/clc/lib/amdgcn/subgroup subgroup.cl

libclc: Move subgroup functions into clc

It turns out there was a generic implementation of the id and sizes.
The practice of splitting every single function into its own file is
kind of a pain here, so introduce a utility header for amdgpu.
DeltaFile
+0-60libclc/opencl/lib/amdgcn/subgroup/subgroup.cl
+49-0libclc/clc/lib/amdgcn/subgroup/subgroup.cl
+41-0libclc/opencl/lib/generic/subgroup/subgroup.cl
+23-0libclc/clc/include/clc/subgroup/clc_subgroup.h
+20-0libclc/clc/lib/amdgcn/workitem/clc_get_sub_group_size.cl
+17-0libclc/clc/lib/amdgcn/workitem/clc_get_num_sub_groups.cl
+150-605 files not shown
+174-6211 files

LLVM/project a96a0dellvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/RISCV same-node-reused.ll

[SLP]Fix the matching of the nodes with the same scalars, but reused

If the scalars are reused and the ReuseShuffleIndices is set, we may
miss matching for the buildvector/gather nodes and add an extra cost
DeltaFile
+21-3llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+3-10llvm/test/Transforms/SLPVectorizer/RISCV/same-node-reused.ll
+24-132 files

LLVM/project c6805abllvm/test/CodeGen/X86 narrow-shl-load.ll

[X86] narrow-shl-load.ll - regenerate test checks (#185211)
DeltaFile
+13-5llvm/test/CodeGen/X86/narrow-shl-load.ll
+13-51 files

LLVM/project f87caablibclc/clc/include/clc/subgroup clc_sub_group_broadcast.h sub_group_broadcast.h, libclc/clc/lib/amdgcn/subgroup sub_group_broadcast.cl

libclc: Rename sub_group_broadcast header

The other clc headers have the clc prefix, so add it.
DeltaFile
+22-0libclc/clc/include/clc/subgroup/clc_sub_group_broadcast.h
+0-22libclc/clc/include/clc/subgroup/sub_group_broadcast.h
+1-1libclc/clc/lib/amdgcn/subgroup/sub_group_broadcast.cl
+1-1libclc/opencl/lib/generic/subgroup/sub_group_broadcast.cl
+24-244 files

LLVM/project 810af8aclang/lib/Headers amdhsa_abi.h, clang/test/Headers amdhsa_abi.cl

clang/AMDGPU: Add missing field to implicit kernarg struct definition (#185209)

I missed this one when figuring out all the field offsets.
DeltaFile
+76-70clang/test/Headers/amdhsa_abi.cl
+4-1clang/lib/Headers/amdhsa_abi.h
+80-712 files