]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Use smallest_mode_for_size for computing the precision types of new graphite IVs.
authorspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 2 Jun 2010 16:39:47 +0000 (16:39 +0000)
committerspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 2 Jun 2010 16:39:47 +0000 (16:39 +0000)
2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>

* graphite-clast-to-gimple.c (gcc_type_for_interval): Use
smallest_mode_for_size for computing the precision types of new
graphite IVs.  Do not call lang_hooks.types.type_for_size.

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

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

index de6cb5b76eb63cb8f2801628aecd1e819a3a7384..915aa2d4b5bd00994527d0bfe23ce84b498a4432 100644 (file)
@@ -1,3 +1,9 @@
+2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
+
+       * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
+       smallest_mode_for_size for computing the precision types of new
+       graphite IVs.  Do not call lang_hooks.types.type_for_size.
+
 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
 
        * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
index b0e1a94bc25d22b90563894e5b34f6d2d7480493..3240c37f8cf43cd6815e92d38c8cb40ddc5f29cd 100644 (file)
@@ -478,6 +478,7 @@ gcc_type_for_interval (mpz_t low, mpz_t up, tree old_type)
   bool unsigned_p = true;
   int precision, prec_up, prec_int;
   tree type;
+  enum machine_mode mode;
 
   gcc_assert (value_le (low, up));
 
@@ -490,7 +491,16 @@ gcc_type_for_interval (mpz_t low, mpz_t up, tree old_type)
   prec_int = precision_for_interval (low, up);
   precision = prec_up > prec_int ? prec_up : prec_int;
 
-  type = lang_hooks.types.type_for_size (precision, unsigned_p);
+  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, unsigned_p);
+
   if (!type)
     {
       gloog_error = true;