patch: remove is_gimple_non_addressable

Aldy Hernandez aldyh@redhat.com
Mon Jan 9 14:58:00 GMT 2012


> Ok with simply excluding SSA_NAMEs like
>
> @@ -4411,16 +4411,27 @@ gimplify_modify_expr_rhs (tree *expr_p,
>   		/* It's OK to use the target directly if it's being
>   		   initialized. */
>   		use_target = true;
> -	      else if (TREE_CODE (*to_p) != SSA_NAME
>                           &&  ....)
> -		/* Don't use the original target if it's already addressable;
> -		   if its address escapes, and the called function uses the
> -		   NRV optimization, a conforming program could see *to_p
> -		   change before the called function returns; see c++/19317.
> -		   When optimizing, the return_slot pass marks more functions
> -		   as safe after we have escape info.  */
> -		use_target = false;
> - 	      else
> -		use_target = true;
>
> as SSA_NAMEs can never become addressable during gimplification.

Ok, since I'm never quite 100% sure I'm following your suggestions... 
I'm posting the final patch here.  If tests pass, I'll commit.

Thanks again.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: curr
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20120109/5a7985d9/attachment.ksh>


More information about the Gcc-patches mailing list