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

LLVM/project ac5081allvm/test/Transforms/SLPVectorizer/RISCV same-node-reused.ll

[SLP][NFC]Add a test with the missing matching of same nodes with reuses, NFC
DeltaFile
+98-0llvm/test/Transforms/SLPVectorizer/RISCV/same-node-reused.ll
+98-01 files

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

clang/AMDGPU: Add missing field to implicit kernarg struct definition
DeltaFile
+76-70clang/test/Headers/amdhsa_abi.cl
+4-1clang/lib/Headers/amdhsa_abi.h
+80-712 files

LLVM/project 4dc9167libclc/clc/include/clc/synchronization clc_sub_group_barrier.h, libclc/clc/lib/amdgcn/synchronization clc_sub_group_barrier.cl

libclc: Move sub_group_barrier to clc
DeltaFile
+23-0libclc/opencl/lib/generic/synchronization/sub_group_barrier.cl
+21-0libclc/clc/include/clc/synchronization/clc_sub_group_barrier.h
+0-21libclc/opencl/lib/amdgcn/synchronization/sub_group_barrier.cl
+18-0libclc/clc/lib/amdgcn/synchronization/clc_sub_group_barrier.cl
+14-0libclc/clc/lib/generic/subgroup/sub_group_barrier.cl
+1-0libclc/clc/lib/generic/SOURCES
+77-213 files not shown
+79-229 files

LLVM/project 9f2f6falibclc/opencl/lib/amdgcn SOURCES, libclc/opencl/lib/amdgcn/mem_fence fence.cl

libclc: Remove target opencl copies of mem_fence
DeltaFile
+0-31libclc/opencl/lib/amdgcn/mem_fence/fence.cl
+0-31libclc/opencl/lib/ptx-nvidiacl/mem_fence/fence.cl
+0-1libclc/opencl/lib/ptx-nvidiacl/SOURCES
+0-1libclc/opencl/lib/amdgcn/SOURCES
+0-644 files

LLVM/project 9dd021dlibclc/opencl/lib/generic/workitem get_global_offset.cl get_group_id.cl, libclc/opencl/lib/ptx-nvidiacl/workitem get_num_sub_groups.cl get_max_sub_group_size.cl

libclc: Remove target definitions of opencl workitem functions

These were just calling the __clc implementation, so move it
to generic.
DeltaFile
+13-0libclc/opencl/lib/generic/workitem/get_global_offset.cl
+13-0libclc/opencl/lib/generic/workitem/get_group_id.cl
+13-0libclc/opencl/lib/generic/workitem/get_local_id.cl
+0-13libclc/opencl/lib/ptx-nvidiacl/workitem/get_num_sub_groups.cl
+0-13libclc/opencl/lib/ptx-nvidiacl/workitem/get_max_sub_group_size.cl
+0-13libclc/opencl/lib/ptx-nvidiacl/workitem/get_sub_group_size.cl
+39-3914 files not shown
+54-18020 files

LLVM/project a20b2dbmlir/lib/Dialect/LLVMIR/IR LLVMTypes.cpp, mlir/test/Dialect/LLVMIR types-invalid.mlir

[mlir][LLVM] Disallow opaque struct types as function arguments

Function types are only allowed to take first-class values as arguments.
The LLVM dialect implemented this correctly so far except for allowing opaque struct types.
When translated to LLVM proper, invalid IR would be created with confusing assertion errors.

This PR matches LLVM by disallowing opaque struct types as arguments, allowing users to catch this kind of mistake early while still in the MLIR world.

The corresponding LLVM logic is here: https://github.com/llvm/llvm-project/blob/c4898f3f229027e6cbdf8f9db77b8c14d70f6599/llvm/lib/IR/Type.cpp#L404
DeltaFile
+7-0mlir/test/Dialect/LLVMIR/types-invalid.mlir
+3-0mlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp
+10-02 files

LLVM/project 30434ballvm/test/tools/llubi loadstore_le.ll loadstore_be.ll, llvm/tools/llubi/lib Context.cpp Interpreter.cpp

[Reland][llubi] Add support for load/store/lifetime markers (#185196)

This patch relands https://github.com/llvm/llvm-project/pull/182532. The
original version causes test failures related undef bits since it
incorrectly assumes `std::uniform_int_distribution` yields the same
results across different stdlib vendors. This patch simply uses low bits
to avoid the issue. I am not sure whether it still generates uniformly
distributed random numbers. But abseil also uses this trick:
https://github.com/abseil/abseil-cpp/blob/e72b94a2f257ba069ec0b99e557e9f1f6b9c1a3e/absl/random/uniform_int_distribution.h#L203-L206

I have confirmed all tests passed with libstdc++ and libc++.

Original PR description:
Bytes are adjusted to respect the incoming byte type proposed in
https://discourse.llvm.org/t/rfc-add-a-new-byte-type-to-llvm-ir/89522.

Note that the current implementation of constant folding doesn't handle
bitcasts with weird types like `<8 x i3> to <3 x i8>`:


    [2 lines not shown]
DeltaFile
+305-32llvm/tools/llubi/lib/Context.cpp
+192-0llvm/test/tools/llubi/loadstore_le.ll
+190-0llvm/test/tools/llubi/loadstore_be.ll
+127-8llvm/tools/llubi/lib/Interpreter.cpp
+46-17llvm/tools/llubi/lib/Value.h
+42-4llvm/tools/llubi/lib/Context.h
+902-619 files not shown
+1,050-6515 files

LLVM/project 1af9f7cllvm/test/Transforms/LoopVectorize/RISCV transform-narrow-interleave-to-widen-memory.ll, llvm/test/Transforms/LoopVectorize/X86 epilog-vectorization-ordered-reduction.ll

[LV] Add test for IG narrowing and epilogue with ordered reductions.

Add missing test coverage for narrowing interleave groups and countable
early exit and epilogue vectorization with ordered reductions.
DeltaFile
+564-0llvm/test/Transforms/LoopVectorize/X86/epilog-vectorization-ordered-reduction.ll
+151-3llvm/test/Transforms/LoopVectorize/RISCV/transform-narrow-interleave-to-widen-memory.ll
+715-32 files

LLVM/project f441746llvm/include/llvm/ADT StringSwitch.h

[ADT] Remove deprecated variadic `StringSwitch::Cases` and `CasesLower` (#185191)

These overloads have been deprecated since October 2025.
Use the `std::initializer_list` overload instead: `.Cases({"a", "b"},
Value)`.

For more context, see https://github.com/llvm/llvm-project/pull/163117.

Assisted-by: claude

Co-authored-by: Claude Opus 4.6 <noreply at anthropic.com>
DeltaFile
+10-103llvm/include/llvm/ADT/StringSwitch.h
+10-1031 files

LLVM/project a7b56dbclang/lib/CIR/CodeGen CIRGenExprComplex.cpp CIRGenExprScalar.cpp, clang/lib/CodeGen CGExprComplex.cpp

[CIR] Remove cir.unary(plus, ...) and emit nothing for unary plus

Traditional codegen never emits any operation for unary plus — it just
visits the subexpression as a pure identity at the codegen level. Align
CIRGen with this behavior by removing Plus from UnaryOpKind entirely
and having VisitUnaryPlus directly visit the subexpression with the
appropriate promotion/demotion handling.
DeltaFile
+68-67clang/lib/CodeGen/CGExprComplex.cpp
+0-72clang/test/CIR/Transforms/canonicalize.cir
+10-26clang/test/CIR/CodeGen/complex-unary.cpp
+16-20clang/test/CIR/IR/unary.cir
+18-16clang/lib/CIR/CodeGen/CIRGenExprComplex.cpp
+14-12clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
+126-21310 files not shown
+146-28316 files

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

Merge branch 'main' into users/aokblast/elf/fix_error
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,4238,317 files not shown
+894,376-463,8038,323 files

LLVM/project 5d8adcbllvm/include/llvm/Object ELF.h

fixup! [Object][ELF] Fix section header zero check
DeltaFile
+5-2llvm/include/llvm/Object/ELF.h
+5-21 files

LLVM/project 7b081bfllvm/include/llvm/Object ELF.h, llvm/test/tools/llvm-readobj/ELF many-sections.s

fixup! [Object][ELF] Fix section header zero check
DeltaFile
+3-4llvm/include/llvm/Object/ELF.h
+1-1llvm/test/tools/llvm-readobj/ELF/many-sections.s
+4-52 files

LLVM/project c4bae7fllvm/include/llvm/Object ELF.h

fixup! [Object][ELF] Fix section header zero check
DeltaFile
+2-1llvm/include/llvm/Object/ELF.h
+2-11 files

LLVM/project 7804b28llvm/include/llvm/Object ELF.h

fixup! [Object][ELF] Fix section header zero check
DeltaFile
+10-10llvm/include/llvm/Object/ELF.h
+10-101 files

LLVM/project 004bfd2llvm/include/llvm/Object ELF.h

fixup! [Object][ELF] Fix section header zero check
DeltaFile
+32-4llvm/include/llvm/Object/ELF.h
+32-41 files

LLVM/project 817ef8cllvm/include/llvm/Object ELF.h

[Object][ELF] Fix section header zero check

The PN_XNUM is a necessary condition for reading shdr0 regardless of the
value of e_shoff. Without this, readShdrZero falsely returns the garbage
value in ELF header instead of emitting warning.
DeltaFile
+12-7llvm/include/llvm/Object/ELF.h
+12-71 files

LLVM/project 707b938llvm/test/tools/llvm-readobj/ELF many-segments.test

fixup! [llvm-readobj, ELF] Support reading binary with more than PN_XNUM segments.
DeltaFile
+22-7llvm/test/tools/llvm-readobj/ELF/many-segments.test
+22-71 files

LLVM/project 818168eclang-tools-extra/clang-tidy/cppcoreguidelines MissingStdForwardCheck.cpp, clang-tools-extra/docs ReleaseNotes.rst

[clang-tidy] Fix false positive for constrained template parameters in `cppcoreguidelines-missing-std-forward` (#182038)

Explicit object parameters with a type constraint are skipped to avoid
false positives. They are technically still forwarding references per
[temp.deduct.call], but rarely intended to be perfectly forwarded.

Fixes #180362
DeltaFile
+58-0clang-tools-extra/test/clang-tidy/checkers/cppcoreguidelines/missing-std-forward-cxx23.cpp
+10-0clang-tools-extra/clang-tidy/cppcoreguidelines/MissingStdForwardCheck.cpp
+7-0clang-tools-extra/docs/clang-tidy/checks/cppcoreguidelines/missing-std-forward.rst
+4-0clang-tools-extra/docs/ReleaseNotes.rst
+79-04 files

LLVM/project 898dc85clang-tools-extra/clangd/index/dex/dexp CMakeLists.txt, clang-tools-extra/clangd/index/remote CMakeLists.txt

[clangd] Disable PCH for libs that use gRPC (#185185)

gRPC adds -pthread, which is incompatible with PCH without it. At some
point, we probably should generally switch from -lpthread to -pthread,
but until then, disable PCH for affected targets.

Fixes https://github.com/llvm/llvm-project/issues/184759.
DeltaFile
+4-1clang/cmake/modules/AddGRPC.cmake
+3-0clang-tools-extra/clangd/index/dex/dexp/CMakeLists.txt
+3-0clang-tools-extra/clangd/index/remote/CMakeLists.txt
+3-0clang-tools-extra/clangd/index/remote/marshalling/CMakeLists.txt
+3-0clang-tools-extra/clangd/index/remote/monitor/CMakeLists.txt
+3-0clang-tools-extra/clangd/index/remote/server/CMakeLists.txt
+19-11 files not shown
+22-17 files

LLVM/project 9c3c862libclc/clc/include/clc/synchronization clc_work_group_barrier.h, libclc/clc/lib/amdgcn/synchronization clc_work_group_barrier.cl

libclc: Use separate acquire and release fences in work_group_barrier
DeltaFile
+17-3libclc/clc/lib/amdgcn/synchronization/clc_work_group_barrier.cl
+1-2libclc/clc/lib/ptx-nvidiacl/synchronization/clc_work_group_barrier.cl
+1-2libclc/opencl/lib/generic/synchronization/work_group_barrier.cl
+1-1libclc/clc/include/clc/synchronization/clc_work_group_barrier.h
+20-84 files