[Bug tree-optimization/48921] New: Value numbering takes infinite time on nested infinite loop
arthur.j.odwyer at gmail dot com
gcc-bugzilla@gcc.gnu.org
Fri May 6 23:26:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48921
Summary: Value numbering takes infinite time on nested infinite
loop
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: arthur.j.odwyer@gmail.com
Created attachment 24203
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24203
Output of "ajo-gcc -O1 -c test993353039.c -v"
This reproduces for me with svn revision 172950 (2011-04-25), but not with 4.4
or 4.5. I'm on Ubuntu 10.10, x86-64.
cat >test993353039.c <<EOF
extern int g_38, g_70;
extern int * volatile g_65[4][1];
void func_110() {
for (g_70 = 0; g_70 < 2; ++g_70)
while (1)
g_38 = (g_65[g_70] != 0);
}
EOF
gcc -O1 -c test993353039.c
[hangs looping in tree-ssa-sccvn.c:run_scc_vn, i.e., value numbering.]
I wonder if this is related to bug 48732. They seem to be in different
components, but both bugs do involve simple nested loops where the compile time
ends up proportional to the run time --- except that in this case both times
are infinite!
Also notice that the expression (g_65[g_70] != 0) will be constant-folded to
"1", but if you use the literal "1" instead, the bug goes away.
More information about the Gcc-bugs
mailing list