summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/double-int.c24
-rw-r--r--gcc/double-int.h7
-rw-r--r--gcc/tree.c24
-rw-r--r--gcc/tree.h11
5 files changed, 45 insertions, 31 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e461f4b9ec1..485dfbe4e5e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2010-05-03 Anatoly Sokolov <aesok@post.ru>
+
+ * double-int.h (tree_to_double_int): Remove macro.
+ (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
+ * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
+ (tree_to_double_int): New function.
+ * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
+ Move ...
+ * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
+
2010-05-03 Richard Guenther <rguenther@suse.de>
PR tree-optimization/43971
diff --git a/gcc/double-int.c b/gcc/double-int.c
index 8e4a3f5e596..000be2bf7b0 100644
--- a/gcc/double-int.c
+++ b/gcc/double-int.c
@@ -1049,30 +1049,6 @@ double_int_rshift (double_int a, HOST_WIDE_INT count, unsigned int prec, bool ar
return ret;
}
-/* Constructs tree in type TYPE from with value given by CST. Signedness of CST
- is assumed to be the same as the signedness of TYPE. */
-
-tree
-double_int_to_tree (tree type, double_int cst)
-{
- cst = double_int_ext (cst, TYPE_PRECISION (type), TYPE_UNSIGNED (type));
-
- return build_int_cst_wide (type, cst.low, cst.high);
-}
-
-/* Returns true if CST fits into range of TYPE. Signedness of CST is assumed
- to be the same as the signedness of TYPE. */
-
-bool
-double_int_fits_to_tree_p (const_tree type, double_int cst)
-{
- double_int ext = double_int_ext (cst,
- TYPE_PRECISION (type),
- TYPE_UNSIGNED (type));
-
- return double_int_equal_p (cst, ext);
-}
-
/* Returns -1 if A < B, 0 if A == B and 1 if A > B. Signedness of the
comparison is given by UNS. */
diff --git a/gcc/double-int.h b/gcc/double-int.h
index 47991ca41b8..65d25ef04cb 100644
--- a/gcc/double-int.h
+++ b/gcc/double-int.h
@@ -61,13 +61,6 @@ typedef struct
/* Constructors and conversions. */
-tree double_int_to_tree (tree, double_int);
-bool double_int_fits_to_tree_p (const_tree, double_int);
-
-/* Constructs double_int from tree CST. */
-
-#define tree_to_double_int(cst) (TREE_INT_CST (cst))
-
/* Constructs double_int from integer CST. The bits over the precision of
HOST_WIDE_INT are filled with the sign bit. */
diff --git a/gcc/tree.c b/gcc/tree.c
index 24482af95d8..b8f80deaf69 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -1082,6 +1082,30 @@ build_int_cst_wide_type (tree type,
return build_int_cst_wide (type, low, high);
}
+/* Constructs tree in type TYPE from with value given by CST. Signedness
+ of CST is assumed to be the same as the signedness of TYPE. */
+
+tree
+double_int_to_tree (tree type, double_int cst)
+{
+ cst = double_int_ext (cst, TYPE_PRECISION (type), TYPE_UNSIGNED (type));
+
+ return build_int_cst_wide (type, cst.low, cst.high);
+}
+
+/* Returns true if CST fits into range of TYPE. Signedness of CST is assumed
+ to be the same as the signedness of TYPE. */
+
+bool
+double_int_fits_to_tree_p (const_tree type, double_int cst)
+{
+ double_int ext = double_int_ext (cst,
+ TYPE_PRECISION (type),
+ TYPE_UNSIGNED (type));
+
+ return double_int_equal_p (cst, ext);
+}
+
/* These are the hash table functions for the hash table of INTEGER_CST
nodes of a sizetype. */
diff --git a/gcc/tree.h b/gcc/tree.h
index 0cfdcad224b..0a16c0df004 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -3998,6 +3998,17 @@ extern tree build_var_debug_value_stat (tree, tree MEM_STAT_DECL);
#define build_var_debug_value(t1,t2) \
build_var_debug_value_stat (t1,t2 MEM_STAT_INFO)
+/* Constructs double_int from tree CST. */
+
+static inline double_int
+tree_to_double_int (const_tree cst)
+{
+ return TREE_INT_CST (cst);
+}
+
+extern tree double_int_to_tree (tree, double_int);
+extern bool double_int_fits_to_tree_p (const_tree, double_int);
+
extern tree build_int_cst (tree, HOST_WIDE_INT);
extern tree build_int_cst_type (tree, HOST_WIDE_INT);
extern tree build_int_cstu (tree, unsigned HOST_WIDE_INT);