[LLVMdev] Differences and Relationship between VLIW scheduler and VLIW packetizer? (original) (raw)

Ivan Llopard ivanllopard at gmail.com
Mon Jul 23 01:09:37 PDT 2012


Hi Yang,

They have different implementations because they don't do the same thing and don't rely on the same structures. VLIW scheduling works on the SelectionDAG, right after the instruction selection, and it will schedule the DAG but it will not build any packet. The VLIW packetizer has been designed to work with machine instructions, using the ScheduleDAGInstr, and it does build packets (not scheduling). Both implementations have something in common, the DFAPacketizer which provides information about valid instruction packets. The former use it as a parameter for the computation of scheduling priorities and the latter use it to actually build the packets. I've read in this list that scheduling on the selectionDAG is likely to be replaced by the machine scheduling in the near future.

Ivan

On 23/07/2012 09:02, Triple Yang wrote:

Hi,

I notice that there exist some classes for VLIW packetizing and other classes for VLIW scheduling. Apparently these classes share something in common. Can someone explain why they should have separate implementation (i.e., in different function passes)? Best regards.


LLVM Developers mailing list LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120723/b928bfeb/attachment.html>



More information about the llvm-dev mailing list