From 4b366dd321e8dffbf626a4d550e7bbae2a1b56bc Mon Sep 17 00:00:00 2001 From: matz Date: Wed, 17 Nov 2010 15:18:08 +0000 Subject: [PATCH] * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE, TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO, TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING, TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New. * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ... (pass_build_ssa): ... but here. * cgraphbuild.c (pass_rebuild_cgraph): Use timevar. * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar. * tree-emutls.c (pass_ipa_lower_emutls): Ditto. * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto. * predict.c (rebuild_frequencies): Ditto. * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto. * emit-rtl.c (verify_rtl_sharing): Ditto. * tree-cfgcleanup.c (repair_loop_structures): Ditto. * tree-ssa-live.c (remove_unused_locals): Ditto. * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto. * tree-ssa.c (pass_early_warn_uninitialized, execute_update_addresses_taken, pass_update_address_taken): Ditto. * tree-optimize.c (pass_all_optimizations, pass_early_local_passes, pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto. * passes.c (pass_postreload, execute_todo): Ditto. * tree-ssanames.c (pass_release_ssa_names): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166869 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 26 ++++++++++++++++++++++++++ gcc/cfglayout.c | 4 ++-- gcc/cgraphbuild.c | 2 +- gcc/df-core.c | 4 ++-- gcc/emit-rtl.c | 4 ++++ gcc/passes.c | 6 +++++- gcc/predict.c | 2 ++ gcc/reginfo.c | 2 +- gcc/timevar.def | 13 ++++++++++++- gcc/tree-cfgcleanup.c | 6 +++++- gcc/tree-emutls.c | 2 +- gcc/tree-into-ssa.c | 5 +---- gcc/tree-optimize.c | 10 +++++----- gcc/tree-ssa-live.c | 4 ++++ gcc/tree-ssa-loop-manip.c | 4 ++++ gcc/tree-ssa.c | 7 +++++-- gcc/tree-ssanames.c | 2 +- gcc/tree-vectorizer.c | 2 +- 18 files changed, 82 insertions(+), 23 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 71b28f5..b770487 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,29 @@ +2010-11-17 Michael Matz + + * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE, + TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO, + TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING, + TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New. + * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ... + (pass_build_ssa): ... but here. + * cgraphbuild.c (pass_rebuild_cgraph): Use timevar. + * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar. + * tree-emutls.c (pass_ipa_lower_emutls): Ditto. + * df-core.c (pass_df_initialize_opt, + pass_df_initialize_no_opt): Ditto. + * predict.c (rebuild_frequencies): Ditto. + * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto. + * emit-rtl.c (verify_rtl_sharing): Ditto. + * tree-cfgcleanup.c (repair_loop_structures): Ditto. + * tree-ssa-live.c (remove_unused_locals): Ditto. + * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto. + * tree-ssa.c (pass_early_warn_uninitialized, + execute_update_addresses_taken, pass_update_address_taken): Ditto. + * tree-optimize.c (pass_all_optimizations, pass_early_local_passes, + pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto. + * passes.c (pass_postreload, execute_todo): Ditto. + * tree-ssanames.c (pass_release_ssa_names): Ditto. + 2010-11-17 Joseph Myers * doc/invoke.texi (-dy): Remove. diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c index d599b36..be99991 100644 --- a/gcc/cfglayout.c +++ b/gcc/cfglayout.c @@ -374,7 +374,7 @@ struct rtl_opt_pass pass_into_cfg_layout_mode = NULL, /* sub */ NULL, /* next */ 0, /* static_pass_number */ - TV_NONE, /* tv_id */ + TV_CFG, /* tv_id */ 0, /* properties_required */ PROP_cfglayout, /* properties_provided */ 0, /* properties_destroyed */ @@ -393,7 +393,7 @@ struct rtl_opt_pass pass_outof_cfg_layout_mode = NULL, /* sub */ NULL, /* next */ 0, /* static_pass_number */ - TV_NONE, /* tv_id */ + TV_CFG, /* tv_id */ 0, /* properties_required */ 0, /* properties_provided */ PROP_cfglayout, /* properties_destroyed */ diff --git a/gcc/cgraphbuild.c b/gcc/cgraphbuild.c index 3800f13..f9d70db 100644 --- a/gcc/cgraphbuild.c +++ b/gcc/cgraphbuild.c @@ -521,7 +521,7 @@ struct gimple_opt_pass pass_rebuild_cgraph_edges = NULL, /* sub */ NULL, /* next */ 0, /* static_pass_number */ - TV_NONE, /* tv_id */ + TV_CGRAPH, /* tv_id */ PROP_cfg, /* properties_required */ 0, /* properties_provided */ 0, /* properties_destroyed */ diff --git a/gcc/df-core.c b/gcc/df-core.c index dacefc7..06ff854 100644 --- a/gcc/df-core.c +++ b/gcc/df-core.c @@ -758,7 +758,7 @@ struct rtl_opt_pass pass_df_initialize_opt = NULL, /* sub */ NULL, /* next */ 0, /* static_pass_number */ - TV_NONE, /* tv_id */ + TV_DF_SCAN, /* tv_id */ 0, /* properties_required */ 0, /* properties_provided */ 0, /* properties_destroyed */ @@ -785,7 +785,7 @@ struct rtl_opt_pass pass_df_initialize_no_opt = NULL, /* sub */ NULL, /* next */ 0, /* static_pass_number */ - TV_NONE, /* tv_id */ + TV_DF_SCAN, /* tv_id */ 0, /* properties_required */ 0, /* properties_provided */ 0, /* properties_destroyed */ diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 2db0cff..f0fdc99 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -2526,6 +2526,8 @@ verify_rtl_sharing (void) { rtx p; + timevar_push (TV_VERIFY_RTL_SHARING); + for (p = get_insns (); p; p = NEXT_INSN (p)) if (INSN_P (p)) { @@ -2552,6 +2554,8 @@ verify_rtl_sharing (void) verify_rtx_sharing (PATTERN (p), p); verify_rtx_sharing (REG_NOTES (p), p); } + + timevar_pop (TV_VERIFY_RTL_SHARING); } /* Go through all the RTL insn bodies and copy any invalid shared structure. diff --git a/gcc/passes.c b/gcc/passes.c index da9bb15..b5cb2ac 100644 --- a/gcc/passes.c +++ b/gcc/passes.c @@ -324,7 +324,7 @@ struct rtl_opt_pass pass_postreload = NULL, /* sub */ NULL, /* next */ 0, /* static_pass_number */ - TV_NONE, /* tv_id */ + TV_POSTRELOAD, /* tv_id */ PROP_rtl, /* properties_required */ 0, /* properties_provided */ 0, /* properties_destroyed */ @@ -1269,6 +1269,8 @@ execute_todo (unsigned int flags) gcc_assert (flags & TODO_update_ssa_any); #endif + timevar_push (TV_TODO); + /* Inform the pass whether it is the first time it is run. */ first_pass_instance = (flags & TODO_mark_first_instance) != 0; @@ -1302,6 +1304,8 @@ execute_todo (unsigned int flags) df problems. */ if (flags & TODO_df_finish) df_finish_pass ((flags & TODO_df_verify) != 0); + + timevar_pop (TV_TODO); } /* Verify invariants that should hold between passes. This is a place diff --git a/gcc/predict.c b/gcc/predict.c index beceb0f..5fcfc1e 100644 --- a/gcc/predict.c +++ b/gcc/predict.c @@ -2329,6 +2329,7 @@ struct gimple_opt_pass pass_strip_predict_hints = void rebuild_frequencies (void) { + timevar_push (TV_REBUILD_FREQUENCIES); if (profile_status == PROFILE_GUESSED) { loop_optimizer_init (0); @@ -2343,4 +2344,5 @@ rebuild_frequencies (void) counts_to_freqs (); else gcc_unreachable (); + timevar_pop (TV_REBUILD_FREQUENCIES); } diff --git a/gcc/reginfo.c b/gcc/reginfo.c index 86a20d3..0c3cae2 100644 --- a/gcc/reginfo.c +++ b/gcc/reginfo.c @@ -1019,7 +1019,7 @@ struct rtl_opt_pass pass_reginfo_init = NULL, /* sub */ NULL, /* next */ 0, /* static_pass_number */ - TV_NONE, /* tv_id */ + TV_NONE, /* tv_id */ 0, /* properties_required */ 0, /* properties_provided */ 0, /* properties_destroyed */ diff --git a/gcc/timevar.def b/gcc/timevar.def index 86e2999..ec800aa 100644 --- a/gcc/timevar.def +++ b/gcc/timevar.def @@ -53,6 +53,7 @@ DEFTIMEVAR (TV_CGRAPHOPT , "callgraph optimization") DEFTIMEVAR (TV_VARPOOL , "varpool construction") DEFTIMEVAR (TV_IPA_CONSTANT_PROP , "ipa cp") DEFTIMEVAR (TV_IPA_FNSPLIT , "ipa function splitting") +DEFTIMEVAR (TV_IPA_OPT , "ipa various optimizations") DEFTIMEVAR (TV_IPA_LTO_GIMPLE_IN , "ipa lto gimple in") DEFTIMEVAR (TV_IPA_LTO_GIMPLE_OUT , "ipa lto gimple out") DEFTIMEVAR (TV_IPA_LTO_DECL_IN , "ipa lto decl in") @@ -232,9 +233,19 @@ DEFTIMEVAR (TV_VAR_TRACKING , "variable tracking") DEFTIMEVAR (TV_VAR_TRACKING_DATAFLOW , "var-tracking dataflow") DEFTIMEVAR (TV_VAR_TRACKING_EMIT , "var-tracking emit") DEFTIMEVAR (TV_TREE_IFCOMBINE , "tree if-combine") -DEFTIMEVAR (TV_TREE_UNINIT , "uninit var anaysis") +DEFTIMEVAR (TV_TREE_UNINIT , "uninit var analysis") DEFTIMEVAR (TV_PLUGIN_INIT , "plugin initialization") DEFTIMEVAR (TV_PLUGIN_RUN , "plugin execution") /* Everything else in rest_of_compilation not included above. */ +DEFTIMEVAR (TV_EARLY_LOCAL , "early local passes") +DEFTIMEVAR (TV_OPTIMIZE , "unaccounted optimizations") DEFTIMEVAR (TV_REST_OF_COMPILATION , "rest of compilation") +DEFTIMEVAR (TV_POSTRELOAD , "unaccounted post reload") +DEFTIMEVAR (TV_REMOVE_UNUSED , "remove unused locals") +DEFTIMEVAR (TV_ADDRESS_TAKEN , "address taken") +DEFTIMEVAR (TV_TODO , "unaccounted todo") +DEFTIMEVAR (TV_VERIFY_LOOP_CLOSED , "verify loop closed") +DEFTIMEVAR (TV_VERIFY_RTL_SHARING , "verify RTL sharing") +DEFTIMEVAR (TV_REBUILD_FREQUENCIES , "rebuild frequencies") +DEFTIMEVAR (TV_REPAIR_LOOPS , "repair loop structures") diff --git a/gcc/tree-cfgcleanup.c b/gcc/tree-cfgcleanup.c index 403566e..aedda43 100644 --- a/gcc/tree-cfgcleanup.c +++ b/gcc/tree-cfgcleanup.c @@ -777,7 +777,10 @@ cleanup_tree_cfg_noloop (void) static void repair_loop_structures (void) { - bitmap changed_bbs = BITMAP_ALLOC (NULL); + bitmap changed_bbs; + + timevar_push (TV_REPAIR_LOOPS); + changed_bbs = BITMAP_ALLOC (NULL); fix_loop_structure (changed_bbs); /* This usually does nothing. But sometimes parts of cfg that originally @@ -794,6 +797,7 @@ repair_loop_structures (void) scev_reset (); loops_state_clear (LOOPS_NEED_FIXUP); + timevar_pop (TV_REPAIR_LOOPS); } /* Cleanup cfg and repair loop structures. */ diff --git a/gcc/tree-emutls.c b/gcc/tree-emutls.c index ec4e0ad..2a1ec06 100644 --- a/gcc/tree-emutls.c +++ b/gcc/tree-emutls.c @@ -792,7 +792,7 @@ struct simple_ipa_opt_pass pass_ipa_lower_emutls = NULL, /* sub */ NULL, /* next */ 0, /* static_pass_number */ - TV_NONE, /* tv_id */ + TV_IPA_OPT, /* tv_id */ PROP_cfg | PROP_ssa, /* properties_required */ 0, /* properties_provided */ 0, /* properties_destroyed */ diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c index 41e88eb..8d31fe7 100644 --- a/gcc/tree-into-ssa.c +++ b/gcc/tree-into-ssa.c @@ -2339,8 +2339,6 @@ rewrite_into_ssa (void) bitmap_head *dfs; basic_block bb; - timevar_push (TV_TREE_SSA_OTHER); - /* Initialize operand data structures. */ init_ssa_operands (); @@ -2380,7 +2378,6 @@ rewrite_into_ssa (void) fini_ssa_renamer (); - timevar_pop (TV_TREE_SSA_OTHER); return 0; } @@ -2395,7 +2392,7 @@ struct gimple_opt_pass pass_build_ssa = NULL, /* sub */ NULL, /* next */ 0, /* static_pass_number */ - TV_NONE, /* tv_id */ + TV_TREE_SSA_OTHER, /* tv_id */ PROP_cfg | PROP_referenced_vars, /* properties_required */ PROP_ssa, /* properties_provided */ 0, /* properties_destroyed */ diff --git a/gcc/tree-optimize.c b/gcc/tree-optimize.c index f5a35ad..facbd93 100644 --- a/gcc/tree-optimize.c +++ b/gcc/tree-optimize.c @@ -69,7 +69,7 @@ struct gimple_opt_pass pass_all_optimizations = NULL, /* sub */ NULL, /* next */ 0, /* static_pass_number */ - TV_NONE, /* tv_id */ + TV_OPTIMIZE, /* tv_id */ 0, /* properties_required */ 0, /* properties_provided */ 0, /* properties_destroyed */ @@ -111,7 +111,7 @@ struct simple_ipa_opt_pass pass_early_local_passes = NULL, /* sub */ NULL, /* next */ 0, /* static_pass_number */ - TV_NONE, /* tv_id */ + TV_EARLY_LOCAL, /* tv_id */ 0, /* properties_required */ 0, /* properties_provided */ 0, /* properties_destroyed */ @@ -203,7 +203,7 @@ struct gimple_opt_pass pass_cleanup_cfg_post_optimizing = NULL, /* sub */ NULL, /* next */ 0, /* static_pass_number */ - TV_NONE, /* tv_id */ + TV_TREE_CLEANUP_CFG, /* tv_id */ PROP_cfg, /* properties_required */ 0, /* properties_provided */ 0, /* properties_destroyed */ @@ -389,7 +389,7 @@ tree_rest_of_compilation (tree fndecl) { location_t saved_loc; - timevar_push (TV_EXPAND); + timevar_push (TV_REST_OF_COMPILATION); gcc_assert (cgraph_global_info_ready); @@ -471,5 +471,5 @@ tree_rest_of_compilation (tree fndecl) input_location = saved_loc; ggc_collect (); - timevar_pop (TV_EXPAND); + timevar_pop (TV_REST_OF_COMPILATION); } diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c index 232df84..9fda8b9 100644 --- a/gcc/tree-ssa-live.c +++ b/gcc/tree-ssa-live.c @@ -695,6 +695,8 @@ remove_unused_locals (void) if (!optimize) return; + timevar_push (TV_REMOVE_UNUSED); + mark_scope_block_unused (DECL_INITIAL (current_function_decl)); /* Assume all locals are unused. */ @@ -827,6 +829,8 @@ remove_unused_locals (void) fprintf (dump_file, "Scope blocks after cleanups:\n"); dump_scope_blocks (dump_file, dump_flags); } + + timevar_pop (TV_REMOVE_UNUSED); } diff --git a/gcc/tree-ssa-loop-manip.c b/gcc/tree-ssa-loop-manip.c index dd2d3ce..87b2c0d 100644 --- a/gcc/tree-ssa-loop-manip.c +++ b/gcc/tree-ssa-loop-manip.c @@ -455,6 +455,8 @@ verify_loop_closed_ssa (bool verify_ssa_p) if (verify_ssa_p) verify_ssa (false); + timevar_push (TV_VERIFY_LOOP_CLOSED); + FOR_EACH_BB (bb) { for (bsi = gsi_start_phis (bb); !gsi_end_p (bsi); gsi_next (&bsi)) @@ -468,6 +470,8 @@ verify_loop_closed_ssa (bool verify_ssa_p) for (bsi = gsi_start_bb (bb); !gsi_end_p (bsi); gsi_next (&bsi)) check_loop_closed_ssa_stmt (bb, gsi_stmt (bsi)); } + + timevar_pop (TV_VERIFY_LOOP_CLOSED); } /* Split loop exit edge EXIT. The things are a bit complicated by a need to diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index c08ae61..78497ce 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -1816,7 +1816,7 @@ struct gimple_opt_pass pass_early_warn_uninitialized = NULL, /* sub */ NULL, /* next */ 0, /* static_pass_number */ - TV_NONE, /* tv_id */ + TV_TREE_UNINIT, /* tv_id */ PROP_ssa, /* properties_required */ 0, /* properties_provided */ 0, /* properties_destroyed */ @@ -1958,6 +1958,8 @@ execute_update_addresses_taken (void) tree var; unsigned i; + timevar_push (TV_ADDRESS_TAKEN); + /* Collect into ADDRESSES_TAKEN all variables whose address is taken within the function body. */ FOR_EACH_BB (bb) @@ -2173,6 +2175,7 @@ execute_update_addresses_taken (void) BITMAP_FREE (not_reg_needs); BITMAP_FREE (addresses_taken); + timevar_pop (TV_ADDRESS_TAKEN); } struct gimple_opt_pass pass_update_address_taken = @@ -2185,7 +2188,7 @@ struct gimple_opt_pass pass_update_address_taken = NULL, /* sub */ NULL, /* next */ 0, /* static_pass_number */ - TV_NONE, /* tv_id */ + TV_ADDRESS_TAKEN, /* tv_id */ PROP_ssa, /* properties_required */ 0, /* properties_provided */ 0, /* properties_destroyed */ diff --git a/gcc/tree-ssanames.c b/gcc/tree-ssanames.c index c005aba..79d2c3c 100644 --- a/gcc/tree-ssanames.c +++ b/gcc/tree-ssanames.c @@ -373,7 +373,7 @@ struct gimple_opt_pass pass_release_ssa_names = NULL, /* sub */ NULL, /* next */ 0, /* static_pass_number */ - TV_NONE, /* tv_id */ + TV_TREE_SSA_OTHER, /* tv_id */ PROP_ssa, /* properties_required */ 0, /* properties_provided */ 0, /* properties_destroyed */ diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c index b7ab0c5..cf8a622 100644 --- a/gcc/tree-vectorizer.c +++ b/gcc/tree-vectorizer.c @@ -383,7 +383,7 @@ struct simple_ipa_opt_pass pass_ipa_increase_alignment = NULL, /* sub */ NULL, /* next */ 0, /* static_pass_number */ - TV_NONE, /* tv_id */ + TV_IPA_OPT, /* tv_id */ 0, /* properties_required */ 0, /* properties_provided */ 0, /* properties_destroyed */ -- 2.7.4