This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/36713] [4.4 regression] r137252 breaks -O2 optimization on x86_64-unknown-linux-gnu
- From: "dfranke at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 3 Jul 2008 18:59:30 -0000
- Subject: [Bug target/36713] [4.4 regression] r137252 breaks -O2 optimization on x86_64-unknown-linux-gnu
- References: <bug-36713-13648@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #15 from dfranke at gcc dot gnu dot org 2008-07-03 18:59 -------
> Your challenge is now to produce a testcase from your source ;)
I do have a testcase that shows said flags. The difference in assembler between
-foptimize-sibling-calls and -fno-optimize-sibling-calls is:
--- without.s 2008-07-03 20:51:59.000000000 +0200
+++ with.s 2008-07-03 20:52:26.000000000 +0200
@@ -64,10 +64,9 @@
movq %rsp, %rdi
call dummy_atom_model_inertia_tensor_
movq %rsp, %rdi
- call inertia_tensor_to_rg_
addq $80, %rsp
popq %rbx
- ret
+ jmp inertia_tensor_to_rg_
.LFE2:
.size dummy_atom_model_radius_of_gyration_,
.-dummy_atom_model_radius_of_gyration_
.section .eh_frame,"a",@progbits
Is this correct? Running the code compiled with -foptimize-sibling-calls seems
to yield the correct result. Not sure if I need to investigate further.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36713