[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