|
GCC Middle and Back End API Reference
|

Go to the source code of this file.
Data Structures | |
| class | jt_state |
| class | jt_simplifier |
| class | hybrid_jt_state |
| class | hybrid_jt_simplifier |
| class | jump_threader |
Macros | |
| #define | SSA_NAME_VALUE(x) |
Functions | |
| void | propagate_threaded_block_debug_into (basic_block, basic_block) |
| bool | single_succ_to_potentially_threadable_block (basic_block) |
| bool | cond_on_phi_p (basic_block, gcond **, gphi **) |
| bool | phi_arg_from_cmp_p (gphi *, edge) |
| void | set_ssa_name_value (tree, tree) |
Variables | |
| vec< tree > | ssa_name_values |
| #define SSA_NAME_VALUE | ( | x | ) |
Referenced by cprop_into_successor_phis(), cprop_operand(), dom_valueize(), const_and_copies::pop_to_marker(), const_and_copies::record_const_or_copy(), const_and_copies::record_const_or_copy(), record_equality(), jt_state::register_equivs_stmt(), jump_threader::simplify_control_stmt_condition(), and threadedge_valueize().
|
extern |
Return true if BB contains only a conditional jump on a PHI defined in it, compared against 0 or 1: <bb 5>: # t_1 = PHI <t_9(3), t_6(4)> if (t_1 != 0) The conditional and the PHI are returned in *COND_OUT and *PHI_OUT.
References cond_on_phi_p(), dyn_cast(), gimple_bb(), gimple_cond_code(), gimple_cond_lhs(), gimple_cond_rhs(), integer_onep(), integer_zerop(), last_and_only_stmt(), NULL, safe_dyn_cast(), SSA_NAME_DEF_STMT, and TREE_CODE.
Referenced by cond_on_phi_p(), edge_forwards_cmp_to_conditional_jump_through_empty_bb_p(), and replicate_conds_over_phis().
Return true if PHI's incoming value on edge E is a single-use
comparison, possibly through a single-use conversion:
<bb 3>:
t_9 = a < b;
goto <bb 5>;
<bb 5>:
# t_1 = PHI <t_9(3), ...>
References CONVERT_EXPR_CODE_P, dyn_cast(), gimple_assign_rhs1(), gimple_assign_rhs_code(), has_single_use(), PHI_ARG_DEF_FROM_EDGE, phi_arg_from_cmp_p(), SSA_NAME_DEF_STMT, tcc_comparison, TREE_CODE, and TREE_CODE_CLASS.
Referenced by edge_forwards_cmp_to_conditional_jump_through_empty_bb_p(), phi_arg_from_cmp_p(), and replicate_conds_over_phis().
|
extern |
Copy debug stmts from DEST's chain of single predecessors up to SRC, so that we don't lose the bindings as PHI nodes are introduced when DEST gains new predecessors.
References hash_set< KeyId, Lazy, Traits >::add(), gcc_checking_assert, gcc_unreachable, gimple_copy(), gimple_debug_bind_get_var(), gimple_debug_bind_p(), gimple_debug_nonbind_marker_p(), gimple_debug_source_bind_get_var(), gimple_debug_source_bind_p(), gsi_after_labels(), gsi_end_p(), gsi_insert_before(), gsi_last_bb(), GSI_NEW_STMT, gsi_next(), gsi_prev(), gsi_stmt(), i, is_gimple_debug(), MAY_HAVE_DEBUG_BIND_STMTS, NULL, propagate_threaded_block_debug_into(), si, single_pred(), and single_pred_p().
Referenced by propagate_threaded_block_debug_into(), and jump_threader::thread_across_edge().
Set the value for the SSA name NAME to VALUE.
References drop_tree_overflow(), set_ssa_name_value(), ssa_name_values, SSA_NAME_VERSION, and TREE_OVERFLOW_P.
Referenced by const_and_copies::pop_to_marker(), const_and_copies::record_const_or_copy_raw(), record_equivalences_from_phis(), record_equivalences_from_stmt(), and set_ssa_name_value().
|
extern |
Return TRUE if BB has a single successor to a block with multiple incoming and outgoing edges.
References EDGE_COMPLEX, potentially_threadable_block(), single_succ(), single_succ_edge(), single_succ_p(), and single_succ_to_potentially_threadable_block().
Referenced by single_succ_to_potentially_threadable_block(), and jump_threader::thread_outgoing_edges().
Array to record value-handles per SSA_NAME.
Referenced by jump_threader::jump_threader(), set_ssa_name_value(), and jump_threader::~jump_threader().