This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/59379] gomp_init_num_threads is compiled into an infinite loop with --with-arch=corei7 --with-cpu=slm


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>;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]