Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
#include "topcode.h"
Go to the source code of this file.
Functions | |
TOP | OPCODE_To_TOP (OPCODE opcode) |
TOP | WHIRL_To_TOP (WN *wn) |
BOOL | Can_Do_Fast_Multiply (TYPE_ID mtype, INT64 val) |
BOOL | Can_Do_Fast_Divide (TYPE_ID mtype, INT64 val) |
BOOL | Can_Do_Fast_Remainder (TYPE_ID mtype, INT64 val) |
INT | Multiply_Limit (BOOL is_64bit, INT64 val) |
INT | Divide_Limit (BOOL is_64bit) |
BOOL | Can_Be_Immediate (OPERATOR opr, INT64 val, TYPE_ID dtype, INT whichkid, ST *stid_st) |
BOOL | TOP_Can_Be_Speculative (TOP opcode) |
BOOL | WN_Can_Be_Speculative (WN *wn, struct ALIAS_MANAGER *alias) |
BOOL | WN_Expr_Can_Be_Speculative (WN *wn, struct ALIAS_MANAGER *alias) |
BOOL | OPCODE_Can_Be_Speculative (OPCODE opcode) |
Definition at line 327 of file betarget.cxx.
References Can_Do_Fast_Divide(), Can_Do_Fast_Multiply(), Can_Do_Fast_Remainder(), CLASS_PREG, FALSE, Is_Signed_Bits(), MTYPE_is_size_double, OPR_ADD, OPR_AGOTO, OPR_ASHR, OPR_BAND, OPR_BIOR, OPR_BXOR, OPR_CALL, OPR_DIV, OPR_DIVREM, OPR_EQ, OPR_GE, OPR_GT, OPR_ICALL, OPR_INTRINSIC_CALL, OPR_LE, OPR_LOOP_INFO, OPR_LSHR, OPR_LT, OPR_MAX, OPR_MIN, OPR_MLOAD, OPR_MOD, OPR_MPY, OPR_MSTORE, OPR_NE, OPR_PARM, OPR_REM, OPR_SELECT, OPR_SHL, OPR_STID, OPR_SUB, ST_class(), and TRUE.
BOOL Can_Do_Fast_Divide | ( | TYPE_ID | mtype, |
INT64 | val | ||
) |
Definition at line 153 of file betarget.cxx.
References FALSE, Is_Power_Of_2(), and TRUE.
Referenced by Can_Be_Immediate().
BOOL Can_Do_Fast_Multiply | ( | TYPE_ID | mtype, |
INT64 | val | ||
) |
Definition at line 255 of file betarget.cxx.
References FALSE, OPT_Space, TRUE, and val.
Referenced by Can_Be_Immediate().
BOOL Can_Do_Fast_Remainder | ( | TYPE_ID | mtype, |
INT64 | val | ||
) |
Definition at line 163 of file betarget.cxx.
References FALSE, Is_Power_Of_2(), and TRUE.
Referenced by Can_Be_Immediate().
INT Divide_Limit | ( | BOOL | is_64bit | ) |
Definition at line 205 of file betarget.cxx.
References Target, and TARGET_ITANIUM.
INT Multiply_Limit | ( | BOOL | is_64bit, |
INT64 | val | ||
) |
Definition at line 186 of file betarget.cxx.
References Target, and TARGET_ITANIUM.
BOOL OPCODE_Can_Be_Speculative | ( | OPCODE | opcode | ) |
Definition at line 142 of file w2op.cxx.
References DEBUG_Div_Zero_Check, EAGER_ARITH, EAGER_DIVIDE, Eager_Level, EAGER_MEMORY, EAGER_NONE, EAGER_SAFE, FALSE, MTYPE_is_float, OPCODE_operator(), OPCODE_rtype(), OPR_ABS, OPR_ADD, OPR_ARRAY, OPR_ASHR, OPR_BAND, OPR_BIOR, OPR_BNOR, OPR_BNOT, OPR_BXOR, OPR_CAND, OPR_CEIL, OPR_CIOR, OPR_COMPLEX, OPR_CONST, OPR_CSELECT, OPR_CVT, OPR_CVTL, OPR_DIV, OPR_DIVREM, OPR_EQ, OPR_FLOOR, OPR_GE, OPR_GT, OPR_HIGHPART, OPR_IDNAME, OPR_ILOAD, OPR_ILOADX, OPR_IMAGPART, OPR_INTCONST, OPR_INTRINSIC_OP, OPR_LAND, OPR_LDA, OPR_LDID, OPR_LE, OPR_LIOR, OPR_LNOT, OPR_LOWPART, OPR_LSHR, OPR_LT, OPR_MADD, OPR_MAX, OPR_MAXPART, OPR_MIN, OPR_MINMAX, OPR_MINPART, OPR_MLOAD, OPR_MOD, OPR_MPY, OPR_MSUB, OPR_NE, OPR_NEG, OPR_NMADD, OPR_NMSUB, OPR_PAREN, OPR_PREFETCH, OPR_PREFETCHX, OPR_REALPART, OPR_RECIP, OPR_REM, OPR_RND, OPR_RSQRT, OPR_SELECT, OPR_SHL, OPR_SQRT, OPR_SUB, OPR_TAS, and OPR_TRUNC.
Referenced by WN_Can_Be_Speculative().
TOP OPCODE_To_TOP | ( | OPCODE | opcode | ) |
Definition at line 69 of file betarget.cxx.
References MTYPE_F4, MTYPE_F8, MTYPE_V, OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), OPR_ABS, OPR_BACKWARD_BARRIER, OPR_FORWARD_BARRIER, OPR_INTRINSIC_CALL, OPR_NEG, OPR_PAREN, OPR_PARM, and OPR_TRAP.
Referenced by WHIRL_To_TOP().
BOOL TOP_Can_Be_Speculative | ( | TOP | opcode | ) |
Definition at line 81 of file w2op.cxx.
References DevWarn(), EAGER_ARITH, EAGER_DIVIDE, Eager_Level, EAGER_MEMORY, EAGER_NONE, EAGER_SAFE, FALSE, and TRUE.
TOP WHIRL_To_TOP | ( | WN * | wn | ) |
Definition at line 61 of file w2op.cxx.
References OPCODE_operator(), OPCODE_To_TOP(), OPR_TAS, TAS_To_TOP(), top, and WN_opcode().
BOOL WN_Can_Be_Speculative | ( | WN * | wn, |
struct ALIAS_MANAGER * | alias | ||
) |
Definition at line 258 of file w2op.cxx.
References CLASS_PREG, FALSE, MTYPE_I4, MTYPE_I8, MTYPE_U4, MTYPE_U8, OPCODE_Can_Be_Speculative(), OPR_CONST, OPR_DIV, OPR_ILOAD, OPR_ILOADX, OPR_INTCONST, OPR_LDA, OPR_LDID, ST_is_constant(), TRUE, WN_class, WN_const_val(), WN_Is_Volatile_Mem(), WN_kid1(), WN_opcode(), WN_operator(), WN_rtype(), and WN_st().
Referenced by WN_Expr_Can_Be_Speculative().
BOOL WN_Expr_Can_Be_Speculative | ( | WN * | wn, |
struct ALIAS_MANAGER * | alias | ||
) |
Definition at line 303 of file w2op.cxx.
References FALSE, WN_Can_Be_Speculative(), WN_Expr_Can_Be_Speculative(), WN_kid(), and WN_kid_count().
Referenced by WN_Expr_Can_Be_Speculative().