[LLVMdev] Differences and Relationship between VLIW scheduler and VLIW packetizer?

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