aboutsummaryrefslogtreecommitdiff
path: root/gcc/graphite-clast-to-gimple.c
diff options
context:
space:
mode:
authorSebastian Pop <sebastian.pop@amd.com>2011-07-21 22:57:30 +0000
committerSebastian Pop <sebastian.pop@amd.com>2011-07-21 22:57:30 +0000
commit62922e4c5182c4a74279f65b2c1be25adf38dd8e (patch)
treeb90a732adab7578902e19e0f4f3c4a17a500080b /gcc/graphite-clast-to-gimple.c
parent5d12a9ff978636261c142da1012aa2118b307f36 (diff)
Remove max_signed_precision_type.
2011-07-21 Sebastian Pop <sebastian.pop@amd.com> * graphite-clast-to-gimple.c (max_signed_precision_type): Removed. (max_precision_type): Inline max_signed_precision_type. (type_for_clast_red): Use max_precision_type. (type_for_clast_bin): Same. (type_for_clast_for): Same. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@176602 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/graphite-clast-to-gimple.c')
-rw-r--r--gcc/graphite-clast-to-gimple.c51
1 files changed, 22 insertions, 29 deletions
diff --git a/gcc/graphite-clast-to-gimple.c b/gcc/graphite-clast-to-gimple.c
index b1d682abab5..495b0b7829f 100644
--- a/gcc/graphite-clast-to-gimple.c
+++ b/gcc/graphite-clast-to-gimple.c
@@ -206,16 +206,27 @@ clast_name_to_gcc (clast_name_p name, ivs_params_p ip)
return VEC_index (tree, *(ip->newivs), index);
}
-/* Returns the signed maximal precision type for expressions TYPE1 and TYPE2. */
+/* Returns the maximal precision type for expressions TYPE1 and TYPE2. */
static tree
-max_signed_precision_type (tree type1, tree type2)
+max_precision_type (tree type1, tree type2)
{
- int p1 = TYPE_PRECISION (type1);
- int p2 = TYPE_PRECISION (type2);
- int precision;
- tree type;
enum machine_mode mode;
+ int p1, p2, precision;
+ tree type;
+
+ if (POINTER_TYPE_P (type1))
+ return type1;
+
+ if (POINTER_TYPE_P (type2))
+ return type2;
+
+ if (TYPE_UNSIGNED (type1)
+ && TYPE_UNSIGNED (type2))
+ return TYPE_PRECISION (type1) > TYPE_PRECISION (type2) ? type1 : type2;
+
+ p1 = TYPE_PRECISION (type1);
+ p2 = TYPE_PRECISION (type2);
if (p1 > p2)
precision = TYPE_UNSIGNED (type1) ? p1 * 2 : p1;
@@ -241,24 +252,6 @@ max_signed_precision_type (tree type1, tree type2)
return type;
}
-/* Returns the maximal precision type for expressions TYPE1 and TYPE2. */
-
-static tree
-max_precision_type (tree type1, tree type2)
-{
- if (POINTER_TYPE_P (type1))
- return type1;
-
- if (POINTER_TYPE_P (type2))
- return type2;
-
- if (!TYPE_UNSIGNED (type1)
- || !TYPE_UNSIGNED (type2))
- return max_signed_precision_type (type1, type2);
-
- return TYPE_PRECISION (type1) > TYPE_PRECISION (type2) ? type1 : type2;
-}
-
static tree
clast_to_gcc_expression (tree, struct clast_expr *, ivs_params_p);
@@ -473,8 +466,8 @@ type_for_clast_red (struct clast_reduction *r, ivs_params_p ip)
case clast_red_max:
type = type_for_clast_expr (r->elts[0], ip);
for (i = 1; i < r->n; i++)
- type = max_precision_type (type, type_for_clast_expr
- (r->elts[i], ip));
+ type = max_precision_type
+ (type, type_for_clast_expr (r->elts[i], ip));
return type;
@@ -493,7 +486,7 @@ type_for_clast_bin (struct clast_binary *b, ivs_params_p ip)
{
tree l = type_for_clast_expr ((struct clast_expr *) b->LHS, ip);
tree r = type_for_value (b->RHS);
- return max_signed_precision_type (l, r);
+ return max_precision_type (l, r);
}
/* Returns the type for the CLAST expression E when used in statement
@@ -688,8 +681,8 @@ type_for_clast_for (struct clast_for *stmt_for, int level,
tree lb_type = type_for_clast_expr (stmt_for->LB, ip);
tree ub_type = type_for_clast_expr (stmt_for->UB, ip);
- return max_signed_precision_type (lb_type, max_precision_type
- (ub_type, type_for_level (pbb, level)));
+ return max_precision_type
+ (lb_type, max_precision_type (ub_type, type_for_level (pbb, level)));
}
/* Creates a new LOOP corresponding to Cloog's STMT. Inserts an