Richi has asked the we break the wide-int patch so that the individual port and
front end maintainers can review their parts without have to go through the
entire patch. This patch covers the hook code.
Ok?
* hooks.h: Include wide-int.h rather than double-int.h.
(hook_bool_dint_dint_uint_bool_true): Delete.
(hook_bool_wint_wint_uint_bool_true): Declare.
* hooks.c
(hook_bool_dint_dint_uint_bool_true): Removed.
(hook_bool_wint_wint_uint_bool_true): New.
* targhooks.h (can_use_doloop_if_innermost): Take widest_ints rather
than double_ints.
* targhooks.c
(default_cxx_get_cookie_size): Uses INT_CST_LT rather than
INT_CST_LT_UNSIGNED.
(can_use_doloop_if_innermost): Take widest_ints rather than
double_ints.
diff --git a/gcc/hooks.c b/gcc/hooks.c
index 9f53007..50c1250 100644
--- a/gcc/hooks.c
+++ b/gcc/hooks.c
@@ -332,7 +332,8 @@ hook_bool_rtx_int_int_int_intp_bool_false (rtx a
ATTRIBUTE_UNUSED,
}
bool
-hook_bool_dint_dint_uint_bool_true (double_int, double_int, unsigned int, bool)
+hook_bool_wint_wint_uint_bool_true (const widest_int &, const widest_int &,
+ unsigned int, bool)
{
return true;
}
diff --git a/gcc/hooks.h b/gcc/hooks.h
index 38454fb..38a5fd4 100644
--- a/gcc/hooks.h
+++ b/gcc/hooks.h
@@ -23,7 +23,7 @@
#define GCC_HOOKS_H
#include "machmode.h"
-#include "double-int.h"
+#include "wide-int.h"
extern bool hook_bool_void_false (void);
extern bool hook_bool_void_true (void);
@@ -61,7 +61,8 @@ extern bool hook_bool_rtx_int_int_int_intp_bool_false (rtx,
int, int, int,
extern bool hook_bool_tree_tree_false (tree, tree);
extern bool hook_bool_tree_tree_true (tree, tree);
extern bool hook_bool_tree_bool_false (tree, bool);
-extern bool hook_bool_dint_dint_uint_bool_true (double_int, double_int,
+extern bool hook_bool_wint_wint_uint_bool_true (const widest_int &,
+ const widest_int &,
unsigned int, bool);
extern void hook_void_void (void);
diff --git a/gcc/targhooks.c b/gcc/targhooks.c
index 6c08385..c383520 100644
--- a/gcc/targhooks.c
+++ b/gcc/targhooks.c
@@ -291,7 +291,7 @@ default_cxx_get_cookie_size (tree type)
sizetype_size = size_in_bytes (sizetype);
type_align = size_int (TYPE_ALIGN_UNIT (type));
- if (INT_CST_LT_UNSIGNED (type_align, sizetype_size))
+ if (INT_CST_LT (type_align, sizetype_size))
cookie_size = sizetype_size;
else
cookie_size = type_align;
@@ -1744,7 +1744,7 @@ default_builtin_chkp_function (unsigned int fcode
ATTRIBUTE_UNUSED)
not support nested low-overhead loops. */
bool
-can_use_doloop_if_innermost (double_int, double_int,
+can_use_doloop_if_innermost (const widest_int &, const widest_int &,
unsigned int loop_depth, bool)
{
return loop_depth == 1;
diff --git a/gcc/targhooks.h b/gcc/targhooks.h
index 1ba0c1d..aed5778 100644
--- a/gcc/targhooks.h
+++ b/gcc/targhooks.h
@@ -213,5 +213,6 @@ extern tree default_fn_abi_va_list_bounds_size (tree);
extern tree default_chkp_bound_type (void);
extern enum machine_mode default_chkp_bound_mode (void);
extern tree default_builtin_chkp_function (unsigned int);
-extern bool can_use_doloop_if_innermost (double_int, double_int,
+extern bool can_use_doloop_if_innermost (const widest_int &,
+ const widest_int &,
unsigned int, bool);