
Go to the source code of this file.
Functions/Subroutines | |
| INT | EBO_Copy_Operand (OP *op) |
| BOOL | delete_duplicate_op (OP *op, EBO_TN_INFO **opnd_tninfo, EBO_OP_INFO *opinfo) |
| BOOL | combine_adjacent_loads (OP *op, EBO_TN_INFO **opnd_tninfo, EBO_OP_INFO *opinfo, INT64 pred_offset, INT64 succ_offset) |
| BOOL | delete_subset_mem_op (OP *op, EBO_TN_INFO **opnd_tninfo, EBO_OP_INFO *opinfo, INT64 pred_offset, INT64 succ_offset) |
| BOOL | delete_reload_across_dependency (OP *op, EBO_TN_INFO **opnd_tninfo, EBO_OP_INFO *opinfo, EBO_OP_INFO *intervening_opinfo) |
| BOOL | Resolve_Conditional_Branch (OP *op, TN **opnd_tn) |
| BOOL | Fold_Constant_Expression (OP *op, TN **opnd_tn, EBO_TN_INFO **opnd_tninfo) |
| BOOL | Constant_Operand0 (OP *op, TN **opnd_tn, EBO_TN_INFO **opnd_tninfo) |
| BOOL | Constant_Operand1 (OP *op, TN **opnd_tn, EBO_TN_INFO **opnd_tninfo) |
| BOOL | Special_Sequence (OP *op, TN **opnd_tn, EBO_TN_INFO **opnd_tninfo) |
| BOOL | EBO_Can_Merge_Into_Offset (OP *op) |
| BOOL combine_adjacent_loads | ( | OP * | op, | |
| EBO_TN_INFO ** | opnd_tninfo, | |||
| EBO_OP_INFO * | opinfo, | |||
| INT64 | pred_offset, | |||
| INT64 | succ_offset | |||
| ) |
Definition at line 864 of file ebo_special.cxx.
References local_op_info::actual_opnd, local_op_info::actual_rslt, BB_id, BB_Insert_Ops(), Build_OP(), CGTARG_Is_OP_Check_Load(), CGTARG_Is_OP_Speculative(), CGTARG_Mem_Ref_Bytes(), Copy_WN_For_Memory_OP(), EBO_in_loop, EBO_in_peep, EBO_Set_OP_omega(), EBO_tn_available(), EBO_Trace_Data_Flow, EBO_Trace_Optimization, EBO_trace_pfx, FALSE, fprintf(), has_assigned_reg, local_op_info::in_bb, local_op_info::in_op, INT, NULL, OP_bb, OP_Change_To_Noop(), OP_code, OP_load, OP_opnd, OP_PREDICATE_OPND, OP_result, OP_results, OP_srcpos, opcode, OPS_EMPTY, OPS_first, Opt_Level, Print_OP_No_SrcLine(), local_tn_info::reference_count, remove_op(), TFile, TN_Is_Constant, TN_register, TN_register_class, TOP, and TRUE.
Referenced by find_duplicate_mem_op().
| BOOL Constant_Operand0 | ( | OP * | op, | |
| TN ** | opnd_tn, | |||
| EBO_TN_INFO ** | opnd_tninfo | |||
| ) |
Definition at line 2199 of file ebo_special.cxx.
References local_op_info::actual_opnd, local_op_info::actual_rslt, Base_Symbol_And_Offset(), BB_id, BB_Insert_Op_After(), BB_Insert_Ops(), BOOL, Build_OP(), CGTARG_Mem_Ref_Bytes(), const_val, Convert_Imm_Add(), Copy_WN_For_Memory_OP(), Dup_OP(), Dup_TN_Even_If_Dedicated(), EBO_bit_length(), EBO_Exp_COPY(), EBO_in_loop, EBO_in_peep, EBO_in_pre, EBO_OPS_omega(), EBO_OPS_predicate(), EBO_Set_OP_omega(), EBO_tn_available(), EBO_Trace_Data_Flow, EBO_Trace_Execution, EBO_Trace_Optimization, EBO_trace_pfx, Expand_Immediate(), Expand_Special_And_Immed(), FALSE, find_opinfo_entry(), FmtAssert, FOne_TN, fprintf(), FZero_TN, Gen_Literal_TN(), Gen_Symbol_TN(), has_assigned_reg, i, IEEE_Arithmetic, IEEE_INEXACT, Immediate_Compare(), local_op_info::in_bb, local_tn_info::in_op, local_op_info::in_op, INT, INT32, INT64, Is_True, local_tn_info::local_tn, locate_opinfo_entry(), Mk_OP(), Normalize_Immediate(), NULL, OP_bb, OP_Change_To_Noop(), OP_code, OP_has_predicate, OP_has_result, OP_iadd, OP_iand, OP_icmp, OP_ior, OP_load, OP_MAX_FIXED_OPNDS, OP_memory, OP_opnd, OP_opnds, OP_PREDICATE_OPND, OP_PREDICATED_DEF, OP_prev, OP_result, OP_results, OP_speculative, OP_srcpos, op_start, OP_store, opcode, OPS_Append_Op(), OPS_EMPTY, OPS_first, OPS_last, local_op_info::optimal_opnd, Print_TN(), local_tn_info::reference_count, rel, remove_op(), local_tn_info::replacement_tn, local_tn_info::replacement_tninfo, s, SCLASS_AUTO, SCLASS_FORMAL, Set_OP_cond_def_kind, Set_OP_opnd, ST_on_stack(), ST_sclass, TFile, TN_Is_Constant, TN_is_fpu_int, TN_is_symbol, TN_offset, TN_register_class, tn_registers_identical(), TN_relocs, TN_size, TN_Value, TN_value, TN_var, TNs_Are_Equivalent(), TOP, TRUE, True_TN, UINT, UINT64, and Zero_TN.
Referenced by Find_BB_TNs(), and Fold_Constant_Expression().
| BOOL Constant_Operand1 | ( | OP * | op, | |
| TN ** | opnd_tn, | |||
| EBO_TN_INFO ** | opnd_tninfo | |||
| ) |
Definition at line 3164 of file ebo_special.cxx.
References local_op_info::actual_opnd, BB_id, BB_Insert_Op_After(), BB_Insert_Ops(), Build_OP(), const_val, Convert_Imm_Add(), Convert_Imm_And(), Convert_Imm_Cmp(), Convert_Imm_Mul(), Convert_Imm_Or(), Convert_Imm_Xor(), EBO_Exp_COPY(), EBO_in_loop, EBO_OPS_omega(), EBO_Set_OP_omega(), EBO_tn_available(), EBO_Trace_Data_Flow, EBO_Trace_Execution, EBO_Trace_Optimization, EBO_trace_pfx, Expand_Special_And_Immed(), FALSE, FmtAssert, FOne_TN, fprintf(), FZero_TN, Gen_Literal_TN(), i, IEEE_Arithmetic, IEEE_INEXACT, Immediate_Compare(), local_tn_info::in_op, INT, INT64, locate_opinfo_entry(), Mk_OP(), NULL, OP_bb, OP_code, OP_find_opnd_use, OP_has_predicate, OP_has_result, OP_iadd, OP_iand, OP_icmp, OP_imul, OP_ior, OP_isub, OP_ixor, OP_load, OP_opnd, OP_opnds, OP_PREDICATE_OPND, OP_result, OP_results, OP_srcpos, opcode, OPS_EMPTY, OPS_first, Print_TN(), Reverse_Compare(), s, Set_OP_opnd, TFile, TN_is_constant, TN_Is_Constant, TN_is_fpu_int, TN_is_symbol, TN_register_class, TN_size, TN_Value, TN_value, TOP, TRUE, UINT, UINT64, and Zero_TN.
Referenced by Find_BB_TNs().
| BOOL delete_duplicate_op | ( | OP * | op, | |
| EBO_TN_INFO ** | opnd_tninfo, | |||
| EBO_OP_INFO * | opinfo | |||
| ) |
Definition at line 1933 of file ebo_special.cxx.
References local_op_info::actual_opnd, BB_id, BB_Insert_Ops(), Build_OP(), condition_redundant(), delete_memory_op(), EBO_Exp_COPY(), EBO_in_loop, EBO_OPS_omega(), EBO_predicate_complements(), EBO_predicate_dominates(), EBO_Trace_Data_Flow, EBO_trace_pfx, FALSE, fprintf(), hoist_predicate_of_duplicate_complement(), local_op_info::in_bb, local_op_info::in_op, INT, NULL, OP_bb, OP_code, OP_has_predicate, OP_memory, OP_opnd, OP_PREDICATE_OPND, OP_result, OP_results, OP_srcpos, OP_store, OPS_EMPTY, OPS_last, Opt_Level, Print_OP_No_SrcLine(), TFile, TN_register_class, TRUE, True_TN, and Zero_TN.
Referenced by find_duplicate_mem_op(), find_duplicate_op(), and find_previous_constant().
| BOOL delete_reload_across_dependency | ( | OP * | op, | |
| EBO_TN_INFO ** | opnd_tninfo, | |||
| EBO_OP_INFO * | opinfo, | |||
| EBO_OP_INFO * | intervening_opinfo | |||
| ) |
Definition at line 1367 of file ebo_special.cxx.
References local_op_info::actual_opnd, BB_Insert_Ops(), Build_OP(), CGTARG_Is_OP_Check_Load(), CGTARG_Is_OP_Speculative(), CGTARG_Mem_Ref_Bytes(), Dup_TN_Even_If_Dedicated(), EBO_Exp_COPY(), EBO_in_loop, EBO_in_peep, EBO_tn_available(), EBO_Trace_Data_Flow, EBO_Trace_Execution, EBO_Trace_Optimization, EBO_trace_pfx, FALSE, fprintf(), Gen_Literal_TN(), local_op_info::in_op, INT, Is_True, NULL, OP_bb, OP_code, OP_find_opnd_use, OP_has_predicate, OP_load, OP_opnd, OP_PREDICATE_OPND, OP_PREDICATED_DEF, OP_prefetch, OP_result, OP_results, OP_srcpos, OP_store, OP_unalign_mem, OPS_Append_Ops(), OPS_EMPTY, OPS_Init(), OPS_last, Print_OP_No_SrcLine(), Set_OP_cond_def_kind, TFile, TN_Is_Constant, TN_register_class, TNs_Are_Equivalent(), TOP, TRUE, and True_TN.
Referenced by find_duplicate_mem_op().
| BOOL delete_subset_mem_op | ( | OP * | op, | |
| EBO_TN_INFO ** | opnd_tninfo, | |||
| EBO_OP_INFO * | opinfo, | |||
| INT64 | pred_offset, | |||
| INT64 | succ_offset | |||
| ) |
Definition at line 1233 of file ebo_special.cxx.
References BB_id, BB_Insert_Ops(), BB_Insert_Ops_After(), BOOL, Build_OP(), CGTARG_Is_OP_Check_Load(), CGTARG_Is_OP_Speculative(), CGTARG_Mem_Ref_Bytes(), EBO_Exp_COPY(), EBO_in_loop, EBO_in_peep, EBO_OPS_omega(), EBO_Set_OP_omega(), EBO_Trace_Data_Flow, EBO_Trace_Optimization, EBO_trace_pfx, Exp_COPY(), Exp_COPY_Ext(), Expand_Extract_Bits(), FALSE, FmtAssert, fprintf(), Gen_Literal_TN(), Get_Size_Ext_Info(), has_assigned_reg, local_op_info::in_bb, local_op_info::in_op, INT, Is_Target_32bit, MTYPE_I1, MTYPE_I2, MTYPE_I4, MTYPE_I8, MTYPE_U1, MTYPE_U2, MTYPE_U4, MTYPE_U8, MTYPE_UNKNOWN, NULL, OP_bb, OP_code, OP_find_opnd_use, OP_has_predicate, OP_load, OP_next, OP_opnd, OP_opnds, OP_PREDICATE_OPND, OP_result, OP_results, OP_srcpos, OP_store, OPS_EMPTY, OPS_first, Opt_Level, Print_OP_No_SrcLine(), REGISTER_SET_MemberP(), REGISTER_SUBCLASS_members, regs, SIZE_EXT_INFO::sign_ext, Target_Byte_Sex, TFile, TN_Is_Constant, TN_register, TN_register_class, top, TOP, TRUE, TYPE_ID, and Zero_TN.
Referenced by delete_memory_op(), and find_duplicate_mem_op().
Definition at line 144 of file ebo_special.cxx.
References BB_entry_sp_adj_op(), BB_exit_sp_adj_op(), FALSE, MTYPE_is_size_double, OP_bb, OP_code, OP_iadd, OP_ior, OP_isub, OP_opnd, Pointer_Mtype, TN_Is_Constant, TN_size, top, TOP, and TRUE.
Referenced by find_index_and_offset(), and merge_memory_offsets().
Definition at line 4377 of file ebo_special.cxx.
References CGTARG_Copy_Operand(), CLASS_AND_REG_zero, INT, OP_code, OP_copy, OP_COPY_OPND, OP_iadd, OP_iand, OP_ior, OP_ixor, OP_opnd, OP_PREDICATE_OPND, opcode, opnd, TN_has_value, TN_is_register, TN_register_and_class, TN_value, TOP, True_TN, and Zero_TN.
Referenced by copy_operand(), copy_simplification(), EBO_Identify_Base_and_Offset(), hoist_predicate_of_duplicate_complement(), and OP_effectively_copy().
| BOOL Fold_Constant_Expression | ( | OP * | op, | |
| TN ** | opnd_tn, | |||
| EBO_TN_INFO ** | opnd_tninfo | |||
| ) |
Definition at line 3751 of file ebo_special.cxx.
References BB_id, BB_Insert_Ops(), BOOL, Build_OP(), Constant_Operand0(), EBO_bit_length(), EBO_in_loop, EBO_OPS_omega(), EBO_OPS_predicate(), EBO_Trace_Execution, EBO_Trace_Optimization, EBO_trace_pfx, Expand_Immediate(), FALSE, FmtAssert, fprintf(), Gen_Literal_TN(), Gen_Symbol_TN(), Get_TN_Pair(), i, INT, INT32, INT64, length, NULL, OP_bb, OP_code, OP_glue, OP_has_predicate, OP_icmp, OP_isub, OP_next, OP_opnd, OP_opnds, OP_PREDICATE_OPND, OP_result, OP_result_is_signed(), OP_select, OP_srcpos, opcode, OPS_EMPTY, OPS_first, OPS_last, OPS_length, Print_TN(), Set_OP_glue, SEXT_32, size, start, TFile, TN_is_symbol, TN_offset, TN_register_class, TN_relocs, TN_size, TN_Value, TN_value, TN_var, TNs_Are_Equivalent(), TOP, TOP_Is_Unconditional_Compare(), TRUE, True_TN, TRUNC_32, UINT, UINT64, and Zero_TN.
Referenced by condition_optimization(), and Find_BB_TNs().
Definition at line 3662 of file ebo_special.cxx.
References BB_id, BB_Insert_Ops(), BB_next, BB_succs, BBLIST_item, BBlist_Len(), BBLIST_next, BOOL, Build_OP(), Change_Succ_Prob(), DevWarn, EBO_Trace_Optimization, EBO_trace_pfx, FALSE, fprintf(), Gen_Enum_TN(), Home_Region(), i, INT, INT64, IPFEC_Enable_Region_Formation, Is_True, LOOP, OP_bb, OP_code, OP_has_predicate, OP_opnd, OP_opnds, OP_PREDICATE_OPND, OP_srcpos, OPS_EMPTY, OPS_first, Print_TN(), RGN_Unlink_Pred_Succ(), taken, TFile, TN_Is_Constant, TN_Value, top, TOP, TRUE, True_TN, UINT, UINT64, Unlink_Pred_Succ(), and Zero_TN.
Referenced by Find_BB_TNs().
| BOOL Special_Sequence | ( | OP * | op, | |
| TN ** | opnd_tn, | |||
| EBO_TN_INFO ** | opnd_tninfo | |||
| ) |
Definition at line 6833 of file ebo_special.cxx.
References op::bb, BB_Insert_Op_After(), BB_Insert_Ops(), BB_Insert_Ops_After(), BB_live_out, BOOL, CG_localize_tns, compare_bit(), condition_optimization(), copy_rf_sequence(), copy_simplification(), dec_ref_count, Dup_TN(), EBO_in_peep, EBO_Merge_Memory_Addr(), EBO_tn_available(), EBO_Trace_Data_Flow, EBO_Trace_Optimization, Expand_Immediate(), fadd_fmult(), FALSE, FmtAssert, fneg_sequence(), fprintf(), Gen_Literal_TN(), get_tn_info, GRA_LIVE_TN_Live_Outof_BB(), i, iadd_special_case(), local_tn_info::in_op, inc_ref_count, INT64, is_live_tn(), Is_True, Mk_OP(), move_ext_is_replaced(), op::next, next, NULL, OP_access_reg_bank, OP_bb, OP_Change_To_Noop(), OP_code, OP_effectively_copy(), OP_fadd, OP_fsub, OP_iadd, OP_icmp, OP_idiv, OP_next, OP_opnd, OP_opnds, OP_result, OP_srcpos, OP_store, opcode, op::opr, OPS_Append_Op(), OPS_EMPTY, OPS_first, OPS_last, Pred_Opnd_Avail(), Print_OP_No_SrcLine(), Print_OPS_No_SrcLines(), Print_TN(), Process_Group_Register_Reference(), REG_LIVE_Outof_BB(), remainder(), local_tn_info::sequence_num, set_op(), Set_OP_opnd, shift_op(), shl_add_sequence(), skip, store_sequence(), sxt_sequence(), test_is_replaced(), TFile, TN_has_value, TN_Is_Constant, TN_is_dedicated, TN_is_global_reg, TN_is_register, TN_is_symbol, TN_live_out_of(), TN_register, TN_register_class, TN_size, TN_value, TNs_Are_Equivalent(), top, TOP, TRUE, UINT, val, and Zero_TN.
Referenced by Find_BB_TNs().
1.5.6