Open64 (mfef90, whirl2f, and IR tools)
TAG: version-openad; SVN changeset: 916
|
Go to the source code of this file.
Classes | |
struct | cvt_rule |
Defines | |
#define | nop {NOT_AT_ALL,OPCODE_LAST+1} |
#define | I8I4 {NEED_CVT, OPC_I8I4CVT} |
#define | U8I4 {NEED_CVT, OPC_U8I4CVT} |
#define | I4I8 {NEED_CVT, OPC_I4I8CVT} |
#define | U4I8 {NEED_CVT, OPC_U4I8CVT} |
#define | I8U4 {NEED_CVT, OPC_I8U4CVT} |
#define | U8U4 {NEED_CVT, OPC_U8U4CVT} |
#define | I4U8 {NEED_CVT, OPC_I4U8CVT} |
#define | U4U8 {NEED_CVT, OPC_U4U8CVT} |
#define | I4I2 {NEED_CVTL, OPC_I4CVTL} |
#define | I4I1 {NEED_CVTL, OPC_I4CVTL} |
#define | U4U2 {NEED_CVTL, OPC_U4CVTL} |
#define | U4U1 {NEED_CVTL, OPC_U4CVTL} |
#define | I4U4 {NEED_CVTL, OPC_U4CVTL} |
#define | U4I4 {NEED_CVTL, OPC_I4CVTL} |
#define | I8I2 {NEED_CVTL, OPC_I8CVTL} |
#define | I8I1 {NEED_CVTL, OPC_I8CVTL} |
#define | U8U2 {NEED_CVTL, OPC_U8CVTL} |
#define | U8U1 {NEED_CVTL, OPC_U8CVTL} |
#define | I1I4 {NEED_CVTL, OPC_I4CVTL} |
#define | I2I4 {NEED_CVTL, OPC_I4CVTL} |
#define | I1I8 {NEED_CVTL, OPC_I8CVTL} |
#define | I2I8 {NEED_CVTL, OPC_I8CVTL} |
#define | U1U4 {NEED_CVTL, OPC_U4CVTL} |
#define | U2U4 {NEED_CVTL, OPC_U4CVTL} |
#define | U1U8 {NEED_CVTL, OPC_U8CVTL} |
#define | U2U8 {NEED_CVTL, OPC_U8CVTL} |
#define | I4B {NEED_CVT, OPC_I4BCVT} |
#define | I8B {NEED_CVT, OPC_I8BCVT} |
#define | U4B {NEED_CVT, OPC_U4BCVT} |
#define | U8B {NEED_CVT, OPC_U8BCVT} |
Functions | |
INT | Need_type_conversion (TYPE_ID from_ty, TYPE_ID to_ty, OPCODE *opc) |
INT | Need_load_type_conversion (BOOL source_sign_extd, BOOL target_sign_extd, TYPE_ID to_ty, TYPE_ID dsc_ty, OPCODE *opc) |
BOOL | Types_are_compatible (TYPE_ID lhs_type, TYPE_ID rhs_type) |
BOOL | Types_are_compatible (TYPE_ID lhs_type, WN *rhs_wn) |
TYPE_ID | Rebuild_rtype (TYPE_ID rtype, INT bits) |
INT | Actual_data_size (WN *wn) |
TYPE_ID | Actual_cvtl_type (OPCODE opc, INT bits) |
TYPE_ID | Actual_result_type (WN *wn) |
TYPE_ID | Adjust_signed_type (TYPE_ID rtype, INT size, WN *wn) |
Variables | |
static struct cvt_rule | cvt_rule [MTYPE_U8+1][MTYPE_U8+1] |
#define I1I4 {NEED_CVTL, OPC_I4CVTL} |
Definition at line 70 of file opt_cvtl_rule.cxx.
#define I1I8 {NEED_CVTL, OPC_I8CVTL} |
Definition at line 72 of file opt_cvtl_rule.cxx.
#define I2I4 {NEED_CVTL, OPC_I4CVTL} |
Definition at line 71 of file opt_cvtl_rule.cxx.
#define I2I8 {NEED_CVTL, OPC_I8CVTL} |
Definition at line 73 of file opt_cvtl_rule.cxx.
#define I4B {NEED_CVT, OPC_I4BCVT} |
Definition at line 79 of file opt_cvtl_rule.cxx.
#define I4I1 {NEED_CVTL, OPC_I4CVTL} |
Definition at line 60 of file opt_cvtl_rule.cxx.
#define I4I2 {NEED_CVTL, OPC_I4CVTL} |
Definition at line 59 of file opt_cvtl_rule.cxx.
#define I4I8 {NEED_CVT, OPC_I4I8CVT} |
Definition at line 52 of file opt_cvtl_rule.cxx.
#define I4U4 {NEED_CVTL, OPC_U4CVTL} |
Definition at line 63 of file opt_cvtl_rule.cxx.
#define I4U8 {NEED_CVT, OPC_I4U8CVT} |
Definition at line 56 of file opt_cvtl_rule.cxx.
#define I8B {NEED_CVT, OPC_I8BCVT} |
Definition at line 80 of file opt_cvtl_rule.cxx.
#define I8I1 {NEED_CVTL, OPC_I8CVTL} |
Definition at line 66 of file opt_cvtl_rule.cxx.
#define I8I2 {NEED_CVTL, OPC_I8CVTL} |
Definition at line 65 of file opt_cvtl_rule.cxx.
#define I8I4 {NEED_CVT, OPC_I8I4CVT} |
Definition at line 50 of file opt_cvtl_rule.cxx.
#define I8U4 {NEED_CVT, OPC_I8U4CVT} |
Definition at line 54 of file opt_cvtl_rule.cxx.
#define nop {NOT_AT_ALL,OPCODE_LAST+1} |
Definition at line 49 of file opt_cvtl_rule.cxx.
#define U1U4 {NEED_CVTL, OPC_U4CVTL} |
Definition at line 74 of file opt_cvtl_rule.cxx.
#define U1U8 {NEED_CVTL, OPC_U8CVTL} |
Definition at line 76 of file opt_cvtl_rule.cxx.
#define U2U4 {NEED_CVTL, OPC_U4CVTL} |
Definition at line 75 of file opt_cvtl_rule.cxx.
#define U2U8 {NEED_CVTL, OPC_U8CVTL} |
Definition at line 77 of file opt_cvtl_rule.cxx.
#define U4B {NEED_CVT, OPC_U4BCVT} |
Definition at line 81 of file opt_cvtl_rule.cxx.
#define U4I4 {NEED_CVTL, OPC_I4CVTL} |
Definition at line 64 of file opt_cvtl_rule.cxx.
#define U4I8 {NEED_CVT, OPC_U4I8CVT} |
Definition at line 53 of file opt_cvtl_rule.cxx.
#define U4U1 {NEED_CVTL, OPC_U4CVTL} |
Definition at line 62 of file opt_cvtl_rule.cxx.
#define U4U2 {NEED_CVTL, OPC_U4CVTL} |
Definition at line 61 of file opt_cvtl_rule.cxx.
#define U4U8 {NEED_CVT, OPC_U4U8CVT} |
Definition at line 57 of file opt_cvtl_rule.cxx.
#define U8B {NEED_CVT, OPC_U8BCVT} |
Definition at line 82 of file opt_cvtl_rule.cxx.
#define U8I4 {NEED_CVT, OPC_U8I4CVT} |
Definition at line 51 of file opt_cvtl_rule.cxx.
#define U8U1 {NEED_CVTL, OPC_U8CVTL} |
Definition at line 68 of file opt_cvtl_rule.cxx.
#define U8U2 {NEED_CVTL, OPC_U8CVTL} |
Definition at line 67 of file opt_cvtl_rule.cxx.
#define U8U4 {NEED_CVT, OPC_U8U4CVT} |
Definition at line 55 of file opt_cvtl_rule.cxx.
TYPE_ID Actual_cvtl_type | ( | OPCODE | opc, |
INT | bits | ||
) |
Definition at line 371 of file opt_cvtl_rule.cxx.
References OPCODE_rtype(), and Rebuild_rtype().
INT Actual_data_size | ( | WN * | wn | ) |
Definition at line 268 of file opt_cvtl_rule.cxx.
References MTYPE_CLASS_INTEGER, MTYPE_is_integral, MTYPE_is_signed, MTYPE_is_unsigned, MTYPE_size_min, MTYPE_type_class, OPR_ASHR, OPR_BAND, OPR_BIOR, OPR_CVTL, OPR_ILDBITS, OPR_ILOAD, OPR_INTCONST, OPR_LDBITS, OPR_LDID, OPR_LSHR, OPR_SHL, Pointer_type, val, WN_bit_size(), WN_const_val(), WN_cvtl_bits(), WN_desc(), WN_kid0(), WN_kid1(), WN_operator(), and WN_rtype().
Referenced by Actual_result_type(), and Adjust_signed_type().
TYPE_ID Actual_result_type | ( | WN * | wn | ) |
Definition at line 380 of file opt_cvtl_rule.cxx.
References Actual_data_size(), MTYPE_CLASS_INTEGER, MTYPE_type_class, OPCODE_operator(), OPCODE_rtype(), OPR_ASHR, OPR_BAND, OPR_BIOR, OPR_CVTL, OPR_ILDBITS, OPR_ILOAD, OPR_INTCONST, OPR_LDBITS, OPR_LDID, OPR_LSHR, OPR_SHL, Rebuild_rtype(), and WN_opcode().
Referenced by Types_are_compatible().
TYPE_ID Adjust_signed_type | ( | TYPE_ID | rtype, |
INT | size, | ||
WN * | wn | ||
) |
Definition at line 409 of file opt_cvtl_rule.cxx.
References Actual_data_size(), MTYPE_is_integral, MTYPE_is_unsigned, MTYPE_UNKNOWN, and Rebuild_rtype().
INT Need_load_type_conversion | ( | BOOL | source_sign_extd, |
BOOL | target_sign_extd, | ||
TYPE_ID | to_ty, | ||
TYPE_ID | dsc_ty, | ||
OPCODE * | opc | ||
) |
Definition at line 177 of file opt_cvtl_rule.cxx.
References Is_True, MTYPE_BS, MTYPE_I4, MTYPE_is_integral, MTYPE_size_min, OPC_I4CVTL, OPC_I8CVTL, OPC_U4CVTL, OPC_U4U8CVT, OPC_U8CVTL, and OPC_U8U4CVT.
INT Need_type_conversion | ( | TYPE_ID | from_ty, |
TYPE_ID | to_ty, | ||
OPCODE * | opc | ||
) |
Definition at line 120 of file opt_cvtl_rule.cxx.
References cvt_rule::_cvt_kind, MTYPE_is_integral, NULL, and OPR_CVT.
Referenced by Types_are_compatible().
TYPE_ID Rebuild_rtype | ( | TYPE_ID | rtype, |
INT | bits | ||
) |
Definition at line 240 of file opt_cvtl_rule.cxx.
References MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, MTYPE_U1, MTYPE_U2, MTYPE_U4, and MTYPE_U8.
Referenced by Actual_cvtl_type(), Actual_result_type(), and Adjust_signed_type().
BOOL Types_are_compatible | ( | TYPE_ID | lhs_type, |
TYPE_ID | rhs_type | ||
) |
Definition at line 214 of file opt_cvtl_rule.cxx.
References FALSE, MTYPE_CLASS_UNSIGNED_INTEGER, MTYPE_type_class, Need_type_conversion(), and TRUE.
Referenced by Types_are_compatible().
BOOL Types_are_compatible | ( | TYPE_ID | lhs_type, |
WN * | rhs_wn | ||
) |
Definition at line 231 of file opt_cvtl_rule.cxx.
References Actual_result_type(), and Types_are_compatible().