[SelectionDAG] Verify SDTCisVT and SDTCVecEltisVT constraints (#150125)
Teach `SDNodeInfoEmitter` TableGen backend to process `SDTypeConstraint`
records and emit tables for them. The tables are used by
`SDNodeInfo::verifyNode()` to validate a node being created.
This PR only adds validation code for `SDTCisVT` and `SDTCVecEltisVT`
constraints to keep it smaller.
Pull Request: https://github.com/llvm/llvm-project/pull/150125
[X86] Avoid extra (PMADDUBSW(X,AND(Y)) in <X x i8> multiplication (#168262)
On SSSE3 targets we use PMADDUBSW of odd/even with suitable masking to
avoid having to extend/truncate with `<X x i16>` types and avoid
additional Port0/5 pressure.
However, lower i8 elements in the pair can safely use PMULLW directly
without any pre-masking as we will only use the lower i8 bits of the
result which is only affected by the lower i8 of the inputs.
[Polly] Remove ScopPass infrastructure (#125783)
PR #125442 replaces the pass-based Polly architecture with a monolithic
pass consisting of phases. Reasons listed in
https://github.com/llvm/llvm-project/pull/125442.
With this change, the SCoP-passes became redundant problematic versions
of the same functionality and are removed.
[LV] Check debug location for more recipes in vplan-printing.ll.
Extend test to check printing of debug locations to cover a range of
wide and replicating recipes. Currently those do not print the debug
metadata.
[AArch64][test] Improve pr166870.ll test case (#168194)
As pointed out in post-commit discussion on #167336
<https://github.com/llvm/llvm-project/pull/167336#issuecomment-3523794206>,
although the test case succeeds in showing a codegen difference now the
faulty MachineCopyPropagation logic was removed, the example was reduced
so much that it actually would have been legal to remove the seemingly
redundant mov.
This is a re-reduction of that test case which should now demonstrate a
mov that can't safely be removed (mov w9, w9) because the upper bits no
longer being zeroed may alter the program logic.
[NFC][clang] Correct bswapg test to work when int128 is not available (#168261)
This updates the test to avoid inclusion of int128 bswapg tests on
targets that don't support int128 at all.
This fixes failures introduced by #162433
[NFC][clang] Correct bswapg test to work when int128 is not available
This updates the test to avoid inclusion of int128 bswapg tests on targets
that don't support int128 at all.
This fixes failures introduced by #162433
[CIR] Upstream non-empty Try block with catch all (#165158)
Upstream support for try block and catch all block with a function call
that may throw an exception.
Issue https://github.com/llvm/llvm-project/issues/154992
[clang-tidy][docs][NFC] Enforce 80 characters limit (3/N) (#167830)
Fix documentation in `hicpp`, `linuxkernel`, `llvm`, `llvmlibc`, `misc`
and `modernize`.
This is part of the codebase cleanup described in
https://github.com/llvm/llvm-project/issues/167098
[clang-tidy][docs][NFC] Enforce 80 characters limit (2/N) (#167632)
Fix documentation in `cert`, `clang-analyzer`, `concurrency`,
`cppcoreguidelines`, `darwin`, `fuchsia` and `google`.
This is part of the codebase cleanup described in
[#167098](https://github.com/llvm/llvm-project/issues/167098)
Reapply "[compiler-rt] Default to Lit's Internal Shell" (#168232)
This reverts commit 8cc49fb99a4798f67b6b70fabfd584095d022e92.
This was causing failures on two specific buildbots that have since been
fixed.
[compiler-rt] Update test to export variables instead of using env
To work around a bug in lit's internal test runner around ulimit.
Commands that use env to set environment variables for that command do
not have limits applied to them. This needs to be fixed, but for now we
can work around without degrading the readability of the test too much.
[LoopPeel] Fix BFI when peeling last iteration without guard
LoopPeel sometimes proves that, when reached, the original loop always
executes at least two iterations. LoopPeel then unconditionally
executes both the remaining loop's initial iteration and the peeled
final iteration. But that increases the latter's frequency above its
frequency in the original loop. To maintain the total frequency, this
patch compensates by decreasing the remaininng loop's latch
probability.
The is another step in issue #135812 and was discussed at
<https://github.com/llvm/llvm-project/pull/166858#discussion_r2528968542>.
[AArch64] Move AArch64SMEAttributes out of Utils library to fix layering. NFC (#168236)
The AArch64 MCTargetDesc library links the Utils library. The
AArch64SMEAttributes.cpp/h requires the Core library and includes files
from AArch64's CodeGen library. These are layering violations.
The MCTargetDesc doesn't need anything from AArch64SMEAttributes.cpp/h
so the easiest fix is to move them to the CodeGen library.
We should probably merge the remaining files in Utils into MCTargetDesc.
[ADT] Group public functions in DenseMap.h (NFC) (#168239)
This patch groups public functions, including the constructors, the
destructor, and the copy/move assignment operators.