[AArch64] Combine A + zext(B) * C -> A - zext(B) * -C (#198488)
This converts `A + zext(B) * C` -> `A - zext(B) * -C` if C can be
negated in order to use umsubl.
[AMDGPU][Clang] add __builtin_amdgcn_av_(load|store)_b128
These builtins allow the program to request store-available and load-visible
accesses as described in #191246. Each of them takes a __MEMORY_SCOPE_* operand
that is then translated to target-specific cache policy bits.
This patch was extracted from #172090.
Co-authored-by: macurtis-amd <macurtis at amd.com>
Assisted-by: Claude Opus 4.6z
[llvm-profgen] Speed up parsing of MMap events (#197871)
During the mmap extraction, `extractMMapEventForBinary()` is invoked
line by line to parse the perf script(usually 100K to 1M+ lines). This
patch tries to early quit when the current line does not contain the
Binary name, and this will help to avoid subsequent parsing
overhead(baseline behavior uses regex to extract the name, returning
false if it doesn't match the current binary).
With this minor change, the execution time of
extractMMapEventForBinary() dropped from 13,600ms to 32ms(-99%) in an
internal workload test(827K lines).
[AMDGPU] Pre-commit test for redundant s_wait_xcnt after implicit XCN… (#198772)
…T drain
Demonstrates that `SIInsertWaitcnts` currently emits `s_wait_xcnt 0x0`
after instructions that already drain XCNT in hardware on gfx1250:
`s_barrier_wait`, `s_barrier_signal`, `s_barrier_signal_isfirst`,
`s_sendmsg`, PC-changing terminators etc.
[NFC][PowerPC][AIX] add explicit code model to 64-bit AIX tests (#199159)
A later PR will propose updating the default code model, so this PR sets
an explicit code model on tests that don't have it. This is strictly
NFC, as we are just setting the existing code model.
[NFC][PowerPC][AIX] add explicit code model to 64-bit AIX tests
A later PR will propose updating the default code model, so
this PR sets an explicit code model on tests that don't have it.
[CoroSplit] Rename Suspend/End to AlwaysKill/NeverKill (NFC) (#199150)
Rename them so that we can generalize to more intrinsics, for example,
`llvm.coro.is_in_ramp` in #198226
Revert "DebugInfo: Shrink-to-fit some containers to reduce peak memory usage" (#199145)
Reverts llvm/llvm-project#198935
I think this broke llvm/test/tools/llvm-gsymutil/X86/elf-dwo.yaml .
[mlir] Specify isSigned when creating APInt for I16 attributes (#198687)
8- and 32-bit attribute constructors already do this. Debug builds
trigger an assertion unless isSigned is specified.
[CIR][NFC] Remove unused functions in MissingFeatures.h (#197631)
### Summary
This NFC change removes 33 entries from MissingFeatures.h that have no
callers in tree as of <b4f7c93e7d1325f1c1f00b47c10d2923e8259369>
- `switchOp`
- `opUnaryPromotionType`
- `supportVisibility`
- `atomicInitTailPadding`
- `atomicMapTargetSyncScope`
- `atomicScope`
- `bitfields`
- `builtinCallMathErrno`
- `cleanupWithPreservedValues`
- `constEmitterAggILE`
- `dataLayoutTypeIsSized`
- `dataLayoutTypeStoreSize`
[20 lines not shown]
Revert "[PowerPC] set libcall lowering for fp setcc ops on SPE boards" (#199140)
Reverts llvm/llvm-project#153238
Breaking premerge buildbots. (It looks like there's an alternative fix
open #199105, but it's still under review.)
[lit] Add --check to run only selected RUN lines from a test
`llvm-lit --check=LIST <test>` keeps only the listed RUN directives in
the test and discards the rest. LIST is a comma-separated mix
of 0-indexed integers and ranges (e.g. `--check=0,2,4-6`). The
selection is applied to the parseIntegratedTestScript output.
Run tests via
`llvm-lit --check=0 llvm/utils/lit/tests/Inputs/check-filter/sample.ll`,
`llvm-lit --check=1 llvm/utils/lit/tests/Inputs/check-filter/sample.ll`,
`llvm/utils/lit/lit.py llvm/utils/lit/tests/check-filter.py`.
IR: Move `simplify_type<(const) Use *>` to Use.h and fix a bug.
These overloads live in User.h because the type of
`User::(const_)op_iterator` is `(const) Use *`, but they do not
necessarily need to be used together with `User`, so let's move them to
Use.h with the canonical type used in the overload for clarity.
There's also a bug where `dyn_cast_or_null` with a `Use *` argument
crashes if the argument is null. Fix it by adding a null check to
these overloads. The null check is expected to be optimized out of the
implementation of `isa`/`cast`/`dyn_cast` because these functions will
unconditionally load from the result of `getSimplifiedValue`.
Reviewers: nikic, efriedma-quic
Pull Request: https://github.com/llvm/llvm-project/pull/198917