gcc optimises out test of value in register-only loop
Andrew Haley
aph@redhat.com
Mon Oct 17 08:30:00 GMT 2011
On 10/15/2011 04:19 AM, Ian Lance Taylor wrote:
> Andrew Haley <aph@redhat.com> writes:
>
>> On 10/14/2011 05:41 AM, Ian Lance Taylor wrote:
>>> MikeW <mw_phil@yahoo.co.uk> writes:
>>>
>>>> volatile register int stop_loop __asm("r5")__;
>>>
>>> gcc does not support volatile register variables. I think it could be
>>> meaningful, but it has never worked.
>>
>> It would be really nasty to implement: we'd have to check for volatility
>> on every access to a hard register. The benefits don't seem worth it,
>> IMO.
>
> No, it's not that bad. At the tree level, we would only have to check
> on every reference to a DECL for which DECL_REGISTER is true. When
> expanding to RTL, we would replace each reference with a special
> UNSPEC_VOLATILE which we handle specially when generating asm code. Or
> perhaps simply expand each reference to a specially handled asm
> statement.
Ah yes, that would indeed work.
Still doesn't seem worth it! :-)
Andrew.
More information about the Gcc-help
mailing list