This is the mail archive of the 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: basic asm and memory clobbers

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.


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