[DAG] Add back SelectionDAG::dump() without parameter (#187001)
Usually `dump()`s are without parameter, so the practice is calling
`XXX::dump()` when debugging.
But we will get an error like below after #161097:
```
error: <user expression 128>:1:10: too few arguments to function call,
expected 1, have 0
1 | DAG.dump()
| ~~~~~~~~ ^
```
So to not surprise users, I added back the `SelectionDAG::dump()`
without parameter.
[clang] Enable '-verify-directives' mode in C++ DR tests (#187219)
This patch enables recently implemented `-verify-directives` mode
(#179835) in C++ DR tests to automate some of the work I've been doing
manually while reviewing PRs touching those tests. As highlighted in
that PR, all the errors this mode found were addressed in #179813 and
#179674, so this PR just flips the switch.
[LifetimeSafety] Track origins through array subscript and array-to-pointer decay (#186902)
Array element accesses and array-to-pointer decay were not tracked
because `CK_ArrayToPointerDecay` dropped origins and
`ArraySubscriptExpr` had no visitor. This patch adds both to propagate
origins through array operations.
Fixes #186075
[mlir][tosa][tosa-to-linalg] Fix rescale with double rounding failing validation (#184787)
The validation pass added attribute checks on rescale rounding mode, but
the tosa-to-linalg-pipeline did not specify support for the doubleround
extension, causing rescale with doubleround to be rejected by the
validation in the tosa-to-linalg-pipeline.
One method of fixing this would be to only enable the attribute checks
when the "strictOpSpecAlignment" validation option is enabled. However,
I feel this is the wrong direction of travel. Long-term it would be nice
if the tosa-to-linalg-pipeline specified all the extensions it supports,
gracefully rejecting operations that require unsupported extensions.
Therefore, this change declares support for the doubleround extension to
fix the legalization failure with the ambition of adding more extensions
in the future.
[lldb] Skip file cleanup to avoid permission issue in API test (#187227)
Deleting anything in the build directory of a test-case is causing an
issue on one of the Windows bots. After the previous attempts in
ca15db1cd509c236cd8138bcd098117d0106db56 and
fdd2437af3cdc6d5fe199fcc9d991ccf503b55bd didn't help, we now skip the
file cleanup altogether.
[Instrumentation][nsan] Add maximumnum to NSAN (#186345)
Add support for the min/maximumnum intrinsics and the corresponding
libfuncs to the NumericalStabilitySanitizer.
[X86] Improve handling of i512 SRA(MSB,Amt) "highbits" mask creation (#187141)
This can be folded from ((1 << 511) >>s Amt) -> (-1 << (511-Amt)) to make use of the existing optimal codegen
Alive2: https://alive2.llvm.org/ce/z/9UMQkm
Last i512 pattern described in #132601
[mlir][vector] Extend vector.gather e2e test (#187071)
Extend the vector.gather e2e test to cover both available lowering
paths:
* Direct lowering to LLVM (via -test-lower-to-llvm)
* Lowering via vector.load (via -test-vector-gather-lowering)
This is a follow-up to https://github.com/llvm/llvm-project/pull/184706,
which updated a pattern used by -test-vector-gather-lowering.
The test is extended to operate on 2D memrefs so that the changes
in https://github.com/llvm/llvm-project/pull/184706 are meaningfully
exercised.
[llvm][utils] Give git-llvm-push u+x permissions (#187211)
There's a hashbang at the top of the script so I presume the intention
is that it can be executed directly, but it seems to be lacking
executable permissions. This sets the user executable bit so running
./llvm/utils/git-llvm-push works
[NFCI] [Serialization] Deduplicate DeclID properly (#187212)
In the original code, the operation to iterate Found is meaningless, as
it is guarded by Found.empty(). So this is always a noop for 10 years.
According to the context, I believe the intention is to avoid duplicated
DeclID to be in Data. So changing iterating Found to Data.
Just found by looking around the code.
This is not strictly NFC but NFC intentionally. I will be surprised if
this breaks anything.
[AArch64][GlobalISel] Fix uqadd/sub with scalar operands (#186999)
Previously, neon uqadd/uqsub would not lower when given s32/s64
operands, as GlobalISel would wrongly try to put the operands on
general-purpose register banks. Changing this in RegBankSelection allows
the intrinsics to lower just like their signed versions.
[atomicrmw] fminimumnum/fmaximumnum support (#187030)
Adds support for `atomicrmw` `fminimumnum`/`fmaximumnum` operations.
These were added to C++ in P3008, and are exposed in libc++ in #186716 .
Adding LLVM IR support for these unblocks work in both backends with HW
support, and frontends.
[lldb] Avoid permission issue in API test with SHARED_BUILD_TESTCASE (#187072)
Deleting the inferior binary after an API test-case causes issues on one
of the Windows bots. The previous the fix attempt in ca15db1cd509c236
didn't succeed. We have to use isolated subfolders for each test-case.
This is achieved easily by disabling SHARED_BUILD_TESTCASE.
[AArch64] Remove vector REV16, use BSWAP instead (#186414)
This removes the generation of vector REV16 nodes, generating a bswap
instead. This allows us to remove most uses of AArch64ISD::REV16 and all
uses of G_REV16.
[orc-rt] Add TaskGroup for tracking completion of a set of tasks. (#187205)
TaskGroup provides a mechanism for tracking execution of multiple
concurrent tasks and receiving notification when all tasks have
completed. This is useful for coordinating asynchronous operations in
the ORC runtime.
TaskGroup::Token is an RAII handle representing participation in a
group. The group cannot complete while any valid (non-default) Token
exists.
TaskGroup::addOnComplete registers callbacks to run when the group
closes and all tokens are released. (Callbacks registered after
completion run immediately).
TalkGroup::close seals the group: no new tokens can be acquired after
close is called.
All methods may be called concurrently from multiple threads.
[NFC][PowerPC] Update check lines to include power 9 label (#187193)
The current check lines do not provide a clear distinction between
`power 9` and `power 8` as power 8 label was introduced recently through
#181776. Added `power-9` label to the RUN lines to make it more readable
and understandable.
Co-authored-by: himadhith <himadhith.v at ibm.com>