[Bug optimization/11488] New: Scheduling severely worsens performance

falk at debian dot org gcc-bugzilla@gcc.gnu.org
Thu Jul 10 14:05:00 GMT 2003


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

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

           Summary: Scheduling severely worsens performance
           Product: gcc
           Version: 3.4
            Status: UNCONFIRMED
          Keywords: pessimizes-code
          Severity: normal
          Priority: P2
         Component: optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: falk at debian dot org
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: alphaev68-unknown-linux-gnu
  GCC host triplet: alphaev68-unknown-linux-gnu
GCC target triplet: alphaev68-unknown-linux-gnu

This is a known problem, but there doesn't seem to be any good test case in the
database, and I think it's one of our worst performance problems currently.
Here's a nice test case:

gcc version 3.4 20030705 (experimental)

% gcc -O3 idct3.c && time ./a.out                    
./a.out  3.30s user 0.04s system 99% cpu 3.347 total    

% gcc -fno-schedule-insns -O3 idct3.c && time ./a.out
./a.out  1.19s user 0.00s system 101% cpu 1.171 total                       

i.e., slowdown of factor 2.7.

The new register allocator doesn't help a lot:

% gcc -O3 -fnew-ra idct3.c && time ./a.out
./a.out  3.09s user 0.04s system 100% cpu 3.128 total            

% gcc -fno-schedule-insns -fnew-ra -O3 idct3.c && time ./a.out
./a.out  1.24s user 0.00s system 97% cpu 1.276 total

The problem is that scheduling introduces false dependencies, which leads to
excessive spilling.



More information about the Gcc-bugs mailing list