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] Dissociate store_expr's temp from exp so that it is not marked as addressable


> 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 by some
> simple testing.  Having said that, I guess I can give it a round of
> regular testing on all the platforms I have currently set up.

The problem was that, for the same address, you had the alias set of the type 
on one MEM and the alias set of the reference on the other MEM.  If the alias 
set of the reference doesn't conflict with that of the type (this can happen 
in Ada because of DECL_NONADDRESSABLE_P), the RAW dependency may be missed.

If we don't put the alias set of the reference on one of the MEM, then I don't 
think that we need to put it on the other MEM.  That's what's done for the 
first, non-bitfield temporary now.

> 2012-04-10  Martin Jambor  <mjambor@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 the memory temporary created for a bitfield.

Fine with me, but the now dangling code in the bitfield case is a bit annoying.

-- 
Eric Botcazou


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