coins.backend.sched
Class Pipelining
java.lang.Object
coins.backend.sched.Pipelining
- public class Pipelining
- extends java.lang.Object
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
scheduler
Schedule scheduler
lir
LirFactory lir
flowGraph
FlowGraph flowGraph
basicBlk
BasicBlk basicBlk
dependGraph
DependGraph dependGraph
table
Pipelining.ResourceTable table
info
Pipelining.ScheduleInfo info
latencyArray
int[] latencyArray
Pipelining
public Pipelining(Schedule scheduler)
pipelining
boolean pipelining(FlowGraph fGraph,
BasicBlk bBlk,
DependGraph dg,
BiList instLINE)
hasLargeLatency
boolean hasLargeLatency(BasicBlk bBlk)
scheduleBranchAndDepend
void scheduleBranchAndDepend()
selectFromSchedulable
java.util.ArrayList selectFromSchedulable()
scheduleNodesOfSelectedList
void scheduleNodesOfSelectedList(java.util.ArrayList selectedList)
scheduleDependentNode
void scheduleDependentNode()
scheduleRemainingSchedulableNodes
void scheduleRemainingSchedulableNodes()
constructPipelinedBlocks
void constructPipelinedBlocks(BiList instLINE)
reconstructDg
DependGraph reconstructDg(BasicBlk blk)
getLirNodeFromDependent
LirNode getLirNodeFromDependent(DependNode node)
- covert DependNode to LirNode
- Parameters:
node - DependNode coverting to LirNode
- Returns:
- LirNode providing from DependNode
reverseOp
int reverseOp(int op)
getLoopBlks
BiList getLoopBlks(FlowGraph flowGraph)
- get inner-most-loop basic blocks
- Returns:
- list of nner-most-loop block
eliminatingUnnecessaryLoop
BiList eliminatingUnnecessaryLoop(BiList list)
- reduce loops unsatisfying conditions
- Parameters:
list - list of loop block
- Returns:
- list of blocks for pipelining
pipelining0
void pipelining0(FlowGraph flowGraph)
- pipelining inner-most-loops in flowGraph
(this method rewrites blocks and instructions)
- Parameters:
flowGraph - FlowGraph for pipelining