#include <values.h>#include "defs.h"#include "glob.h"#include "config.h"#include "wn.h"#include "wn_util.h"#include "targ_sim.h"#include "const.h"#include "c_int_model.h"#include "gnu_config.h"#include "gnu/system.h"#include "gnu/flags.h"#include "gnu/machmode.h"#include "gnu/tree.h"#include "ir_reader.h"#include "wfe_misc.h"#include "wfe_dst.h"#include "tree_symtab.h"#include "wfe_decl.h"#include "wfe_expr.h"#include "wfe_stmt.h"#include "tree_cmp.h"

Go to the source code of this file.
| typedef struct wfe_bind_expr_t WFE_BIND_EXPR |
| typedef struct wfe_save_expr_t WFE_SAVE_EXPR |
Definition at line 2401 of file wfe_expr.cxx.
References FALSE, Get_ST, INT32, Make_Pointer_Type(), Pointer_Mtype, ST_type, TREE_CHAIN, TREE_VALUE, WFE_Stmt_Append(), WN_CreateBarrier, WN_kid(), and WN_Lda().
Definition at line 2533 of file wfe_expr.cxx.
References Be_Type_Tbl, Create_Preg(), emit_barrier(), Fail_FmtAssertion(), FALSE, Get_TY(), INTRINSIC_NONE, INTRN_COMPARE_AND_SWAP_I4, INTRN_COMPARE_AND_SWAP_I8, MTYPE_I4, MTYPE_I8, MTYPE_To_PREG, MTYPE_U4, MTYPE_U8, NULL, opc, OPC_I4INTRINSIC_CALL, OPCODE_UNKNOWN, Return_Val_Preg, TREE_CHAIN, TREE_OPERAND, TREE_TYPE, TREE_VALUE, TRUE, TY_mtype, TY_pointed, TYPE_ID, WFE_Expand_Expr(), WFE_Stmt_Append(), WN_Create_Intrinsic, WN_CreateParm, WN_Ldid(), WN_PARM_BY_VALUE, and WN_Stid().
Referenced by WFE_Expand_Expr(), and WGEN_Expand_Expr().
Definition at line 2488 of file wfe_expr.cxx.
References emit_barrier(), Fail_FmtAssertion(), Get_TY(), INTRINSIC_NONE, INTRN_LOCK_RELEASE_I4, INTRN_LOCK_RELEASE_I8, MTYPE_I4, MTYPE_I8, MTYPE_U4, MTYPE_U8, opc, OPC_VINTRINSIC_CALL, OPCODE_UNKNOWN, TREE_CHAIN, TREE_OPERAND, TREE_TYPE, TREE_VALUE, TRUE, TY_mtype, TY_pointed, TYPE_ID, WFE_Expand_Expr(), WFE_Stmt_Append(), WN_Create_Intrinsic, WN_CreateParm, and WN_PARM_BY_VALUE.
Referenced by WFE_Expand_Expr(), and WGEN_Expand_Expr().
Definition at line 2418 of file wfe_expr.cxx.
References Be_Type_Tbl, Create_Preg(), emit_barrier(), Fail_FmtAssertion(), FALSE, Get_TY(), INTRINSIC_NONE, INTRN_LOCK_TEST_AND_SET_I4, INTRN_LOCK_TEST_AND_SET_I8, MTYPE_I4, MTYPE_I8, MTYPE_To_PREG, MTYPE_U4, MTYPE_U8, NULL, opc, OPC_I4INTRINSIC_CALL, OPC_I8INTRINSIC_CALL, OPC_U4INTRINSIC_CALL, OPC_U8INTRINSIC_CALL, OPCODE_UNKNOWN, Return_Val_Preg, TREE_CHAIN, TREE_OPERAND, TREE_TYPE, TREE_VALUE, TY_mtype, TY_pointed, TYPE_ID, WFE_Expand_Expr(), WFE_Stmt_Append(), WN_Create_Intrinsic, WN_CreateParm, WN_Ldid(), WN_PARM_BY_VALUE, and WN_Stid().
Referenced by WFE_Expand_Expr(), and WGEN_Expand_Expr().
Definition at line 2604 of file wfe_expr.cxx.
References emit_barrier(), FALSE, INTRN_SYNCHRONIZE, NULL, OPC_VINTRINSIC_CALL, TREE_OPERAND, TRUE, WFE_Stmt_Append(), and WN_Create_Intrinsic.
Referenced by WFE_Expand_Expr(), and WGEN_Expand_Expr().
Definition at line 3282 of file wfe_expr.cxx.
References FLD_get_to_field(), FLD_type, FLD_HANDLE::Is_Null(), Is_True, KIND_STRUCT, TY_kind, and UINT.
Definition at line 8085 of file wfe_expr.cxx.
References FmtAssert, h, TREE_CODE, TREE_INT_CST_HIGH, TREE_INT_CST_LOW, and UINT64.
Referenced by Add_Bitfield_Initv_For_Tree(), Add_Inito_For_Tree(), Add_Initv_For_Tree(), Create_DST_type_For_Tree(), Create_TY_For_Tree(), DST_enter_enum(), DST_enter_normal_field(), DST_enter_struct_union_members(), Traverse_Aggregate_Array(), Type_Size_Without_Vbases(), WFE_Add_Aggregate_Init_Address(), WFE_Array_Expr(), WFE_Expand_Expr(), WFE_Lhs_Of_Modify_Expr(), and WFE_Resolve_Duplicate_Decls().
| static char* get_string_pointer | ( | WN * | wn | ) | [static] |
Definition at line 2615 of file wfe_expr.cxx.
References CLASS_CONST, MTYPE_STRING, NULL, OPR_LDA, ptr, ST_class, ST_tcon, Targ_String_Address(), Tcon_Table, TCON_ty, WN_offset(), WN_operator(), and WN_st().
Referenced by WFE_Expand_Expr(), and WGEN_Expand_Expr().
Definition at line 684 of file wfe_expr.cxx.
Referenced by expand_start_do_loop(), WFE_Expand_Expr(), and WGEN_Expand_Expr().
Definition at line 702 of file wfe_expr.cxx.
References UNITS_PER_WORD.
Referenced by WFE_Expand_Expr(), and WGEN_Expand_Expr().
Definition at line 2655 of file wfe_expr.cxx.
References a, aptr, b, CURRENT_SYMTAB, DECL_EXTERNAL, DECL_INITIAL, DECL_VIRTUAL_P, DevWarn, Enter_tcon(), Fail_FmtAssertion(), FALSE, FmtAssert, Get_Current_PU, Get_ST, Get_TY(), Host_To_Targ_String(), INT, Is_Target_32bit, Is_True, lineno, Make_Pointer_Type(), MTYPE_byte_size, MTYPE_C10, MTYPE_C4, MTYPE_C8, MTYPE_CQ, MTYPE_F10, MTYPE_F4, MTYPE_F8, MTYPE_FQ, MTYPE_M, MTYPE_STRING, MTYPE_V, New_Const_Sym(), NULL, Operator_From_Tree, OPR_ADD, OPR_COMMA, OPR_CSELECT, OPR_GT, OPR_ILOAD, OPR_LDA, OPR_LDID, OPR_LT, Pointer_Mtype, same_type_p, Set_LABEL_addr_saved(), Set_PU_has_very_high_whirl(), ST_base, ST_name, ST_ofst, ST_type, TREE_CODE, TREE_OPERAND, TREE_STRING_LENGTH, TREE_STRING_POINTER, TREE_STRING_ST(), TREE_TYPE, TY_mtype, TY_size, TYPE_ID, WFE_Expand_Expr(), WFE_Generate_Temp_For_Initialized_Aggregate(), WFE_Get_LABEL(), WFE_Initialize_Decl(), WFE_Keep_Zero_Length_Structs, Widen_Mtype(), WN_Binary(), WN_has_side_effects(), WN_Intconst(), WN_kid0(), WN_kid1(), WN_kid2(), WN_Lda(), WN_LdaLabel(), WN_Ldid(), WN_offset(), WN_operator(), WN_Relational(), WN_rtype(), WN_Select, WN_set_desc(), WN_set_operator(), WN_set_rtype(), WN_set_ty(), WN_st(), and WN_ty().
Referenced by WFE_Expand_Expr().
| static WN* WFE_Array_Expr | ( | tree | exp, | |
| TY_IDX * | ty_idx, | |||
| TY_IDX | component_ty_idx, | |||
| INT64 | component_offset, | |||
| UINT32 | field_id | |||
| ) | [static] |
Definition at line 1011 of file wfe_expr.cxx.
References ARB_const_lbnd, ARB_const_ubnd, ARB_dimension(), ARB_first_dimen(), ARB_last_dimen(), ARB_lbnd_val, ARB_ubnd_val, ARB_ubnd_var(), DECL_BIT_FIELD, DECL_FIELD_BIT_OFFSET, DECL_FIELD_ID(), DECL_FIELD_OFFSET, DECL_INITIAL, FALSE, FmtAssert, Get_Integer_Value(), Get_ST, Get_TY(), INT, INT64, Is_True, KIND_ARRAY, MTYPE_I4, Mtype_TransferSign(), Mtype_TransferSize(), MTYPE_U8, MTYPE_V, NULL, OPC_MCOMMA, OPCODE_is_load(), OPR_ADD, OPR_ARRAY, OPR_LDID, OPR_SUB, Pointer_Mtype, Set_TY_align, Set_TY_is_volatile, ST_base, ST_ofst, St_Table, ST_type, TARGET_64BIT, TREE_CODE, TREE_OPERAND, TREE_STRING_ST(), TREE_THIS_VOLATILE, TREE_TYPE, TY_align, TY_arb(), TY_etype, TY_kind, TY_size, TYPE_ALIGN, WFE_Expand_Expr(), WFE_Generate_Temp_For_Initialized_Aggregate(), WFE_Stmt_Append(), WN_Binary(), WN_Create(), WN_Delete, WN_element_size(), WN_Intconst(), WN_kid(), WN_kid0(), WN_kid1(), WN_kid_count(), WN_Lda(), WN_Ldid(), WN_opcode(), WN_operator(), WN_rtype(), WN_set_rtype(), WN_st(), and WN_Ternary().
Referenced by WFE_Array_Expr(), WFE_Expand_Expr(), and WFE_Lhs_Of_Modify_Expr().
| WN* WFE_Expand_Expr | ( | tree | exp, | |
| bool | need_result, | |||
| TY_IDX | nop_ty_idx, | |||
| TY_IDX | component_ty_idx, | |||
| INT64 | component_offset, | |||
| UINT16 | field_id, | |||
| bool | is_bit_field, | |||
| bool | is_aggr_init_via_ctor | |||
| ) |
Definition at line 3980 of file wfe_expr.cxx.
References access, Add_Handler_Info(), addr(), AGGR_INIT_VIA_CTOR_P, Aggregate_Alignment, align, ansi_opname, Be_Type_Tbl, BITS_PER_UNIT, wfe_bind_expr_t::block, BOOL, Boolean_type, build_decl, build_pointer_type(), BUILT_IN_MD, c_strlen(), Call_Throw(), CLASS_CONST, CLASS_VAR, Classify_Aggregate(), CLEANUP_EH_ONLY, COMPOUND_BODY, cplus_expand_constant(), Create_Preg(), Current_Function_Decl(), Current_Handler_Count(), CURRENT_SYMTAB, DECL_ARGUMENTS, DECL_ASSEMBLER_NAME, DECL_BIT_FIELD, DECL_BUILT_IN, DECL_BUILT_IN_CLASS, DECL_FIELD_BIT_OFFSET, DECL_FIELD_ID(), DECL_FIELD_OFFSET, DECL_FUNCTION_CODE, DECL_INITIAL, DECL_INLINE, DECL_IS_MALLOC, DECL_IS_PURE, DECL_NAME, DECL_SIZE, DECL_ST, DECL_STMT_DECL, DevWarn, Do_Temp_Cleanups(), dst, Dummy_Exc_Ptr_Expr, emit_builtin_compare_and_swap(), emit_builtin_lock_release(), emit_builtin_lock_test_and_set(), emit_builtin_synchronize(), END_BUILTINS, Enter_tcon(), EXPORT_LOCAL, EXPR_STMT_EXPR, EXPR_WFL_NODE, Fail_FmtAssertion(), FALSE, fdump_tree(), FE_Pointer_Type_To_Mtype(), Fix_TY_mtype(), flag_errno_math, FLD_get_to_field(), FLD_name_idx(), FLD_type, FmtAssert, Force_IEEE_Comparisons, fprintf(), Gen_Temp_Symbol(), Get_Current_PU, get_field_type(), Get_Integer_Value(), Get_ST, get_string_pointer(), Get_TY(), Has_Subsumed_Cvtl(), Host_Byte_Sex, Host_To_Targ_Complex(), Host_To_Targ_Complex_10(), Host_To_Targ_Complex_4(), Host_To_Targ_Complex_Quad(), Host_To_Targ_Float(), Host_To_Targ_Float_10(), Host_To_Targ_Float_4(), Host_To_Targ_Quad(), Host_To_Targ_String(), idx, in_cleanup, Index_To_Str(), INITO_val(), INITV_tc_val(), INT, INT32, INT64, int_size_in_bytes(), INTRINSIC_NONE, INTRN_F4COS, INTRN_F4EXP, INTRN_F4SIN, INTRN_F8COS, INTRN_F8EXP, INTRN_F8EXPEXPR, INTRN_F8SIN, INTRN_I4FFS, INTRN_MEMCMP, INTRN_MEMCPY, INTRN_MEMSET, INTRN_STRCMP, INTRN_STRCPY, INTRN_STRLEN, Is_True, key_exceptions, KIND_POINTER, KIND_STRUCT, last, len, lineno, load(), LOOP_EXPR_BODY, loop_expr_exit_label, Make_Pointer_Type(), MAX_CLASSES, MAX_FIELD_ID, MTYPE_align_best, Mtype_AlignmentClass(), MTYPE_B, MTYPE_bit_size, MTYPE_BS, MTYPE_byte_size, MTYPE_C10, MTYPE_C4, MTYPE_C8, MTYPE_CLASS_INTEGER, MTYPE_CLASS_UNSIGNED_INTEGER, Mtype_comparison(), MTYPE_complement, Mtype_complex_to_real(), MTYPE_CQ, MTYPE_F10, MTYPE_F4, MTYPE_F8, MTYPE_float, MTYPE_FQ, MTYPE_I1, MTYPE_I4, MTYPE_I8, MTYPE_is_complex, MTYPE_is_float, MTYPE_is_integral, MTYPE_is_signed, MTYPE_is_vector, MTYPE_M, MTYPE_signed, MTYPE_size_min, MTYPE_STRING, MTYPE_To_PREG, MTYPE_To_TY, Mtype_TransferSign(), MTYPE_type_class, MTYPE_U1, MTYPE_U4, MTYPE_U8, MTYPE_UNKNOWN, MTYPE_V, mUINT16, mUINT32, mUINT64, n, New_Const_Sym(), New_LABEL(), New_ST(), New_TY(), NULL, NULL_TREE, offset, OPC_I4INTCONST, OPC_I4U4CVT, OPC_I8U8CVT, OPC_U4I4CVT, OPC_U8I8CVT, OPCODE_is_leaf(), OPCODE_is_load(), Operator_From_Tree, OPR_ADD, OPR_ASHR, OPR_BAND, OPR_CALL, OPR_COMMA, OPR_COMPLEX, OPR_CONST, OPR_CSELECT, OPR_CVT, OPR_CVTL, OPR_EQ, OPR_FLOOR, OPR_ICALL, OPR_ILDBITS, OPR_ILOAD, OPR_IMAGPART, OPR_INTCONST, OPR_INTRINSIC_CALL, OPR_INTRINSIC_OP, OPR_ISTORE, OPR_LDA, OPR_LDBITS, OPR_LDID, OPR_LSHR, OPR_MPY, OPR_NEG, OPR_REALPART, OPR_SHL, OPR_SQRT, OPR_SUB, opt_regions, Parameter_Size(), PARM_BOUNDARY, PF_SET_MANUAL, PF_SET_READ, PF_SET_WRITE, Pointer_Mtype, ptr_type_node, PU_misc_info(), Pu_Table, Push_Temp_Cleanup(), REAL_VALUE_TO_TARGET_DOUBLE, REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TYPE, really_constant_p(), Return_Val_Preg, wfe_bind_expr_t::rtl_expr, Save_Str(), Save_Str2(), SCLASS_AUTO, set_DECL_ST(), Set_PU_has_alloca(), Set_PU_has_user_alloca(), Set_PU_has_very_high_whirl(), Set_PU_is_pure(), Set_ST_addr_passed(), Set_ST_addr_saved(), Set_ST_is_temp_var, Set_ST_name_idx(), Set_TY_align, Set_TY_is_volatile, size, Spill_Int_Mtype, Spill_Int_Type, ST_assigned_to_dedicated_preg(), ST_class, ST_Init(), ST_name, ST_ofst, ST_pu(), ST_size, ST_st_idx, ST_tcon, ST_type, STMT_EXPR_STMT, store(), str, Str_Table, strcmp(), STRIP_NOPS, strncmp(), Targ_String_Address(), Targ_String_Length(), target, TARGET_64BIT, Target_Byte_Sex, Tcon_Table, TCON_ty, TREE_CHAIN, TREE_CODE, TREE_CODE_CLASS, TREE_IMAGPART, TREE_INT_CST_LOW, tree_last(), TREE_NOTHROW, TREE_OPERAND, TREE_PURPOSE, TREE_READONLY, TREE_REAL_CST, TREE_REALPART, TREE_SET_CODE, TREE_SIDE_EFFECTS, TREE_STRING_LENGTH, TREE_STRING_POINTER, TREE_STRING_ST(), TREE_THIS_VOLATILE, TREE_TYPE, TREE_VALUE, TRUE, TY_align, TY_fld, TY_Init(), TY_kind, TY_mtype, TY_name_idx(), TY_pointed, TY_size, Ty_Table, TYPE_ALIGN, TYPE_FIELDS, TYPE_ID, TYPE_SIZE, UINT, UINT32, UINT64, void, warning, WFE_add_pragma_to_enclosing_regions(), WFE_Address_Of(), WFE_Array_Expr(), WFE_Convert_Internal_Real_to_IEEE_Double(), WFE_Convert_Internal_Real_to_IEEE_Double_Extended(), WFE_Convert_Internal_Real_to_IEEE_Single(), WFE_Expand_Decl(), WFE_Expand_Expr_With_Sequence_Point(), WFE_Expand_Stmt(), WFE_Generate_Temp_For_Initialized_Aggregate(), WFE_Get_Return_Address_ST(), wfe_invoke_inliner, WFE_Keep_Zero_Length_Structs, WFE_Lhs_Of_Modify_Expr(), WFE_One_Stmt(), WFE_Save_Expr(), WFE_Set_ST_Addr_Saved(), WFE_Stmt_Append(), WFE_Stmt_Pop(), WFE_Stmt_Push(), Widen_Mtype(), WN_Add, WN_Binary(), WN_COPY_Tree(), WN_CopyNode(), WN_Create(), WN_Create_Intrinsic, WN_CreateAlloca(), WN_CreateBlock, WN_CreateComma, WN_CreateConst, WN_CreateCvtl, WN_CreateDealloca(), WN_CreateEval, WN_CreateExp1, WN_CreateExp3, WN_CreateIf, WN_CreateIload, WN_CreateIntconst, WN_CreateIstore, WN_CreateLabel, WN_CreateLdid, WN_CreateMload, WN_CreateMstore, WN_CreateParm, WN_CreatePrefetch, WN_CreateTruebr, WN_CreateWhileDo, WN_Cvt(), WN_Delete, WN_DELETE_FromBlock(), WN_desc(), WN_Div, WN_field_id(), WN_first(), WN_has_side_effects(), WN_has_sym, WN_Iload(), WN_INSERT_BlockLast, WN_Intconst(), WN_intrinsic(), WN_Istore(), WN_kid(), WN_kid0(), WN_kid1(), WN_kid2(), WN_last(), WN_Lda(), WN_lda_offset(), WN_Ldid(), WN_LdidPreg(), WN_load_addr_ty(), WN_load_offset(), WN_Mpy, WN_offset(), WN_opcode(), WN_operator(), WN_operator_is, WN_PARM_BY_VALUE, WN_PRAGMA_LOCAL, WN_Relational(), WN_Rrotate(), WN_rtype(), WN_set_bit_offset_size(), WN_Set_Call_Default_Flags, WN_Set_Call_Is_Virtual, WN_set_desc(), WN_set_field_id(), WN_Set_Linenum(), WN_set_load_addr_ty(), WN_set_operator(), WN_set_rtype(), WN_set_ty(), WN_st(), WN_st_idx(), WN_Stid(), WN_Trunc(), WN_ty(), WN_Unary(), X86_64_INTEGER_CLASS, and X86_64_SSE_CLASS.
Referenced by Add_Inito_For_Tree(), Add_Initv_For_Tree(), check_do_loop_for(), Create_ST_For_Tree(), Create_TY_For_Tree(), emit_builtin_compare_and_swap(), emit_builtin_lock_release(), emit_builtin_lock_test_and_set(), expand_flush(), expand_start_do_loop(), expand_start_for(), expand_start_parallel(), expand_start_parallel_for(), expand_start_parallel_sections(), Gen_Assign_Of_Init_Val(), Get_Pre_ST(), WFE_Add_Aggregate_Init_Address(), WFE_Add_Case_Node(), WFE_Address_Of(), WFE_Alloca_ST(), WFE_Array_Expr(), Wfe_Expand_Asm_Operands(), WFE_Expand_Case(), WFE_Expand_Computed_Goto(), WFE_Expand_Expr(), WFE_Expand_Expr_With_Sequence_Point(), WFE_Expand_Leftover_Cleanups(), WFE_Expand_Start_All_Catch(), WFE_Expand_Stmt(), WFE_Lhs_Of_Modify_Expr(), and WFE_Save_Expr().
Definition at line 2354 of file wfe_expr.cxx.
References boolean_type_node, FALSE, Mtype_comparison(), MTYPE_I4, MTYPE_V, OPR_COMMA, OPR_ILOAD, OPR_LDID, OPR_NE, TREE_TYPE, TRUE, WFE_Expand_Expr(), WFE_Stmt_Append(), WFE_Stmt_Pop(), WFE_Stmt_Push(), WN_CreateBlock, WN_CreateComma, WN_Delete, WN_first(), WN_Intconst(), WN_operator(), WN_Relational(), WN_rtype(), and zero.
Referenced by WFE_Expand_Exit_Loop_If_False(), WFE_Expand_Expr(), WFE_Expand_If(), WFE_Expand_Loop(), WFE_Expand_Return(), WFE_Expand_Start_Case(), WFE_Expand_Start_Cond(), and WFE_One_Stmt().
| WN* WFE_Lhs_Of_Modify_Expr | ( | tree_code | assign_code, | |
| tree | lhs, | |||
| bool | need_result, | |||
| TY_IDX | component_ty_idx, | |||
| INT64 | component_offset, | |||
| UINT32 | field_id, | |||
| bool | is_bit_field, | |||
| WN * | rhs_wn, | |||
| PREG_NUM | rhs_preg_num, | |||
| bool | is_realpart, | |||
| bool | is_imagpart | |||
| ) |
Definition at line 1486 of file wfe_expr.cxx.
References addr(), BOOL, Clear_TY_is_volatile(), Create_Preg(), Current_Entry_WN(), DECL_BIT_FIELD, DECL_FIELD_BIT_OFFSET, DECL_FIELD_ID(), DECL_FIELD_OFFSET, DECL_NAME, DECL_ST, Def_Int_Mtype, DevWarn, Fail_FmtAssertion(), FALSE, FmtAssert, Get_Integer_Value(), Get_ST, Get_TY(), IDENTIFIER_POINTER, INT64, Is_True, Make_Pointer_Type(), MAX_FIELD_ID, MTYPE_bit_size, MTYPE_BS, MTYPE_byte_size, Mtype_complex_to_real(), MTYPE_I4, MTYPE_M, MTYPE_signed, MTYPE_To_PREG, MTYPE_To_TY, MTYPE_V, NULL, OPC_I4CVTL, OPC_U4CVTL, Operator_From_Tree, OPR_BLOCK, OPR_COMPLEX, OPR_GE, OPR_ILOAD, OPR_IMAGPART, OPR_ISTORE, OPR_LDID, OPR_LE, OPR_REALPART, Pointer_Mtype, Set_TY_is_volatile, ST_assigned_to_dedicated_preg(), ST_ofst, TREE_CODE, TREE_OPERAND, TREE_THIS_VOLATILE, TREE_TYPE, TRUE, TY_is_volatile, TY_mtype, TY_size, TYPE_ID, void, WFE_Array_Expr(), WFE_Expand_Expr(), WFE_Keep_Zero_Length_Structs, WFE_Set_ST_Addr_Saved(), WFE_Stmt_Append(), WFE_Stmt_Pop(), WFE_Stmt_Push(), Widen_Mtype(), WN_Binary(), WN_COPY_Tree(), WN_CreateBlock, WN_CreateCvtl, WN_CreateEval, WN_CreateIf, WN_CreateIload, WN_CreateIstore, WN_CreateLdid, WN_Floatconst(), WN_formal, WN_has_side_effects(), WN_Ldid(), WN_operator(), WN_Relational(), WN_st(), WN_Stid(), and WN_Unary().
Referenced by expand_start_do_loop(), Wfe_Expand_Asm_Operands(), WFE_Expand_Expr(), and WFE_Lhs_Of_Modify_Expr().
Definition at line 8078 of file wfe_expr.cxx.
Referenced by expand_null_return(), and WFE_Expand_Expr().
Definition at line 8041 of file wfe_expr.cxx.
References MTYPE_V, OPR_CALL, OPR_COMMA, OPR_ICALL, OPR_LDID, Return_Val_Preg, WFE_Expand_Expr_With_Sequence_Point(), WFE_Stmt_Append(), WN_CreateEval, WN_Delete, WN_has_side_effects(), WN_kid0(), WN_kid1(), WN_last(), WN_operator(), WN_set_rtype(), and WN_st().
Referenced by Do_EH_Cleanups(), Do_Temp_Cleanups(), expand_cleanups(), expand_expr_stmt(), expand_expr_stmt_value(), WFE_Expand_Expr(), WFE_Expand_Handlers_Or_Cleanup(), WFE_Expand_Loop(), WFE_Expand_Stmt(), and WGEN_Expand_Handlers_Or_Cleanup().
| static WN* WFE_Save_Expr | ( | tree | save_exp, | |
| bool | need_result, | |||
| TY_IDX | nop_ty_idx, | |||
| TY_IDX | component_ty_idx, | |||
| INT64 | component_offset, | |||
| UINT16 | field_id | |||
| ) | [static] |
Definition at line 918 of file wfe_expr.cxx.
References exp, wfe_save_expr_t::exp, FmtAssert, Gen_Temp_Symbol(), Get_TY(), INT32, malloc, mtype, NULL, OPR_LDID, realloc, wfe_save_expr_t::st, TREE_OPERAND, TREE_TYPE, TY_mtype, TYPE_ID, WFE_add_pragma_to_enclosing_regions(), WFE_Expand_Expr(), WFE_Set_ST_Addr_Saved(), WFE_Stmt_Append(), Widen_Mtype(), WN_CreateLdid, WN_Ldid(), WN_PRAGMA_LOCAL, and WN_Stid().
Referenced by WFE_Expand_Expr().
Definition at line 728 of file wfe_expr.cxx.
References CLASS_FUNC, CLASS_VAR, Clear_ST_pt_to_unique_mem(), DevWarn, OPR_ABS, OPR_ADD, OPR_ALLOCA, OPR_ARRAY, OPR_ASHR, OPR_BAND, OPR_BIOR, OPR_BNOR, OPR_BNOT, OPR_BXOR, OPR_CALL, OPR_CAND, OPR_CEIL, OPR_CIOR, OPR_COMMA, OPR_COMPLEX, OPR_COMPOSE_BITS, OPR_CONST, OPR_CSELECT, OPR_CVT, OPR_CVTL, OPR_DIV, OPR_DIVREM, OPR_EQ, OPR_EVAL, OPR_EXTRACT_BITS, OPR_FLOOR, OPR_GE, OPR_GT, OPR_HIGHMPY, OPR_HIGHPART, OPR_ILOAD, OPR_IMAGPART, OPR_INTCONST, OPR_INTRINSIC_OP, OPR_LAND, OPR_LDA, OPR_LDID, OPR_LDMA, OPR_LE, OPR_LIOR, OPR_LNOT, OPR_LOWPART, OPR_LSHR, OPR_LT, OPR_MAX, OPR_MAXPART, OPR_MIN, OPR_MINMAX, OPR_MINPART, OPR_MLOAD, OPR_MOD, OPR_MPY, OPR_NE, OPR_NEG, OPR_PAREN, OPR_PARM, OPR_RCOMMA, OPR_REALPART, OPR_RECIP, OPR_REM, OPR_RND, OPR_RROTATE, OPR_RSQRT, OPR_SELECT, OPR_SHL, OPR_SQRT, OPR_SUB, OPR_TAS, OPR_TRUNC, Set_ST_addr_saved(), ST_class, ST_pt_to_unique_mem, WN_kid0(), WN_kid1(), WN_kid2(), WN_operator(), and WN_st().
Referenced by Create_TY_For_Tree(), Gen_Assign_Of_Init_Val(), WFE_Expand_Expr(), WFE_Expand_Return(), WFE_Lhs_Of_Modify_Expr(), WFE_Save_Expr(), and WFE_Set_ST_Addr_Saved().
| char* WFE_Tree_Node_Name | ( | tree | op | ) |
Definition at line 712 of file wfe_expr.cxx.
References Fail_FmtAssertion(), MTYPE_BS, MTYPE_byte_size, MTYPE_I4, MTYPE_is_m, MTYPE_is_void, and Mtype_TransferSize().
Referenced by expand_start_do_loop(), AGGINIT::Traverse_Aggregate_Struct(), WFE_Address_Of(), WFE_Expand_Expr(), WFE_Lhs_Of_Modify_Expr(), WFE_Save_Expr(), WGEN_Address_Of(), WGEN_Expand_Expr(), WGEN_Lhs_Of_Modify_Expr(), and WGEN_Save_Expr().
Definition at line 101 of file wfe_expr.cxx.
Referenced by WFE_Expand_Expr(), and WGEN_Expand_Expr().
| WFE_BIND_EXPR* wfe_bind_expr_stack = NULL |
Definition at line 863 of file wfe_expr.cxx.
Definition at line 864 of file wfe_expr.cxx.
Definition at line 865 of file wfe_expr.cxx.
| WFE_SAVE_EXPR* wfe_save_expr_stack = NULL |
Definition at line 908 of file wfe_expr.cxx.
Definition at line 909 of file wfe_expr.cxx.
Referenced by WFE_Finish_Function(), and WFE_Start_Function().
Definition at line 910 of file wfe_expr.cxx.
1.5.6