[Bug middle-end/52835] [4.7/4.8 Regression] -O3 wrongly optimizes loop __builtin_memcpy away

arnaud02 at users dot sourceforge.net gcc-bugzilla@gcc.gnu.org
Mon Apr 2 17:54:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52835

--- Comment #3 from Arnaud Desitter <arnaud02 at users dot sourceforge.net> 2012-04-02 17:54:06 UTC ---
Additionally:
>cat xxx.f
      SUBROUTINE XXX(RES,ALP,REN,NN )
      DIMENSION ALP(NN),REN (NN),RES (NN)
      DO IP = 1,NN
         REN(IP) = 0.0
         ALP(IP) = 0.0
         CALL YYY(ALP(IP),REN(IP),RES(IP))
      ENDDO
      END
>gfortran470 -c -O3 -o xxx_O3.o xxx.f ; gfortran470 -c -O2 -o xxx_O2.o xxx.f ; nm xxx*.o

xxx_O2.o:
0000000000000000 T xxx_
                 U yyy_

xxx_O3.o:
                 U memset
0000000000000000 T xxx_

When compiled with -O3, the call to "YYY" is not generated. This is a pretty
serious wrong code generation.



More information about the Gcc-bugs mailing list