diff options
author | Martin Liska <mliska@suse.cz> | 2018-09-21 10:41:17 +0200 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2018-09-21 08:41:17 +0000 |
commit | 512cc0151207de4c7ff3a84f040f730fe0d52458 (patch) | |
tree | d3237cdec0d5acc77939322658f0dc8de1d5a5be /gcc/ipa-profile.c | |
parent | 36ff254bf63f21dd8fc7a353c8b8f3aa08018654 (diff) |
Remove arc profile histogram in non-LTO mode.
2018-09-21 Martin Liska <mliska@suse.cz>
* auto-profile.c (autofdo_source_profile::read): Do not
set sum_all.
(read_profile): Do not add working sets.
(read_autofdo_file): Remove sum_all.
(afdo_callsite_hot_enough_for_early_inline): Remove const
qualifier.
* coverage.c (struct counts_entry): Remove gcov_summary.
(read_counts_file): Read new GCOV_TAG_OBJECT_SUMMARY,
do not support GCOV_TAG_PROGRAM_SUMMARY.
(get_coverage_counts): Remove summary and expected
arguments.
* coverage.h (get_coverage_counts): Likewise.
* doc/gcov-dump.texi: Remove -w option.
* gcov-dump.c (dump_working_sets): Remove.
(main): Do not support '-w' option.
(print_usage): Likewise.
(tag_summary): Likewise.
* gcov-io.c (gcov_write_summary): Do not dump
histogram.
(gcov_read_summary): Likewise.
(gcov_histo_index): Remove.
(gcov_histogram_merge): Likewise.
(compute_working_sets): Likewise.
* gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Mark
it not obsolete.
(GCOV_TAG_PROGRAM_SUMMARY): Mark it obsolete.
(GCOV_TAG_SUMMARY_LENGTH): Adjust.
(GCOV_HISTOGRAM_SIZE): Remove.
(GCOV_HISTOGRAM_BITVECTOR_SIZE): Likewise.
(struct gcov_summary): Simplify rapidly just
to runs and sum_max fields.
(gcov_histo_index): Remove.
(NUM_GCOV_WORKING_SETS): Likewise.
(compute_working_sets): Likewise.
* gcov-tool.c (print_overlap_usage_message): Remove
trailing empty line.
* gcov.c (read_count_file): Read GCOV_TAG_OBJECT_SUMMARY.
(output_lines): Remove program related line.
* ipa-profile.c (ipa_profile): Do not consider GCOV histogram.
* lto-cgraph.c (output_profile_summary): Do not stream GCOV
histogram.
(input_profile_summary): Do not read it.
(merge_profile_summaries): And do not merge it.
(input_symtab): Do not call removed function.
* modulo-sched.c (sms_schedule): Do not print sum_max.
* params.def (HOT_BB_COUNT_FRACTION): Reincarnate param that was
removed when histogram method was invented.
(HOT_BB_COUNT_WS_PERMILLE): Mention that it's used only in LTO
mode.
* postreload-gcse.c (eliminate_partially_redundant_load): Fix
GCOV coding style.
* predict.c (get_hot_bb_threshold): Use HOT_BB_COUNT_FRACTION
and dump selected value.
* profile.c (add_working_set): Remove.
(get_working_sets): Likewise.
(find_working_set): Likewise.
(get_exec_counts): Do not work with working sets.
(read_profile_edge_counts): Do not inform as sum_max is removed.
(compute_branch_probabilities): Likewise.
(compute_value_histograms): Remove argument for call of
get_coverage_counts.
* profile.h: Do not make gcov_summary const.
2018-09-21 Martin Liska <mliska@suse.cz>
* libgcov-driver.c (crc32_unsigned): Remove.
(gcov_histogram_insert): Likewise.
(gcov_compute_histogram): Likewise.
(compute_summary): Simplify rapidly.
(merge_one_data): Do not handle PROGRAM_SUMMARY tag.
(merge_summary): Rapidly simplify.
(dump_one_gcov): Ignore gcov_summary.
(gcov_do_dump): Do not handle program summary, it's not
used.
* libgcov-util.c (tag_summary): Remove.
(read_gcda_finalize): Fix coding style.
(read_gcda_file): Initialize curr_object_summary.
(compute_summary): Remove.
(calculate_overlap): Remove settings of run_max.
From-SVN: r264462
Diffstat (limited to 'gcc/ipa-profile.c')
-rw-r--r-- | gcc/ipa-profile.c | 26 |
1 files changed, 1 insertions, 25 deletions
diff --git a/gcc/ipa-profile.c b/gcc/ipa-profile.c index f921d1bb6f4..c74f4a4a41d 100644 --- a/gcc/ipa-profile.c +++ b/gcc/ipa-profile.c @@ -25,13 +25,6 @@ along with GCC; see the file COPYING3. If not see from profile feedback. This histogram is complete only with LTO, otherwise it contains information only about the current unit. - Similar histogram is also estimated by coverage runtime. This histogram - is not dependent on LTO, but it suffers from various defects; first - gcov runtime is not weighting individual basic block by estimated execution - time and second the merging of multiple runs makes assumption that the - histogram distribution did not change. Consequentely histogram constructed - here may be more precise. - The information is used to set hot/cold thresholds. - Next speculative indirect call resolution is performed: the local profile pass assigns profile-id to each function and provide us with a @@ -512,25 +505,7 @@ ipa_profile (void) gcov_type threshold; gcc_assert (overall_size); - if (dump_file) - { - gcov_type min, cumulated_time = 0, cumulated_size = 0; - fprintf (dump_file, "Overall time: %" PRId64"\n", - (int64_t)overall_time); - min = get_hot_bb_threshold (); - for (i = 0; i < (int)histogram.length () && histogram[i]->count >= min; - i++) - { - cumulated_time += histogram[i]->count * histogram[i]->time; - cumulated_size += histogram[i]->size; - } - fprintf (dump_file, "GCOV min count: %" PRId64 - " Time:%3.2f%% Size:%3.2f%%\n", - (int64_t)min, - cumulated_time * 100.0 / overall_time, - cumulated_size * 100.0 / overall_size); - } cutoff = (overall_time * PARAM_VALUE (HOT_BB_COUNT_WS_PERMILLE) + 500) / 1000; threshold = 0; for (i = 0; cumulated < cutoff; i++) @@ -557,6 +532,7 @@ ipa_profile (void) cumulated_time * 100.0 / overall_time, cumulated_size * 100.0 / overall_size); } + if (threshold > get_hot_bb_threshold () || in_lto_p) { |