[llvm-dev] Help on implementation of a modulo scheduling algorithm

Tiago Trevisan Jost via llvm-dev llvm-dev at lists.llvm.org
Fri Oct 23 05:13:25 PDT 2015

Hi everyone,

I want to implement a modulo scheduling algorithm for a my VLIW backend and
I would like to have your opinion about the best approach to do so.

I saw an early post which Jakob Stoklund Olesen suggested to implement the
MS before LiveVariables/LiveIntervals/SlotIndex Passes, so I think I should
take his advice. However, I want to try to reuse most of the work inside
the framework to build the data dependence graph (DDG) for a Basic Block
(loop in this case), therefore I was thinking on using the ScheduleDAGInstr
Class to create that DAG with the SUnits for the instructions, because I
would be able to have information about depth and height of each
instruction on the BB. The problem is that the ScheduleDAGInstr class
requires the LiveIntervals information in order to build the DAG associated
with BB (when in PreRegAlloc)

   1. Is there any classes inside LLVM in order to create a Data Dependence
   Graph which does not require the use of LiveIntervals, and still work in
   the SSA form?
   2. Is addMachineSSAOptimization the best option to place the
   aforementioned MS pass?
   3. Any other advice that might help me with the implementation?

Thank you in advance,

Tiago Trevisan Jost
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151023/c3677811/attachment.html>

More information about the llvm-dev mailing list