OSDN Git Service

Use ssizetype when long_long_integer_type_node is NULL.
authorspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 13 Mar 2010 17:35:29 +0000 (17:35 +0000)
committerspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157438 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 75fe38f..abd9888 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 377ca8b..f99a158 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 28ed07c..0f370a8 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.  */