Skip to content
Snippets Groups Projects
Commit 84f2ffea authored by Sebastian Pop's avatar Sebastian Pop Committed by Sebastian Pop
Browse files

Generate signed types whenever possible.

2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>

	* graphite-clast-to-gimple.c (type_for_interval): Generate signed
	types whenever possible.

From-SVN: r176604
parent 3d9784cb
No related branches found
No related tags found
No related merge requests found
2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (type_for_interval): Generate signed
types whenever possible.
2011-07-21 Sebastian Pop <sebastian.pop@amd.com>
 
* graphite-clast-to-gimple.c (struct clast_name_index): Add lb
......
......@@ -443,6 +443,7 @@ type_for_interval (mpz_t v1, mpz_t v2)
bool unsigned_p;
tree type;
enum machine_mode mode;
int wider_precision;
int precision = MAX (mpz_sizeinbase (v1, 2),
mpz_sizeinbase (v2, 2));
......@@ -458,8 +459,16 @@ type_for_interval (mpz_t v1, mpz_t v2)
unsigned_p = (mpz_sgn (v2) >= 0);
mode = smallest_mode_for_size (precision, MODE_INT);
precision = GET_MODE_PRECISION (mode);
type = build_nonstandard_integer_type (precision, unsigned_p);
wider_precision = GET_MODE_PRECISION (mode);
/* As we want to generate signed types as much as possible, try to
fit the interval [v1, v2] in a signed type. For example,
supposing that we have the interval [0, 100], instead of
generating unsigned char, we want to generate a signed char. */
if (unsigned_p && precision < wider_precision)
unsigned_p = false;
type = build_nonstandard_integer_type (wider_precision, unsigned_p);
if (!type)
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment