From: Kugan Vivekanandarajah Date: Sat, 6 Aug 2016 21:11:26 +0000 (+0000) Subject: data-streamer-in.c (streamer_read_wide_int): New. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a73f34c2d256fc23d41864193274e88d7d7b28cc;p=gcc.git data-streamer-in.c (streamer_read_wide_int): New. gcc/ChangeLog: 2016-08-07 Kugan Vivekanandarajah * 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6a669e65761..2193fda0f81 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,17 @@ +2016-08-07 Kugan Vivekanandarajah + + * 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 * tree-ssa-ccp.c (extend_mask): New param sgn. diff --git a/gcc/data-streamer-in.c b/gcc/data-streamer-in.c index 2625af6470e..2a49fe2aaa3 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 e476530579d..3dd423bd59c 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 0048f6646c0..ff479a661c2 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 1d56d21fcfd..5075b567272 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 aa6b5892ea5..bc45721f077 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);