[MachineCombiner] Defer pattern order verfication. NFC (#177081)
The `verifyPatternOrder` function was created to check if machine
combiner patterns are ordered by their latency reduction degree. This
function can be merged into the following loop, which iterates through
all the patterns, such that (1) `TII::genAlternativeCodeSequence`, which
can be quite expensive, won't be called twice (2) since it's now placed
after we print out the candidate sequence through debug print, if
anything goes wrong during the verification, we at least know what the
sequence looks like (3) we don't need to verify all patterns if we will
eventually exit early.
This should be a NFC
[LoongArch] Remove DAG combination for extractelement
Combination for `trunc+extend+extractelement` to a single
`extractelement` may occur error, because the high bits of the
extract index truncated by `trunc` operation are reserved
after the combination.
This commit remove this combination and the issue
https://github.com/llvm/llvm-project/issues/176839 will never
appear.
[lit] Fix filter-failed-rerun.py on readonly FSes (#177075)
This test invokes lit in a directory and then tries to overwrite
fail.txt within that directory. With the project sources mounted as
read-only, fail.txt ends up being marked readonly, which causes cp to
fail without -f. Use cp -f to ensure we overwrite the existing fail.txt.
[AMDGPU] Further improve `AMDGPUSubtargetFeature` multiclass
This PR extends the multiclass to support two additional parameters: one for specifying whether an `AssemblerPredicate` should be generated, and another for dependent `SubtargetFeatures`. This allows 15 more definitions to be converted to use the multiclass.
[HWASAN] [RISC-V] Update EnableTaggingAbi for RISC-V linux. (#176616)
Enabling pointer tagging in the userspace ABI for RISC-V kernels differs
to that of Aarch64. It requires requesting a particular number of masked
pointer bits, an error is returned if the platform could not accommodate
the request:
https://docs.kernel.org/arch/riscv/uabi.html#pointer-masking
While experimenting with enabling RISC-V HWASAN on GCC I was hitting the
error
> HWAddressSanitizer failed to enable tagged address syscall ABI
when attempting to run instrumented programs in the spike simulator
running kernel release 6.18. This patch successfully allows the tagged
address syscall ABI to be enabled by the support runtime.
[llvm][DebugInfo][NFC] Remove DITypeRefArray in favour of DITypeArray (#177066)
`DITypeRefArray` is just an alias (since
https://github.com/llvm/llvm-project/pull/176938). Remove it in favour
of just using `DITypeArray`.
[RISC-V][MC] Add a RegisterClass definition for RVY (CHERI)
This is the first commit in a series of changes to add initial MC-layer
support for the upcoming Y extension for CHERI.
Specification: https://riscv.github.io/riscv-cheri/
Co-authored-by: Jessica Clarke <jrtc27 at jrtc27.com>
Pull Request: https://github.com/llvm/llvm-project/pull/176869
[ControlFlowHub] Fix duplicate DomTree updates when branch successors are identical (#176620)
When a conditional branch has both successors pointing to the same block
(e.g., `br i1 %cond, label %bb, label %bb`), `ControlFlowHub::finalize`
generates duplicate `Delete` updates for the same CFG edge. This can
cause assertion in `fix-irreducible` pass.
Fixes #176553.
[NFC][OpenMP][Offload] Add tests for `use_device_ptr(fb_preserve/nullify)`. (3/4) (#173930)
Depends on #170578.
The fallback modifiers are currently part of OpenMP 6.1. 4/8 of the
tests check for the current bad output, with FIXME comments.
3 of these "bad" tests will be fixed with the 4th PR in this stack with
the `fb_nullify` codegen changes.
4th bad test will need a follow-up fix to privatization of byref
`use_device_ptr` operands.
Dependent PR: #173931.