On Fri, Sep 22, 2017 at 11:37:53AM +0000, Bin Cheng wrote:

> diff --git a/gcc/tree-ssa-loop-manip.c b/gcc/tree-ssa-loop-manip.c
> index d6ba305..6ad0b75 100644
> --- a/gcc/tree-ssa-loop-manip.c
> +++ b/gcc/tree-ssa-loop-manip.c
> @@ -690,48 +690,62 @@ rewrite_virtuals_into_loop_closed_ssa (struct loop 
> *loop)
>    rewrite_into_loop_closed_ssa_1 (NULL, 0, SSA_OP_VIRTUAL_USES, loop);
>  }

> -/* Checks invariants of loop closed ssa form in statement STMT in BB.  */
> +/* Checks invariants of loop closed ssa form in BB.  */
>  
>  static void
> -check_loop_closed_ssa_stmt (basic_block bb, gimple *stmt)
> +check_loop_closed_ssa_bb (basic_block bb)
>  {
> -  ssa_op_iter iter;
> -  tree var;
> +  for (gphi_iterator bsi = gsi_start_phis (bb); !gsi_end_p (bsi);
> +       gsi_next (&bsi))
> +    {
> +      gphi *phi = bsi.phi ();
>  
> -  if (is_gimple_debug (stmt))
> -    return;
> +      if (!virtual_operand_p (PHI_RESULT (phi)))
> +     check_loop_closed_ssa_def (bb, PHI_RESULT (phi));
> +    }
> +
> +  for (gimple_stmt_iterator bsi = gsi_start_bb (bb); !gsi_end_p (bsi);
> +       gsi_next (&bsi))
> +    {
> +      ssa_op_iter iter;
> +      tree var;
> +      gimple *stmt = gsi_stmt (bsi);
> +
> +      if (is_gimple_debug (stmt))
> +     continue;

for (gimple_stmt_iterator bsi = gsi_start_nondebug_after_labels_bb (bb);
     !gsi_end_p (bsi);
     gsi_next_nondebug (&bsi))

?
>  
> -  FOR_EACH_SSA_TREE_OPERAND (var, stmt, iter, SSA_OP_USE)
> -    check_loop_closed_ssa_use (bb, var);
> +      FOR_EACH_SSA_TREE_OPERAND (var, stmt, iter, SSA_OP_DEF)
> +     check_loop_closed_ssa_def (bb, var);
> +    }
>  }

Reply via email to