On Fri, Feb 28, 2014 at 9:51 AM, Eric Botcazou <ebotca...@adacore.com> wrote:
>>  So, the main question is not about triggering condition, but about the
>> behavior itself. Is it correct to flush and reload all constants ? They are
>> constants after all, they are even not stored in .data section but inlined
>> in the code, and thus cannot be modified.
>
> I'd think that everyone more or less agrees that this behavior of RTL CSE is
> overly conservative and ought to be relaxed.  The question is whether this can
> be done in a sensible way without totally getting rid of the barrier.

Of course if the GIMPLE level doesn't care about the barrier then it doesn't
make sense to be overly conservative at the RTL CSE level.  Thus I think
we can just remove this barrier completely.

[GIMPLE of course respects the volatile in that it doesn't remove the asm
and it respects the "memory" clobber as a barrier for memory optimizations
(but it does _not_ consider it a memory barrier for automatic variables that
do not have their address taken!)]

Richard.

> --
> Eric Botcazou

Reply via email to