Use ssizetype when long_long_integer_type_node is NULL.
authorSebastian Pop <sebastian.pop@amd.com>
Sat, 13 Mar 2010 17:35:29 +0000 (17:35 +0000)
committerSebastian Pop <spop@gcc.gnu.org>
Sat, 13 Mar 2010 17:35:29 +0000 (17:35 +0000)
2010-03-11  Sebastian Pop  <sebastian.pop@amd.com>

* graphite-clast-to-gimple.c (my_long_long): Defined.
(gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
* graphite-sese-to-poly.c (my_long_long): Defined.
(scop_ivs_can_be_represented): Use it.

From-SVN: r157438

gcc/ChangeLog.graphite
gcc/graphite-clast-to-gimple.c
gcc/graphite-sese-to-poly.c

index 75fe38f5ecf0bbb13c9075b1f0fcbfdb38a5f8b7..abd98882293e33c5eeaf9d8633666c0897ee59ce 100644 (file)
@@ -1,3 +1,10 @@
+2010-03-11  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-clast-to-gimple.c (my_long_long): Defined.
+       (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
+       * graphite-sese-to-poly.c (my_long_long): Defined.
+       (scop_ivs_can_be_represented): Use it.
+
 2010-03-10  Sebastian Pop  <sebastian.pop@amd.com>
 
        * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
index 377ca8beeaabd0b247eedffa86e4383c89384ea7..f99a158ac423a5ae7b26d29800d1c42c153b7972 100644 (file)
@@ -547,6 +547,9 @@ clast_get_body_of_loop (struct clast_stmt *stmt)
   gcc_unreachable ();
 }
 
+/* Java does not initialize long_long_integer_type_node.  */
+#define my_long_long (long_long_integer_type_node ? long_long_integer_type_node : ssizetype)
+
 /* Given a CLOOG_IV, return the type that CLOOG_IV should have in GCC
    land.  The selected type is big enough to include the original loop
    iteration variable, but signed to work with the subtractions CLooG
@@ -581,8 +584,8 @@ gcc_type_for_cloog_iv (const char *cloog_iv, gimple_bb_p gbb)
          if (type_precision <= TYPE_PRECISION (long_integer_type_node))
            return long_integer_type_node;
 
-         if (type_precision <= TYPE_PRECISION (long_long_integer_type_node))
-           return long_long_integer_type_node;
+         if (type_precision <= TYPE_PRECISION (my_long_long))
+           return my_long_long;
 
          gcc_unreachable ();
        }
@@ -593,17 +596,19 @@ gcc_type_for_cloog_iv (const char *cloog_iv, gimple_bb_p gbb)
       if (type_precision < TYPE_PRECISION (long_integer_type_node))
        return long_integer_type_node;
 
-      if (type_precision < TYPE_PRECISION (long_long_integer_type_node))
-       return long_long_integer_type_node;
+      if (type_precision < TYPE_PRECISION (my_long_long))
+       return my_long_long;
 
       /* There is no signed type available, that is large enough to hold the
         original value.  */
       gcc_unreachable ();
     }
 
-  return long_long_integer_type_node;
+  return my_long_long;
 }
 
+#undef my_long_long
+
 /* Returns the induction variable for the loop that gets translated to
    STMT.  */
 
index 28ed07c99985396c46500c726dae7fac12e576bb..0f370a8066769343b300e057262a8efd6fcff7f0 100644 (file)
@@ -2910,6 +2910,9 @@ scop_canonicalize_loops (scop_p scop)
       graphite_loop_normal_form (loop);
 }
 
+/* Java does not initialize long_long_integer_type_node.  */
+#define my_long_long (long_long_integer_type_node ? long_long_integer_type_node : ssizetype)
+
 /* Can all ivs be represented by a signed integer?
    As CLooG might generate negative values in its expressions, signed loop ivs
    are required in the backend. */
@@ -2934,13 +2937,14 @@ scop_ivs_can_be_represented (scop_p scop)
       precision = TYPE_PRECISION (type);
 
       if (TYPE_UNSIGNED (type)
-         && precision >= TYPE_PRECISION (long_long_integer_type_node))
+         && precision >= TYPE_PRECISION (my_long_long))
        return false;
     }
 
   return true;
 }
 
+#undef my_long_long
 
 /* Builds the polyhedral representation for a SESE region.  */