This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH 1/3] Avoid lang_hooks, call build_nonstandard_integer_type.
- From: Sebastian Pop <sebpop at gmail dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: gcc-graphite at googlegroups dot com, Sebastian Pop <sebpop at gmail dot com>
- Date: Thu, 29 Jul 2010 21:06:35 -0500
- Subject: [PATCH 1/3] Avoid lang_hooks, call build_nonstandard_integer_type.
- References: <1280455597-2075-1-git-send-email-sebpop@gmail.com>
2010-07-29 Sebastian Pop <sebastian.pop@amd.com>
* graphite-clast-to-gimple.c (max_signed_precision_type): Remove the call
to lang_hooks.types.type_for_size. Call build_nonstandard_integer_type.
---
gcc/ChangeLog.graphite | 5 +++++
gcc/graphite-clast-to-gimple.c | 12 +++++++++++-
2 files changed, 16 insertions(+), 1 deletions(-)
diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite
index 2b3310d..9898a8c 100644
--- a/gcc/ChangeLog.graphite
+++ b/gcc/ChangeLog.graphite
@@ -1,3 +1,8 @@
+2010-07-29 Sebastian Pop <sebastian.pop@amd.com>
+
+ * graphite-clast-to-gimple.c (max_signed_precision_type): Remove the call
+ to lang_hooks.types.type_for_size. Call build_nonstandard_integer_type.
+
2010-07-29 Riyadh Baghdadi <baghdadi.mr@gmail.com>
* graphite-cloog-util.c (openscop_print_cloog_matrix): New.
diff --git a/gcc/graphite-clast-to-gimple.c b/gcc/graphite-clast-to-gimple.c
index e09d4d2..534c88e 100644
--- a/gcc/graphite-clast-to-gimple.c
+++ b/gcc/graphite-clast-to-gimple.c
@@ -201,19 +201,29 @@ max_signed_precision_type (tree type1, tree type2)
int p2 = TYPE_PRECISION (type2);
int precision;
tree type;
+ enum machine_mode mode;
if (p1 > p2)
precision = TYPE_UNSIGNED (type1) ? p1 * 2 : p1;
else
precision = TYPE_UNSIGNED (type2) ? p2 * 2 : p2;
- type = lang_hooks.types.type_for_size (precision, false);
+ 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, false);
if (!type)
{
gloog_error = true;
return integer_type_node;
}
+
return type;
}
--
1.7.0.4