GCC 3.3.1 -O2 problem with sqrt.c

Sanjiv Kumar Gupta sanjiv.gupta@oracle.com
Mon May 30 15:28:00 GMT 2005


Ian Lance Taylor wrote:

> Sanjiv Kumar Gupta <skgnu@yahoo.com> writes:
> 
> 
>>I am using gcc 3.3.1 release as my port, and looks
>>like I have hit a problem with greg.
> 
> 
> You neglected to mention what target you are using.
> 
Ian, the port is for a 32-bit RISC and not complete yet,
hence still not contributed.
This probably makes difficult for you to suggest any
fix, but I still asked in case I could get any pointers
for investigation.

> 
>>I couldn't understand why the insns 620 and 621 are
>>being generated here as DI moves.
> 
> 
> I'm not sure specifically why it got a DI move here, but it doesn't
> look wrong.  It's treating the struct named parts as DImode.
> 
> 
>>This is creating problem since insn 621 gets splitted
>>after reload into two SI moves,i.e. @(r21, -8) and
>>@(r21, -4).
>>This renders insns 619 as dead and hence insns 618 and
>>insn 429 as dead, which are eliminated by flow2.
> 
> 
> It does look rather suspicious, but it's hard to know whether it is
> wrong without seeing the value in r1.
> 
r1 looks unrelated to struct members, and is being used by the
ifcvt pass to expand some comparison insns.


> Does the behaviour change if you use -fno-strict-aliasing?  (I can't
> remember what the default was in 3.3.1).
> 
> Ian
> 
The behaviour doesn't changes with -fno-strict-aliasing or 
-fstrict-aliasing.

Thanks
Sanjiv




More information about the Gcc mailing list