[CIR][X86] Add support for `cpuid`/`cpuidex` (#173197)
Adds support for the `__builtin_ia32_cpuid` and `__builtin_ia32_cpuidex`
X86 builtins.
Part of [167765](https://github.com/llvm/llvm-project/issues/167765).
[CIR] Upstream handling for data member pointer casts (#171950)
This adds the CIR basic handling for casts of data member pointers. Cast
to bool and null, as well as member function pointer casts will be
handled in followup PRs.
[SLP]Update deps for copyables operands, if the user is used several times in node
If the user instruction is used several times in the node, and in one
cases its operand is copyable, but in another is not, need to check all
operands to be sure we do not miss scheduling
[AMDGPU] Fix AMDGPULowerKernelAttributes not invalidating analysis (#175256)
Summary:
The new PM wasn't using the changed result which triggered failures
after https://github.com/llvm/llvm-project/pull/174112
[NFC][OpenMP][Offload] Add tests for `use_device_ptr(fb_preserve/nullify)`.
The fallback modifiers are currently part of OpenMP 6.1. The tests
mostly fail for now. The associated libomptarget and clang parsing/sema
changes are in #169438, #169603 and #170578, with clang codegen to
follow.
[OpenMP][Clang] Parsing/Sema support for `use_device_ptr(fb_preserve/fb_nullify)`.
Depends on #169603.
This is the `use_device_ptr` counterpart of #168905.
With OpenMP 6.1, a `fallback` modifier can be specified on the
`use_device_ptr` clause to control the behavior when a pointer lookup
fails, i.e. there is no device pointer to translate into.
The default is `fb_preserve` (i.e. retain the original pointer), while
`fb_nullify` means: use `nullptr` as the translated pointer.
[OpenMP] Preserve the original address when `use_device_ptr/addr` lookup fails. (#174659)
As per OpenMP 5.1, we need to assume that when the lookup for
`use_device_ptr/addr` fails, the incoming pointer was already device
accessible.
Prior to 5.1, a lookup-failure meant a user-error (for
`use_device_ptr`),
so we could do anything in that scenario. For `use_device_addr`,
it was always incorrect to set the address to null.
OpenMP 6.1 adds a way to retain the previous behavior of nullifying a
pointer
when the lookup fails. That will be tackled by the PR stack
starting with https://github.com/llvm/llvm-project/pull/169603.
[VPlan] Use unsigned integers for lane start indices (#175231)
a83c89495ba6fe0134dcaa02372c320cc7ff0dbf caused assertion failures here
as if we have a single bit induction variable and two lanes (0 and 1),
then the second lane index (1) will be out of bounds of what a signed
1-bit integer can hold. Lane indices are always >0 according to
VPlanHelpers.h:125, and the lane representation in this code is also
unsigned.
The test case come from tensorflow/XLA.
[profcheck] Exclude `IRCE` because it's not hooked up to the pass pipeline (#175238)
To keep the profcheck effort manageable, excluding (for now) passes that aren't yet hooked up to a pass pipeline.
Issue #147390
[AMDGPU] Generate checks for many MC tests (#175174)
Generate checks for all tests where that did not change the number of
checks with each prefix, and where the resulting test still passed.
Revert "[ORC] Add utilities for limited symbolication of JIT backtraces (#175099)"
This reverts commit 906b48616c03948a4df62a5a144f7108f3c455e8.
The forward fix for this got reverted in
25976e83606f1a7615e3725e6038bb53ee96c3d5, so reverting the original
commit given it is still broken and the forward fix that mitigated most
of the issues is no longer in tree.