This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c++/3064: optimizer fails to genrate correct code.
- To: gcc-gnats at gcc dot gnu dot org
- Subject: c++/3064: optimizer fails to genrate correct code.
- From: barto at visionpro dot com
- Date: 6 Jun 2001 18:07:09 -0000
- Reply-To: barto at visionpro dot com
>Number: 3064
>Category: c++
>Synopsis: optimizer fails to genrate correct code.
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Jun 06 11:16:06 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator: barto@visionpro.com
>Release: gcc-2.95.3
>Organization:
>Environment:
Solaris 8, gas 2.95.3
>Description:
g++ -O3 -finline-functions -funroll-loops -S xxx.c
generates 3 calls to the log function, each doing nothing.
>How-To-Repeat:
g++ -O3 -finline-functions -funroll-loops -S xxx.c
examine the resulting assembly output
>Fix:
fix your code to call the log function only one time.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="xxx.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="xxx.c"
I2luY2x1ZGUgPG1hdGguaD4KdHlwZWRlZiB1bnNpZ25lZCBjaGFyIG1hdGJpZ19kYXRhX3QgOwoK
Y2xhc3MgTSB7CnB1YmxpYzoKICAgIG1hdGJpZ19kYXRhX3QgKnZjdHIoKTsKICAgIGlubGluZSBp
bnQgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4oX3dpZHRoKTsgfQogICAgaW5saW5lIGludCB3aWR0
aCgpIGNvbnN0IHsgcmV0dXJuKF9oZWlnaHQpOyB9CnByaXZhdGU6CiAgICBpbnQgX3dpZHRoLCBf
aGVpZ2h0Owp9OwoKZXh0ZXJuIGludCBhcHByb3hfYXZlcmFnZTsKCnZvaWQKZXh0cmFjdF9mZWF0
dXJlcyhNJiBfbXQpCnsKICAgIGZsb2F0IHRvdGFsX3N1bTsKICAgIGZsb2F0IHN1bV9sb2c7Cgog
ICAgaW50IGs7CiAgICBpbnQgaTsKICAgIG1hdGJpZ19kYXRhX3QgKnAsICpwcDsKICAgIGZvciAo
ayA9IDAsIHBwID0gX210LnZjdHIoKTsgKytrIDw9IF9tdC5oZWlnaHQoKTsgcHAgKz0gX210Lndp
ZHRoKCkpIHsKCWZvciAocCA9IHBwLCBpID0gMDsgKytpIDw9IF9tdC53aWR0aCgpOyBwKyspIHsK
CSAgICBtYXRiaWdfZGF0YV90IHBfZGF0YSA9ICpwOwoKCSAgICBpZiAocF9kYXRhKSB7CgkJZmxv
YXQgYXBwcm94ID0gaSAtIGFwcHJveF9hdmVyYWdlOwoJCWZsb2F0IGxuID0gbG9nKGFwcHJveCk7
CgoJCXRvdGFsX3N1bSArPSBhcHByb3ggKiBsb2coYXBwcm94KTsKCQlzdW1fbG9nICs9IGxvZyhh
cHByb3gpOwoJCS8vIHRvdGFsX3N1bSArPSBhcHByb3ggKiBsbjsKCQkvLyBzdW1fbG9nICs9IGxu
OwoJICAgIH0KCX0KICAgIH0KfQoK