This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] expand from SSA form (1/2)


Michael Matz wrote:
On Wed, 22 Apr 2009, Michael Matz wrote:


I'd like to ask for approval for the series.


Ciao,
Michael.
Looks good to me.

Andrew



> --- 233,251 ----
	    if (gimple_assign_copy_p (stmt)
		&& gimple_assign_lhs (stmt) == result
		&& gimple_assign_rhs1 (stmt) == found)
> ! 	    {
> ! 	      unlink_stmt_vdef (stmt);
> ! 	      gsi_remove (&gsi, true);
> ! 	    }
	    else

Unrelated to your patch, but out of curiosity, shouldn't gsi_remove() automatically do an unlink_stmt_vdef() if the remove_permanently flag is true like it is here?  Seems like an oversight bug waiting to happen...

> --- 2537,2584 ----
>     rebuild_jump_labels (get_insns ());
>     find_exception_handler_labels ();
>   
> +   FOR_BB_BETWEEN (bb, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, next_bb)
> +     {
> +       edge e;
> +       edge_iterator ei;
> +       for (ei = ei_start (bb->succs); (e = ei_safe_edge (ei)); )
> + 	{
> + 	  if (e->insns.r)
> + 	    commit_one_edge_insertion (e);
> + 	  else
> + 	    ei_next (&ei);
> + 	}
> +     }

I do think this should be fixed in commit_edge_insertions and the common code factored out and called from here, but that can be done separately.  Then commit_one_edge_insertion() could return to being a static function as well.

Im guessing current_ir_type() is not IR_RTL_CFGLAYOUT, or you could just call commit_edge_insertions directly...


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]