[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`
linuxkpi: work with numpages > 1 in the set_pages_*() KPIs
These calls are used for buddy pages at least in drm's ttm_pool, which
leads to a panic when we invoke lowmem handlers and drm tries to shrink
the pool.
Cope with numpages > 1 by traversing the contiguous pages and executing
the adjustment there, as well, as suggested by markj@. Previous
versions have tried to use the corresponding `set_memory_*()` functions,
but it is believed that not updating `md.pat_mode` breaks subsequent
userspace mappings in ways that may result in things like screen tearing
or other artifacts when running i915kms.
This stabilized my amdgpu laptop running two VMs, chromium and a
concurrent buildworld.
Reviewed by: bz, markj
Differential Revision: https://reviews.freebsd.org/D57004
[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`.
brace_subst: fix single NUL byte overflow after reallocarray()
The check for sufficient space when performing brace substitution
did not take into account space for the terminating NUL byte.
From Thomas Habets
[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
find: Fix mix of character block size check
If multiple -size primaries were specified and any of the values
had the 'c' suffix, it was applied to all values and not just the
one that ended with 'c'. The divsize setting is now stored in the
plan, not a global.
From Thomas Habets