diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-03-28 15:29:40 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-03-28 15:29:40 +0000 |
commit | fc44a215aec90430e9d4b4c066c6b93f7ebc915d (patch) | |
tree | 35ba8ad462caf0907fefeff0406e6ef831248073 /gcc/gimple-streamer-out.c | |
parent | a706be2ea60dedff74ab4a1589b6e7acad2a34c7 (diff) | |
download | gcc-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.c | 8 |
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); |