aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKugan Vivekanandarajah <kuganv@linaro.org>2016-08-06 21:11:26 +0000
committerKugan Vivekanandarajah <kugan@gcc.gnu.org>2016-08-06 21:11:26 +0000
commita73f34c2d256fc23d41864193274e88d7d7b28cc (patch)
treea3a6c8db1277081e35d533447806110021f36f5b /gcc
parent19278b02d711d178cce78033a5a95ffeccbae42d (diff)
downloadgcc-a73f34c2d256fc23d41864193274e88d7d7b28cc.zip
gcc-a73f34c2d256fc23d41864193274e88d7d7b28cc.tar.gz
gcc-a73f34c2d256fc23d41864193274e88d7d7b28cc.tar.bz2
data-streamer-in.c (streamer_read_wide_int): New.
gcc/ChangeLog: 2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org> * data-streamer-in.c (streamer_read_wide_int): New. (streamer_read_widest_int): Renamed function. * data-streamer-out.c (streamer_write_wide_int): New (streamer_write_widest_int): Renamed function. * lto-streamer-in.c (streamer_read_wi): Renamed and moved to data-stream-in.c. (input_cfg): Call renamed function. * lto-streamer-out.c (streamer_write_wi): Renamed and moved to data-stream-out.c. (output_cfg): Call renamed function. * data-streamer.h: Add declarations. From-SVN: r239213
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog14
-rw-r--r--gcc/data-streamer-in.c31
-rw-r--r--gcc/data-streamer-out.c27
-rw-r--r--gcc/data-streamer.h4
-rw-r--r--gcc/lto-streamer-in.c21
-rw-r--r--gcc/lto-streamer-out.c20
6 files changed, 82 insertions, 35 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6a669e6..2193fda 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,17 @@
+2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
+
+ * data-streamer-in.c (streamer_read_wide_int): New.
+ (streamer_read_widest_int): Renamed function.
+ * data-streamer-out.c (streamer_write_wide_int): New
+ (streamer_write_widest_int): Renamed function.
+ * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
+ data-stream-in.c.
+ (input_cfg): Call renamed function.
+ * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
+ data-stream-out.c.
+ (output_cfg): Call renamed function.
+ * data-streamer.h: Add declarations.
+
2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
* tree-ssa-ccp.c (extend_mask): New param sgn.
diff --git a/gcc/data-streamer-in.c b/gcc/data-streamer-in.c
index 2625af6..2a49fe2 100644
--- a/gcc/data-streamer-in.c
+++ b/gcc/data-streamer-in.c
@@ -184,3 +184,34 @@ streamer_read_gcov_count (struct lto_input_block *ib)
gcc_assert (ret >= 0);
return ret;
}
+
+/* Read the physical representation of a wide_int val from
+ input block IB. */
+
+wide_int
+streamer_read_wide_int (struct lto_input_block *ib)
+{
+ HOST_WIDE_INT a[WIDE_INT_MAX_ELTS];
+ int i;
+ int prec = streamer_read_uhwi (ib);
+ int len = streamer_read_uhwi (ib);
+ for (i = 0; i < len; i++)
+ a[i] = streamer_read_hwi (ib);
+ return wide_int::from_array (a, len, prec);
+}
+
+/* Read the physical representation of a widest_int val from
+ input block IB. */
+
+widest_int
+streamer_read_widest_int (struct lto_input_block *ib)
+{
+ HOST_WIDE_INT a[WIDE_INT_MAX_ELTS];
+ int i;
+ int prec ATTRIBUTE_UNUSED = streamer_read_uhwi (ib);
+ int len = streamer_read_uhwi (ib);
+ for (i = 0; i < len; i++)
+ a[i] = streamer_read_hwi (ib);
+ return widest_int::from_array (a, len);
+}
+
diff --git a/gcc/data-streamer-out.c b/gcc/data-streamer-out.c
index e476530..3dd423b 100644
--- a/gcc/data-streamer-out.c
+++ b/gcc/data-streamer-out.c
@@ -375,3 +375,30 @@ streamer_write_data_stream (struct lto_output_stream *obs, const void *data,
}
}
+/* Emit the physical representation of wide_int VAL to output block OB. */
+
+void
+streamer_write_wide_int (struct output_block *ob, const wide_int &val)
+{
+ int len = val.get_len ();
+
+ streamer_write_uhwi (ob, val.get_precision ());
+ streamer_write_uhwi (ob, len);
+ for (int i = 0; i < len; i++)
+ streamer_write_hwi (ob, val.elt (i));
+}
+
+/* Emit the physical representation of widest_int W to output block OB. */
+
+void
+streamer_write_widest_int (struct output_block *ob,
+ const widest_int &w)
+{
+ int len = w.get_len ();
+
+ streamer_write_uhwi (ob, w.get_precision ());
+ streamer_write_uhwi (ob, len);
+ for (int i = 0; i < len; i++)
+ streamer_write_hwi (ob, w.elt (i));
+}
+
diff --git a/gcc/data-streamer.h b/gcc/data-streamer.h
index 0048f66..ff479a6 100644
--- a/gcc/data-streamer.h
+++ b/gcc/data-streamer.h
@@ -69,6 +69,8 @@ void streamer_write_hwi_stream (struct lto_output_stream *, HOST_WIDE_INT);
void streamer_write_gcov_count_stream (struct lto_output_stream *, gcov_type);
void streamer_write_data_stream (struct lto_output_stream *, const void *,
size_t);
+void streamer_write_wide_int (struct output_block *, const wide_int &);
+void streamer_write_widest_int (struct output_block *, const widest_int &);
/* In data-streamer-in.c */
const char *streamer_read_string (struct data_in *, struct lto_input_block *);
@@ -81,6 +83,8 @@ const char *bp_unpack_string (struct data_in *, struct bitpack_d *);
unsigned HOST_WIDE_INT streamer_read_uhwi (struct lto_input_block *);
HOST_WIDE_INT streamer_read_hwi (struct lto_input_block *);
gcov_type streamer_read_gcov_count (struct lto_input_block *);
+wide_int streamer_read_wide_int (struct lto_input_block *);
+widest_int streamer_read_widest_int (struct lto_input_block *);
/* Returns a new bit-packing context for bit-packing into S. */
static inline struct bitpack_d
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index 1d56d21..5075b56 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -710,21 +710,6 @@ make_new_block (struct function *fn, unsigned int index)
}
-/* Read a wide-int. */
-
-static widest_int
-streamer_read_wi (struct lto_input_block *ib)
-{
- HOST_WIDE_INT a[WIDE_INT_MAX_ELTS];
- int i;
- int prec ATTRIBUTE_UNUSED = streamer_read_uhwi (ib);
- int len = streamer_read_uhwi (ib);
- for (i = 0; i < len; i++)
- a[i] = streamer_read_hwi (ib);
- return widest_int::from_array (a, len);
-}
-
-
/* Read the CFG for function FN from input block IB. */
static void
@@ -834,13 +819,13 @@ input_cfg (struct lto_input_block *ib, struct data_in *data_in,
loop->estimate_state = streamer_read_enum (ib, loop_estimation, EST_LAST);
loop->any_upper_bound = streamer_read_hwi (ib);
if (loop->any_upper_bound)
- loop->nb_iterations_upper_bound = streamer_read_wi (ib);
+ loop->nb_iterations_upper_bound = streamer_read_widest_int (ib);
loop->any_likely_upper_bound = streamer_read_hwi (ib);
if (loop->any_likely_upper_bound)
- loop->nb_iterations_likely_upper_bound = streamer_read_wi (ib);
+ loop->nb_iterations_likely_upper_bound = streamer_read_widest_int (ib);
loop->any_estimate = streamer_read_hwi (ib);
if (loop->any_estimate)
- loop->nb_iterations_estimate = streamer_read_wi (ib);
+ loop->nb_iterations_estimate = streamer_read_widest_int (ib);
/* Read OMP SIMD related info. */
loop->safelen = streamer_read_hwi (ib);
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index aa6b589..bc45721 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -1828,20 +1828,6 @@ output_ssa_names (struct output_block *ob, struct function *fn)
}
-/* Output a wide-int. */
-
-static void
-streamer_write_wi (struct output_block *ob,
- const widest_int &w)
-{
- int len = w.get_len ();
-
- streamer_write_uhwi (ob, w.get_precision ());
- streamer_write_uhwi (ob, len);
- for (int i = 0; i < len; i++)
- streamer_write_hwi (ob, w.elt (i));
-}
-
/* Output the cfg. */
@@ -1915,13 +1901,13 @@ output_cfg (struct output_block *ob, struct function *fn)
loop_estimation, EST_LAST, loop->estimate_state);
streamer_write_hwi (ob, loop->any_upper_bound);
if (loop->any_upper_bound)
- streamer_write_wi (ob, loop->nb_iterations_upper_bound);
+ streamer_write_widest_int (ob, loop->nb_iterations_upper_bound);
streamer_write_hwi (ob, loop->any_likely_upper_bound);
if (loop->any_likely_upper_bound)
- streamer_write_wi (ob, loop->nb_iterations_likely_upper_bound);
+ streamer_write_widest_int (ob, loop->nb_iterations_likely_upper_bound);
streamer_write_hwi (ob, loop->any_estimate);
if (loop->any_estimate)
- streamer_write_wi (ob, loop->nb_iterations_estimate);
+ streamer_write_widest_int (ob, loop->nb_iterations_estimate);
/* Write OMP SIMD related info. */
streamer_write_hwi (ob, loop->safelen);