coins.simd
Class LirUtil

java.lang.Object
  extended bycoins.simd.LirUtil

public class LirUtil
extends java.lang.Object

LIR utility class for SIMD


Constructor Summary
LirUtil()
           
 
Method Summary
static Symbol basesymbol(LirNode exp)
          Returns MEM expression's base symbol
static ImList btoim(BiList b)
          Transforms a BiList into ImList
static java.util.Vector btov(BiList b)
          Transforms a BiList into Vector
static int calcBoundary(int typ)
          Gets a boundary from a type
static long calcIncval(int type)
          Returns type's byte
static boolean contains(LirNode a, LirNode b)
          Checks if first LirNode contains second LirNode
static long dispval(LirNode exp)
          Returns memory expression's displacement
static java.util.Vector imlistToVector(ImList xs)
          Transforms an ImList into Vector
static boolean isShiftOp(LirNode e)
          Checks if a LirNode's operator is "shift"
static boolean isUsed(LirNode a, LirNode b)
          Checks if first LirNode is contained in second LirNode
static LirNode operator(LirFactory factory, int c, int t, LirNode[] srcs, ImList opt)
          Makes a LirNode
static LirNode[] pickupDefReferent(LirNode e)
           
static void pickupDefReferent(LirNode e, java.util.Vector v)
           
static LirNode[] pickupReferent(LirNode e)
           
static void pickupReferent(LirNode e, java.util.Vector v)
           
static LirNode[] pickupUseReferent(LirNode e)
           
static java.lang.String typeKind(int typ)
          Changes a type to its kind(I or F or etc.)
static int typeNum(int typ)
          Changes a type to bits
static BiList vtob(java.util.Vector v)
          Transforms a Vecgtor into a BiList
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LirUtil

public LirUtil()
Method Detail

typeNum

public static int typeNum(int typ)
Changes a type to bits

Parameters:
typ - int
Returns:
int

typeKind

public static java.lang.String typeKind(int typ)
Changes a type to its kind(I or F or etc.)

Returns:
String

basesymbol

public static Symbol basesymbol(LirNode exp)
Returns MEM expression's base symbol

Parameters:
exp - LirNode
Returns:
Symbol

dispval

public static long dispval(LirNode exp)
Returns memory expression's displacement

Parameters:
exp - LirNode
Returns:
long

calcIncval

public static long calcIncval(int type)
Returns type's byte

Parameters:
type - int
Returns:
long

imlistToVector

public static java.util.Vector imlistToVector(ImList xs)
Transforms an ImList into Vector

Parameters:
xs - ImList
Returns:
Vector

calcBoundary

public static int calcBoundary(int typ)
Gets a boundary from a type

Parameters:
typ - int
Returns:
int

btov

public static java.util.Vector btov(BiList b)
Transforms a BiList into Vector

Parameters:
b - BiList
Returns:
Vector

vtob

public static BiList vtob(java.util.Vector v)
Transforms a Vecgtor into a BiList

Parameters:
v - Vector
Returns:
BiList

btoim

public static ImList btoim(BiList b)
Transforms a BiList into ImList

Parameters:
b - BiList
Returns:
ImList

contains

public static boolean contains(LirNode a,
                               LirNode b)
Checks if first LirNode contains second LirNode

Parameters:
a - LirNode
b - LirNode
Returns:
boolean

isUsed

public static boolean isUsed(LirNode a,
                             LirNode b)
Checks if first LirNode is contained in second LirNode

Parameters:
a - LirNode
b - LirNode
Returns:
boolean

pickupDefReferent

public static LirNode[] pickupDefReferent(LirNode e)
                                   throws SimdOptException
Throws:
SimdOptException

pickupDefReferent

public static void pickupDefReferent(LirNode e,
                                     java.util.Vector v)
                              throws SimdOptException
Throws:
SimdOptException

pickupUseReferent

public static LirNode[] pickupUseReferent(LirNode e)
                                   throws SimdOptException
Throws:
SimdOptException

pickupReferent

public static LirNode[] pickupReferent(LirNode e)
                                throws SimdOptException
Throws:
SimdOptException

pickupReferent

public static void pickupReferent(LirNode e,
                                  java.util.Vector v)
                           throws SimdOptException
Throws:
SimdOptException

operator

public static LirNode operator(LirFactory factory,
                               int c,
                               int t,
                               LirNode[] srcs,
                               ImList opt)
Makes a LirNode

Parameters:
factory - LirFactory
c - int
t - int
srcs - LirNode[]
opt - ImList
Returns:
LirNode

isShiftOp

public static boolean isShiftOp(LirNode e)
Checks if a LirNode's operator is "shift"

Parameters:
e - LirNode
Returns:
boolean