[lldb][bytecode] Add GetParent and Clone selectors (#197312)
`GetParent` and `Clone` are needed to implement a `std::optional<T>`
data formatter for libc++.
[X86] Remove extra MOV after widening atomic store
This change adds patterns to optimize out an extra MOV present after
widening the atomic store. Covers <2 x i8> (SSE4.1+), <2 x i16>,
<4 x i8>, <2 x i32>, <2 x float>, <4 x i16>, <2 x ptr addrspace(270)>.
[SelectionDAG] Widen <2 x T> vector types for atomic store
Vector types of 2 elements must be widened. This change does this
for vector types of atomic store in SelectionDAG so that it can
translate aligned vectors of >1 size.
[lldb] Increase availability of ValueObject::GetParent (#197311)
While working formatter bytecode, one of the C++ formatters needs
`GetParent`. While adding `GetParent` support in the bytecode, I noticed
the SB API also does not expose `GetParent`. This remedies that.
During review of this PR, it was pointed out that `GetParent` does work
with synthetic value objects. This PR also addresses that shortcoming.
Assisted-by: claude
[clang][bytecode] Improve constexpr-unknown handling (#196334)
1) Global variables as well as dummies can not be marked
constexpr-unknown. There is a subtlety here with global variables: we
can't register it as constexpr-unknown and later figure out that it
actually _isn't_.
2) Add a `GetRefGlobal` op similar to the existing `GetRefLocal`.
3) Reject constexpr-unknown values in `CmpHelperEQ<Pointer>`
4) Diagnose constexpr-unknown values in `GetTypeidPtr`
[AMDGPU] Add amdgcn.av.(load|store).b128 intrinsics (#191390)
The new `@llvm.amdgcn.av` family of intrinsics have availability and
visibility semantics as described in #191246. Each of them takes a scope
operand that is then translated to target-specific cache policy bits.
This allows the user to control how the side-effects of these loads and
stores are made visible to other threads.
This patch was extracted from #172090.
Co-authored-by: macurtis-amd <macurtis at amd.com>
Assisted-by: Claude Opus 4.6
[RISCV][P-ext] Set BITCAST to Custom for 64-bit packed vectors on RV32 (#198267)
Bitcasts between i64 and v8i8/v4i16/v2i32 used to expand to a stack
roundtrip, and the resulting concat_vectors let DAG combine split
paired-register arithmetic into two single-reg ops (e.g. v8i8 add became
two padd.b instead of one padd.db). The existing Is64BitCast handler in
LowerOperation already treats these as no-ops; this just routes through
it.
[lldb] Change ValueObject::Clone to take StringRef (NFC) (#198035)
Make `ValueObject`'s name being a `ConstString` more of an
implementation detail by changing `Clone` and `SetName` take a
`StringRef`.
[Clang] Fixed a crash when instantiating an invalid out-of-line static data member definition in a local class (#196772)
Add check before the function that cause assertion.
Fix #176152, Fix #195416
[llvm] Fix DEMANGLE_ABI for MinGW (#198288)
Exclude MinGW from __declspec(dllimport) like LLVM_ABI in
llvm/include/llvm/Support/Compiler.h does. MinGW auto-exports all DLL
symbols, so __declspec is not needed and causes undefined __imp__
references when linking static libraries.
Reland "[clang-tidy] Fix crash in misc-static-initialization-cycle" (#198329)
This commit fixes misc-static-initialization-cycle crashing on catch
(...).
Catch-all handlers have no exception declaration, so traversal of
CXXCatchStmt can call TraverseDecl(nullptr). The check previously passed
that null pointer to DeclContext::containsDecl. This commit fixes the
problem by adding a null guard.
Also added `-fexceptions` in the regression test to avoid buildbot
failure.
[mlir][gpu] Diagnose too few launch region arguments (#198232)
Use the cluster-aware argument count when verifying `gpu.launch` bodies,
and update `invalid.mlir` with clustered and non-clustered malformed
launches.
[flang] Pass-through fir.volatile_cast in FIR AliasAnalysis. (#198050)
It should be safe to pass-through `fir.volatile_cast` for the purpose of
alias analysis. The missing pass-through prevented optimization of the
`nonvolatile_src_volatile_dst` test (see updated LIT test).
[libc++] Revert changes to locale_base_api.h accidentally committed in f5b6e4f (#198413)
These changes weren't intended to be in the patch and don't make sense
as-is, so this reverts them.
[NFC] Optimize `SetImpliedBits` (#193289)
This function sometimes shows up on my profiles of slow compiles as
using up to ~3% of CPU cycles. This change reduces this to ~0%. So, it's
not a huge improvement, but it's not nothing.
Currently, this function recursively sets all implied bits for every
feature, which does a lot of redundant work. Many features are implied
by multiple different other features.
This changes the algorithm to only process newly implied bits.
I suspect that a better fix would be to avoid so many calls to
`SetImpliedBits` in the first place, but this is a deeper change that is
probably best made by someone who understands the structure of the
surrounding code.
Fixes #155808