[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.
[NFC][AArch64] Extract MOVaddr* expansion model into common header (#183503)
This makes the expansion logic reusable by getInstSizeInBytes in a
follow-up patch.
Move APIs in PromotableAliaserInterface and split bidirectional conversion API.
Move the new APIs into a new PromotableAliaserInterface for more clarity.
Split convertSlotValue into two directional APIs:
- convertSlotValueToViewValue to be called before promoting a load on a view.
- projectViewValueToSlotValue to be called after promoting a store on a view.
projectViewValueToSlotValue also take the reaching def of the slot before the store
so that partial view can be promoted via insert/extract.