diff options
author | Sebastian Pop <sebastian.pop@amd.com> | 2010-06-02 16:39:47 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2010-06-02 16:39:47 +0000 |
commit | d6abd6d8bde894f946209e897495ef093d7dd792 (patch) | |
tree | 62bf01a6d9429070dae6e2ddd858ecae30dad4a6 | |
parent | 718d3588b02c5fde3939e889c7586d71a99c4629 (diff) | |
download | gcc-d6abd6d8bde894f946209e897495ef093d7dd792.zip gcc-d6abd6d8bde894f946209e897495ef093d7dd792.tar.gz gcc-d6abd6d8bde894f946209e897495ef093d7dd792.tar.bz2 |
Use smallest_mode_for_size for computing the precision types of new graphite IVs.
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.
From-SVN: r160165
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/graphite-clast-to-gimple.c | 12 |
2 files changed, 17 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index de6cb5b..915aa2d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 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 information. (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information. diff --git a/gcc/graphite-clast-to-gimple.c b/gcc/graphite-clast-to-gimple.c index b0e1a94..3240c37 100644 --- a/gcc/graphite-clast-to-gimple.c +++ b/gcc/graphite-clast-to-gimple.c @@ -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; |