[lldb][test] Fix ThreadStepUntilAPI.py
After #167359 / 95db31e7f69e7008f0c570ed30d54d1e418e10f2.
A fix was attempted in #167423 but was not quite enough.
From what I could understand, in v1 format you have to specify
all the basic blocks. Where before !call_me implied they were all
cold (I think, very shaky understanding here).
For this test we want to see blocks like call_me/foo/call_me.
So adding a line for block 1 fixes the tests.
It could produce more blocks at some point but I think as long
as foo is within two of them, it'll be fine.
[AArch64][CostModel] Add SVE bfloat arithmetic tests (NFC) (#166951)
This patch adds cost model tests for `bfloat` operations with
`+sve-b16b16`. Currently, some of these costs are higher than they
should be as the cost model is assuming `bfloat`s need promotion, but
some of these operations are natively supported with `+sve-b16b16`.
[mlir]: Add handling of escaped memrefs to erase_dead_alloc_and_stores (#167255)
Patch updates transform.memref.erase_dead_alloc_and_stores to not delete
escaped allocations.
[libc++] Remove some of the uses of aligned_storage inside the library (#161635)
`aligned_storage` has been deprecated and will most likely be removed in
a future version of C++. This patch removes some of its uses to avoid
having to work around its removal in the future.
[libunwind][AArch64] Disable ZA before resuming from unwinding (on Linux) (#165451)
This patch reimplements the SME ABI `__arm_za_disable` routine within
libunwind. This routine must be called before resuming from unwinding on
AArch64 platforms with SME support.
Before calling the routine, we need to check that SME is available. In
this patch, this is implemented for Linux-based platforms by checking
HWCAP2. It should be possible to implement this check for other
platforms as required.
This patch includes a test for this functionality. This test requires
SME, so on platforms without it, it will simply pass.
[LV] Move condition to VPPartialReductionRecipe::execute (#166136)
This means that VPExpressions will now be constructed for
VPPartialReductionRecipe's when the loop has tail-folding predication.
Note that control-flow (if/else) predication is not yet handled
for partial reductions, because of the way partial reductions
are recognised and built up.
[clang][bytecode] Mark CXXDefaultInitExprs in InitLink chain (#166395)
So we know before _what_ entry in the chain we need to look for the
InitList.
Fixes https://github.com/llvm/llvm-project/issues/166171
[IndVarSimplify] Ensure fp values can be represented as exact integers
When transforming floating-point induction variables into integer ones,
make sure we stay within the bounds of fp values that can be represented
as integers without gaps, i.e., 2^24 and 2^53 for IEEE-754 single and
double precision respectively (both on negative and positive side).
Fixes: https://github.com/llvm/llvm-project/issues/166496.
[llvm][DebugInfo] Adjust ModuleDebugInfoPrinter to versioned language names (#167293)
We shouldn't be calling `getUnversionedName` unconditionally because
DWARFv6-enabled Clang will emit versioned language names that are
versioned (i.e., `sourceLanguageName`...see new test case). We need to
check `hasVersionedName` and pick the appropriate API based on that.
Otherwise we assert in `getUnversionedName`.
[RISCV][llvm] Preliminary P extension codegen support (#162668)
This is the initial support of P extension codegen, it only includes
small part of instructions:
PADD_H, PADD_B,
PSADD_H, PSADD_B,
PAADD_H, PAADD_B,
PSADDU_H, PSADDU_B,
PAADDU_H, PAADDU_B,
PSUB_H, PSUB_B,
PDIF_H, PDIF_B,
PSSUB_H, PSSUB_B,
PASUB_H, PASUB_B,
PDIFU_H, PDIFU_B,
PSSUBU_H, PSSUBU_B,
PASUBU_H, PASUBU_B
[Hexagon] Fix a warning
This patch fixes:
llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp:1799:32: error:
private field 'HRI' is not used [-Werror,-Wunused-private-field]
Reland "[LoongArch] Add `isSafeToMove` hook to prevent unsafe instruction motion"
This patch introduces a new virtual method
`TargetInstrInfo::isSafeToMove()` to allow backends to control whether a
machine instruction can be safely moved by optimization passes.
The `BranchFolder` pass now respects this hook when hoisting common
code. By default, all instructions are considered safe to to move.
For LoongArch, `isSafeToMove()` is overridden to prevent
relocation-related instruction sequences (e.g. PC-relative addressing
and calls) from being broken by instruction motion. Correspondingly,
`isSchedulingBoundary()` is updated to reuse this logic for consistency.
[orc-rt] Replace wrapper fn `void *CallCtx` arg with `uint64_t CallId`. (#167452)
This argument serves as an opaque id (outside the ControllerAccess
object) for a call to a wrapper function. I expect that most
ControllerAccess implementations will want to use this argument as a
sequence number (plain integer), for which uint64_t will be a better fit
than void*. For ControllerAccess implementations that want to use a
pointer, uint64_t should be sufficiently large.
[RISCV] Set __GCC_CONSTRUCTIVE_SIZE/__GCC_DESTRUCTIVE_SIZE to 64 (#162986)
These two macros were added in
https://github.com/llvm/llvm-project/pull/89446.
But the previous values may not be reasonable for RV64 systems because
most
of them have a cache line size 64B. So here we change them to 64.
[clang-tidy] Add `IgnoreValueCalls` option to bugprone-unchecked-optional-access (#167209)
Add a new option `IgnoreValueCalls` to
`bugprone-unchecked-optional-access`
Closes [#163831](https://github.com/llvm/llvm-project/issues/163831)