coins.backend.sched
クラス Pipelining

java.lang.Object
  |
  +--coins.backend.sched.Pipelining

public class Pipelining
extends java.lang.Object


入れ子クラスの概要
(パッケージプライベート)  class Pipelining.PairIndex
           
(パッケージプライベート)  class Pipelining.PipeliningException
           
(パッケージプライベート)  class Pipelining.Reason
           
(パッケージプライベート)  class Pipelining.ResourceTable
           
(パッケージプライベート)  class Pipelining.ScheduledNode
           
(パッケージプライベート)  class Pipelining.ScheduleInfo
           
 
フィールドの概要
(パッケージプライベート)  BasicBlk basicBlk
           
(パッケージプライベート)  DependGraph dependGraph
           
(パッケージプライベート)  FlowGraph flowGraph
           
(パッケージプライベート)  Pipelining.ScheduleInfo info
           
(パッケージプライベート)  int[] latencyArray
           
(パッケージプライベート)  LirFactory lir
           
(パッケージプライベート)  Schedule scheduler
           
(パッケージプライベート)  Pipelining.ResourceTable table
           
 
コンストラクタの概要
Pipelining(Schedule scheduler)
           
 
メソッドの概要
(パッケージプライベート)  void constructPipelinedBlocks(BiList instLINE)
           
(パッケージプライベート)  BiList eliminatingUnnecessaryLoop(BiList list)
          reduce loops unsatisfying conditions
(パッケージプライベート)  LirNode getLirNodeFromDependent(DependNode node)
          covert DependNode to LirNode
(パッケージプライベート)  BiList getLoopBlks(FlowGraph flowGraph)
          get inner-most-loop basic blocks
(パッケージプライベート)  boolean hasLargeLatency(BasicBlk bBlk)
           
(パッケージプライベート)  boolean pipelining(FlowGraph fGraph, BasicBlk bBlk, DependGraph dg, BiList instLINE)
           
(パッケージプライベート)  void pipelining0(FlowGraph flowGraph)
          pipelining inner-most-loops in flowGraph (this method rewrites blocks and instructions)
(パッケージプライベート)  DependGraph reconstructDg(BasicBlk blk)
           
(パッケージプライベート)  int reverseOp(int op)
           
(パッケージプライベート)  void scheduleBranchAndDepend()
           
(パッケージプライベート)  void scheduleDependentNode()
           
(パッケージプライベート)  void scheduleNodesOfSelectedList(java.util.ArrayList selectedList)
           
(パッケージプライベート)  void scheduleRemainingSchedulableNodes()
           
(パッケージプライベート)  java.util.ArrayList selectFromSchedulable()
           
 
クラス 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

パラメータ:
node - DependNode coverting to LirNode
戻り値:
LirNode providing from DependNode

reverseOp

int reverseOp(int op)

getLoopBlks

BiList getLoopBlks(FlowGraph flowGraph)
get inner-most-loop basic blocks

戻り値:
list of nner-most-loop block

eliminatingUnnecessaryLoop

BiList eliminatingUnnecessaryLoop(BiList list)
reduce loops unsatisfying conditions

パラメータ:
list - list of loop block
戻り値:
list of blocks for pipelining

pipelining0

void pipelining0(FlowGraph flowGraph)
pipelining inner-most-loops in flowGraph (this method rewrites blocks and instructions)

パラメータ:
flowGraph - FlowGraph for pipelining