This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r196367 - in /branches/google/gcc-4_7: gcc/auto...
- From: xur at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Fri, 01 Mar 2013 04:12:28 -0000
- Subject: r196367 - in /branches/google/gcc-4_7: gcc/auto...
Author: xur
Date: Fri Mar 1 04:12:27 2013
New Revision: 196367
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=196367
Log:
This patch implements another algorithm for LIPO module grouping. It works
on module level graph and is priority (call hotness) based. It tries to
be inclusive (i.e. if module a is included in module b, and b is included in
module c, a is also included in c).
This implemtnation can be turned on by option
--param=lipo-grouping-algorithm=1
There are two extra params that can be used to adjust the algorithm:
--param=lipo-merge-modu-edges={0|1} (default 0)
--param=lipo-strict-inclusion={0|1} (default 1).
--param=lipo-grouping-algorithm=0, the default, uses the original
grouping algorithm.
2013-02-28 Rong Xu <xur@google.com>
* libgcc/dyn-ipa.c (get_module_ident_from_func_glob_uid): Using
ident rather ident - 1.
(get_module_ident): Ditto.
(get_cgraph_node): Ditto.
(imp_mod_get_key): Ditto.
(get_module_info): Ditto.
(sort_by_module_wt): Ditto.
(gcov_get_sorted_import_module_array): Ditto.
(gcov_process_cgraph_node): Ditto.
(gcov_compute_random_module_groups): Ditto.
(gcov_dump_cgraph_node_short): Ditto.
(gcov_dump_cgraph_node): Ditto.
(gcov_dump_cgraph_node_dot): Ditto.
(do_cgraph_dump): Remove white space.
(pointer_set_find_or_insert): Ditto.
(gcov_dump_callgraph): Ditto.
(struct dyn_module_info): Support for the inclusion based priority
grouping algorithm.
(struct dyn_cgraph): Ditto.
(struct modu_node): Ditto.
(struct modu_edge): Ditto.
(enum GROUPING_ALGORITHM): Ditto.
(create_exported_to): Ditto.
(get_imported_modus): Ditto.
(gcov_info_get_key): Ditto.
(get_exported_to): Ditto.
(init_dyn_call_graph):Ditto.
(__gcov_finalize_dyn_callgraph):Ditto.
(pointer_set_destroy_not_free_value_pointer): Ditto.
(pointer_set_contains): Ditto.
(gcov_compute_module_groups): Ditto.
(modu_graph_add_edge): Ditto.
(modu_graph_process_dyn_cgraph_node): Ditto.
(build_modu_graph): Ditto.
(collect_ggc_mem_size): Ditto.
(get_group_ggc_mem): Ditto.
(modu_union_ggc_size): Ditto.
(modu_add_auxiliary_1): Ditto.
(modu_add_auxiliary): Ditto.
(ps_check_ggc_mem): Ditto.
(ps_add_auxiliary): Ditto.
(modu_edge_add_auxiliary): Ditto.
(compute_module_groups_inclusion_impl): Ditto.
(gcov_compute_module_groups_eager_propagation): Ditto.
(gcov_write_module_infos): Ditto.
(dump_imported_modules_1): Ditto.
(dump_exported_to_1): Ditto.
(debug_dump_imported_modules): Ditto.
(debug_dump_exported_to): Ditto.
(gcov_mark_export_modules): Use flags field.
(gcov_write_module_info): Ditto.
(dyn_fibheap_new): Fibheap implemenation.
(fibnode_new): Ditto.
(dyn_fibheap_compare) Ditto.:
(dyn_fibheap_comp_data): Ditto.
(dyn_fibheap_insert): Ditto.
(dyn_fibheap_extract_min): Ditto.
(dyn_fibheap_delete): Ditto.
(dyn_fibheap_extr_min_node): Ditto.
(dyn_fibheap_ins_root): Ditto.
(dyn_fibheap_rem_root): Ditto.
(dyn_fibheap_consolidate): Ditto.
(dyn_fibheap_link): Ditto.
(fibnode_insert_after): Ditto.
(fibnode_remove): Ditto.
* gcc/params.def: New params used by lipo-gen.
* gcc/c-family/c-opts.c (c_common_parse_file): Discard ggc_memory
limit.
* gcc/toplev.c (include_all_aux): New decls.
* gcc/l-ipo.h (include_all_aux): Ditto.
* gcc/gcov-dump.c (tag_module_info): Handle flags field.
* gcc/auto-profile.c (afdo_add_module): Use flags field.
* gcc/coverage.c (read_counts_file): Handle flags field.
(build_gcov_module_info_type): Ditto.
(build_gcov_module_info_value): Ditto.
(add_module_info): Ditto.
* gcc/gcov-io.c (gcov_read_module_info): Use flags field.
* gcc/gcov-io.h (struct gcov_module_info): Use flags field.
* gcc/tree-profile.c: New params used by lipo-gen.
(tree_init_dyn_ipa_parameters): Ditto.
Modified:
branches/google/gcc-4_7/gcc/auto-profile.c
branches/google/gcc-4_7/gcc/c-family/c-opts.c
branches/google/gcc-4_7/gcc/coverage.c
branches/google/gcc-4_7/gcc/gcov-dump.c
branches/google/gcc-4_7/gcc/gcov-io.c
branches/google/gcc-4_7/gcc/gcov-io.h
branches/google/gcc-4_7/gcc/l-ipo.h
branches/google/gcc-4_7/gcc/params.def
branches/google/gcc-4_7/gcc/toplev.c
branches/google/gcc-4_7/gcc/tree-profile.c
branches/google/gcc-4_7/libgcc/dyn-ipa.c