[DOC Patch] Add sample for @cc constraint
David Wohlferd
dw@LimeGreenSocks.com
Fri Apr 1 23:39:00 GMT 2016
> I would like executable code that verifies that this feature is
indeed working as intended.
First draft is attached. It tests all 28 (14 conditions plus 14
inverted). I wasn't sure what to set for optimization (O2? O3? O0?), so
I left the default.
It looks like even at O3 there are some missed optimizations here, but
that's an issue for another day.
> Is there any _actual_ problem here? Like, if you combine the output
and the clobber you run into problems? Looks to me like an explicit "cc"
clobber is just ignored on x86. We just need to make sure this stays
working (testcases).
Today? No. You can clobber or not clobber and both will produce the
exact same output.
But letting people program this two different ways guarantees that
people *will* program it both ways. And just because there isn't any
definable reason to limit this today doesn't mean that there won't ever
be. But by then it will be 'too late' to change it because it "breaks
existing code."
>> 1) Leave this text in.
>> 2) Remove the text and add the compiler check to v6.
>> 3) Remove the text and add the compiler check to v7.
>> 4) Leave the text in v6, then in v7: remove the text and add the
compiler check.
>> 5) (Reluctantly) remove the text and hope this never becomes a problem.
So, I've made my pitch, but it sounds like you want #5?
> My question would be, can this information ever be relevant to users?
They may notice that their code still works if they omit the "cc", but
that's not really a habit we want to encourage.
People do this now without understanding how or why it works.
> I think this is an internal implementation detail that doesn't
necessarily even have to be documented.
One time it would matter is if people want to move from basic asm (which
doesn't clobber "cc") to any type of extended asm (which always does).
It /probably/ won't matter in that case (and may even make things
better). But it shouldn't be a secret.
dw
-------------- next part --------------
A non-text attachment was scrubbed...
Name: asm1.patch
Type: text/x-patch
Size: 4832 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20160401/f598ddd2/attachment.bin>
More information about the Gcc-patches
mailing list