This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
c/8092: -fno-gcse doesn't fix computed goto problems in GCC 3.2
- From: Bernd Paysan <bernd dot paysan at gmx dot de>
- To: gcc-gnats at gcc dot gnu dot org
- Date: Mon, 30 Sep 2002 10:18:53 +0200
- Subject: c/8092: -fno-gcse doesn't fix computed goto problems in GCC 3.2
>Number: 8092
>Category: c
>Synopsis: -fno-gcse doesn't fix computed goto problems in GCC 3.2
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: unassigned
>State: open
>Class: pessimizes-code
>Submitter-Id: net
>Arrival-Date: Mon Sep 30 01:26:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Bernd Paysan
>Release: 3.2
>Organization:
=20
>Environment:
System: Linux cohen 2.4.19-4GB #1 Fri Sep 13 13:14:56 UTC 2002 i686 unkno=
wn
Architecture: i686
=20
host: i486-suse-linux-gnu
build: i486-suse-linux-gnu
target: i486-suse-linux-gnu
configured with: ../configure --enable-threads=3Dposix --prefix=3D/usr=20
--with-local-prefix=3D/usr/local --infodir=3D/usr/share/info=20
--mandir=3D/usr/share/man --libdir=3D/usr/lib=20
--enable-languages=3Dc,c++,f77,objc,java,ada --enable-libgcj=20
--with-gxx-include-dir=3D/usr/include/g++ --with-slibdir=3D/lib=20
--with-system-zlib --enable-shared --enable-__cxa_atexit i486-suse-linux
>Description:
The problems with computed gotos got worse. GCC now insert jumps
to common code instead of just placing it where it belongs.
Insertion of superfluous code is even worse. Since some
distributions don't ship with 2.95.x any longer (like SuSE 8.1),
this really starts becoming critical.
>How-To-Repeat:
Install gforth from your preferred GNU mirror. Compile it. Change=
to
the engine directory. Type "make engine.s". Compare the results o=
f
gcc 2.95.3 with 3.2. Be horrified. At least I am.
>Fix:
Please don't eliminate common subexpressions by jumps to single
instructions. Single instructions are both cheaper and faster
than jumps to them.
=20
The other fix, use GCC 2.95.3, becomes more critical, as time
goes by. People often don't have it any longer. It produces
incompatible code (with C++), and so on.
--=20
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://www.jwdt.com/~paysan/
>Release-Note:
>Audit-Trail:
>Unformatted: