From: Sebastian Pop Date: Thu, 30 Sep 2010 21:16:25 +0000 (+0000) Subject: Generate in priority signed types for integer constants. X-Git-Tag: releases/gcc-4.6.0~4009 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c606063947f1651fea14bdd558c216737e1f85b5;p=thirdparty%2Fgcc.git Generate in priority signed types for integer constants. 2010-07-29 Sebastian Pop * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in priority signed types. From-SVN: r164772 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 20fa477420a3..51522af23299 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-09-30 Sebastian Pop + + * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in + priority signed types. + 2010-09-30 Sebastian Pop * graphite-clast-to-gimple.c (max_signed_precision_type): Remove the call diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index dd37363fdb31..b469a1297c80 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,3 +1,8 @@ +2010-07-29 Sebastian Pop + + * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in + priority signed types. + 2010-07-29 Sebastian Pop * graphite-clast-to-gimple.c (max_signed_precision_type): Remove the call diff --git a/gcc/graphite-clast-to-gimple.c b/gcc/graphite-clast-to-gimple.c index 73bd97144f02..88a72f1fea73 100644 --- a/gcc/graphite-clast-to-gimple.c +++ b/gcc/graphite-clast-to-gimple.c @@ -459,9 +459,6 @@ gcc_type_for_interval (mpz_t low, mpz_t up) gcc_assert (mpz_cmp (low, up) <= 0); - if (mpz_sgn (low) < 0) - unsigned_p = false; - prec_up = precision_for_value (up); prec_int = precision_for_interval (low, up); precision = MAX (prec_up, prec_int); @@ -472,6 +469,15 @@ gcc_type_for_interval (mpz_t low, mpz_t up) return integer_type_node; } + if (mpz_sgn (low) <= 0) + unsigned_p = false; + + else if (precision < BITS_PER_WORD) + { + unsigned_p = false; + precision++; + } + mode = smallest_mode_for_size (precision, MODE_INT); precision = GET_MODE_PRECISION (mode); type = build_nonstandard_integer_type (precision, unsigned_p);