coins.backend.sched
クラス DependNode

java.lang.Object
  |
  +--coins.backend.sched.DependNode
すべての実装インタフェース:
java.lang.Comparable

public class DependNode
extends java.lang.Object
implements java.lang.Comparable

LirNode with several information for dependency and scheduling.


フィールドの概要
(パッケージプライベート)  BiList beDepended
           
(パッケージプライベート) static int counter
           
(パッケージプライベート)  boolean dependMark
           
(パッケージプライベート)  BiList dependOn
           
(パッケージプライベート)  BiList falseDependOn
           
(パッケージプライベート)  boolean hasDelaySlot
          Flag indicates that this node has delayed-operation slot.
(パッケージプライベート)  BiList input
           
(パッケージプライベート)  LirNode instr
           
(パッケージプライベート) static int LAST_TIME
           
(パッケージプライベート)  int latency
           
(パッケージプライベート)  LirNodeInf lirInf
           
(パッケージプライベート)  int machineCodeSize
           
(パッケージプライベート)  int number
           
(パッケージプライベート)  BiList output
           
(パッケージプライベート)  int pathLength
           
(パッケージプライベート)  int scheduleTime
           
(パッケージプライベート)  BiList trueDependOn
           
(パッケージプライベート)  boolean visited
           
 
コンストラクタの概要
DependNode(LirNode ln, Schedule schedule)
           
 
メソッドの概要
 int compareTo(java.lang.Object dn)
           
(パッケージプライベート)  boolean contains(BiList bl, LirNode ln)
          return true if bl contains ln.
 boolean deleteDepend(DependNode dn)
          Delete dependent information from true/false-DependOn and set schedule time.
(パッケージプライベート)  BiList dependOn(BiList list)
          Return the list of DependNodes on which this node depends directly or indirectly
(パッケージプライベート)  boolean dependOn(DependNode dn)
          Return true if this DependNode depends on dn, and add this to dn.beDepended.
(パッケージプライベート)  LirNode getCalleeReg()
          Return callee register.
 boolean hasDelaySlot()
           
 boolean isCall()
           
 void letHaveDelaySlot()
           
(パッケージプライベート)  void mark()
          Mark the DependNodes on which this node depends directly or indirectly
(パッケージプライベート)  int pathLength()
          Returns the maximum path length from this node.
(パッケージプライベート)  int scheduleTimeDcr()
          return scheduleTime and post-devrement it
(パッケージプライベート)  void setLatency(int cost)
           
(パッケージプライベート)  void setMachineCodeSize(int size)
           
(パッケージプライベート)  DependNode setScheduleTime(int n)
           
 java.lang.String toString()
           
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

LAST_TIME

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

counter

static int counter

number

int number

trueDependOn

BiList trueDependOn

falseDependOn

BiList falseDependOn

dependOn

BiList dependOn

beDepended

BiList beDepended

instr

LirNode instr

lirInf

LirNodeInf lirInf

input

BiList input

output

BiList output

latency

int latency

scheduleTime

int scheduleTime

visited

boolean visited

dependMark

boolean dependMark

pathLength

int pathLength

machineCodeSize

int machineCodeSize

hasDelaySlot

boolean hasDelaySlot
Flag indicates that this node has delayed-operation slot.

コンストラクタの詳細

DependNode

public DependNode(LirNode ln,
                  Schedule schedule)
メソッドの詳細

compareTo

public int compareTo(java.lang.Object dn)
定義:
インタフェース java.lang.Comparable 内の compareTo

setMachineCodeSize

void setMachineCodeSize(int size)

setLatency

void setLatency(int cost)

letHaveDelaySlot

public void letHaveDelaySlot()

hasDelaySlot

public boolean hasDelaySlot()

setScheduleTime

DependNode setScheduleTime(int n)

scheduleTimeDcr

int scheduleTimeDcr()
return scheduleTime and post-devrement it


dependOn

boolean dependOn(DependNode dn)
Return true if this DependNode depends on dn, and add this to dn.beDepended. If it is true dependent add dn to trueDependOn. If it is false dependent add dn to falseDependOn.

パラメータ:
dn -
戻り値:
trueDepend || falseDepend

dependOn

BiList dependOn(BiList list)
Return the list of DependNodes on which this node depends directly or indirectly


mark

void mark()
Mark the DependNodes on which this node depends directly or indirectly


deleteDepend

public boolean deleteDepend(DependNode dn)
Delete dependent information from true/false-DependOn and set schedule time.

パラメータ:
dn -
戻り値:
true if this becomes independent

isCall

public boolean isCall()
戻り値:
true if this is a call instruction

getCalleeReg

LirNode getCalleeReg()
Return callee register.


contains

boolean contains(BiList bl,
                 LirNode ln)
return true if bl contains ln.

パラメータ:
bl - list of LirNode
ln - LirNode (register node or MEM)
戻り値:
bl contains ln

pathLength

int pathLength()
Returns the maximum path length from this node. A path is a sequence of dependent nodes. A path length is the sum of the latencys of nodes of the path.

戻り値:
this.pathLength

toString

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