aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssanames.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-ssanames.h')
-rw-r--r--gcc/tree-ssanames.h25
1 files changed, 12 insertions, 13 deletions
diff --git a/gcc/tree-ssanames.h b/gcc/tree-ssanames.h
index bb3b5e6..4fc9f69 100644
--- a/gcc/tree-ssanames.h
+++ b/gcc/tree-ssanames.h
@@ -47,13 +47,12 @@ struct GTY(()) ptr_info_def
/* Value range information for SSA_NAMEs representing non-pointer variables. */
-struct GTY (()) range_info_def {
- /* Minimum for value range. */
- double_int min;
- /* Maximum for value range. */
- double_int max;
- /* Non-zero bits - bits not set are guaranteed to be always zero. */
- double_int nonzero_bits;
+struct GTY ((variable_size)) range_info_def {
+ /* Minimum, maximum and nonzero bits. */
+ TRAILING_WIDE_INT_ACCESSOR (min, ints, 0)
+ TRAILING_WIDE_INT_ACCESSOR (max, ints, 1)
+ TRAILING_WIDE_INT_ACCESSOR (nonzero_bits, ints, 2)
+ trailing_wide_ints <3> ints;
};
@@ -70,13 +69,13 @@ struct GTY (()) range_info_def {
enum value_range_type { VR_UNDEFINED, VR_RANGE, VR_ANTI_RANGE, VR_VARYING };
/* Sets the value range to SSA. */
-extern void set_range_info (tree, enum value_range_type, double_int,
- double_int);
+extern void set_range_info (tree, enum value_range_type, const wide_int_ref &,
+ const wide_int_ref &);
/* Gets the value range from SSA. */
-extern enum value_range_type get_range_info (const_tree, double_int *,
- double_int *);
-extern void set_nonzero_bits (tree, double_int);
-extern double_int get_nonzero_bits (const_tree);
+extern enum value_range_type get_range_info (const_tree, wide_int *,
+ wide_int *);
+extern void set_nonzero_bits (tree, const wide_int_ref &);
+extern wide_int get_nonzero_bits (const_tree);
extern void init_ssanames (struct function *, int);
extern void fini_ssanames (void);
extern void ssanames_print_statistics (void);