This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]