summaryrefslogtreecommitdiff
path: root/gcc/gimple-streamer-out.c
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2013-03-28 15:29:40 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2013-03-28 15:29:40 +0000
commitfc44a215aec90430e9d4b4c066c6b93f7ebc915d (patch)
tree35ba8ad462caf0907fefeff0406e6ef831248073 /gcc/gimple-streamer-out.c
parenta706be2ea60dedff74ab4a1589b6e7acad2a34c7 (diff)
downloadgcc-fc44a215aec90430e9d4b4c066c6b93f7ebc915d.tar.gz
* data-streamer-in.c (streamer_read_gcov_count): New function.
* gimple-streamer-out.c: Include value-prof.h. (output_gimple_stmt): Output histogram. (output_bb): Use streamer_write_gcov_count. * value-prof.c: Include data-streamer.h (dump_histogram_value): Add HIST_TYPE_MAX. (stream_out_histogram_value): New function. (stream_in_histogram_value): New function. * value-prof.h (enum hist_type): Add HIST_TYPE_MAX. (stream_out_histogram_value, stream_in_histogram_value): Declare. * data-streamer-out.c (streamer_write_gcov_count): New function. (streamer_write_gcov_count_stream): New function. * lto-cgraph.c (lto_output_edge): Update counter streaming. (lto_output_node): Likewise. (input_node, input_edge): Likewise. * lto-streamer-out.c (output_cfg): Update streaming. * lto-streamer-in.c (input_cfg): Likewise. * data-streamer.h (streamer_write_gcov_count, streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare. * gimple-streamer-in.c: Include value-prof.h (input_gimple_stmt): Input histograms. (input_bb): Update profile streaming. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@197205 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gimple-streamer-out.c')
-rw-r--r--gcc/gimple-streamer-out.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/gimple-streamer-out.c b/gcc/gimple-streamer-out.c
index adf230ed93a..0b8d8c1d251 100644
--- a/gcc/gimple-streamer-out.c
+++ b/gcc/gimple-streamer-out.c
@@ -28,6 +28,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-streamer.h"
#include "lto-streamer.h"
#include "tree-streamer.h"
+#include "value-prof.h"
/* Output PHI function PHI to the main stream in OB. */
@@ -59,6 +60,7 @@ output_gimple_stmt (struct output_block *ob, gimple stmt)
enum gimple_code code;
enum LTO_tags tag;
struct bitpack_d bp;
+ histogram_value hist;
/* Emit identifying tag. */
code = gimple_code (stmt);
@@ -72,6 +74,8 @@ output_gimple_stmt (struct output_block *ob, gimple stmt)
if (is_gimple_assign (stmt))
bp_pack_value (&bp, gimple_assign_nontemporal_move_p (stmt), 1);
bp_pack_value (&bp, gimple_has_volatile_ops (stmt), 1);
+ hist = gimple_histogram_value (cfun, stmt);
+ bp_pack_value (&bp, hist != NULL, 1);
bp_pack_var_len_unsigned (&bp, stmt->gsbase.subcode);
/* Emit location information for the statement. */
@@ -167,6 +171,8 @@ output_gimple_stmt (struct output_block *ob, gimple stmt)
default:
gcc_unreachable ();
}
+ if (hist)
+ stream_out_histogram_value (ob, hist);
}
@@ -183,7 +189,7 @@ output_bb (struct output_block *ob, basic_block bb, struct function *fn)
: LTO_bb0);
streamer_write_uhwi (ob, bb->index);
- streamer_write_hwi (ob, bb->count);
+ streamer_write_gcov_count (ob, bb->count);
streamer_write_hwi (ob, bb->frequency);
streamer_write_hwi (ob, bb->flags);