#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 "langhooks.h"#include "hard-reg-set.h"#include "basic-block.h"#include "output.h"#include "errors.h"#include "expr.h"#include "function.h"#include "diagnostic.h"#include "bitmap.h"#include "tree-flow.h"#include "tree-gimple.h"#include "tree-inline.h"#include "varray.h"#include "timevar.h"#include "hashtab.h"#include "tree-dump.h"#include "tree-ssa-live.h"#include "tree-pass.h"

Go to the source code of this file.
Value:
do { \ unsigned x_; \ int y_; \ for (x_ = 0; x_ < VARRAY_ACTIVE_SIZE ((GRAPH)->edge_list); x_ += 2) \ { \ y_ = VARRAY_INT ((GRAPH)->edge_list, x_ + 1); \ if (y_ != (NODE)) \ continue; \ (VAR) = VARRAY_INT ((GRAPH)->edge_list, x_); \ CODE; \ } \ } while (0)
Definition at line 327 of file tree-outof-ssa.c.
Referenced by elim_backward(), elim_create(), and elim_unvisited_predecessor().
Value:
do { \ unsigned x_; \ int y_; \ for (x_ = 0; x_ < VARRAY_ACTIVE_SIZE ((GRAPH)->edge_list); x_ += 2) \ { \ y_ = VARRAY_INT ((GRAPH)->edge_list, x_); \ if (y_ != (NODE)) \ continue; \ (VAR) = VARRAY_INT ((GRAPH)->edge_list, x_ + 1); \ CODE; \ } \ } while (0)
Definition at line 308 of file tree-outof-ssa.c.
Referenced by elim_forward().
| #define SSANORM_COALESCE_PARTITIONS 0x4 |
Definition at line 54 of file tree-outof-ssa.c.
Referenced by coalesce_ssa_name(), and rewrite_out_of_ssa().
| #define SSANORM_COMBINE_TEMPS 0x2 |
Definition at line 53 of file tree-outof-ssa.c.
Referenced by coalesce_ssa_name(), remove_ssa_form(), and rewrite_out_of_ssa().
| #define SSANORM_PERFORM_TER 0x1 |
Definition at line 52 of file tree-outof-ssa.c.
Referenced by remove_ssa_form(), and rewrite_out_of_ssa().
Definition at line 1290 of file tree-outof-ssa.c.
Referenced by check_replaceable(), and kill_virtual_exprs().
| typedef struct _elim_graph * elim_graph |
| typedef struct temp_expr_table_d * temp_expr_table_p |
| typedef struct value_expr_d * value_expr_p |
| static void add_dependance | ( | temp_expr_table_p | tab, | |
| int | version, | |||
| tree | var | |||
| ) | [static] |
Definition at line 1484 of file tree-outof-ssa.c.
References add_info_to_list(), add_value_to_list(), bitmap_bit_p(), bitmap_set_bit(), gcc_assert, i, info, temp_expr_table_d::map, value_expr_d::next, NO_PARTITION, temp_expr_table_d::partition_dep_list, temp_expr_table_d::partition_in_use, temp_expr_table_d::pending_dependence, temp_expr_table_d::replaceable, SSA_NAME_VERSION, value_expr_d::value, var_to_partition(), temp_expr_table_d::version_info, and x.
Referenced by check_replaceable().
| static void add_info_to_list | ( | temp_expr_table_p | tab, | |
| value_expr_p * | list, | |||
| value_expr_p | info | |||
| ) | [inline, static] |
Definition at line 1446 of file tree-outof-ssa.c.
References find_value_in_list(), free_value_expr(), value_expr_d::next, NULL, and value_expr_d::value.
Referenced by add_dependance(), and add_dependence().
| static void add_value_to_list | ( | temp_expr_table_p | tab, | |
| value_expr_p * | list, | |||
| int | value | |||
| ) | [inline, static] |
Definition at line 1428 of file tree-outof-ssa.c.
References find_value_in_list(), info, new_value_expr(), value_expr_d::next, NULL, and value_expr_d::value.
Referenced by add_dependance(), add_dependence(), and check_replaceable().
| static bool analyze_edges_for_bb | ( | basic_block | bb, | |
| FILE * | debug_file | |||
| ) | [static] |
Definition at line 2107 of file tree-outof-ssa.c.
References BITMAP_ALLOC, bitmap_bit_p(), bitmap_clear(), bitmap_empty_p, bitmap_set_bit(), bsi_commit_one_edge_insert(), bsi_end_p(), bsi_insert_after(), bsi_last(), BSI_NEW_STMT, bsi_next(), bsi_start(), bsi_stmt(), count, DECL_NONLOCAL, edge::dest, EDGE_ABNORMAL, EDGE_FALLTHRU, edge::flags, FOR_EACH_EDGE, fprintf(), gcc_assert, identical_stmt_lists_p(), basic_block_def::index, make_forwarder_block(), NULL, NULL_TREE, PENDING_STMT, print_generic_stmt(), edge::src, TDF_VOPS, TREE_CODE, TREE_OPERAND, VARRAY_ACTIVE_SIZE, VARRAY_EDGE, VARRAY_EDGE_INIT, VARRAY_POP_ALL, VARRAY_PUSH_EDGE, VARRAY_PUSH_TREE, VARRAY_TREE, VARRAY_TREE_INIT, and x.
Referenced by perform_edge_inserts().
Definition at line 923 of file tree-outof-ssa.c.
References change_partition_var(), create_temp(), dump_file, dump_flags, fprintf(), i, num_var_partitions(), partition_to_var(), print_exprs(), print_generic_expr(), root_var(), root_var_delete(), root_var_first_partition(), root_var_init(), root_var_next_partition(), ROOT_VAR_NONE, root_var_num(), SSA_NAME, TDF_DETAILS, TDF_SLIM, TREE_CODE, var_ann(), var_to_partition(), and x.
Referenced by remove_ssa_form().
| static bool check_replaceable | ( | temp_expr_table_p | tab, | |
| tree | stmt | |||
| ) | [static] |
Definition at line 1523 of file tree-outof-ssa.c.
References add_dependance(), add_value_to_list(), bitmap_set_bit(), call_expr_flags(), DEF_OP, DEF_OPS, defs, ECF_CONST, ECF_NORETURN, ECF_PURE, flag_float_store, FLOAT_TYPE_P, FOR_EACH_SSA_TREE_OPERAND, get_call_expr_in(), iter, map, temp_expr_table_d::map, NULL_TREE, NUM_DEFS, NUM_USES, NUM_V_MAY_DEFS, NUM_V_MUST_DEFS, NUM_VUSES, temp_expr_table_d::partition_dep_list, temp_expr_table_d::partition_in_use, SSA_NAME_VERSION, SSA_OP_USE, stmt_ann(), TREE_CODE, TREE_OPERAND, TREE_SIDE_EFFECTS, TREE_TYPE, USE_OPS, V_MAY_DEF_OPS, V_MUST_DEF_OPS, version, temp_expr_table_d::version_info, version_ref_count(), VIRTUAL_PARTITION, and VUSE_OPS.
Referenced by find_replaceable_in_bb().
| static void clear_elim_graph | ( | elim_graph | g | ) | [inline, static] |
Definition at line 235 of file tree-outof-ssa.c.
References _elim_graph::edge_list, _elim_graph::nodes, and VARRAY_POP_ALL.
Referenced by eliminate_build().
| static void coalesce_abnormal_edges | ( | var_map | map, | |
| conflict_graph | graph, | |||
| root_var_p | rv | |||
| ) | [static] |
Definition at line 577 of file tree-outof-ssa.c.
References conflict_graph_conflict_p(), conflict_graph_merge_regs(), edge::dest, dump_file, dump_flags, EDGE_ABNORMAL, EXIT_BLOCK_PTR, edge::flags, FOR_EACH_BB, FOR_EACH_EDGE, gcc_assert, internal_error(), NO_PARTITION, partition_to_var(), PHI_ARG_DEF, PHI_CHAIN, phi_nodes(), PHI_RESULT, phi_ssa_name_p(), print_exprs_edge(), root_var(), root_var_find(), TDF_DETAILS, tmp, var_to_partition(), var_union(), x, is::y, and is::z.
Referenced by coalesce_ssa_name().
| static void coalesce_asm_operands | ( | var_map | map, | |
| coalesce_list_p | cl | |||
| ) | [static] |
Definition at line 738 of file tree-outof-ssa.c.
References add_coalesce(), alloca, ASM_INPUTS, ASM_OUTPUTS, bsi_end_p(), bsi_next(), bsi_start(), bsi_stmt(), DECL_P, end, FOR_EACH_BB, i, list_length(), NO_PARTITION, p1, p2, SSA_NAME, strtoul(), TREE_CHAIN, TREE_CODE, TREE_PURPOSE, TREE_STRING_POINTER, TREE_VALUE, and var_to_partition().
Referenced by coalesce_ssa_name().
| static void coalesce_phi_operands | ( | var_map | map, | |
| coalesce_list_p | cl | |||
| ) | [static] |
Definition at line 679 of file tree-outof-ssa.c.
References add_coalesce(), FOR_EACH_BB, NO_PARTITION, p, p2, PHI_ARG_DEF, PHI_CHAIN, phi_nodes(), PHI_NUM_ARGS, PHI_RESULT, SSA_NAME, SSA_NAME_VAR, TREE_CODE, var_to_partition(), and x.
Referenced by coalesce_ssa_name().
| static void coalesce_result_decls | ( | var_map | map, | |
| coalesce_list_p | cl | |||
| ) | [static] |
Definition at line 714 of file tree-outof-ssa.c.
References add_coalesce(), i, NULL, NULL_TREE, num_var_partitions(), p, partition_to_var(), SSA_NAME_VAR, TREE_CODE, and x.
Referenced by coalesce_ssa_name().
| static tree_live_info_p coalesce_ssa_name | ( | var_map | map, | |
| int | flags | |||
| ) | [static] |
Definition at line 800 of file tree-outof-ssa.c.
References build_tree_conflict_graph(), calculate_live_on_entry(), calculate_live_on_exit(), change_partition_var(), cl(), coalesce_abnormal_edges(), coalesce_asm_operands(), coalesce_phi_operands(), coalesce_result_decls(), coalesce_tpa_members(), conflict_graph_delete(), create_coalesce_list(), default_def(), delete_coalesce_list(), delete_tree_live_info(), dump_coalesce_list(), dump_file, dump_flags, dump_var_map(), EXECUTE_IF_SET_IN_SBITMAP, fprintf(), gcc_assert, NULL, num_var_partitions(), partition_to_var(), print_exprs(), root_var(), root_var_compact(), root_var_decompact(), root_var_delete(), root_var_find(), root_var_init(), sbitmap_alloc(), sbitmap_free, sbitmap_zero(), SET_BIT, sort_coalesce_list(), SSA_NAME_VAR, SSANORM_COALESCE_PARTITIONS, SSANORM_COMBINE_TEMPS, TDF_DETAILS, var_ann(), and x.
Referenced by remove_ssa_form().
| static void coalesce_vars | ( | var_map | map, | |
| tree_live_info_p | liveinfo | |||
| ) | [static] |
Definition at line 1122 of file tree-outof-ssa.c.
References add_coalesce(), build_tree_conflict_graph(), calculate_live_on_exit(), cl(), coalesce_tpa_members(), create_coalesce_list(), delete_coalesce_list(), dump_coalesce_list(), dump_file, dump_flags, dump_live_info(), FOR_EACH_BB, fprintf(), live_merge_and_clear(), LIVEDUMP_ALL, make_live_on_entry(), NO_PARTITION, NULL, num_var_partitions(), p, p2, partition_to_var(), PHI_ARG_DEF, PHI_CHAIN, phi_nodes(), PHI_NUM_ARGS, PHI_RESULT, phi_ssa_name_p(), sort_coalesce_list(), TDF_DETAILS, type_var_compact(), type_var_decompact(), type_var_delete(), type_var_dump(), type_var_init(), unsigned, var_to_partition(), and x.
Referenced by remove_ssa_form().
Definition at line 138 of file tree-outof-ssa.c.
References add_referenced_tmp_var(), create_tmp_var, DECL_ARTIFICIAL, DECL_DEBUG_EXPR, DECL_DEBUG_EXPR_IS_FROM, DECL_IGNORED_P, DECL_NAME, gcc_assert, IDENTIFIER_POINTER, is_call_clobbered(), mark_call_clobbered(), NULL, SSA_NAME, SSA_NAME_VAR, tmp, TREE_CODE, TREE_TYPE, and var_ann().
Referenced by assign_vars(), and elim_create().
| static void delete_elim_graph | ( | elim_graph | g | ) | [inline, static] |
Definition at line 245 of file tree-outof-ssa.c.
References free(), sbitmap_free, and _elim_graph::visited.
Referenced by rewrite_trees().
Definition at line 1883 of file tree-outof-ssa.c.
References bsi_end_p(), bsi_next(), bsi_start(), bsi_stmt_ptr(), discover_nonconstant_array_refs_r(), FOR_EACH_BB, NULL, and walk_tree().
Referenced by rewrite_out_of_ssa(), and tree_expand_cfg().
| static tree discover_nonconstant_array_refs_r | ( | tree * | tp, | |
| int * | walk_subtrees, | |||
| void *data | ATTRIBUTE_UNUSED | |||
| ) | [static] |
Definition at line 1839 of file tree-outof-ssa.c.
References DECL_P, get_base_address(), is_gimple_min_invariant(), IS_TYPE_OR_DECL_P, NULL_TREE, TREE_ADDRESSABLE, TREE_CODE, and TREE_OPERAND.
Referenced by discover_nonconstant_array_refs().
Definition at line 1815 of file tree-outof-ssa.c.
References DEF_OP, fprintf(), int, num_ssa_names, print_generic_expr(), STMT_DEF_OPS, TDF_SLIM, TREE_OPERAND, and x.
Referenced by remove_ssa_form().
| static void elim_backward | ( | elim_graph | g, | |
| int | T | |||
| ) | [static] |
Definition at line 434 of file tree-outof-ssa.c.
References _elim_graph::e, FOR_EACH_ELIM_GRAPH_PRED, insert_copy_on_edge(), _elim_graph::map, P, partition_to_var(), SET_BIT, TEST_BIT, and _elim_graph::visited.
Referenced by elim_backward(), and elim_create().
| static void elim_create | ( | elim_graph | g, | |
| int | T | |||
| ) | [static] |
Definition at line 454 of file tree-outof-ssa.c.
References create_temp(), _elim_graph::e, elim_backward(), elim_unvisited_predecessor(), FOR_EACH_ELIM_GRAPH_PRED, insert_copy_on_edge(), _elim_graph::map, P, partition_to_var(), S, TEST_BIT, U, and _elim_graph::visited.
Referenced by eliminate_phi().
| static void elim_forward | ( | elim_graph | g, | |
| int | T | |||
| ) | [static] |
Definition at line 404 of file tree-outof-ssa.c.
References FOR_EACH_ELIM_GRAPH_SUCC, S, SET_BIT, _elim_graph::stack, TEST_BIT, VARRAY_PUSH_INT, and _elim_graph::visited.
Referenced by elim_forward(), and eliminate_phi().
| static void elim_graph_add_edge | ( | elim_graph | g, | |
| int | pred, | |||
| int | succ | |||
| ) | [inline, static] |
Definition at line 277 of file tree-outof-ssa.c.
References _elim_graph::edge_list, and VARRAY_PUSH_INT.
Referenced by eliminate_build().
| static void elim_graph_add_node | ( | elim_graph | g, | |
| tree | node | |||
| ) | [inline, static] |
Definition at line 264 of file tree-outof-ssa.c.
References elim_graph_size(), _elim_graph::nodes, VARRAY_PUSH_TREE, VARRAY_TREE, and x.
Referenced by eliminate_name().
| static int elim_graph_remove_succ_edge | ( | elim_graph | g, | |
| int | node | |||
| ) | [inline, static] |
Definition at line 288 of file tree-outof-ssa.c.
References _elim_graph::edge_list, VARRAY_ACTIVE_SIZE, VARRAY_INT, x, and is::y.
| static int elim_graph_size | ( | elim_graph | g | ) | [inline, static] |
Definition at line 255 of file tree-outof-ssa.c.
References _elim_graph::nodes, and VARRAY_ACTIVE_SIZE.
Referenced by elim_graph_add_node(), and eliminate_phi().
| static int elim_unvisited_predecessor | ( | elim_graph | g, | |
| int | T | |||
| ) | [static] |
Definition at line 420 of file tree-outof-ssa.c.
References FOR_EACH_ELIM_GRAPH_PRED, P, TEST_BIT, and _elim_graph::visited.
Referenced by elim_create().
| static void eliminate_build | ( | elim_graph | g, | |
| basic_block | B | |||
| ) | [static] |
Definition at line 355 of file tree-outof-ssa.c.
References clear_elim_graph(), _elim_graph::const_copies, _elim_graph::e, elim_graph_add_edge(), eliminate_name(), _elim_graph::map, NO_PARTITION, NULL_TREE, p0, PHI_ARG_DEF, PHI_CHAIN, phi_nodes(), PHI_RESULT, phi_ssa_name_p(), pi, SSA_NAME, TREE_CODE, var_to_partition(), var_to_partition_to_var(), and VARRAY_PUSH_TREE.
Referenced by eliminate_phi().
| static void eliminate_name | ( | elim_graph | g, | |
| tree | T | |||
| ) | [inline, static] |
Definition at line 345 of file tree-outof-ssa.c.
References elim_graph_add_node().
Referenced by eliminate_build().
| static void eliminate_phi | ( | edge | e, | |
| elim_graph | g | |||
| ) | [static] |
Definition at line 489 of file tree-outof-ssa.c.
References B, _elim_graph::const_copies, dest, edge::dest, _elim_graph::e, EDGE_ABNORMAL, elim_create(), elim_forward(), elim_graph_size(), eliminate_build(), edge::flags, gcc_assert, insert_copy_on_edge(), _elim_graph::map, _elim_graph::nodes, num_var_partitions(), p, sbitmap_zero(), src, _elim_graph::stack, TEST_BIT, var_to_partition(), VARRAY_ACTIVE_SIZE, VARRAY_POP, VARRAY_POP_ALL, VARRAY_TOP_INT, VARRAY_TOP_TREE, VARRAY_TREE, _elim_graph::visited, and x.
Definition at line 1078 of file tree-outof-ssa.c.
References FOR_EACH_BB, fprintf(), i, internal_error(), is_gimple_reg(), next, NULL_TREE, PHI_ARG_DEF, PHI_CHAIN, phi_nodes(), PHI_NUM_ARGS, PHI_RESULT, print_generic_expr(), print_generic_stmt(), remove_phi_node(), SSA_NAME, SSA_NAME_VAR, TDF_SLIM, and TREE_CODE.
Referenced by rewrite_out_of_ssa().
Definition at line 1788 of file tree-outof-ssa.c.
References EXECUTE_IF_SET_IN_BITMAP, find_replaceable_in_bb(), FOR_EACH_BB, free_temp_expr_table(), i, kill_expr(), new_temp_expr_table(), temp_expr_table_d::partition_in_use, and ret.
Referenced by remove_ssa_form().
| static void find_replaceable_in_bb | ( | temp_expr_table_p | tab, | |
| basic_block | bb | |||
| ) | [static] |
Definition at line 1706 of file tree-outof-ssa.c.
References bsi_end_p(), bsi_next(), bsi_start(), bsi_stmt(), check_replaceable(), finish_expr(), FOR_EACH_SSA_TREE_OPERAND, free_value_expr(), iter, kill_expr(), kill_virtual_exprs(), map, temp_expr_table_d::map, mark_replaceable(), value_expr_d::next, NO_PARTITION, NUM_V_MAY_DEFS, NUM_V_MUST_DEFS, p, temp_expr_table_d::partition_dep_list, temp_expr_table_d::pending_dependence, SSA_NAME_VAR, SSA_NAME_VERSION, SSA_OP_DEF, SSA_OP_USE, stmt_ann(), V_MAY_DEF_OPS, V_MUST_DEF_OPS, var_to_partition(), and temp_expr_table_d::version_info.
Referenced by find_replaceable_exprs().
| static value_expr_p find_value_in_list | ( | value_expr_p | list, | |
| int | value, | |||
| value_expr_p * | last_ptr | |||
| ) | [inline, static] |
Definition at line 1408 of file tree-outof-ssa.c.
References last, value_expr_d::next, and NULL.
Referenced by add_info_to_list(), add_value_to_list(), and remove_value_from_list().
| static void finish_expr | ( | temp_expr_table_p | tab, | |
| int | version, | |||
| bool | replace | |||
| ) | [static] |
Definition at line 1612 of file tree-outof-ssa.c.
References bitmap_bit_p(), bitmap_clear_bit(), bitmap_set_bit(), free_value_expr(), gcc_assert, info, value_expr_d::next, NULL, temp_expr_table_d::partition_dep_list, temp_expr_table_d::partition_in_use, remove_value_from_list(), temp_expr_table_d::replaceable, temp_expr_table_d::saw_replaceable, tmp, value_expr_d::value, and temp_expr_table_d::version_info.
Referenced by find_replaceable_in_bb(), kill_expr(), and mark_replaceable().
| static tree * free_temp_expr_table | ( | temp_expr_table_p | t | ) | [static] |
Definition at line 1343 of file tree-outof-ssa.c.
References BITMAP_FREE, free(), temp_expr_table_d::free_list, gcc_assert, temp_expr_table_d::map, value_expr_d::next, NULL, num_var_partitions(), p, temp_expr_table_d::partition_dep_list, temp_expr_table_d::partition_in_use, temp_expr_table_d::replaceable, ret, temp_expr_table_d::saw_replaceable, temp_expr_table_d::version_info, and x.
Referenced by find_replaceable_exprs().
| static void free_value_expr | ( | temp_expr_table_p | table, | |
| value_expr_p | p | |||
| ) | [inline, static] |
Definition at line 1396 of file tree-outof-ssa.c.
References temp_expr_table_d::free_list, and value_expr_d::next.
Referenced by add_info_to_list(), find_replaceable_in_bb(), and finish_expr().
| static varray_type GTY | ( | () | ) | [static] |
Definition at line 2051 of file tree-outof-ssa.c.
References DECL_P, gcc_assert, TREE_CODE, and TREE_OPERAND.
Referenced by identical_stmt_lists_p().
Definition at line 2077 of file tree-outof-ssa.c.
References gcc_assert, identical_copies_p(), PENDING_STMT, t1, t2, TREE_CODE, tsi_end_p(), tsi_next(), tsi_start(), and tsi_stmt().
Referenced by analyze_edges_for_bb().
Definition at line 2469 of file tree-outof-ssa.c.
References bsi_end_p(), bsi_insert_after(), bsi_insert_before(), bsi_last(), BSI_NEW_STMT, bsi_stmt(), build(), EDGE_DFS_BACK, edge::flags, FOR_EACH_BB, i, is_gimple_reg(), last, make_ssa_name(), modify_stmt(), NULL, PHI_ARG_DEF, PHI_ARG_EDGE, PHI_CHAIN, phi_nodes(), PHI_NUM_ARGS, PHI_RESULT, result, SET_PHI_ARG_DEF, src, SSA_NAME, SSA_NAME_DEF_STMT, SSA_NAME_VAR, stmt_ends_bb_p(), TREE_CODE, TREE_OPERAND, and TREE_TYPE.
Referenced by rewrite_out_of_ssa().
Definition at line 187 of file tree-outof-ssa.c.
References bsi_insert_on_edge(), build(), copy, edge::dest, dump_file, dump_flags, fprintf(), print_generic_expr(), set_is_used(), edge::src, TDF_DETAILS, TREE_CODE, TREE_OPERAND, and TREE_TYPE.
Referenced by elim_backward(), elim_create(), and eliminate_phi().
| static void kill_expr | ( | temp_expr_table_p | tab, | |
| int | partition, | |||
| bool | clear_bit | |||
| ) | [inline, static] |
Definition at line 1679 of file tree-outof-ssa.c.
References bitmap_clear_bit(), finish_expr(), NULL, temp_expr_table_d::partition_dep_list, temp_expr_table_d::partition_in_use, ptr, and value_expr_d::value.
Referenced by find_replaceable_exprs(), find_replaceable_in_bb(), and kill_virtual_exprs().
| static void kill_virtual_exprs | ( | temp_expr_table_p | tab, | |
| bool | clear_bit | |||
| ) | [inline, static] |
Definition at line 1696 of file tree-outof-ssa.c.
References kill_expr(), and VIRTUAL_PARTITION.
Referenced by find_replaceable_in_bb().
| static void mark_replaceable | ( | temp_expr_table_p | tab, | |
| tree | var | |||
| ) | [static] |
Definition at line 1653 of file tree-outof-ssa.c.
References finish_expr(), for(), info, value_expr_d::next, temp_expr_table_d::pending_dependence, SSA_NAME_DEF_STMT, SSA_NAME_VERSION, version, and temp_expr_table_d::version_info.
Referenced by find_replaceable_in_bb().
| static elim_graph new_elim_graph | ( | int | size | ) | [static] |
Definition at line 217 of file tree-outof-ssa.c.
References _elim_graph::const_copies, _elim_graph::edge_list, g, _elim_graph::nodes, sbitmap_alloc(), _elim_graph::stack, VARRAY_INT_INIT, VARRAY_TREE_INIT, _elim_graph::visited, and xmalloc().
Referenced by rewrite_trees().
| static temp_expr_table_p new_temp_expr_table | ( | var_map | map | ) | [static] |
Definition at line 1316 of file tree-outof-ssa.c.
References BITMAP_ALLOC, temp_expr_table_d::free_list, temp_expr_table_d::map, NULL, num_ssa_names, num_var_partitions(), temp_expr_table_d::partition_dep_list, temp_expr_table_d::partition_in_use, temp_expr_table_d::pending_dependence, temp_expr_table_d::replaceable, temp_expr_table_d::saw_replaceable, temp_expr_table_d::version_info, temp_expr_table_d::virtual_partition, xcalloc(), and xmalloc().
Referenced by find_replaceable_exprs().
| static value_expr_p new_value_expr | ( | temp_expr_table_p | table | ) | [inline, static] |
Definition at line 1378 of file tree-outof-ssa.c.
References temp_expr_table_d::free_list, value_expr_d::next, p, and xmalloc().
Referenced by add_value_to_list().
Definition at line 2313 of file tree-outof-ssa.c.
References analyze_edges_for_bb(), BITMAP_FREE, CDI_DOMINATORS, CDI_POST_DOMINATORS, changed, edge::dest, ENTRY_BLOCK_PTR, error(), EXIT_BLOCK_PTR, FOR_EACH_BB, FOR_EACH_EDGE, fprintf(), free_dominance_info(), NULL, PENDING_STMT, and edge::src.
Referenced by remove_ssa_form().
| static void print_exprs | ( | FILE * | f, | |
| const char * | str1, | |||
| tree | expr1, | |||
| const char * | str2, | |||
| tree | expr2, | |||
| const char * | str3 | |||
| ) | [static] |
Definition at line 547 of file tree-outof-ssa.c.
References fprintf(), print_generic_expr(), and TDF_SLIM.
Referenced by assign_vars(), coalesce_ssa_name(), and print_exprs_edge().
| static void print_exprs_edge | ( | FILE * | f, | |
| edge | e, | |||
| const char * | str1, | |||
| tree | expr1, | |||
| const char * | str2, | |||
| tree | expr2 | |||
| ) | [static] |
Definition at line 562 of file tree-outof-ssa.c.
References edge::dest, fprintf(), print_exprs(), and edge::src.
Referenced by coalesce_abnormal_edges().
Definition at line 2376 of file tree-outof-ssa.c.
References assign_vars(), coalesce_ssa_name(), coalesce_vars(), compact_var_map(), delete_tree_live_info(), dump_file, dump_flags, dump_replaceable_exprs(), dump_var_map(), find_replaceable_exprs(), FOR_EACH_BB, fprintf(), free(), next, NULL, NULL_TREE, perform_edge_inserts(), PHI_CHAIN, phi_nodes(), remove_phi_node(), rewrite_trees(), save, SSANORM_COMBINE_TEMPS, SSANORM_PERFORM_TER, TDF_DETAILS, values, VARMAP_NO_SINGLE_DEFS, and VARMAP_NORMAL.
Referenced by rewrite_out_of_ssa().
| static value_expr_p remove_value_from_list | ( | value_expr_p * | list, | |
| int | value | |||
| ) | [static] |
Definition at line 1462 of file tree-outof-ssa.c.
References find_value_in_list(), info, last, value_expr_d::next, and NULL.
Referenced by finish_expr().
| static bool replace_def_variable | ( | var_map | map, | |
| def_operand_p | def_p, | |||
| tree * | expr | |||
| ) | [inline, static] |
Definition at line 1045 of file tree-outof-ssa.c.
References DEF_FROM_PTR, NULL_TREE, SET_DEF, set_is_used(), SSA_NAME_VERSION, TREE_OPERAND, var_to_partition_to_var(), and version.
Referenced by rewrite_trees().
| static bool replace_use_variable | ( | var_map | map, | |
| use_operand_p | p, | |||
| tree * | expr | |||
| ) | [inline, static] |
Definition at line 1009 of file tree-outof-ssa.c.
References NULL_TREE, set_is_used(), SET_USE, SSA_NAME_VERSION, TREE_OPERAND, USE_FROM_PTR, var_to_partition_to_var(), and version.
Referenced by rewrite_trees().
Definition at line 2553 of file tree-outof-ssa.c.
References cfg_remove_useless_stmts(), create_ssa_var_map(), delete_var_map(), discover_nonconstant_array_refs(), dump_file, dump_flags, dump_tree_cfg(), eliminate_virtual_phis(), insert_backedge_copies(), map, remove_ssa_form(), SSA_VAR_MAP_REF_COUNT, SSANORM_COALESCE_PARTITIONS, SSANORM_COMBINE_TEMPS, SSANORM_PERFORM_TER, and TDF_DETAILS.
Definition at line 1904 of file tree-outof-ssa.c.
References bsi_end_p(), bsi_next(), bsi_remove(), bsi_start(), bsi_stmt(), changed, DEF_FROM_PTR, DEF_OP, def_operand_p, DEF_OPS, defs, delete_elim_graph(), eliminate_phi(), FOR_EACH_BB, FOR_EACH_EDGE, FOR_EACH_SSA_DEF_OPERAND, FOR_EACH_SSA_USE_OPERAND, fprintf(), g, get_stmt_operands(), i, internal_error(), iter, _elim_graph::map, modify_stmt(), new_elim_graph(), NO_PARTITION, NULL, NULL_TREE, NUM_DEFS, _var_map::num_partitions, NUM_USES, PHI_ARG_DEF, PHI_CHAIN, phi_nodes(), PHI_NUM_ARGS, PHI_RESULT, print_generic_expr(), print_generic_stmt(), replace_def_variable(), replace_use_variable(), si, SSA_NAME, SSA_NAME_VERSION, SSA_OP_DEF, SSA_OP_USE, stmt_ann(), TDF_SLIM, TREE_CODE, TREE_OPERAND, USE_OP, use_operand_p, USE_OPS, val, var_to_partition(), and var_to_partition_to_var().
Referenced by remove_ssa_form().
varray_type edge_leader = NULL [static] |
Definition at line 2034 of file tree-outof-ssa.c.
Referenced by analyze_edges_for_bb(), fini_analyze_edges_for_bb(), and init_analyze_edges_for_bb().
Initial value:
{
"optimized",
NULL,
rewrite_out_of_ssa,
NULL,
NULL,
0,
TV_TREE_SSA_TO_NORMAL,
PROP_cfg | PROP_ssa | PROP_alias,
0,
PROP_ssa,
TODO_verify_ssa | TODO_verify_flow
| TODO_verify_stmts,
TODO_dump_func | TODO_ggc_collect,
0
}
Definition at line 2605 of file tree-outof-ssa.c.
Referenced by init_optimization_passes(), and init_tree_optimization_passes().
1.5.6