#include "topcode.h"


Go to the source code of this file.
Functions/Subroutines | |
| 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 340 of file betarget.cxx.
References Can_Do_Fast_Divide(), Can_Do_Fast_Multiply(), Can_Do_Fast_Remainder(), CLASS_PREG, FALSE, INT32, 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, top, TOP, and TRUE.
Referenced by RVI::Is_const_candidate(), and CODEREP::Is_rvi_const_candidate().
Definition at line 267 of file betarget.cxx.
References BOOL, FALSE, INT, Is_Power_Of_2(), Is_Power_Of_2_Diff1(), Is_Power_Of_2_Diff2(), MTYPE_I4, MTYPE_I8, MTYPE_U4, MTYPE_U8, MULTIPLICATION_LATENCY_32_BIT, MULTIPLICATION_LATENCY_64_BIT, neg(), num_ones(), OPT_Space, TRUE, and UINT64.
Referenced by Can_Be_Immediate(), and Expand_Multiply().
Definition at line 215 of file betarget.cxx.
References INT, Target, TARGET_ITANIUM, TARGET_ITANIUM2, and TARGET_opteron.
Definition at line 194 of file betarget.cxx.
References INT, Target, TARGET_ITANIUM, TARGET_ITANIUM2, and TARGET_opteron.
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 CODEREP::Can_be_speculated(), CFG::Screen_cand(), and WN_Can_Be_Speculative().
| TOP OPCODE_To_TOP | ( | OPCODE | opcode | ) |
Definition at line 74 of file betarget.cxx.
References FALSE, FmtAssert, MTYPE_F10, MTYPE_F4, MTYPE_F8, MTYPE_FQ, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, MTYPE_V, OPCODE_desc(), OPCODE_operator(), OPCODE_rtype(), OPR_ABS, OPR_BACKWARD_BARRIER, OPR_FORWARD_BARRIER, OPR_GOTO, OPR_GOTO_OUTER_BLOCK, OPR_INTRINSIC_CALL, OPR_NEG, OPR_PAREN, OPR_PARM, OPR_TRAP, and TYPE_ID.
Referenced by Exp_OP(), and 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.
Referenced by CGTARG_Can_Be_Speculative().
| TOP WHIRL_To_TOP | ( | WN * | wn | ) |
Definition at line 61 of file w2op.cxx.
References opcode, OPCODE_operator(), OPCODE_To_TOP(), OPR_TAS, TAS_To_TOP(), top, TOP, and WN_opcode().
Referenced by Expand_Expr(), and LNOTARGET_Whirl_To_Top().
| 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, OPR_MOD, OPR_REM, ALIAS_MANAGER::Safe_to_speculate(), SCLASS_FORMAL_REF, ST_is_constant(), ST_sclass, TRUE, TYPE_ID, WN_class, WN_const_val(), WN_Is_Volatile_Mem(), WN_kid1(), WN_opcode(), WN_operator(), WN_rtype(), and WN_st().
Referenced by Statically_Safe_Node(), and WN_Expr_Can_Be_Speculative().
| BOOL WN_Expr_Can_Be_Speculative | ( | WN * | wn, | |
| struct ALIAS_MANAGER * | alias | |||
| ) |
Definition at line 322 of file w2op.cxx.
References FALSE, i, INT16, WN_Can_Be_Speculative(), WN_Expr_Can_Be_Speculative(), WN_kid(), and WN_kid_count().
Referenced by expr_is_speculative(), Statically_Safe_Exp(), and WN_Expr_Can_Be_Speculative().
1.5.6