[Bug rtl-optimization/47028] [4.6 Regression] gcc.dg/tree-ssa/tailrecursion-[57].c FAIL with -foptimize-sibling-calls -fno-forward-propagate -fno-tree-copy-prop -fno-tree-dominator-opts
zsojka at seznam dot cz
gcc-bugzilla@gcc.gnu.org
Mon Dec 20 19:20:00 GMT 2010
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47028
--- Comment #1 from Zdenek Sojka <zsojka at seznam dot cz> 2010-12-20 19:20:12 UTC ---
Created attachment 22833
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=22833
another testcase (reduced from gcc.dg/tree-ssa/tailrecursion-7.c)
I hope this is the same problem as the first testcase.
$ gcc -O -foptimize-sibling-calls -fno-tree-copy-prop -fno-tree-dominator-opts
pr47028-2.c
$ ./a.out
Aborted
(it takes some time to run, the inner loop is done 2^32-1 times instead of n-1)
When the assembly is changed in the following way:
--- pr47028-2.s 2010-12-20 20:16:12.000000000 +0100
+++ pr47028-2-fixed.s 2010-12-20 20:16:26.000000000 +0100
@@ -41,7 +41,7 @@
foo:
.LFB0:
.cfi_startproc
- mov edx, 0 # n,
+ mov edx, edi # n,
mov eax, 1 # mul_tmp.4,
mov esi, 0 # add_acc.1,
test edi, edi # n
it works fine. edx is loaded by '0' instead of 'n'.
More information about the Gcc-bugs
mailing list