#include "config.h"#include "system.h"#include "coretypes.h"#include "tm.h"#include "errors.h"#include "ggc.h"#include "rtl.h"#include "tm_p.h"#include "hard-reg-set.h"#include "obstack.h"#include "basic-block.h"#include "tree.h"#include "diagnostic.h"#include "tree-flow.h"#include "tree-gimple.h"#include "tree-dump.h"#include "tree-pass.h"#include "timevar.h"#include "flags.h"

Go to the source code of this file.
| #define EXECUTE_IF_CONTROL_DEPENDENT | ( | N, | |||
| EDGE_NUMBER, | |||||
| CODE | ) |
Value:
{ \
bitmap_iterator bi; \
\
EXECUTE_IF_SET_IN_BITMAP (control_dependence_map[N], 0, EDGE_NUMBER, bi) \
{ \
CODE; \
} \
}
Definition at line 102 of file tree-ssa-dce.c.
| #define NECESSARY | ( | stmt | ) | stmt->common.asm_written_flag |
Definition at line 216 of file tree-ssa-dce.c.
Referenced by create_expression_by_pieces(), eliminate(), eliminate_unnecessary_stmts(), find_obviously_necessary_stmts(), insert_extra_phis(), insert_fake_stores(), insert_into_preds_of_block(), mark_operand_necessary(), mark_really_necessary_kill_operand_phis(), mark_stmt_necessary(), realify_fake_stores(), remove_dead_inserted_code(), and remove_dead_phis().
| static void clear_control_dependence_bitmap | ( | basic_block | bb | ) | [inline, static] |
Definition at line 148 of file tree-ssa-dce.c.
References bitmap_clear(), control_dependence_map, and basic_block_def::index.
Definition at line 707 of file tree-ssa-dce.c.
References bsi_end_p(), bsi_next(), bsi_start(), bsi_stmt(), call(), clear_special_calls(), dump_file, dump_flags, FOR_EACH_BB, fprintf(), get_call_expr_in(), i, NECESSARY, notice_special_calls(), remove_dead_phis(), remove_dead_stmt(), stats, and TDF_DETAILS.
Referenced by perform_tree_ssa_dce().
Definition at line 157 of file tree-ssa-dce.c.
References find_control_dependence(), i, and NUM_EDGES.
Definition at line 169 of file tree-ssa-dce.c.
References current_block, EDGE_ABNORMAL, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, find_pdom(), edge::flags, gcc_assert, INDEX_EDGE, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB, and set_control_dependence_map_bit().
Definition at line 465 of file tree-ssa-dce.c.
References bsi_end_p(), bsi_next(), bsi_start(), bsi_stmt(), edge::dest, EDGE_DFS_BACK, edge::flags, FOR_EACH_BB, FOR_EACH_EDGE, i, is_gimple_reg(), is_global_var(), mark_control_dependent_edges_necessary(), mark_stmt_if_obviously_necessary(), mark_stmt_necessary(), NECESSARY, NULL, PHI_CHAIN, phi_nodes(), PHI_RESULT, and SSA_NAME_VAR.
Referenced by perform_tree_ssa_dce().
| static basic_block find_pdom | ( | basic_block | block | ) | [inline, static] |
Definition at line 201 of file tree-ssa-dce.c.
References CDI_POST_DOMINATORS, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, gcc_assert, and get_immediate_dominator().
Definition at line 1007 of file tree-ssa-dce.c.
| static void mark_control_dependent_edges_necessary | ( | basic_block | bb, | |
| struct edge_list * | el | |||
| ) | [static] |
Definition at line 518 of file tree-ssa-dce.c.
References ENTRY_BLOCK_PTR, EXECUTE_IF_CONTROL_DEPENDENT, EXIT_BLOCK_PTR, gcc_assert, basic_block_def::index, INDEX_EDGE_PRED_BB, is_ctrl_stmt(), last_stmt(), mark_stmt_necessary(), SET_BIT, and TEST_BIT.
Referenced by find_obviously_necessary_stmts(), and propagate_necessity().
Definition at line 246 of file tree-ssa-dce.c.
References gcc_assert, IS_EMPTY_STMT, NECESSARY, SET_BIT, SSA_NAME_DEF_STMT, SSA_NAME_VERSION, TEST_BIT, TREE_CODE, VARRAY_PUSH_TREE, and worklist.
Referenced by mark_really_necessary_kill_operand_phis(), propagate_necessity(), and remove_dead_inserted_code().
Definition at line 649 of file tree-ssa-dce.c.
References bsi_end_p(), bsi_last(), bsi_prev(), bsi_stmt(), FOR_EACH_BB, FOR_EACH_SSA_USE_OPERAND, i, is_gimple_reg(), iter, mark_operand_necessary(), NECESSARY, PHI_ARG_DEF, PHI_CHAIN, phi_nodes(), PHI_NUM_ARGS, PHI_RESULT, SSA_OP_VIRTUAL_KILLS, SSA_OP_VIRTUAL_USES, USE_FROM_PTR, use_operand_p, VARRAY_ACTIVE_SIZE, VARRAY_POP, VARRAY_TOP_TREE, and worklist.
Referenced by perform_tree_ssa_dce().
Definition at line 278 of file tree-ssa-dce.c.
References bb_for_stmt(), DECL_P, EDGE_COUNT, flag_non_call_exceptions, FOR_EACH_SSA_TREE_OPERAND, gcc_assert, gcc_unreachable, get_base_address(), get_call_expr_in(), get_stmt_operands(), INDIRECT_REF_P, is_ctrl_altering_stmt(), is_global_var(), iter, mark_stmt_necessary(), NULL_TREE, NUM_V_MAY_DEFS, NUM_V_MUST_DEFS, pi, ptr, REFERENCE_CLASS_P, simple_goto_p(), SSA_NAME_PTR_INFO, SSA_NAME_VAR, SSA_OP_DEF, stmt_ann(), TREE_CODE, tree_could_throw_p(), TREE_OPERAND, TREE_SIDE_EFFECTS, V_MAY_DEF_OPS, V_MUST_DEF_OPS, and var_ann().
Referenced by find_obviously_necessary_stmts().
Definition at line 221 of file tree-ssa-dce.c.
References DECL_P, dump_file, dump_flags, error_mark_node, fprintf(), gcc_assert, NECESSARY, print_generic_stmt(), TDF_DETAILS, TDF_SLIM, VARRAY_PUSH_TREE, and worklist.
Referenced by find_obviously_necessary_stmts(), mark_control_dependent_edges_necessary(), and mark_stmt_if_obviously_necessary().
Definition at line 953 of file tree-ssa-dce.c.
References calculate_dominance_info(), CDI_POST_DOMINATORS, create_edge_list(), dump_file, eliminate_unnecessary_stmts(), find_all_control_dependences(), find_obviously_necessary_stmts(), free_dominance_info(), free_edge_list(), last_basic_block, mark_dfs_back_edges(), mark_really_necessary_kill_operand_phis(), NULL, print_stats(), propagate_necessity(), sbitmap_alloc(), sbitmap_zero(), timevar_pop, timevar_push, tree_dce_done(), and tree_dce_init().
Referenced by tree_ssa_cd_dce(), tree_ssa_dce(), and tree_ssa_dce_loop().
Definition at line 872 of file tree-ssa-dce.c.
References dump_file, dump_flags, float, fprintf(), stats, TDF_DETAILS, and TDF_STATS.
Referenced by perform_tree_ssa_dce().
Definition at line 549 of file tree-ssa-dce.c.
References bb_for_stmt(), dump_file, dump_flags, ENTRY_BLOCK_PTR, FOR_EACH_SSA_TREE_OPERAND, fprintf(), get_stmt_operands(), i, basic_block_def::index, iter, mark_control_dependent_edges_necessary(), mark_operand_necessary(), PHI_ARG_DEF, PHI_ARG_EDGE, PHI_NUM_ARGS, print_generic_stmt(), SET_BIT, SSA_NAME, SSA_OP_ALL_USES, TDF_DETAILS, TDF_SLIM, TEST_BIT, TREE_CODE, VARRAY_ACTIVE_SIZE, VARRAY_POP, VARRAY_TOP_TREE, and worklist.
Referenced by perform_tree_ssa_dce().
| static void remove_dead_phis | ( | basic_block | bb | ) | [static] |
Definition at line 748 of file tree-ssa-dce.c.
References dump_file, dump_flags, fprintf(), NECESSARY, next, NULL_TREE, PHI_CHAIN, phi_nodes(), prev, print_generic_stmt(), remove_phi_node(), stats, TDF_DETAILS, and TDF_SLIM.
Referenced by eliminate_unnecessary_stmts().
| static void remove_dead_stmt | ( | block_stmt_iterator * | i, | |
| basic_block | bb | |||
| ) | [static] |
Definition at line 785 of file tree-ssa-dce.c.
References bitmap_set_bit(), bsi_next(), bsi_remove(), bsi_stmt(), CDI_POST_DOMINATORS, basic_block_def::count, DEF_FROM_PTR, def_operand_p, dom_computed, DOM_OK, dump_file, dump_flags, EDGE_COUNT, EDGE_FALLTHRU, EDGE_FALSE_VALUE, EDGE_SUCC, EDGE_TRUE_VALUE, EXIT_BLOCK_PTR, FOR_EACH_SSA_DEF_OPERAND, fprintf(), gcc_assert, get_immediate_dominator(), is_ctrl_stmt(), iter, NULL, PENDING_STMT, phi_nodes(), print_generic_stmt(), redirect_edge_and_branch(), REG_BR_PROB_BASE, release_defs(), remove_edge(), SSA_NAME_VAR, SSA_OP_VIRTUAL_DEFS, SSA_OP_VIRTUAL_KILLS, stats, TDF_DETAILS, TDF_SLIM, var_ann(), and vars_to_rename.
Referenced by eliminate_unnecessary_stmts().
| static void set_control_dependence_map_bit | ( | basic_block | bb, | |
| int | edge_index | |||
| ) | [inline, static] |
Definition at line 138 of file tree-ssa-dce.c.
References bitmap_set_bit(), control_dependence_map, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, gcc_assert, and basic_block_def::index.
Referenced by find_control_dependence().
Definition at line 921 of file tree-ssa-dce.c.
References BITMAP_FREE, control_dependence_map, free(), i, last_basic_block, and sbitmap_free.
Referenced by perform_tree_ssa_dce().
Definition at line 895 of file tree-ssa-dce.c.
References BITMAP_ALLOC, control_dependence_map, i, last_basic_block, memset, NULL, num_ssa_names, sbitmap_alloc(), sbitmap_zero(), stats, VARRAY_TREE_INIT, worklist, and xmalloc().
Referenced by perform_tree_ssa_dce().
Definition at line 94 of file tree-ssa-dce.c.
Referenced by clear_control_dependence_bitmap(), set_control_dependence_map_bit(), tree_dce_done(), and tree_dce_init().
sbitmap last_stmt_necessary [static] |
Definition at line 85 of file tree-ssa-dce.c.
Initial value:
{
"cddce",
gate_dce,
tree_ssa_cd_dce,
NULL,
NULL,
0,
TV_TREE_CD_DCE,
PROP_cfg | PROP_ssa | PROP_alias,
0,
0,
0,
TODO_dump_func | TODO_fix_def_def_chains | TODO_cleanup_cfg | TODO_ggc_collect | TODO_verify_ssa | TODO_verify_flow,
0
}
Definition at line 1029 of file tree-ssa-dce.c.
Initial value:
{
"dce",
gate_dce,
tree_ssa_dce,
NULL,
NULL,
0,
TV_TREE_DCE,
PROP_cfg | PROP_ssa | PROP_alias,
0,
0,
0,
TODO_dump_func | TODO_fix_def_def_chains | TODO_cleanup_cfg | TODO_ggc_collect | TODO_verify_ssa,
0
}
Definition at line 1012 of file tree-ssa-dce.c.
Definition at line 81 of file tree-ssa-dce.c.
Referenced by butterfly_loop_with_profile(), LINEX::Map_access_vector(), Slack::Relax_Precedence(), and spill_coalprop().
struct stmt_stats stats [static] |
Definition at line 98 of file tree-ssa-dce.c.
varray_type worklist [static] |
Definition at line 77 of file tree-ssa-dce.c.
Referenced by VALNUM_FRE::_check_cr_compatible(), VALNUM_FRE::_expression_redundancy_elimination(), VALNUM_FRE::_insert_a_cr_occurrence(), VALNUM_FRE::_remove_ivc_incr_occurs(), ETABLE::Append_real_occurrence(), augment_live_range(), ETABLE::Bottom_up_cr(), cleanup_forwarder_blocks(), compute_antic_aux(), compute_antinout_edge(), compute_avail(), compute_available(), compute_global_livein(), compute_iterated_dominance_frontiers(), compute_laterin(), compute_nearerout(), EXP_WORKLST::Determine_live_phi(), find_unreachable_blocks(), ETABLE::Get_worklst(), EXP_WORKLST::Insert_exp_phi(), ETABLE::Insert_real_occurrence(), iterative_dataflow_bitmap(), iterative_dataflow_sbitmap(), EXP_OCCURS::Load_use_cr(), mark_operand_necessary(), mark_really_necessary_kill_operand_phis(), mark_references(), mark_stmt_necessary(), merge_phi_nodes(), VALNUM_FRE::move_rhs_occurs(), SSA::Place_phi_node(), EXP_WORKLST::Propagate_downsafe(), propagate_necessity(), prune_unused_phi_nodes(), remove_dead_inserted_code(), ETABLE::Remove_real_occurrence(), VALNUM_FRE::replace_cr_in_stmt(), ETABLE::Replace_occurs(), ssa_fast_dce(), tree_dce_done(), tree_dce_init(), vect_mark_stmts_to_be_vectorized(), vt_find_locations(), and walk_dominator_tree().
1.5.6