[LLVMdev] Instruction Scheduling in LLVM

Kaushik Kumar kaushik at rice.edu
Tue May 1 18:19:55 PDT 2007


I am working with the SelectionDAG/ScheduleDAG framework to implement a variation of the List scheduling Algorithm in LLVM.
I was trying to understand the existing List scheduler implementation in LLVM. I have a doubt about the SUnits structure which contain flagged nodes together. The instructions within a Sunit are scheduled as a single unit. My understanding is that the nodes in the original DAG fall into exactly one of the Sunits. So, I was wondering if the instructions (SDNodes) within a SUnit need to be scheduled seperately? For example, it may be necessary to insert a No-op between the instructions (within one SUnit) in certain cases. Or is the nodes which are flagged together (apart from the main node) are psuedo ops which don't need to be actually emitted?
A general overview will also be helpful. 
(The documentation does not provide much details and the source is too complicated to understand at times).

Thank you
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20070501/94d2c626/attachment.html>

More information about the llvm-dev mailing list