Re: [PATCH] Dissociate store_expr's temp from exp so that it is not marked as addressable

2012-04-23 Thread Eric Botcazou
2012-04-16 Martin Jambor mjam...@suse.cz * expr.c (expand_expr_real_1): Remove setting parent's alias set for temporaries created for a bitfield (reverting revision 122014). OK, thanks. -- Eric Botcazou

Re: [PATCH] Dissociate store_expr's temp from exp so that it is not marked as addressable

2012-04-17 Thread Martin Jambor
Hi, On Thu, Apr 12, 2012 at 07:21:12PM +0200, Eric Botcazou wrote: Well, the commit did not add a testcase and when I looked up the patch in the mailing list archive (http://gcc.gnu.org/ml/gcc-patches/2006-11/msg01449.html) it said it was fixing problems not reproducible on trunk so it's

Re: [PATCH] Dissociate store_expr's temp from exp so that it is not marked as addressable

2012-04-12 Thread Martin Jambor
Hi, On Fri, Apr 06, 2012 at 06:13:20PM +0200, Eric Botcazou wrote: 2012-04-03 Martin Jambor mjam...@suse.cz * expr.c (expand_expr_real_1): Pass type, not the expression, to set_mem_attributes for a memory temporary. Do not call the function for temporaries with a

Re: [PATCH] Dissociate store_expr's temp from exp so that it is not marked as addressable

2012-04-12 Thread Eric Botcazou
Well, the commit did not add a testcase and when I looked up the patch in the mailing list archive (http://gcc.gnu.org/ml/gcc-patches/2006-11/msg01449.html) it said it was fixing problems not reproducible on trunk so it's basically impossible for me to evaluate whether it is still necessary

Re: [PATCH] Dissociate store_expr's temp from exp so that it is not marked as addressable

2012-04-06 Thread Eric Botcazou
2012-04-03 Martin Jambor mjam...@suse.cz * expr.c (expand_expr_real_1): Pass type, not the expression, to set_mem_attributes for a memory temporary. Do not call the function for temporaries with a different alias set. The last sentence is unprecise, this would rather be:

Re: [PATCH] Dissociate store_expr's temp from exp so that it is not marked as addressable

2012-04-06 Thread Eric Botcazou
@@ -9870,7 +9871,14 @@ expand_expr_real_1 (tree exp, rtx target if (op0 == orig_op0) op0 = copy_rtx (op0); - set_mem_attributes (op0, exp, 0); + /* If op0 is a temporary because of forcing to memory, pass only the +type to set_mem_attributes so that the

Re: [PATCH] Dissociate store_expr's temp from exp so that it is not marked as addressable

2012-04-04 Thread Martin Jambor
Hi, On Tue, Apr 03, 2012 at 11:02:11AM +0200, Eric Botcazou wrote: Yeah, that sounds reasonable. There is a further subtlety in the second temp allocation when the expression doesn't use the alias set of its type. In that case, we cannot pass the type to set_mem_attributes. In fact,

Re: [PATCH] Dissociate store_expr's temp from exp so that it is not marked as addressable

2012-04-03 Thread Eric Botcazou
Yes, either way I suppose. The following also looks dangerous to me: /* If OFFSET is making OP0 more aligned than BIGGEST_ALIGNMENT, record its alignment as BIGGEST_ALIGNMENT. */ if (MEM_P (op0) bitpos == 0 offset != 0 is_aligning_offset (offset,

Re: [PATCH] Dissociate store_expr's temp from exp so that it is not marked as addressable

2012-04-03 Thread Richard Guenther
On Tue, 3 Apr 2012, Eric Botcazou wrote: Yes, either way I suppose. The following also looks dangerous to me: /* If OFFSET is making OP0 more aligned than BIGGEST_ALIGNMENT, record its alignment as BIGGEST_ALIGNMENT. */ if (MEM_P (op0) bitpos == 0 offset

Re: [PATCH] Dissociate store_expr's temp from exp so that it is not marked as addressable

2012-04-03 Thread Eric Botcazou
Yeah, that sounds reasonable. There is a further subtlety in the second temp allocation when the expression doesn't use the alias set of its type. In that case, we cannot pass the type to set_mem_attributes. In fact, since assign_stack_temp_for_type already calls the appropriate set_mem_*

Re: [PATCH] Dissociate store_expr's temp from exp so that it is not marked as addressable

2012-04-02 Thread Richard Guenther
On Sat, 31 Mar 2012, Martin Jambor wrote: Hi, On Fri, Mar 30, 2012 at 10:03:59AM +0200, Richard Guenther wrote: On Fri, 30 Mar 2012, Martin Jambor wrote: Hi, when testing a patch of mine on sparc64-linux, I came across an Ada bootstrap failure due to a structure DECL which

Re: [PATCH] Dissociate store_expr's temp from exp so that it is not marked as addressable

2012-03-31 Thread Martin Jambor
Hi, On Fri, Mar 30, 2012 at 10:03:59AM +0200, Richard Guenther wrote: On Fri, 30 Mar 2012, Martin Jambor wrote: Hi, when testing a patch of mine on sparc64-linux, I came across an Ada bootstrap failure due to a structure DECL which was marked addressable but had a register DECL_RTL