PR middle-end/51472: set DECL_GIMPLE_REG_P on TM vector saves

Jakub Jelinek jakub@redhat.com
Wed Dec 21 14:10:00 GMT 2011


On Wed, Dec 21, 2011 at 07:52:16AM -0600, Aldy Hernandez wrote:
> Oh neat... create_tmp_reg will do all this for me.

I don't think that update_stmt is needed there.
The stmt is freshly allocated a few lines above it:
	stmt = gimple_build_assign (lp->save_var, unshare_expr (lp->addr));
so the modified flag is still set and thus when you gsi_insert_before
it afterwards, it will update_stmt_if_modified, which is the same as
update_stmt when the modified flag is set.

The first hunk looks okay.

> --- trans-mem.c	(revision 182542)
> +++ trans-mem.c	(working copy)
> @@ -1003,7 +1003,7 @@ tm_log_add (basic_block entry_block, tre
>  	     special constructors and the like.  */
>  	  && !TREE_ADDRESSABLE (type))
>  	{
> -	  lp->save_var = create_tmp_var (TREE_TYPE (lp->addr), "tm_save");
> +	  lp->save_var = create_tmp_reg (TREE_TYPE (lp->addr), "tm_save");
>  	  add_referenced_var (lp->save_var);
>  	  lp->stmts = NULL;
>  	  lp->entry_block = entry_block;
> @@ -1188,6 +1188,7 @@ tm_log_emit_saves (basic_block entry_blo
>  	{
>  	  lp->save_var = make_ssa_name (lp->save_var, stmt);
>  	  gimple_assign_set_lhs (stmt, lp->save_var);
> +	  update_stmt (stmt);
>  	}
>  
>        gsi_insert_before (&gsi, stmt, GSI_SAME_STMT);


	Jakub



More information about the Gcc-patches mailing list