[AArch64][clang] Improve -march= error message with many feature flags
When calling `clang` with a large number of feature flags, the entire
argument is printed as an error message if one of the feature flags is
invalid.
For example, before this change, an error message such as this is printed:
```
clang: error: unsupported argument 'clang -march=armv9.6a+sme2+sme2p1+sve2
+sve2p1+profile+crypto+aes+sha2+sha3+sm4+memtag+ssbs+bf16+i8mm+dotprod+ls64
+rcpc3+brbe+gcs+faminmax+fp8+fp8fma+fp8dot4+fp8dot2+sme-f8f32+the+lut+lsui
+pops+occmo+rme-gpc3+d128+invalidfeature'
```
and a user doesn't know which of the `+feature` flags is actually invalid.
After this change, the following error message is printed:
```
clang: error: unsupported argument '+invalidfeature' to option '-march='
```
clearly printing out the invalid feature flag.
[mlir][IR] Require token producer and consumer traits
Add marker traits for operations that intentionally produce or consume the
builtin token type. The verifier now rejects token results without
TokenProducerTrait, token operands without TokenConsumerTrait, token entry
block arguments whose parent op does not produce tokens, and token block
arguments outside entry blocks.
Extend the Test dialect token ops to cover valid opt-in cases and each
verifier rejection path.
Assisted-by: Codex
[LoopFusion] Simplifying checks for loop eligibility (#197357)
A header is guaranteed to exist, so the check for it is redundant. Also,
combined all statistics related to invalid loop structure into a single
statistic for clarity.
[libc] Only back off GPU allocation under high contention (#197170)
Summary:
Right now this sleeps if any threads failed, this is inefficient. We
want the sleep to stop livelock, though that is less common since the FW
progress bit was set by default. But we should only do this when the
bitfield is full to minimize sleeping when there's plenty of space
available.
[LV] Complete VPWidenCastRecipe cost model (#196918)
Now the legacy/vplan cost model assert has gone we can finish off the
cost model for VPWidenCastRecipe to account for recipes with no
underlying value.
[MLIR] Add getter for the action handler of MLIR context (#197230)
Current implementation of MLIRContext's action handling, requires the
user to hold the stored memory for any observer or breakpoint manager
added to the execution context. Using a getter for the registered action
handler, permits the user to store the observers and breakpoints into
MLIRContext and modify their state later, by retrieving the action
handler and invoking the functor's target. Mainly for attaching new
observers later in the compilation pipeline, after the execution context
got registered.
PR misc/60253 (conditionally) remove CRYPTO using example
This completes the previous (2026-03-03) change, by removing an
example from the EXAMPLES section, which would only work if nc
was built with the CRYPTO option.
Like the previous, changing the definition of the number register C
in the man page source from 0 to 1 will reinstate the example, along
with all of the CRYPTO options, but makes no sense unless someone
does the required work to be able to build nc with CRYPTO defined.
No pullups required, the previous changes weren't pulled up either.
[NFC][AArch64] Extract MOVaddr* expansion model into common header (#183503)
This makes the expansion logic reusable by getInstSizeInBytes in a
follow-up patch.
acpi_spmc(4): If verbose, print called functions
...as a debugging aid, in order to be able to check that some functions
are effectively called and to identify them quickly if they cause
a hang.
Reviewed by: obiwac
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56883
acpi_spmc(4): Auto-detect DSM revisions by default
Which revisions to use for the Intel and AMD DSMs is unclear. For the
Intel one, the written specification indicates only 0, but Linux uses
1 (possibly an oversight). For the AMD one, for which there is no
specification, Linux uses 0, but at least on the Framework 13 AMD 7040
series, the "enumerate functions" function only returns a mask that
covers all the functions we expect when called with revision 2.
Introduce an auto-detection strategy where each revision starting from
0 is tried in turn up to some limit (included; default: 15). As soon as
a revision implements all expected functions, we stop the loop and use
that one, in effect selecting the minimum revision that implements all
we need, which should avoid potential backwards-compatibility problems.
If no revision implements all expected functions, the highest available
revision in the checked range is selected, but higher revisions that do
not bring new functions are discarded (see the explanatory comment in
acpi_spmc_probe_dsm()).
[21 lines not shown]
acpi_spmc(4): softc: Move supported functions into a DSM info structure
This is in preparation to adding the revision as a probed information.
Reviewed by: obiwac
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56880
acpi_spmc(4): Only run DSM functions reported present
Examination of the DSDT in a Framework laptop generally hints at
firmware designers sometimes providing ACPI methods for convenience
(e.g., same firmware for multiple models) but not using them (or not
expecting them to be used) depending on tweaks or the actual hardware
platform.
On an Intel Framework laptop, we specifically observe the presence of
a Microsoft DSM that just reports availability of the SLEEP_ENTRY and
SLEEP_EXIT (7 and 8) functions although the Microsoft specification
requires other functions, whose purpose is similar to corresponding
Intel DSM's ones (such as DISPLAY_OFF). However, we currently always
call the latter even on the Microsoft DSM. On that laptop, fortunately,
the way the code is structured in the _DSM method leads to nothing being
executed on this call.
Given the similarity of intent between most functions from the Microsoft
DSM on one side and those of ADM and Intel on the other, it is
[24 lines not shown]
acpi_spmc(4): Factor out testing for present DSMs/functions
Since we are now keeping in the softc the information about which DSM
functions are available (in supported_functions[]), the 'dsms' field
there is somewhat redundant.
Make it completely redundant by keeping the bit representing the
enumeration function itself in each element of supported_functions[],
and then remove the field.
As a result, convert has_dsm() to rely on supports_function().
Adapt acpi_spmc_dsm_check_functions() so that it does not take into
account the enumeration function bit.
While here, use the self-explanatory stance
IDX_TO_BIT(DSM_ENUM_FUNCTIONS) instead of a hardcoded 1.
Reviewed by: obiwac
[2 lines not shown]
acpi_spmc(4): acpi_spmc_run_dsm(): Rename, rename parameters, constify
This function actually runs a function of a given DSM. Remove the
'_dsm' suffix to remove the inaccuracy and make things simpler.
Reviewed by: obiwac
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56877
acpi_spmc(4): Be less verbose by default
Do not print by default details of failures that are unlikely to help
a normal user and to have a crucial influence on whether suspension
works correctly. Do so only on a verbose boot or if requested
explicitly by the user via 'debug.acpi.spmc.verbose'.
In particular:
- On an Intel Framework laptop, the Microsoft DSM only reports the
SLEEP_ENTRY and SLEEP_EXIT functions. That makes some sense since,
according to its specification, all functions of a Microsoft DSM
except these two are in fact redundant with Intel DSM's ones (also,
that of AMD DSM's ones). Those functions being missing are only
a potential problem if there is no other DSM than Microsoft's (yet to
be observed in the field).
- The details of malformed/unapplicable constraints or ones with a newer
format the driver does not know about are not readily actionable
pieces of information, but rather debug/developer-oriented ones. When
verbosity is not requested, only print the details of the first such
[10 lines not shown]
acpi_spmc(4): Add a sysctl knob to request verbosity
The driver will be more verbose on this knob being non-zero or
'bootverbose' being set. The corresponding variable is typed as an
integer to leave room for expansion. To be used in subsequent commits.
Reviewed by: obiwac
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56875
acpi_spmc(4): acpi_spmc_probe_dsm(): Remove passing superfluous handle
The handle is already held by the softc, which is also passed.
No functional change (intended).
Reviewed by: imp, obiwac
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D56818