<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">Some isel nodes produce MVT::Flag value because it has to scheduled right before its use (one use per flag value). An example of this is a compare and a conditional branch (only because we do not model condition code as a register right now).<DIV><BR class="khtml-block-placeholder"></DIV><DIV>The scheduler is honoring the request by treating a chain of flagged nodes as a single scheduling unit.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Evan</DIV><DIV><BR><DIV><DIV>On May 1, 2007, at 6:19 PM, Kaushik Kumar wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"> <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><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">_______________________________________________</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">LLVM Developers mailing list</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</A> <SPAN class="Apple-converted-space">        </SPAN><A href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</A></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</A></DIV> </BLOCKQUOTE></DIV><BR></DIV></BODY></HTML>