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: patch: remove is_gimple_non_addressable



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.

Attachment: curr
Description: Text document


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