]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Avoid lang_hooks, call build_nonstandard_integer_type.
authorSebastian Pop <sebastian.pop@amd.com>
Thu, 30 Sep 2010 21:16:18 +0000 (21:16 +0000)
committerSebastian Pop <spop@gcc.gnu.org>
Thu, 30 Sep 2010 21:16:18 +0000 (21:16 +0000)
2010-07-29  Sebastian Pop  <sebastian.pop@amd.com>

* graphite-clast-to-gimple.c (max_signed_precision_type): Remove the call
to lang_hooks.types.type_for_size.  Call build_nonstandard_integer_type.

From-SVN: r164771

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

index b4a7367ae703a3b1d558db33ae5d6ea728a05f6e..20fa477420a34f842ad70ca2f02722edc1ca733c 100644 (file)
@@ -1,3 +1,8 @@
+2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-clast-to-gimple.c (max_signed_precision_type): Remove the call
+       to lang_hooks.types.type_for_size.  Call build_nonstandard_integer_type.
+
 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
 
        * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
index 50c1e130acc19df0d070bfc3d2ef0d53d6c5bd0f..dd37363fdb318d597a057d1f39d490657657a4cc 100644 (file)
@@ -1,3 +1,8 @@
+2010-07-29  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-clast-to-gimple.c (max_signed_precision_type): Remove the call
+       to lang_hooks.types.type_for_size.  Call build_nonstandard_integer_type.
+
 2010-07-29  Riyadh Baghdadi <baghdadi.mr@gmail.com>
 
        * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
index 3f26ad3aaec6320c19b9eab3edcabc9791ce7ba7..73bd97144f029eb6c64cd95de6e6396daa08ee0c 100644 (file)
@@ -201,19 +201,29 @@ max_signed_precision_type (tree type1, tree type2)
   int p2 = TYPE_PRECISION (type2);
   int precision;
   tree type;
+  enum machine_mode mode;
 
   if (p1 > p2)
     precision = TYPE_UNSIGNED (type1) ? p1 * 2 : p1;
   else
     precision = TYPE_UNSIGNED (type2) ? p2 * 2 : p2;
 
-  type = lang_hooks.types.type_for_size (precision, false);
+  if (precision > BITS_PER_WORD)
+    {
+      gloog_error = true;
+      return integer_type_node;
+    }
+
+  mode = smallest_mode_for_size (precision, MODE_INT);
+  precision = GET_MODE_PRECISION (mode);
+  type = build_nonstandard_integer_type (precision, false);
 
   if (!type)
     {
       gloog_error = true;
       return integer_type_node;
     }
+
   return type;
 }