[RISCV] Mark the Xqci Qualcomm uC Vendor Extension as non-experimental (#173331)
Version 0.13 of the Xqci Qualcomm uC Vendor Extension has been marked as
frozen. We've had assembler support for this since LLVM20 and code
generation support since LLVM21. I think we have enough coverage in the
code base to mark the extension as non-experimental.
[lldb] Add Python 3.8 compatibility for lldbtest.py (#173392)
follow up from 9892870687e0af00e798474aa5cecfd4647071e1 as we recently
added type hints to this file
InstCombine: Handle exp/exp2/exp10 in SimplifyDemandedFPClass
I'm working on optimizing out the tail sequences in the
implementations of the 4 different flavors of pow. These
include chains of selects on the various edge cases.
Related to #64870
ValueTracking: Add baseline tests for computeKnownFPClass exp
This is already handled, but misses opportunities. Test cases
where the input is known positive or negative.
InstCombine: Handle canonicalize in SimplifyDemandedFPClass
Doesn't try to handle PositiveZero flushing mode, but I
don't believe it is incorrect with it.
[ConstantFolding] Add edge cases for llvm.log{,2,10} (#173304)
Addresses https://github.com/llvm/llvm-project/issues/173267.
- folds log(-x) -> NaN
- folds log(0) -> -inf
- also folds log(1) -> 0.0 without host libm
> note: log(inf) is also doable but it causes some other tests to fail
so I avoided it for now
[mlir][acc] Add ACCSpecializeForDevice and ACCSpecializeForHost passes (#173407)
Add two new transformation passes for specializing OpenACC IR for
different execution contexts:
ACCSpecializeForDevice:
- Strips OpenACC constructs that are invalid in device code
- Replaces data entry ops with their var operands
- Unwraps regions from compute/data constructs
- Erases runtime operations (init, shutdown, wait, etc.)
This pass is applicable in two contexts:
1. Functions marked with `acc.specialized_routine` attribute, where the
entire function body is device code
2. Non-specialized functions, where patterns are applied only to `acc`
operations nested inside compute constructs (parallel, serial, kernels),
not to the constructs themselves
ACCSpecializeForHost:
[23 lines not shown]
[VPlan] Only use isAddressSCEVForCost in getAddressAccessSCEV (NFC)
Follow-up to https://github.com/llvm/llvm-project/pull/171204 to only
rely on isAddressSCEVForCost in isAddressSCEVForCost, completely
aligning with the legacy cost model.