Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
opt_cvtl_rule.cxx File Reference
#include "opt_cvtl_rule.h"
#include "wn.h"
Include dependency graph for opt_cvtl_rule.cxx:

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 Documentation

#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.


Function Documentation

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().

Here is the call graph for this function:

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().

Here is the call graph for this function:

INT Need_load_type_conversion ( BOOL  source_sign_extd,
BOOL  target_sign_extd,
TYPE_ID  to_ty,
TYPE_ID  dsc_ty,
OPCODE opc 
)
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().

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().

Here is the call graph for this function:

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().

Here is the call graph for this function:


Variable Documentation

struct cvt_rule cvt_rule[MTYPE_U8+1][MTYPE_U8+1] [static]
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines