|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcoins.ffront.IntrinsicUtility
Intrinsic Utility
| Nested Class Summary | |
(package private) class |
IntrinsicUtility.NameAndType
Intrinsic function's name and type. |
| Field Summary | |
(package private) static int |
ABS
|
(package private) static int |
COMPLEX_LIB
|
(package private) static int |
CONJUGATE
|
(package private) static int |
CONV_TO_CHAR
|
(package private) static int |
CONV_TO_COMPLEX
|
(package private) static int |
CONV_TO_DOUBLE
|
(package private) static int |
CONV_TO_INTEGER
|
(package private) static int |
CONV_TO_REAL
|
(package private) static int |
DCONJUGATE
|
(package private) static int |
DIM
|
(package private) static int |
DIMAGINARY_PART
|
(package private) static int |
DPROD
|
(package private) DeclManager |
fDeclMgr
|
(package private) ExecStmtManager |
fESMgr
|
(package private) FirToHir |
fHir
|
(package private) HirUtility |
fHirUtil
|
(package private) TypeUtility |
fTypeUtil
|
(package private) HIR |
hir
|
(package private) static int |
IMAGINARY_PART
|
(package private) static int |
INDEX
|
(package private) static IntrinsicUtility.NameAndType[] |
intrinsicTable
|
(package private) static int |
LENGTH
|
(package private) static int |
MATH_LIB
|
(package private) static int |
MATH_LIB2
|
(package private) static int |
MAX
|
(package private) static int |
MAX_I
|
(package private) static int |
MAX_R
|
(package private) static int |
MIN
|
(package private) static int |
MIN_I
|
(package private) static int |
MIN_R
|
(package private) static int |
MOD
|
(package private) static int |
NEAREST
|
(package private) static int |
NEAREST_INT
|
(package private) static int |
NOT_YET
|
(package private) static int |
POWER
|
(package private) static int |
SIGN
|
(package private) Sym |
sym
|
(package private) static int |
TRUNCATE
|
(package private) static int |
TYPE_CHARACTER
|
(package private) static int |
TYPE_COMPLEX
|
(package private) static int |
TYPE_DCOMPLEX
|
(package private) static int |
TYPE_DOUBLE
|
(package private) static int |
TYPE_FC
|
(package private) static int |
TYPE_FI
|
(package private) static int |
TYPE_FLOAT
|
(package private) static int |
TYPE_INT
|
(package private) static int |
TYPE_NO
|
(package private) static int |
TYPE_NUMBER
|
(package private) static int |
TYPE_ONE_OR_TWO
|
(package private) static int |
TYPE_OVER_TWO
|
(package private) static int |
TYPE_REAL
|
| Constructor Summary | |
IntrinsicUtility(FirToHir fth)
|
|
| Method Summary | |
(package private) boolean |
argsTypeCheck(IntrinsicUtility.NameAndType nat,
IrList argsExps)
|
(package private) Exp |
complexPowExp(Exp e1,
Exp e2)
|
(package private) Exp |
convertTo(Exp exp,
Type type)
|
(package private) void |
dp(java.lang.String msg)
|
(package private) Exp |
funcMAX(IrList args)
max(x,y,...) => temp = x; if(temp < y){ temp = y; } |
(package private) Exp |
funcMIN(IrList args)
min(x,y,...) => temp = x; if(temp > y){ temp = y; } |
(package private) Exp |
funcNEAREST(Exp arg)
int(a+.5) if a>=0 int(a-.5) if a<0 |
(package private) void |
init_intrinsicTable()
|
(package private) Exp |
intPowExp(Exp e1,
Exp e2)
x ** y (x,y: Integer) if(y <= 4){ (x * ...) else{ ipow(x,y) } |
(package private) boolean |
isIntrinsicCall(java.lang.String id)
|
(package private) Stmt |
makeAssignStmt(Exp e1,
Exp e2)
|
(package private) void |
makeComplexCall(java.lang.String name,
Exp src,
Exp dst)
|
(package private) Exp |
makeIntrinsicCall(java.lang.String ident,
FirList args)
Make Exp node for intrinsic function call. |
(package private) Exp |
makeIntrinsicCallCont(Exp expArg,
Exp expArg2,
IrList argExps,
int index,
Node hint,
Node hint2)
|
(package private) Exp |
makeLibCall(java.lang.String name,
Exp pExp,
int type)
Make Exp node for library-function call with one parameter. |
(package private) Exp |
makeLibCall2(java.lang.String name,
Exp pExp1,
Exp pExp2,
int type)
Make Exp node for library-function call with two parameters. |
(package private) int |
searchFuncName(java.lang.String name)
Search a function name in intrinsicTable. |
(package private) Exp |
tempVarNode(java.lang.String str,
Type type)
|
(package private) boolean |
typeCheck(Type type,
int expected_type)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
static IntrinsicUtility.NameAndType[] intrinsicTable
FirToHir fHir
HIR hir
Sym sym
HirUtility fHirUtil
TypeUtility fTypeUtil
DeclManager fDeclMgr
ExecStmtManager fESMgr
static final int NOT_YET
static final int MATH_LIB
static final int MATH_LIB2
static final int CONV_TO_REAL
static final int CONV_TO_INTEGER
static final int CONV_TO_DOUBLE
static final int CONV_TO_COMPLEX
static final int CONV_TO_CHAR
static final int ABS
static final int POWER
static final int TRUNCATE
static final int NEAREST
static final int NEAREST_INT
static final int LENGTH
static final int IMAGINARY_PART
static final int CONJUGATE
static final int DIMAGINARY_PART
static final int DCONJUGATE
static final int COMPLEX_LIB
static final int SIGN
static final int DIM
static final int DPROD
static final int MOD
static final int MAX
static final int MAX_R
static final int MAX_I
static final int MIN
static final int MIN_R
static final int MIN_I
static final int INDEX
static final int TYPE_NO
static final int TYPE_REAL
static final int TYPE_DOUBLE
static final int TYPE_INT
static final int TYPE_COMPLEX
static final int TYPE_DCOMPLEX
static final int TYPE_CHARACTER
static final int TYPE_FLOAT
static final int TYPE_NUMBER
static final int TYPE_FC
static final int TYPE_FI
static final int TYPE_ONE_OR_TWO
static final int TYPE_OVER_TWO
| Constructor Detail |
public IntrinsicUtility(FirToHir fth)
| Method Detail |
int searchFuncName(java.lang.String name)
name -
boolean isIntrinsicCall(java.lang.String id)
Exp makeIntrinsicCall(java.lang.String ident,
FirList args)
Exp makeIntrinsicCallCont(Exp expArg,
Exp expArg2,
IrList argExps,
int index,
Node hint,
Node hint2)
Exp tempVarNode(java.lang.String str,
Type type)
Stmt makeAssignStmt(Exp e1,
Exp e2)
Exp intPowExp(Exp e1,
Exp e2)
Exp complexPowExp(Exp e1,
Exp e2)
Exp funcNEAREST(Exp arg)
Exp funcMAX(IrList args)
max(x,y,...)
=>
temp = x;
if(temp < y){
temp = y;
}
Exp funcMIN(IrList args)
min(x,y,...)
=>
temp = x;
if(temp > y){
temp = y;
}
Exp makeLibCall(java.lang.String name,
Exp pExp,
int type)
name - library function namepExp - actual parametertype - return type
Exp makeLibCall2(java.lang.String name,
Exp pExp1,
Exp pExp2,
int type)
name - library function nametype - return type
Exp convertTo(Exp exp,
Type type)
void makeComplexCall(java.lang.String name,
Exp src,
Exp dst)
boolean typeCheck(Type type,
int expected_type)
boolean argsTypeCheck(IntrinsicUtility.NameAndType nat,
IrList argsExps)
void init_intrinsicTable()
void dp(java.lang.String msg)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||