GCC Status Report (2004-03-09)
Mark Mitchell
mark@codesourcery.com
Tue Mar 16 16:53:00 GMT 2004
Eric Botcazou wrote:
>>I'd particularly like to understand this RTX_UNCHANGING_P optimization
>>issue. We've bumped into this before. I think we need to take the
>>conservative approach, even if that is pessimizing in some case.
>>Would someone who understands the details of this bug please summarize
>>it, mail that to me, and also add that information to the appropriate
>>PR?
>>
>>
>
>The problem is related to the semantics of the /u flag on memory writes.
>Strictly speaking, the /u flag should be put only if the memory location is
>guaranteed to be ever written once.
>
>
Thanks for this summary.
>Third problem: now, on the 3.4 branch, if the whole structure contains
>read-only fields and read-write fields, is wholly cleared and at least one
>read-write field is set to non-zero, we have a memory write with the /u flag
>followed by a memory write without the /u flag. These of course don't
>conflict so may be swapped by the scheduler (this is my testcase on
>UltraSPARC for PR opt/13424).
>
>
>A solution (by Olivier Hainque, that is now in the ACT tree) is to disable
>the clearing optimization in the unsafe cases, that is when we know that
>another write may be issued later which will not conflict
>
The other alternative I can think of is to introduce a scheduling
barrier (e.g., a dummy vaolatile asm) after the clearing operation. I
don't know which of these alternatives would lead to greater
pessimization. I think the scheduling barrier approach might actually
be better, but I can't justify that very well.
So, would you please apply Olivier's patch to the 3.4 branch and the
mainline? Then, we need to come up with some better long-term solution.
Thanks,
--
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark@codesourcery.com
More information about the Gcc
mailing list