coins.backend
クラス MachineParams

java.lang.Object
  |
  +--coins.backend.MachineParams
直系の既知のサブクラス:
MachineParams_alpha, MachineParams_arm, MachineParams_mb, MachineParams_mips, MachineParams_ppc, MachineParams_sample, MachineParams_sh4, MachineParams_sparc, MachineParams_thumb, MachineParams_x86, MachineParams_x86_64, MachineParams_x86simd

public abstract class MachineParams
extends java.lang.Object

Object holding Machine Parameters.


コンストラクタの概要
MachineParams()
           
 
メソッドの概要
 void addRequired(SymTab symtbl)
          Register external symbols of built-in functions and static objects.
 int andSet(int setx, int sety)
          Return an intersection of two register sets.
 boolean covered(int reg, NumberSet set)
          Return true if register reg is covered by other registers in register set set.
abstract  int[] getCompAndTbl()
           
abstract  int[] getCompWeightTbl()
           
abstract  short[][] getOverlapReg()
           
 int getRegSet(java.lang.String name)
          Return register set number whose name is name.
abstract  short[][] getRegsetMap()
           
abstract  java.lang.String[] getRegsetName()
           
abstract  short[] getRegsetNAvail()
           
abstract  int[] getRegsetNumber()
           
 int getRegSetType(java.lang.String name)
          Return type of register set.
abstract  int[] getRegsetTypeTbl()
           
abstract  short[][] getSubReg()
           
abstract  short[][] getSuperReg()
           
abstract  java.lang.String[] getSymName()
          Return array of register's names.
abstract  int[] getSymRegNumber()
           
abstract  int[] getSymType()
           
 int igWeight(int setx, int sety)
          Return interference graph weight = number of edges coming from x to y.
 void init(Module mod, SymTab symTab)
           
 boolean isOverlapped(LirNode node1, LirNode node2)
          Return true if register node1 and node2 overlap
 int nAvail(int set)
          Return number of registers available in the register set.
abstract  int nRegisters()
          Return number of physical registers.
abstract  int nRegsets()
          Return number of register sets.
 short[] overlapRegs(int reg)
          Return vector of registers that overlaps with reg.
 int registerIndex(LirNode node)
          Convert LirNode to physical register number.
 int registerIndex(Symbol sym)
          Convert symbol to register number.
 LirNode registerLir(int reg)
          Convert register number to LirNode.
 Symbol registerSymbol(int reg)
          Convert register number to symbol.
 java.lang.String registerToString(int reg)
          Convert register number to visible form.
 BitMapSet regSetMap(int set)
          Return bitmap of register set.
 int regSetType(int set)
          Return type of register set.
 void removeRegister(BitMapSet set, int reg)
          Remove registers overlapping with reg from register set set.
 short[] subRegs(int reg)
          Return array of subregisters of register reg.
abstract  int typeAddress()
          Return address type.
abstract  int typeBool()
          Return boolean type.
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

MachineParams

public MachineParams()
メソッドの詳細

addRequired

public void addRequired(SymTab symtbl)
Register external symbols of built-in functions and static objects.


nRegisters

public abstract int nRegisters()
Return number of physical registers.


nRegsets

public abstract int nRegsets()
Return number of register sets.


typeAddress

public abstract int typeAddress()
Return address type.


typeBool

public abstract int typeBool()
Return boolean type.


getSymName

public abstract java.lang.String[] getSymName()
Return array of register's names.


getSymType

public abstract int[] getSymType()

getSymRegNumber

public abstract int[] getSymRegNumber()

getOverlapReg

public abstract short[][] getOverlapReg()

getSuperReg

public abstract short[][] getSuperReg()

getSubReg

public abstract short[][] getSubReg()

getRegsetName

public abstract java.lang.String[] getRegsetName()

getRegsetNumber

public abstract int[] getRegsetNumber()

getRegsetMap

public abstract short[][] getRegsetMap()

getRegsetNAvail

public abstract short[] getRegsetNAvail()

getCompAndTbl

public abstract int[] getCompAndTbl()

getCompWeightTbl

public abstract int[] getCompWeightTbl()

getRegsetTypeTbl

public abstract int[] getRegsetTypeTbl()

init

public void init(Module mod,
                 SymTab symTab)

registerIndex

public int registerIndex(LirNode node)
Convert LirNode to physical register number. node must be the form like (REG) or (SUBREG (REG)).


registerIndex

public int registerIndex(Symbol sym)
Convert symbol to register number.


registerSymbol

public Symbol registerSymbol(int reg)
Convert register number to symbol.


registerLir

public LirNode registerLir(int reg)
Convert register number to LirNode.


registerToString

public java.lang.String registerToString(int reg)
Convert register number to visible form.


getRegSet

public int getRegSet(java.lang.String name)
Return register set number whose name is name.


regSetType

public int regSetType(int set)
Return type of register set.


getRegSetType

public int getRegSetType(java.lang.String name)
Return type of register set.


regSetMap

public BitMapSet regSetMap(int set)
Return bitmap of register set.


nAvail

public int nAvail(int set)
Return number of registers available in the register set.


andSet

public int andSet(int setx,
                  int sety)
Return an intersection of two register sets.


igWeight

public int igWeight(int setx,
                    int sety)
Return interference graph weight = number of edges coming from x to y. Return 0 if two sets do not interfere.


removeRegister

public void removeRegister(BitMapSet set,
                           int reg)
Remove registers overlapping with reg from register set set.


overlapRegs

public short[] overlapRegs(int reg)
Return vector of registers that overlaps with reg.


covered

public boolean covered(int reg,
                       NumberSet set)
Return true if register reg is covered by other registers in register set set.


isOverlapped

public boolean isOverlapped(LirNode node1,
                            LirNode node2)
Return true if register node1 and node2 overlap


subRegs

public short[] subRegs(int reg)
Return array of subregisters of register reg.