Skip to content

Commit a83299d

Browse files
committed
Add -riscv-insert-vsetvli-whole-vector-register-move-valid-vtype flag, enabled by default
1 parent 80256ff commit a83299d

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ using namespace llvm;
4040
STATISTIC(NumInsertedVSETVL, "Number of VSETVL inst inserted");
4141
STATISTIC(NumCoalescedVSETVL, "Number of VSETVL inst coalesced");
4242

43+
static cl::opt<bool> EnsureWholeVectorRegisterMoveValidVTYPE(
44+
DEBUG_TYPE "-whole-vector-register-move-valid-vtype", cl::Hidden,
45+
cl::desc("Insert vsetvlis before vmvNr.vs to ensure vtype is valid and "
46+
"vill is cleared"),
47+
cl::init(true));
48+
4349
namespace {
4450

4551
/// Given a virtual register \p Reg, return the corresponding VNInfo for it.
@@ -1468,7 +1474,8 @@ void RISCVInsertVSETVLI::emitVSETVLIs(MachineBasicBlock &MBB) {
14681474
PrefixTransparent = false;
14691475
}
14701476

1471-
if (isVectorCopy(ST->getRegisterInfo(), MI)) {
1477+
if (EnsureWholeVectorRegisterMoveValidVTYPE &&
1478+
isVectorCopy(ST->getRegisterInfo(), MI)) {
14721479
if (!PrevInfo.isCompatible(DemandedFields::all(), CurInfo, LIS)) {
14731480
insertVSETVLI(MBB, MI, MI.getDebugLoc(), CurInfo, PrevInfo);
14741481
PrefixTransparent = false;

0 commit comments

Comments
 (0)