Simple VLIW packetizer that groups instructions using a DFA resource model.
Synopsis
Declared in <llvm/CodeGen/DFAPacketizer.h>
class VLIWPacketizerList;
Description
The packetizer works on machine basic blocks. For each instruction I in BB, the packetizer consults the DFA to see if machine resources are available to execute I. If so, the packetizer checks if I depends on any instruction in the current packet. If no dependency is found, I is added to current packet and the machine resource is marked as taken. If any dependency is found, a target API call is made to prune the dependence.
Member Functions
Name |
Description |
|
Constructors |
|
Destroy the packetizer and its owned scheduler and resource tracker. |
|
Assignment is deleted; VLIWPacketizerList is not copyable. |
Bundle instructions in |
|
Add a DAG mutation to be done before the packetization begins. |
|
|
Add |
Return true if |
|
|
End the current packet and reset the state of the packetizer. |
Return the DFA resource tracker used by this packetizer. |
|
|
Return true if |
|
Perform initialization before packetizing an instruction. |
|
Return true if it is legal to packetize |
|
Return true if it is legal to prune the dependence between |
|
Return true if |
|
Return true if the packetizer should try to add |
Protected Data Members
Name |
Description |
Optional alias‐analysis results; may be nullptr. |
|
Instructions currently assigned to the open packet. |
|
Machine function being packetized. |
|
Map from machine instructions to their schedule units. |
|
DFA resource tracker for the current packet. |
|
Target instruction info for the current subtarget. |
|
VLIW scheduler that builds the dependence graph for packetizing. |
Created with MrDocs