[lldb] Add symbol table state flags, add accessors. (#239451)
A Module's Symtab may be constructed from a DataFileCache symtab, or
from the ObjectFile binary itself. If we have a report of incorrect lldb
behavior from an end user, we may need to know which was the source of
the symbol table via lldb commands or via SB API.
This adds a bitfield `m_state` to Symtab, with getters and setters for
the currently existing fields (set-from-symtab-cache,
set-from-objectfile). It exposes the lldb-enumerations bits via
SBModule. It has `statistics dump` also print if a symtab was
constructed from an object file (it currently only notes if a symtab was
constructed from a DataFileCache symtab file). It adds an option to
`image list`, `-F/--symtab-state-flags` which will show letters for each
bit that is set for the symbol table.
```
(lldb) help image list
-F[<width>] ( --symtab-state-flags=[<width>] )
[33 lines not shown]
AMDGPU: Use ArgRange for builtin constant argument range checks
Replace the manual Sema range checks of constant builtin arguments
with the new ArgRange annotation on the builtin definitions.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
clang/AMDGPU: Check constant argument ranges of builtins
These builtins take a constant argument that the IR verifier range
checks on the corresponding intrinsic. Sema didn't enforce this, so
you could write code that failed the IR verifier. Use the new Range
annotation on the builtins to fix this.
This only covers builtins that previously had no range validation at
all. Builtins already checked by the manual switch in SemaAMDGPU will
be converted separately.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
clang: Add ArgRange builtin attribute for constant argument ranges
Many target builtins take constant arguments that must be in a
specific range. These usually correspond directly to the Range
annotation on the IR intrinsic, which the verifier enforces. Today
this requires manual verification with a large builtin ID switch in
Sema, and missed cases will emit code that fails the IR verifier.
Add an ArgRange<Index, Lo, Hi> builtin attribute declaring that a
_Constant argument must be in the half-open range [Lo, Hi), the same
as the IR declaration.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
ixgbe: Restore EEE exclusion for X550EM_X KR
X550EM_X KR devices do not support EEE and have no setup_eee operation.
The shared-code update restored the capability removed by d61b6a41dd30,
and the E610 EEE support subsequently added an unchecked call during
attach. Together these changes allow a NULL function pointer call when
attaching a KR device.
Remove the incorrect EEE capability and use the NULL-safe ixgbe_setup_eee()
wrapper when enabling EEE at attach.
Removing the unsupported capability also stops exposing eee_state and the
eee.tx_lpi_count and eee.rx_lpi_count sysctls on X550EM_X_KR devices.
Fixes: f72de14ea132 ("ixgbe: update if_ix and ixgbe api with ix-3.3.38 changes")
Fixes: 13ee84c591f8 ("ix(4): Add EEE support for E610 adapters")
MFC after: 1 week
Sponsored by: BBOX.io
[InstCombine] Handle commuted operands in (X|C) | V --> (X|V) | C (#241105)
The fold in visitOr only matched the inner `or X, C` as operand 0.
getComplexity() does not order two non-constant instruction/argument
operands, so `V | (X|C)` was left alone even though it is equivalent.
Use m_c_Or so both operand orders are matched; flags handling is
unchanged.
Assisted-by: GPT 6.1 Sol, Opus 5.5
sysutils/zelta: Update 1.1.0 => 1.2.0
Changelog:
New commands: zprune (guarded snapshot destruction), rebase, failover,
lock/unlock, and propsync. zelta prune is now a nondestructive planner
with GFS-style retention grids. Revert validates the whole tree before
renaming anything.
https://github.com/bell-tower/zelta/blob/v1.2.0/CHANGELOG.md
- Update COMMENT and descr.
- Merge MKDIRs.
PR: 300707
Sponsored by: UNIS Labs (vvd)
Co-authored-by: Vladimir Druzenko <vvd at FreeBSD.org>
[AMDGPU] Enable GEP canonicalization for dynamic LDS table lookups (#241396)
Use the default IRBuilder GEP canonicalization in
AMDGPULowerModuleLDSPass and update the checks.
Assisted by: GPT 6.1-Sol
Follow up to: https://github.com/llvm/llvm-project/pull/240885
Tools/scripts/update-plist.py: Fix sorting
Bugfix: Don't assume that the original pkg-plist is properly sorted. The
script now sorts the original pkg-plist first if is not already which
makes placement of new entries easier, more reliable and is overall
better for the ports tree.
Feature: Add -O, --options-prepend FOO:BAR flag that prepends %%FOO%% to
a line if BAR matches a regex. This can be used repeatedly. It's not easy
to automatically surmise whether new entries are optional for the entire
tree in a generic tool, but this at least gives some power to the user
for predictable entries.
MFH: 2026Q4
(cherry picked from commit d02ce033460dd82211e916c4dbaa358a99a9ca21)
Tools/scripts/update-plist.py: Fix sorting
Bugfix: Don't assume that the original pkg-plist is properly sorted. The
script now sorts the original pkg-plist first if is not already which
makes placement of new entries easier, more reliable and is overall
better for the ports tree.
Feature: Add -O, --options-prepend FOO:BAR flag that prepends %%FOO%% to
a line if BAR matches a regex. This can be used repeatedly. It's not easy
to automatically surmise whether new entries are optional for the entire
tree in a generic tool, but this at least gives some power to the user
for predictable entries.
MFH: 2026Q4
RuntimeLibcalls: Mark noreturn and pure helper libcalls
Mark the functions which never return as noreturn. Add some nounwind
and cold, mostly following inferLibFuncAttributes. Mark
misc. functions as pure.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
RuntimeLibcalls: Add attributes inferLibFuncAttributes gives libcalls
Remove more differences with the attributes the InferFunctionAttrs
pass would add to the declared libcalls.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
RuntimeLibcalls: Add signatures for the Darwin sincos stret functions
__sincos_stret and __sincosf_stret return a struct holding the 2
results. Describe the C struct return type in the signature table and
lower for the target ABI. This is a vector on x86-64 for float,
through memory on x86-32 and APCS ARM, and as a struct elsewhere.
This replaces the special case that built the types in C++. Ideally we
would be using the ABI library, but it's incomplete for most targets
and it requires some relayering to use here.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
Attributor: Collect the values only used by assumes on demand (#241459)
initializeInformationCache tracked the uses of the operands of every
llvm.assume to find the values only used by assumes, but only a few
abstract attributes and OpenMPOpt ask for them, none of which run in
attributor-light. Collect them for a function when they are first asked
for.
Instruction counts (callgrind) of the light passes in the ThinLTO
backend of tramp3d-v4: -5.8%.
CTMark (-attributor-enable=light): O3 -0.03%, ThinLTO -0.02%.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
freebsd: prefer sys/stdarg.h where available
While the type of va_list and implementation of va_*() psuedo functions
varies (sometimes greatly) by architecture, they will always be defined
by the compiler in a consistent way that does not require machine
dependent handling.
Sponsored by: DARPA, AFRL
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Ryan Moeller <ryan.moeller at klarasystems.com>
Signed-off-by: Brooks Davis <brooks at capabilitieslimited.co.uk>
Closes #19753
FreeBSD: Drop some no-op Solaris compat macros
These macros do nothing and are only used in FreeBSD platform code.
Drop them and the invocations.
Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Rob Norris <rob.norris at truenas.com>
Signed-off-by: Ryan Moeller <ryan.moeller at klarasystems.com>
Closes #19746
FreeBSD: Drop some Solaris compat vnode macros
These macros provide Solaris-compatible names but are only used in
FreeBSD platform code. Use the native FreeBSD names and drop the shims.
Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Reviewed-by: Brian Behlendorf <behlendorf1 at llnl.gov>
Reviewed-by: Rob Norris <rob.norris at truenas.com>
Signed-off-by: Ryan Moeller <ryan.moeller at klarasystems.com>
Closes #19746
bsnmp: zero-fill the destination on a short ASN.1 IpAddress
asn_get_ipaddress_raw() meant to pad the 4-byte buffer after a short
copy, but the loop bound was the already-reached len and never ran,
leaving addr[len..3] uninitialised. Pad to 4.
This is harmless for the in-tree consumers (bsnmpd(1) and
libbsnmpclient) which zero the PDU before decoding it.
Reviewed by: harti, maxim
Approved by: harti
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D60923
(cherry picked from commit b5e57452b62e7c185706ed8b2a86e9f8ac483357)