coins.backend.sched
クラス DependGraph

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

public class DependGraph
extends java.lang.Object

A DependGraph is made from a basic block. It has two lists of DependNodes, schedulabale and unSchedulable.


フィールドの概要
(パッケージプライベート)  Function func
           
(パッケージプライベート) static int LAST_TIME
           
(パッケージプライベート)  DependNode lastBranch
           
(パッケージプライベート)  Root root
           
(パッケージプライベート)  BiList schedulable
           
(パッケージプライベート)  BiList unSchedulable
           
 
コンストラクタの概要
DependGraph(Function f)
           
 
メソッドの概要
 void add(DependNode dn)
          Add a DependNode dn to the schedulable list if it is independent, otherwise add to the unSchedulable list.
(パッケージプライベート)  void findSchedulable(DependNode dn)
          Find newly schedulable DependNode after updating the dependent information by scheduled dn.
(パッケージプライベート)  boolean foundDepend(DependNode dn)
          If the schedulable list or the unShedulable list contains a DependNode on which the DependNode dn depends, return true.
 void hasBranch(DependNode dn)
          Set dn to lastBranch.
 void newSegment()
           
(パッケージプライベート)  DependNode schedule()
          Select next DependNode from schedulable list.
(パッケージプライベート)  BiList scheduleInst()
          Schedule all instructions in this DependGraph.
(パッケージプライベート)  BiList scheduleLir()
          Schedule all LirNodes in this DependGraph.
 java.lang.String toString()
           
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

LAST_TIME

static final int LAST_TIME
関連項目:
定数フィールド値

func

Function func

root

Root root

schedulable

BiList schedulable

unSchedulable

BiList unSchedulable

lastBranch

DependNode lastBranch
コンストラクタの詳細

DependGraph

public DependGraph(Function f)
メソッドの詳細

newSegment

public void newSegment()

add

public void add(DependNode dn)
Add a DependNode dn to the schedulable list if it is independent, otherwise add to the unSchedulable list.

パラメータ:
dn -

foundDepend

boolean foundDepend(DependNode dn)
If the schedulable list or the unShedulable list contains a DependNode on which the DependNode dn depends, return true. Otherwose, return false. Dependent information is set during the search.

パラメータ:
dn -

hasBranch

public void hasBranch(DependNode dn)
Set dn to lastBranch. This block has dn as the last branch instruction.

パラメータ:
dn -

scheduleInst

BiList scheduleInst()
Schedule all instructions in this DependGraph. If a Call instruction is followed by a nop, the nop is replaced by the previous instruction. If a instruction has no dependant and the last branch instruction is followed by a nop, the nop is replaced by the instruction.

戻り値:
scheduled asm list

scheduleLir

BiList scheduleLir()
Schedule all LirNodes in this DependGraph.

戻り値:
scheduled LirNode list

schedule

DependNode schedule()
Select next DependNode from schedulable list.

戻り値:
scheduled DependNode

findSchedulable

void findSchedulable(DependNode dn)
Find newly schedulable DependNode after updating the dependent information by scheduled dn.

パラメータ:
dn -

toString

public java.lang.String toString()
オーバーライド:
クラス java.lang.Object 内の toString