basic asm and memory clobbers
Jeff Law
law@redhat.com
Tue Nov 24 05:25:00 GMT 2015
On 11/23/2015 10:12 PM, Segher Boessenkool wrote:
> On Mon, Nov 23, 2015 at 09:48:42PM -0700, Jeff Law wrote:
>> On 11/23/2015 07:22 PM, Segher Boessenkool wrote:
>>>
>>> Here is a test that shows that on at least PowerPC the basic asm is
>>> identical to the extended asm without clobber (compile with -O2 -S and
>>> -fno-ipa-icf if you want to have it easier to read). In this case,
>>> the basic asm is treated as not clobbering memory at the tree level
>>> already, before expanding to RTL.
>> And that IMHO, ought to be considered a bug.
>
> I agree. Almost everyone does, as far as I can see.
>
> The question is if we want to retain this functionality. No one has
> depended on this in a long time -- they couldn't, it has been broken
> since forever -- and there is another mechanism that does reliably
> give this functionality (extended asm).
>
> The first pass that goes wrong for this testcase is fre2, fwiw.
I think that's the wrong way to look at things -- it's not that nobody
is depending on this behaviour, it's nobody has had a problem due to
this bug.
I've seen some amazing things through the years where you'd think
there's absolutely no way they could work -- but they did for a long
time with nobody noticing some absolutely horridly wrong code, that when
tickled just right would wreck havoc.
So again, I would suggest we document the desired behaviour and work
towards fixing any deviations from that behaviour.
jeff
More information about the Gcc
mailing list