[llvm] [ModuloSchedule] Implement modulo variable expansion for pipelining (PR #65609)

James Nagurne via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 26 11:39:06 PDT 2024


================
@@ -6823,11 +6823,20 @@ class ARMPipelinerLoopInfo : public TargetInstrInfo::PipelinerLoopInfo {
       llvm_unreachable("Unknown EndLoop");
   }
 
+  void createRemainingIterationsGreaterCondition(
+      int TC, MachineBasicBlock &MBB, SmallVectorImpl<MachineOperand> &Cond,
+      DenseMap<MachineInstr *, MachineInstr *> LastStage0Insts) override {
+    llvm_unreachable(
----------------
DragonDisciple wrote:

You could save some target code by making this unreachable a default implementation in PipelineLoopInfo, such that any target which enables MVE would by default run into the error case if they did not define it themselves.

This is similar to what's done in, for example, optimizeSelect (which is guarded by analyzeSelect), and replaceBranchWithTailCall (guarded by canMakeTailCallConditional)

https://github.com/llvm/llvm-project/pull/65609


More information about the llvm-commits mailing list