This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/59379] gomp_init_num_threads is compiled into an infinite loop with --with-arch=corei7 --with-cpu=slm
- From: "hjl.tools at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 04 Dec 2013 00:48:31 +0000
- Subject: [Bug target/59379] gomp_init_num_threads is compiled into an infinite loop with --with-arch=corei7 --with-cpu=slm
- Auto-submitted: auto-generated
- References: <bug-59379-4 at http dot gcc dot gnu dot org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59379
H.J. Lu <hjl.tools at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2013-12-04
Ever confirmed|0 |1
--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> ---
The difference starts in ivopts pass:
diff -upr good/test.c.120t.ivopts bad/test.c.120t.ivopts
--- good/test.c.120t.ivopts 2013-12-03 16:46:21.995210047 -0800
+++ bad/test.c.120t.ivopts 2013-12-03 16:46:34.847986232 -0800
@@ -13,6 +13,7 @@ gomp_init_num_threads ()
long unsigned int _13;
long unsigned int gomp_cpuset_size.2_14;
void * gomp_cpusetp.3_17;
+ long unsigned int _19;
long unsigned int gomp_cpuset_size.1_20;
int _22;
long unsigned int gomp_cpuset_size.1_25;
@@ -39,6 +40,7 @@ gomp_init_num_threads ()
struct cpu_set_t * prephitmp_89;
struct cpu_set_t * prephitmp_90;
long unsigned int pretmp_91;
+ long unsigned int _92;
long unsigned int pretmp_93;
long unsigned int pretmp_95;
long unsigned int prephitmp_96;
@@ -93,7 +95,9 @@ gomp_init_num_threads ()
<bb 8>:
# i_76 = PHI <i_48(12), i_47(7)>
i_48 = i_76 + 18446744073709551615;
- if (i_47 > i_48)
+ _92 = i_47 * 18446744069414584320;
+ i_94 = i_48 + _92;
+ if (i_47 > i_94)
goto <bb 9>;
else
goto <bb 11>;
@@ -118,7 +122,9 @@ gomp_init_num_threads ()
goto <bb 13>;
<bb 11>:
- if (i_48 != 0)
+ _19 = i_47 * 18446744069414584320;
+ i_69 = _19 + i_48;
+ if (i_69 != 0)
goto <bb 12>;
else
goto <bb 13>;