[AArch64][llvm] Add support for FEAT_HINTE for Armv9.6 onwards
Add support for `FEAT_HINTE`, as defined in the Arm ARM M.c edition[1]
This defines the Extended Hint instruction space. `FEAT_HINTE` is
optional from Armv9.0, and mandatory from Armv9.6.
Add MC coverage for assembly, disassembly, diagnostics, generic sysreg
fallback behavior, Clang driver handling, and target parser extension
mapping.
[1] https://developer.arm.com/documentation/ddi0487/latest
[Dexter] Add at_frame_idx to check values in frames above current (#203505)
This patch adds a new attribute for !and nodes, `at_frame_idx`, which
matches against frames above its parent node; for example, in the
script:
```
!where {function: foo}:
!where {function: bar}:
!and {at_frame_idx: 1}:
!value x: 0
```
The `!value x` node checks the value of 'x' in 'foo' while the debugger
is inside 'bar'. Use of this attribute comes with some restrictions: a
!where node can never be nested under a !and{at_frame_idx} node, and
neither can another !and{at_frame_idx} node.
[clang][SYCL] Diagnose reference kernel parameters (#192957)
Per SYCL 2020 spec: Reference types are not trivially copyable, so they
may not be passed as kernel parameters.
This PR adds infrastructure for kernel object visiting and implements
diagnostics for reference kernel parameters.
The infrastructure will be also used for other kernel parameter
restrictions and functional code transformations that will be done in
separate PRs.
Assisted by: claude in unit test preparation
---------
Co-authored-by: Tom Honermann <tom at honermann.net>
[ARM] Specify inlining behavior in TableGen (#205763)
Move the ARM inlining feature whitelist into the SubtargetFeature
definitions. For this purpose, add a new InlineMustMatch inlining
behavior, for features where no differences between caller/callee are
allowed.
Additionally, mark all the tuning features as InlineIgnore and fix some
cases that were incorrectly omitted from the feature whitelist.
Fixes https://github.com/llvm/llvm-project/issues/65152.
[X86][Windows] Return `fp128` on the stack (#204887)
Subsumes https://github.com/llvm/llvm-project/pull/194214
For x86-64 Windows targets, LLVM currently returns `fp128` in xmm0. This
does match `i128` (both Clang and GCC return `__int128` in xmm0) but
disagrees with GCC's behavior of returning `__float128` on the stack.
https://gcc.godbolt.org/z/xnWeGqcbW
Microsoft does not specify a `__float128` ABI so any decision is purely
an extension. The Windows x64 calling convention [1] does say that user-
defined types that do not fit in a register should be returned
indirectly, so the GCC behavior seems like a reasonable interpretation
of this rule.
Thus, change `fp128` to return on the stack for Windows targets. This is
done for both MinGW and MSVC targets; if official guidelines are ever
published, this can be revisited.
[9 lines not shown]
[BOLT] Make ICF bucket iteration order deterministic for single-threaded mode (#200706)
`CongruentBuckets` is an unordered_map, so iterating it directly
produces non-deterministic folding order across different build
environments. Sort buckets by the binary address of the representative
function before iterating to guarantee a stable debug output order.
That order isn't matter for the output binary, but it cause randomly
different debug output across different build environments, which makes
it hard to write stable tests for ICF.
Also the debug output of multi-threaded ICF is already non-deterministic
even we sort that by address, so we only try to stabilize the
single-threaded ICF output.
Update the icf-safe tests to reflect the new deterministic ordering.
Assisted-by: Sonnet 4.6
[NVPTX] Add asynchronous store intrinsics (#200768)
Adds the following intrinsics for asynchronous store operations:
- `st.async`
- `st.async.sys`
- `st.async.gpu`
- `st.async.mmio.sys`
Tests verified through `ptxas-13.3`.
network time: fix stored XSS in GPS init string display
Squelch a PHP warning and change the way the default init
command string is used.
PR: GHSA-h793-67jm-j4m5