diff options
Diffstat (limited to 'gcc/tree-if-conv.c')
-rw-r--r-- | gcc/tree-if-conv.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c index 0e7a144..7c39547 100644 --- a/gcc/tree-if-conv.c +++ b/gcc/tree-if-conv.c @@ -515,7 +515,7 @@ bb_with_exit_edge_p (struct loop *loop, basic_block bb) - there is a virtual PHI in a BB other than the loop->header. */ static bool -if_convertible_phi_p (struct loop *loop, basic_block bb, gimple phi, +if_convertible_phi_p (struct loop *loop, basic_block bb, gphi *phi, bool any_mask_load_store) { if (dump_file && (dump_flags & TDF_DETAILS)) @@ -1282,10 +1282,10 @@ if_convertible_loop_p_1 (struct loop *loop, for (i = 0; i < loop->num_nodes; i++) { basic_block bb = ifc_bbs[i]; - gimple_stmt_iterator itr; + gphi_iterator itr; for (itr = gsi_start_phis (bb); !gsi_end_p (itr); gsi_next (&itr)) - if (!if_convertible_phi_p (loop, bb, gsi_stmt (itr), + if (!if_convertible_phi_p (loop, bb, itr.phi (), *any_mask_load_store)) return false; } @@ -1592,7 +1592,7 @@ convert_scalar_cond_reduction (gimple reduc, gimple_stmt_iterator *gsi, TRUE_BB is selected. */ static void -predicate_scalar_phi (gimple phi, tree cond, +predicate_scalar_phi (gphi *phi, tree cond, basic_block true_bb, gimple_stmt_iterator *gsi) { @@ -1667,9 +1667,10 @@ predicate_all_scalar_phis (struct loop *loop) for (i = 1; i < orig_loop_num_nodes; i++) { - gimple phi; + gphi *phi; tree cond = NULL_TREE; - gimple_stmt_iterator gsi, phi_gsi; + gimple_stmt_iterator gsi; + gphi_iterator phi_gsi; basic_block true_bb = NULL; bb = ifc_bbs[i]; @@ -1687,7 +1688,7 @@ predicate_all_scalar_phis (struct loop *loop) while (!gsi_end_p (phi_gsi)) { - phi = gsi_stmt (phi_gsi); + phi = phi_gsi.phi (); predicate_scalar_phi (phi, cond, true_bb, &gsi); release_phi_node (phi); gsi_next (&phi_gsi); |