r194022 - in /branches/google/gcc-4_7/gcc: Chan...
dehao@gcc.gnu.org
dehao@gcc.gnu.org
Sat Dec 1 19:16:00 GMT 2012
Author: dehao
Date: Sat Dec 1 19:16:05 2012
New Revision: 194022
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=194022
Log:
AutoFDO Implementation.
2012-12-01 Dehao Chen <dehao@dehao.com>
* cgraphbuild.c (build_cgraph_edges): Handle AutoFDO profile.
(rebuild_cgraph_edges): Likewise.
* cgraph.c (cgraph_clone_node): Likewise.
(clone_function_name): Likewise.
* cgraph.h (cgraph_node): New field.
* tree-pass.h (pass_ipa_auto_profile): New pass.
* cfghooks.c (make_forwarder_block): Handle AutoFDO profile.
* ipa-inline-transform.c (clone_inlined_nodes): Likewise.
* toplev.c (compile_file): Likewise.
(process_options): Likewise.
* debug.h (auto_profile_debug_hooks): New.
* cgraphunit.c (cgraph_finalize_compilation_unit): Handle AutoFDO
profile.
(cgraph_copy_node_for_versioning): Likewise.
* regs.h (REG_FREQ_FROM_BB): Likewise.
* gcov-io.h: (GCOV_TAG_AFDO_FILE_NAMES): New.
(GCOV_TAG_AFDO_FUNCTION): New.
(GCOV_TAG_AFDO_MODULE_GROUPING): New.
* ira-int.h (REG_FREQ_FROM_EDGE_FREQ): Handle AutoFDO profile.
* ipa-inline.c (edge_hot_enough_p): Likewise.
(edge_badness): Likewise.
(inline_small_functions): Likewise.
* dwarf2out.c (auto_profile_debug_hooks): New.
* opts.c (common_handle_option): Handle AutoFDO profile.
* timevar.def (TV_IPA_AUTOFDO): New.
* predict.c (compute_function_frequency): Handle AutoFDO profile.
(rebuild_frequencies): Handle AutoFDO profile.
* auto-profile.c (struct gcov_callsite_pos): New.
(struct gcov_callsite): New.
(struct gcov_stack): New.
(struct gcov_function): New.
(struct afdo_bfd_name): New.
(struct afdo_module): New.
(afdo_get_filename): New.
(afdo_get_original_name_size): New.
(afdo_get_bfd_name): New.
(afdo_read_bfd_names): New.
(afdo_stack_hash): New.
(afdo_stack_eq): New.
(afdo_function_hash): New.
(afdo_function_eq): New.
(afdo_bfd_name_hash): New.
(afdo_bfd_name_eq): New.
(afdo_bfd_name_del): New.
(afdo_module_hash): New.
(afdo_module_eq): New.
(afdo_module_num_strings): New.
(afdo_add_module): New.
(read_aux_modules): New.
(get_inline_stack_size_by_stmt): New.
(get_inline_stack_size_by_edge): New.
(get_function_name_from_block): New.
(get_inline_stack_by_stmt): New.
(get_inline_stack_by_edge): New.
(afdo_get_function_count): New.
(afdo_set_current_function_count): New.
(afdo_add_bfd_name_mapping): New.
(afdo_add_copy_scale): New.
(get_stack_count): New.
(get_stmt_count): New.
(afdo_get_callsite_count): New.
(afdo_get_bb_count): New.
(afdo_annotate_cfg): New.
(read_profile): New.
(process_auto_profile): New.
(init_auto_profile): New.
(end_auto_profile): New.
(afdo_find_equiv_class): New.
(afdo_propagate_single_edge): New.
(afdo_propagate_multi_edge): New.
(afdo_propagate_circuit): New.
(afdo_propagate): New.
(afdo_calculate_branch_prob): New.
(auto_profile): New.
(gate_auto_profile_ipa): New.
(struct simple_ipa_opt_pass): New.
* auto-profile.h (init_auto_profile): New.
(end_auto_profile): New.
(process_auto_profile): New.
(afdo_set_current_function_count): New.
(afdo_add_bfd_name_mapping): New.
(afdo_add_copy_scale): New.
(afdo_calculate_branch_prob): New.
(afdo_get_callsite_count): New.
(afdo_get_bb_count): New.
* profile.c (compute_branch_probabilities): Handle AutoFDO profile.
(branch_prob): Likeise.
* loop-unroll.c (decide_unroll_runtime_iterations): Likewise.
* coverage.c (coverage_init): Likewise.
* tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
* common.opt (fauto-profile): New.
* tree-inline.c (copy_bb): Handle AutoFDO profile.
(copy_edges_for_bb): Likewise.
(copy_cfg_body): Likewise.
* tree-profile.c (direct_call_profiling): Likewise.
(gate_tree_profile_ipa): Likewise.
* basic-block.h (EDGE_ANNOTATED): New field.
(BB_ANNOTATED): New field.
* tree-cfg.c (gimple_merge_blocks): Handle AutoFDO profile.
* passes.c (init_optimization_passes): Handle AutoFDO profile.
Added:
branches/google/gcc-4_7/gcc/auto-profile.c
branches/google/gcc-4_7/gcc/auto-profile.h
Modified:
branches/google/gcc-4_7/gcc/ChangeLog.google-4_7
branches/google/gcc-4_7/gcc/Makefile.in
branches/google/gcc-4_7/gcc/basic-block.h
branches/google/gcc-4_7/gcc/cfg.c
branches/google/gcc-4_7/gcc/cgraph.c
branches/google/gcc-4_7/gcc/cgraphbuild.c
branches/google/gcc-4_7/gcc/cgraphunit.c
branches/google/gcc-4_7/gcc/common.opt
branches/google/gcc-4_7/gcc/coverage.c
branches/google/gcc-4_7/gcc/debug.h
branches/google/gcc-4_7/gcc/doc/invoke.texi
branches/google/gcc-4_7/gcc/dwarf2out.c
branches/google/gcc-4_7/gcc/gcov-io.h
branches/google/gcc-4_7/gcc/ipa-inline-transform.c
branches/google/gcc-4_7/gcc/ipa-inline.c
branches/google/gcc-4_7/gcc/ira-int.h
branches/google/gcc-4_7/gcc/loop-unroll.c
branches/google/gcc-4_7/gcc/opts.c
branches/google/gcc-4_7/gcc/passes.c
branches/google/gcc-4_7/gcc/predict.c
branches/google/gcc-4_7/gcc/profile.c
branches/google/gcc-4_7/gcc/regs.h
branches/google/gcc-4_7/gcc/timevar.def
branches/google/gcc-4_7/gcc/toplev.c
branches/google/gcc-4_7/gcc/tree-cfg.c
branches/google/gcc-4_7/gcc/tree-inline.c
branches/google/gcc-4_7/gcc/tree-pass.h
branches/google/gcc-4_7/gcc/tree-profile.c
branches/google/gcc-4_7/gcc/tree-ssa-live.c
More information about the Gcc-cvs
mailing list