This is the mail archive of the gcc-cvs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]