diff --git a/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp b/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp index c40b9031543fe2..f399a0b6d50b3a 100644 --- a/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp +++ b/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp @@ -45,10 +45,6 @@ static cl::opt DisableInsertVSETVLPHIOpt( "riscv-disable-insert-vsetvl-phi-opt", cl::init(false), cl::Hidden, cl::desc("Disable looking through phis when inserting vsetvlis.")); -static cl::opt UseStrictAsserts( - "riscv-insert-vsetvl-strict-asserts", cl::init(true), cl::Hidden, - cl::desc("Enable strict assertion checking for the dataflow algorithm")); - namespace { static unsigned getVLOpNum(const MachineInstr &MI) { @@ -1430,32 +1426,14 @@ void RISCVInsertVSETVLI::emitVSETVLIs(MachineBasicBlock &MBB) { transferAfter(CurInfo, MI); } - // If we reach the end of the block and our current info doesn't match the - // expected info, insert a vsetvli to correct. - if (!UseStrictAsserts) { - const VSETVLIInfo &ExitInfo = BlockInfo[MBB.getNumber()].Exit; - if (CurInfo.isValid() && ExitInfo.isValid() && !ExitInfo.isUnknown() && - CurInfo != ExitInfo) { - // Note there's an implicit assumption here that terminators never use - // or modify VL or VTYPE. Also, fallthrough will return end(). - auto InsertPt = MBB.getFirstInstrTerminator(); - insertVSETVLI(MBB, InsertPt, MBB.findDebugLoc(InsertPt), ExitInfo, - CurInfo); - CurInfo = ExitInfo; - } - } - - if (UseStrictAsserts && CurInfo.isValid()) { - const auto &Info = BlockInfo[MBB.getNumber()]; - if (CurInfo != Info.Exit) { - LLVM_DEBUG(dbgs() << "in block " << printMBBReference(MBB) << "\n"); - LLVM_DEBUG(dbgs() << " begin state: " << Info.Pred << "\n"); - LLVM_DEBUG(dbgs() << " expected end state: " << Info.Exit << "\n"); - LLVM_DEBUG(dbgs() << " actual end state: " << CurInfo << "\n"); - } - assert(CurInfo == Info.Exit && - "InsertVSETVLI dataflow invariant violated"); + const auto &Info = BlockInfo[MBB.getNumber()]; + if (CurInfo != Info.Exit) { + LLVM_DEBUG(dbgs() << "in block " << printMBBReference(MBB) << "\n"); + LLVM_DEBUG(dbgs() << " begin state: " << Info.Pred << "\n"); + LLVM_DEBUG(dbgs() << " expected end state: " << Info.Exit << "\n"); + LLVM_DEBUG(dbgs() << " actual end state: " << CurInfo << "\n"); } + assert(CurInfo == Info.Exit && "InsertVSETVLI dataflow invariant violated"); } /// Perform simple partial redundancy elimination of the VSETVLI instructions