aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-flow.h
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2005-03-29 11:45:51 +0000
committerJan Hubicka <hubicka@gcc.gnu.org>2005-03-29 11:45:51 +0000
commit1f1e85278aee66245bf2258c372216635436ced4 (patch)
tree06715d5d420f0cc621f0ca883cf604ecc6862320 /gcc/tree-flow.h
parent82498ed4b96badc4fc2ccd9889657b628320877c (diff)
downloadgcc-1f1e85278aee66245bf2258c372216635436ced4.zip
gcc-1f1e85278aee66245bf2258c372216635436ced4.tar.gz
gcc-1f1e85278aee66245bf2258c372216635436ced4.tar.bz2
Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H) $(TREE_H) and $(COVERAGE_H).
* Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H) $(TREE_H) and $(COVERAGE_H). * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME. * opts.c (common_handle_option): Enable tree-based value transforms. * toplev.c (process_options): Ditto. * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below refers to references to this type. * tree-flow.h: (struct stmt_ann_d): Add histograms field. * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks for may_be_more, may_be_less. (rtl_gen_pow2_profiler): Adjust. (rtl_gen_one_value_profiler_no_edge_manip): Adjust. (rtl_gen_one_value_profiler): Adjust. (rtl_gen_const_delta_profiler): Adjust. * tree-profile.c (tree_gen_interval_profiler): Implement. (tree_gen_pow2_profiler): Ditto. (tree_gen_one_value_profiler): Ditto. (tree_profiling): New. (pass_tree_profile): Reference it. * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h, tree.h, gcov-io.h. (insn_divmod_values_to_profile): Rename to rtl_divmod_values_to_profile. Adjust. (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust. (insn_prefetch_values_to_profile): Adjust. (rtl_value_profile_transformations): Adjust. (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value. (gen_mod_pow2): Rename to rtl_mod_pow2. (gen_mod_subtract): Rename to rtl_mod_subtract. (divmod_fixed_value_transform): Rename to rtl_divmod_fixed_value_transform. (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform. (mod_subtract_transform): Rename to rtl_mod_subtract_transform. (rtl_find_values_to_profile): Adjust. (tree_value_profile_transformations): Implement. (tree_divmod_values_to_profile): New. (tree_values_to_profile): New. (tree_divmod_fixed_value): New. (tree_mod_pow2): New. (tree_mod_subtract): New. (tree_divmod_fixed_value_transform): New. (tree_mod_pow2_value_transform): New. (tree_mod_subtract_transform): New. (tree_find_values_to_profile): Implement. * profile.c (instrument_values): Free histograms. (compute_value_histograms): Adjust. Implement tree version. From-SVN: r97156
Diffstat (limited to 'gcc/tree-flow.h')
-rw-r--r--gcc/tree-flow.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/tree-flow.h b/gcc/tree-flow.h
index abca659..ea08f7a 100644
--- a/gcc/tree-flow.h
+++ b/gcc/tree-flow.h
@@ -309,6 +309,12 @@ struct stmt_ann_d GTY(())
by each pass on an as-needed basis in any order convenient for the
pass which needs statement UIDs. */
unsigned int uid;
+
+ /* Linked list of histograms for value-based profiling. This is really a
+ struct histogram_value*. We use void* to avoid having to export that
+ everywhere, and to avoid having to put it in GC memory. */
+
+ void * GTY ((skip (""))) histograms;
};
union tree_ann_d GTY((desc ("ann_type ((tree_ann_t)&%h)")))