When I compile qt-x11-free-3.3.3 with the actual snapshot using the options:
  -O3 --param max-gcse-passes=4 -floop-optimize2 -fmove-loop-invariants
I get get a miscompilation in the file sql_lex.cc in a very complex switch
statement which results in an error during linking:
  "undefined reference to .L968"

This error goes away when I ommit -floop-optimize2 -fmove-loop-invariants or
use -O2 or max-gcse-passes=3

Since the source to produce this error is too large (~ 100 .o files and 38
libraries are linking together) I did not file a bug report.

Maybe the combination of parameters doesn't make sense or is invalid, but my
goal was to stress the compiler by using parameters which might produce
better code.
(We have c++ programs where max-gcse-passes=5 is necessary to get fast code)

My question are:
Is this a valid combination of parameters and should that combination work?
Should I submit this as a bug report?


Michael Cieslinski


output gcc -v:
Reading specs from
/usr/local/gcc40a/lib/gcc/powerpc-unknown-linux-gnu/4.0.0/specs
Configured with: ../gcc40/configure --prefix=/usr/local/gcc40a
--program-suffix=40a --with-cpu=G5 --enable-altivec --enable-languages=c,c++
--enable-checking
Thread model: posix
gcc version 4.0.0 20041121 (experimental)

The source can be downloaded at:
http://www.trolltech.com/download/qt/x11.html

to compile I use CFLAGS and CXXFLAGS:
-pipe -g -O3 -mcpu=G5 -maltivec -mabi=altivec -fmessage-length=0
-falign-loops=16 -falign-jumps=16 -falign-functions=32 -fstrict-aliasing
-fsched-interblock --param max-gcse-passes=5 -ffast-math -funroll-all-loops
-funit-at-a-time -fpeel-loops -ftracer -funswitch-loops -floop-optimize2
-fmove-loop-invariants -fgcse-after-reload -frename-registers

QT was configured with:
./configure --prefix=/home/cie019/mysql/mysql --enable-thread-safe-client

-- 
           Summary: miscompilation of complex switch statement
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: micis at gmx dot de
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: powerpc-unknown-linux-gnu
  GCC host triplet: powerpc-unknown-linux-gnu
GCC target triplet: powerpc-unknown-linux-gnu


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

Reply via email to