[IR] Mark whether param/ret attributes are ABI relevant (#222575)
This is specified using ABIAttr in TableGen and queried using
isABIAttr().
Make use of this in the Lint pass, instead of maintaining its own
(outdated) list of ABI attributes.
This has been split out from #207173.
AMDGPU: Query waves-per-EU and flat-wg range from subarch in attributor
The maximum flat work group range is a pair of constants and the maximum
waves per execution unit is fully known from the subarch. Use TargetParser
information and continue working to remove the dependence on codegen.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
[llvm-readobj] Exclude Mach-O dylib IDs from needed libraries (#221618)
For Mach-O files, `--needed-libs` includes `LC_ID_DYLIB`, causing a
dynamic
library to list its own install name as a dependency.
Exclude this command while retaining the actual dependency load
commands.
Fixes #39505.
Assisted-by: OpenAI Codex (implementation, tests, and initial
description).
dpaa2: Allocate DMA tag per Rx buffer
Previously each channel allocated its own set of buffers using the
channel's DMA tag which causes a DMA lock contention under load.
Even a single saturated 1 Gbps link caused ~50,000 adaptive
mutex spin events (as per lockstat) per second. With the proposed
approach there's no more contention on the channel's DMA mutex and the
adaptive mutex spin events dropped to ~6,000/s.
Stress test where iperf3 pushed as much traffic as possible to the 4
ports revealed that throughput drops from expected 940 Mbps down to
600-800 on each link with the "bounce pages lock" generating ~110,000
adaptive mutex spin events per second, but this is to be addressed
later on.
Tested by: flo_purplekraken.com, gnikl_justmail.de, bofh@
MFC after: 3 weeks
Differential Revision: reviews.freebsd.org/D59463
Event: EuroBSDcon Devsummit 2026
AMDGPU: Start using subarch in attributor instead of subtarget (#212207)
Avoid querying the subtarget for functions when the relevant
properties are known from the triple. The various subtarget
group size functions should also be decoupled from the subtarget,
but those are trickier to untangle.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
[llvm-strings] Style updates primarily for --radix (#222454)
* Silence clang-tidy by moving radix into anonymous namespace
* Adjust type and variable naming to match LLVM style
* Adjust --radix command line error message to match llvm-objdump
* Use llvm::StringSwitch to map option values to enumerators
* Remove undocumented and untested --radix="" option which was an
implementation detail to handle --radix not being specified