[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.
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.
[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());
| ~~^
```
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.
[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
[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
[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.
[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>
[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.
[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.
[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
[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.