[PATCH] D55106: A new software pipliner pass based on non-SSA form

Jan-Willem Roorda via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 13 11:29:07 PST 2018


jwroorda added inline comments.


================
Comment at: lib/CodeGen/MachineModuloSched.cpp:204
+/// BackEdges.
+bool ModuloSchedulerDAG::addLoopCarriedDependences() {
+  // There is nothing to do for this BB.
----------------
Can you please explain the difference between this function and  SwingSchedulerDAG::addLoopCarriedDependences?


================
Comment at: lib/CodeGen/MachineModuloSched.cpp:242
+/// instruction has a memory operand.
+static void getUnderlyingObjects(MachineInstr *MI,
+                                 SmallVectorImpl<Value *> &Objs,
----------------
the code seems very similar to the function with the same name in MachinePipeliner.cpp. Is is possible to share code between the two implementations instead of duplicating it?


================
Comment at: lib/CodeGen/MachineModuloSched.cpp:277
+/// during each iteration. Set Delta to the amount of the change.
+bool ModuloSchedulerDAG::computeDelta(MachineInstr &MI, unsigned &Delta) {
+  const TargetInstrInfo *TII = BB->getParent()->getSubtarget().getInstrInfo();
----------------
This function seems a verbatim copy of SwingSchedulerDAG::computeDelta(MachineInstr &MI, unsigned &Delta). Please, instead of copying, consider refactoring such that the code can be shared between the two implementations.


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D55106/new/

https://reviews.llvm.org/D55106





More information about the llvm-commits mailing list