#include "config.h"#include "system.h"#include "coretypes.h"#include "tm.h"#include "tree.h"#include "flags.h"#include "rtl.h"#include "tm_p.h"#include "ggc.h"#include "basic-block.h"#include "output.h"#include "expr.h"#include "function.h"#include "diagnostic.h"#include "timevar.h"#include "tree-dump.h"#include "tree-flow.h"#include "tree-pass.h"#include "tree-ssa-propagate.h"#include "langhooks.h"#include "varray.h"#include "vec.h"#include "gt-tree-ssa-propagate.h"

Go to the source code of this file.
Definition at line 127 of file tree-ssa-propagate.c.
Definition at line 262 of file tree-ssa-propagate.c.
References cfg_blocks_add(), edge::dest, dump_file, dump_flags, EDGE_EXECUTABLE, EXIT_BLOCK_PTR, edge::flags, fprintf(), basic_block_def::index, edge::src, TDF_DETAILS, and TEST_BIT.
Definition at line 237 of file tree-ssa-propagate.c.
References DONT_SIMULATE_AGAIN, FOR_EACH_IMM_USE_FAST, iter, STMT_IN_SSA_EDGE_WORKLIST, use_operand_p, USE_STMT, and VEC_safe_push.
| static void cfg_blocks_add | ( | basic_block | bb | ) | [static] |
Definition at line 177 of file tree-ssa-propagate.c.
References ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, gcc_assert, basic_block_def::index, SET_BIT, TEST_BIT, VEC_length, VEC_replace, and VEC_safe_grow.
| static basic_block cfg_blocks_get | ( | void | ) | [static] |
Definition at line 214 of file tree-ssa-propagate.c.
References gcc_assert, basic_block_def::index, RESET_BIT, VEC_index, and VEC_length.
Definition at line 702 of file tree-ssa-propagate.c.
References FOR_EACH_SSA_TREE_OPERAND, gcc_unreachable, iter, and SSA_OP_VIRTUAL_DEFS.
Referenced by copy_prop_visit_assignment(), and visit_assignment().
Definition at line 1036 of file tree-ssa-propagate.c.
References COMPARISON_CLASS_P, COND_EXPR_COND, dump_file, fold_convert(), fprintf(), NULL, prop_stats_d::num_pred_folded, print_generic_expr(), prop_stats, TREE_CODE, TREE_OPERAND, TREE_TYPE, val, and vrp_evaluate_conditional().
Referenced by substitute_and_fold().
Definition at line 526 of file tree-ssa-propagate.c.
References COND_EXPR_COND, GOTO_DESTINATION, LABEL_EXPR_LABEL, SWITCH_COND, TREE_CODE, and TREE_OPERAND.
| prop_value_t* get_value_loaded_by | ( | tree | stmt, | |
| prop_value_t * | values | |||
| ) |
Definition at line 770 of file tree-ssa-propagate.c.
References FOR_EACH_SSA_TREE_OPERAND, i, NULL, SSA_NAME_VERSION, SSA_OP_VIRTUAL_USES, val, and prop_value_d::value.
Referenced by ccp_fold(), copy_prop_visit_stmt(), replace_vuses_in(), and visit_assignment().
Definition at line 349 of file tree-ssa-propagate.c.
References bb_for_stmt(), dump_file, dump_flags, fprintf(), basic_block_def::index, print_generic_stmt(), simulate_stmt(), STMT_IN_SSA_EDGE_WORKLIST, TDF_DETAILS, TEST_BIT, TREE_CODE, VEC_length, and VEC_pop.
| static void replace_phi_args_in | ( | tree | phi, | |
| prop_value_t * | prop_value | |||
| ) | [static] |
Definition at line 983 of file tree-ssa-propagate.c.
References dump_file, dump_flags, EDGE_ABNORMAL, flags, fprintf(), i, may_propagate_copy(), NULL, prop_stats_d::num_const_prop, prop_stats_d::num_copy_prop, PHI_ARG_DEF, PHI_ARG_DEF_PTR, PHI_ARG_EDGE, PHI_NUM_ARGS, print_generic_stmt(), prop_stats, propagate_value(), SSA_NAME, SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_VERSION, TDF_DETAILS, TDF_SLIM, TREE_CODE, unshare_expr(), val, and prop_value_d::value.
Referenced by substitute_and_fold().
| bool replace_uses_in | ( | tree | stmt, | |
| bool * | replaced_addresses_p, | |||
| prop_value_t * | prop_value | |||
| ) |
Definition at line 805 of file tree-ssa-propagate.c.
References FOR_EACH_SSA_USE_OPERAND, iter, may_propagate_copy(), may_propagate_copy_into_asm(), NULL_TREE, prop_stats_d::num_const_prop, prop_stats_d::num_copy_prop, POINTER_TYPE_P, prop_stats, propagate_value(), SSA_NAME, SSA_NAME_VERSION, SSA_OP_USE, TREE_CODE, TREE_TYPE, USE_FROM_PTR, use_operand_p, val, and prop_value_d::value.
| static bool replace_vuses_in | ( | tree | stmt, | |
| bool * | replaced_addresses_p, | |||
| prop_value_t * | prop_value | |||
| ) | [static] |
Definition at line 905 of file tree-ssa-propagate.c.
References FOR_EACH_SSA_USE_OPERAND, get_value_loaded_by(), is_gimple_min_invariant(), is_gimple_reg(), iter, prop_value_d::mem_ref, NULL_TREE, prop_stats_d::num_const_prop, prop_stats_d::num_copy_prop, POINTER_TYPE_P, prop_stats, propagate_value(), simple_cst_equal(), SSA_NAME, SSA_NAME_VERSION, SSA_OP_VIRTUAL_USES, stmt_makes_single_load(), TREE_CODE, TREE_OPERAND, TREE_TYPE, USE_FROM_PTR, use_operand_p, val, and prop_value_d::value.
Referenced by substitute_and_fold().
Definition at line 565 of file tree-ssa-propagate.c.
References build_empty_stmt(), COND_EXPR_COND, EXPR_HAS_LOCATION, EXPR_LOCATION, EXPR_P, FOR_EACH_SSA_TREE_OPERAND, GOTO_DESTINATION, in_ssa_p, is_gimple_condexpr(), is_gimple_val(), iter, LABEL_EXPR_LABEL, SET_EXPR_LOCATION, SSA_NAME, SSA_NAME_DEF_STMT, SSA_OP_ALL_DEFS, stmt_ann(), SWITCH_COND, tcc_binary, tcc_unary, TREE_CODE, TREE_CODE_CLASS, TREE_OPERAND, and TREE_SIDE_EFFECTS.
| static void simulate_block | ( | basic_block | block | ) | [static] |
Definition at line 389 of file tree-ssa-propagate.c.
References add_control_edge(), bsi_end_p(), bsi_next(), bsi_start(), bsi_stmt(), dump_file, dump_flags, EDGE_ABNORMAL, EXIT_BLOCK_PTR, edge::flags, FOR_EACH_EDGE, fprintf(), basic_block_def::index, NULL, PHI_CHAIN, phi_nodes(), SET_BIT, simulate_stmt(), STMT_IN_SSA_EDGE_WORKLIST, TDF_DETAILS, and TEST_BIT.
Definition at line 289 of file tree-ssa-propagate.c.
References add_control_edge(), add_ssa_edge(), bb_for_stmt(), DONT_SIMULATE_AGAIN, FOR_EACH_EDGE, NULL, NULL_TREE, PHI_RESULT, SSA_PROP_INTERESTING, SSA_PROP_NOT_INTERESTING, SSA_PROP_VARYING, ssa_prop_visit_phi, ssa_prop_visit_stmt, stmt_ends_bb_p(), TREE_CODE, and val.
Definition at line 461 of file tree-ssa-propagate.c.
References add_control_edge(), bsi_end_p(), bsi_next(), bsi_start(), bsi_stmt(), dump_file, dump_flags, dump_immediate_uses(), EDGE_EXECUTABLE, ENTRY_BLOCK_PTR, edge::flags, FOR_ALL_BB, FOR_EACH_EDGE, i, last_basic_block, NULL_TREE, num_ssa_names, sbitmap_alloc(), sbitmap_zero(), si, ssa_name, SSA_NAME_VALUE, STMT_IN_SSA_EDGE_WORKLIST, TDF_DETAILS, VEC_alloc, and VEC_safe_grow.
| void ssa_propagate | ( | ssa_prop_visit_stmt_fn | visit_stmt, | |
| ssa_prop_visit_phi_fn | visit_phi | |||
| ) |
Definition at line 667 of file tree-ssa-propagate.c.
References cfg_blocks_get(), process_ssa_edge_worklist(), simulate_block(), ssa_prop_fini(), ssa_prop_init(), ssa_prop_visit_phi, ssa_prop_visit_stmt, and VEC_length.
Definition at line 721 of file tree-ssa-propagate.c.
References DECL_P, REFERENCE_CLASS_P, SSA_OP_VMAYDEF, SSA_OP_VUSE, STRIP_NOPS, TREE_CODE, TREE_OPERAND, TREE_THIS_VOLATILE, and ZERO_SSA_OPERANDS.
Referenced by ccp_fold(), copy_prop_visit_stmt(), replace_vuses_in(), and visit_assignment().
Definition at line 746 of file tree-ssa-propagate.c.
References DECL_P, REFERENCE_CLASS_P, SSA_OP_VMAYDEF, SSA_OP_VMUSTDEF, STRIP_NOPS, TREE_CODE, TREE_OPERAND, TREE_THIS_VOLATILE, and ZERO_SSA_OPERANDS.
Referenced by copy_prop_visit_assignment(), and visit_assignment().
| void substitute_and_fold | ( | prop_value_t * | prop_value, | |
| bool | use_ranges_p | |||
| ) |
Definition at line 1090 of file tree-ssa-propagate.c.
References bsi_end_p(), bsi_next(), bsi_start(), bsi_stmt(), bsi_stmt_ptr(), dump_file, dump_flags, fold_predicate_in(), fold_stmt(), FOR_EACH_BB, fprintf(), get_rhs(), i, mark_new_vars_to_rename(), maybe_clean_or_replace_eh_stmt(), memset, NULL, prop_stats_d::num_const_prop, prop_stats_d::num_copy_prop, prop_stats_d::num_pred_folded, PHI_CHAIN, phi_nodes(), print_generic_stmt(), prop_stats, recompute_tree_invariant_for_addr_expr(), replace_phi_args_in(), replace_uses_in(), replace_vuses_in(), simplify_stmt_using_ranges(), TDF_DETAILS, TDF_SLIM, TDF_STATS, TREE_CODE, TREE_OPERAND, tree_purge_dead_eh_edges(), and unshare_expr().
| static VEC | ( | basic_block | , | |
| heap | ||||
| ) | [static] |
Definition at line 133 of file tree-ssa-propagate.c.
sbitmap executable_blocks [static] |
Definition at line 130 of file tree-ssa-propagate.c.
struct prop_stats_d prop_stats [static] |
Definition at line 797 of file tree-ssa-propagate.c.
Referenced by fold_predicate_in(), replace_phi_args_in(), replace_uses_in(), replace_vuses_in(), and substitute_and_fold().
ssa_prop_visit_phi_fn ssa_prop_visit_phi [static] |
Definition at line 119 of file tree-ssa-propagate.c.
Definition at line 118 of file tree-ssa-propagate.c.
1.5.6