[llvm] [RISCV] Support postRA vsetvl insertion pass (PR #70549)
Luke Lau via llvm-commits
llvm-commits at lists.llvm.org
Thu May 2 00:31:22 PDT 2024
================
@@ -198,13 +231,15 @@ static bool hasUndefinedMergeOp(const MachineInstr &MI,
if (UseMO.getReg().isPhysical())
return false;
- if (MachineInstr *UseMI = MRI.getVRegDef(UseMO.getReg())) {
+ if (const MachineInstr *UseMI =
----------------
lukel97 wrote:
Sorry, this was written when we still had the pre-RA code path. Now that the option is gone we can replace this entire function with
```c++
/// Return true if the inactive elements in the result are entirely undefined.
/// Note that this is different from "agnostic" as defined by the vector
/// specification. Agnostic requires each lane to either be undisturbed, or
/// take the value -1; no other value is allowed.
static bool hasUndefinedMergeOp(const MachineInstr &MI,
const MachineRegisterInfo &MRI,
const LiveIntervals *LIS) {
unsigned UseOpIdx;
if (!MI.isRegTiedToUseOperand(0, &UseOpIdx))
// If there is no passthrough operand, then the pass through
// lanes are undefined.
return true;
return MI.getOperand(UseOpIdx).isUndef();
}
```
https://github.com/llvm/llvm-project/pull/70549
More information about the llvm-commits
mailing list