diff options
Diffstat (limited to 'gcc/tree-ssa.c')
-rw-r--r-- | gcc/tree-ssa.c | 56 |
1 files changed, 29 insertions, 27 deletions
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index 2535461..835e3c1 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -157,8 +157,8 @@ redirect_edge_var_map_destroy (void) edge ssa_redirect_edge (edge e, basic_block dest) { - gimple_stmt_iterator gsi; - gimple phi; + gphi_iterator gsi; + gphi *phi; redirect_edge_var_map_clear (e); @@ -168,7 +168,7 @@ ssa_redirect_edge (edge e, basic_block dest) tree def; source_location locus ; - phi = gsi_stmt (gsi); + phi = gsi.phi (); def = gimple_phi_arg_def (phi, e->dest_idx); locus = gimple_phi_arg_location (phi, e->dest_idx); @@ -190,10 +190,10 @@ ssa_redirect_edge (edge e, basic_block dest) void flush_pending_stmts (edge e) { - gimple phi; + gphi *phi; edge_var_map *vm; int i; - gimple_stmt_iterator gsi; + gphi_iterator gsi; vec<edge_var_map> *v = redirect_edge_var_map_vector (e); if (!v) @@ -205,7 +205,7 @@ flush_pending_stmts (edge e) { tree def; - phi = gsi_stmt (gsi); + phi = gsi.phi (); def = redirect_edge_var_map_def (vm); add_phi_arg (phi, def, e, redirect_edge_var_map_location (vm)); } @@ -366,7 +366,7 @@ insert_debug_temp_for_var_def (gimple_stmt_iterator *gsi, tree var) we'll have to drop debug information. */ if (gimple_code (def_stmt) == GIMPLE_PHI) { - value = degenerate_phi_result (def_stmt); + value = degenerate_phi_result (as_a <gphi *> (def_stmt)); if (value && walk_tree (&value, find_released_ssa_name, NULL, NULL)) value = NULL; /* error_mark_node is what fixup_noreturn_call changes PHI arguments @@ -444,7 +444,7 @@ insert_debug_temp_for_var_def (gimple_stmt_iterator *gsi, tree var) ; else { - gimple def_temp; + gdebug *def_temp; tree vexpr = make_node (DEBUG_EXPR_DECL); def_temp = gimple_build_debug_bind (vexpr, @@ -838,7 +838,7 @@ verify_use (basic_block bb, basic_block def_bb, use_operand_p use_p, definition of SSA_NAME. */ static bool -verify_phi_args (gimple phi, basic_block bb, basic_block *definition_block) +verify_phi_args (gphi *phi, basic_block bb, basic_block *definition_block) { edge e; bool err = false; @@ -969,9 +969,7 @@ verify_ssa (bool check_modified_stmt, bool check_ssa_operands) FOR_EACH_BB_FN (bb, cfun) { edge e; - gimple phi; edge_iterator ei; - gimple_stmt_iterator gsi; /* Make sure that all edges have a clear 'aux' field. */ FOR_EACH_EDGE (e, ei, bb->preds) @@ -985,9 +983,9 @@ verify_ssa (bool check_modified_stmt, bool check_ssa_operands) } /* Verify the arguments for every PHI node in the block. */ - for (gsi = gsi_start_phis (bb); !gsi_end_p (gsi); gsi_next (&gsi)) + for (gphi_iterator gsi = gsi_start_phis (bb); !gsi_end_p (gsi); gsi_next (&gsi)) { - phi = gsi_stmt (gsi); + gphi *phi = gsi.phi (); if (verify_phi_args (phi, bb, definition_block)) goto err; @@ -996,7 +994,8 @@ verify_ssa (bool check_modified_stmt, bool check_ssa_operands) } /* Now verify all the uses and vuses in every statement of the block. */ - for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi)) + for (gimple_stmt_iterator gsi = gsi_start_bb (bb); !gsi_end_p (gsi); + gsi_next (&gsi)) { gimple stmt = gsi_stmt (gsi); use_operand_p use_p; @@ -1406,7 +1405,6 @@ maybe_optimize_var (tree var, bitmap addresses_taken, bitmap not_reg_needs, void execute_update_addresses_taken (void) { - gimple_stmt_iterator gsi; basic_block bb; bitmap addresses_taken = BITMAP_ALLOC (NULL); bitmap not_reg_needs = BITMAP_ALLOC (NULL); @@ -1420,7 +1418,8 @@ execute_update_addresses_taken (void) the function body. */ FOR_EACH_BB_FN (bb, cfun) { - for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi)) + for (gimple_stmt_iterator gsi = gsi_start_bb (bb); !gsi_end_p (gsi); + gsi_next (&gsi)) { gimple stmt = gsi_stmt (gsi); enum gimple_code code = gimple_code (stmt); @@ -1463,9 +1462,10 @@ execute_update_addresses_taken (void) else if (code == GIMPLE_ASM) { - for (i = 0; i < gimple_asm_noutputs (stmt); ++i) + gasm *asm_stmt = as_a <gasm *> (stmt); + for (i = 0; i < gimple_asm_noutputs (asm_stmt); ++i) { - tree link = gimple_asm_output_op (stmt, i); + tree link = gimple_asm_output_op (asm_stmt, i); tree lhs = TREE_VALUE (link); if (TREE_CODE (lhs) != SSA_NAME) { @@ -1480,19 +1480,20 @@ execute_update_addresses_taken (void) bitmap_set_bit (not_reg_needs, DECL_UID (decl)); } } - for (i = 0; i < gimple_asm_ninputs (stmt); ++i) + for (i = 0; i < gimple_asm_ninputs (asm_stmt); ++i) { - tree link = gimple_asm_input_op (stmt, i); + tree link = gimple_asm_input_op (asm_stmt, i); if ((decl = non_rewritable_mem_ref_base (TREE_VALUE (link)))) bitmap_set_bit (not_reg_needs, DECL_UID (decl)); } } } - for (gsi = gsi_start_phis (bb); !gsi_end_p (gsi); gsi_next (&gsi)) + for (gphi_iterator gsi = gsi_start_phis (bb); !gsi_end_p (gsi); + gsi_next (&gsi)) { size_t i; - gimple phi = gsi_stmt (gsi); + gphi *phi = gsi.phi (); for (i = 0; i < gimple_phi_num_args (phi); i++) { @@ -1521,7 +1522,7 @@ execute_update_addresses_taken (void) if (!bitmap_empty_p (suitable_for_renaming)) { FOR_EACH_BB_FN (bb, cfun) - for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi);) + for (gimple_stmt_iterator gsi = gsi_start_bb (bb); !gsi_end_p (gsi);) { gimple stmt = gsi_stmt (gsi); @@ -1581,16 +1582,17 @@ execute_update_addresses_taken (void) else if (gimple_code (stmt) == GIMPLE_ASM) { + gasm *asm_stmt = as_a <gasm *> (stmt); unsigned i; - for (i = 0; i < gimple_asm_noutputs (stmt); ++i) + for (i = 0; i < gimple_asm_noutputs (asm_stmt); ++i) { - tree link = gimple_asm_output_op (stmt, i); + tree link = gimple_asm_output_op (asm_stmt, i); maybe_rewrite_mem_ref_base (&TREE_VALUE (link), suitable_for_renaming); } - for (i = 0; i < gimple_asm_ninputs (stmt); ++i) + for (i = 0; i < gimple_asm_ninputs (asm_stmt); ++i) { - tree link = gimple_asm_input_op (stmt, i); + tree link = gimple_asm_input_op (asm_stmt, i); maybe_rewrite_mem_ref_base (&TREE_VALUE (link), suitable_for_renaming); } |