<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16414" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hello,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I am working with the SelectionDAG/ScheduleDAG
framework to implement a variation of the List scheduling Algorithm in
LLVM.</FONT></DIV>
<DIV><FONT face=Arial size=2>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?</FONT></DIV>
<DIV><FONT face=Arial size=2>A general overview will also be helpful.
</FONT></DIV>
<DIV><FONT face=Arial size=2>(The documentation does not provide much details
and the source is too complicated to understand at times).</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Thank you</FONT></DIV>
<DIV><FONT face=Arial size=2>-Kaushik</FONT></DIV>
<DIV> </DIV></BODY></HTML>