diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-07-03 19:34:30 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-07-03 19:34:30 +0000 |
commit | e2050933274590be6704cf0ba0fb54fe5770d0ca (patch) | |
tree | 92fd474513a4b99dd15dccfa56a907a3c196f084 /gcc | |
parent | 9f3c2a90c1dc7b4d659a55c34ca6da56fa5781c8 (diff) | |
download | gcc-e2050933274590be6704cf0ba0fb54fe5770d0ca.tar.gz |
* timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
* cfgexpand.c (gimple_expand_cfg): Use new timevars.
* var-tracking.c (vt_find_locations, variable_tracking_main_1):
Likewise.
* lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
Update timevars.V
* timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
(TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
TV_IPA_LTO_DECL_OUT): New.
* lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161779 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 15 | ||||
-rw-r--r-- | gcc/cfgexpand.c | 8 | ||||
-rw-r--r-- | gcc/lto-streamer-out.c | 4 | ||||
-rw-r--r-- | gcc/lto/lto.c | 8 | ||||
-rw-r--r-- | gcc/timevar.def | 11 | ||||
-rw-r--r-- | gcc/var-tracking.c | 5 |
6 files changed, 43 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 07ec6f5c55a..350a41b33e3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,20 @@ 2010-07-03 Jan Hubicka <jh@suse.cz> + * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND, + TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars. + * cfgexpand.c (gimple_expand_cfg): Use new timevars. + * var-tracking.c (vt_find_locations, variable_tracking_main_1): + Likewise. + + * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out): + Update timevars.V + * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove. + (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN, + TV_IPA_LTO_DECL_OUT): New. + * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars. + +2010-07-03 Jan Hubicka <jh@suse.cz> + * ipa-inline.c (update_edge_key): Break out from ... update_callers_keys): ... here; (update_callee_keys): Update only the edges from caller to callee. diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index a76aeb23b3b..771ed47854e 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -3764,7 +3764,9 @@ gimple_expand_cfg (void) edge e; unsigned i; + timevar_push (TV_OUT_OF_SSA); rewrite_out_of_ssa (&SA); + timevar_pop (TV_OUT_OF_SSA); SA.partition_to_pseudo = (rtx *)xcalloc (SA.map->num_partitions, sizeof (rtx)); @@ -3807,7 +3809,9 @@ gimple_expand_cfg (void) /* Expand the variables recorded during gimple lowering. */ + timevar_push (TV_VAR_EXPAND); expand_used_vars (); + timevar_pop (TV_VAR_EXPAND); /* Honor stack protection warnings. */ if (warn_stack_protect) @@ -3887,8 +3891,11 @@ gimple_expand_cfg (void) expand_debug_locations (); execute_free_datastructures (); + timevar_push (TV_OUT_OF_SSA); finish_out_of_ssa (&SA); + timevar_pop (TV_OUT_OF_SSA); + timevar_push (TV_POST_EXPAND); /* We are no longer in SSA form. */ cfun->gimple_df->in_ssa_p = false; @@ -3998,6 +4005,7 @@ gimple_expand_cfg (void) the common parent easily. */ set_block_levels (DECL_INITIAL (cfun->decl), 0); default_rtl_profile (); + timevar_pop (TV_POST_EXPAND); return 0; } diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c index 6ee2eda2784..d4bccfb923a 100644 --- a/gcc/lto-streamer-out.c +++ b/gcc/lto-streamer-out.c @@ -2132,7 +2132,7 @@ struct ipa_opt_pass_d pass_ipa_lto_gimple_out = NULL, /* sub */ NULL, /* next */ 0, /* static_pass_number */ - TV_IPA_LTO_GIMPLE_IO, /* tv_id */ + TV_IPA_LTO_GIMPLE_OUT, /* tv_id */ 0, /* properties_required */ 0, /* properties_provided */ 0, /* properties_destroyed */ @@ -2544,7 +2544,7 @@ struct ipa_opt_pass_d pass_ipa_lto_finish_out = NULL, /* sub */ NULL, /* next */ 0, /* static_pass_number */ - TV_IPA_LTO_DECL_IO, /* tv_id */ + TV_IPA_LTO_DECL_OUT, /* tv_id */ 0, /* properties_required */ 0, /* properties_provided */ 0, /* properties_destroyed */ diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index d969a1042d7..500cb4f7157 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -1436,7 +1436,7 @@ read_cgraph_and_symbols (unsigned nfiles, const char **fnames) lto_stats.num_input_files = nfiles; - timevar_push (TV_IPA_LTO_DECL_IO); + timevar_push (TV_IPA_LTO_DECL_IN); /* Set the hooks so that all of the ipa passes can read in their data. */ all_file_decl_data @@ -1498,7 +1498,7 @@ read_cgraph_and_symbols (unsigned nfiles, const char **fnames) /* Set the hooks so that all of the ipa passes can read in their data. */ lto_set_in_hooks (all_file_decl_data, get_section_data, free_section_data); - timevar_pop (TV_IPA_LTO_DECL_IO); + timevar_pop (TV_IPA_LTO_DECL_IN); if (!quiet_flag) fprintf (stderr, "\nReading the callgraph\n"); @@ -1590,7 +1590,7 @@ materialize_cgraph (void) /* Now that we have input the cgraph, we need to clear all of the aux nodes and read the functions if we are not running in WPA mode. */ - timevar_push (TV_IPA_LTO_GIMPLE_IO); + timevar_push (TV_IPA_LTO_GIMPLE_IN); for (node = cgraph_nodes; node; node = node->next) { @@ -1611,7 +1611,7 @@ materialize_cgraph (void) } } - timevar_pop (TV_IPA_LTO_GIMPLE_IO); + timevar_pop (TV_IPA_LTO_GIMPLE_IN); /* Start the appropriate timer depending on the mode that we are operating in. */ diff --git a/gcc/timevar.def b/gcc/timevar.def index e4e61fb2f1a..a3e93bc4d06 100644 --- a/gcc/timevar.def +++ b/gcc/timevar.def @@ -53,8 +53,10 @@ 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_LTO_GIMPLE_IO , "ipa lto gimple I/O") -DEFTIMEVAR (TV_IPA_LTO_DECL_IO , "ipa lto decl I/O") +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") +DEFTIMEVAR (TV_IPA_LTO_DECL_OUT , "ipa lto decl out") DEFTIMEVAR (TV_IPA_LTO_DECL_INIT_IO , "ipa lto decl init I/O") DEFTIMEVAR (TV_IPA_LTO_CGRAPH_IO , "ipa lto cgraph I/O") DEFTIMEVAR (TV_IPA_LTO_DECL_MERGE , "ipa lto decl merge") @@ -172,7 +174,10 @@ DEFTIMEVAR (TV_DOMINANCE , "dominance computation") DEFTIMEVAR (TV_CONTROL_DEPENDENCES , "control dependences") DEFTIMEVAR (TV_OVERLOAD , "overload resolution") DEFTIMEVAR (TV_TEMPLATE_INSTANTIATION, "template instantiation") +DEFTIMEVAR (TV_OUT_OF_SSA , "out of ssa") +DEFTIMEVAR (TV_VAR_EXPAND , "expand vars") DEFTIMEVAR (TV_EXPAND , "expand") +DEFTIMEVAR (TV_POST_EXPAND , "post expand cleanups") DEFTIMEVAR (TV_VARCONST , "varconst") DEFTIMEVAR (TV_LOWER_SUBREG , "lower subreg") DEFTIMEVAR (TV_JUMP , "jump") @@ -226,6 +231,8 @@ DEFTIMEVAR (TV_FINAL , "final") DEFTIMEVAR (TV_VAROUT , "variable output") DEFTIMEVAR (TV_SYMOUT , "symout") 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_PLUGIN_INIT , "plugin initialization") diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c index a90ca3884d9..33061c5a55d 100644 --- a/gcc/var-tracking.c +++ b/gcc/var-tracking.c @@ -5992,6 +5992,7 @@ vt_find_locations (void) int htabmax = PARAM_VALUE (PARAM_MAX_VARTRACK_SIZE); bool success = true; + timevar_push (TV_VAR_TRACKING_DATAFLOW); /* Compute reverse completion order of depth first search of the CFG so that the data-flow runs faster. */ rc_order = XNEWVEC (int, n_basic_blocks - NUM_FIXED_BLOCKS); @@ -6027,6 +6028,7 @@ vt_find_locations (void) { bb = (basic_block) fibheap_extract_min (worklist); RESET_BIT (in_worklist, bb->index); + gcc_assert (!TEST_BIT (visited, bb->index)); if (!TEST_BIT (visited, bb->index)) { bool changed; @@ -6179,6 +6181,7 @@ vt_find_locations (void) sbitmap_free (in_worklist); sbitmap_free (in_pending); + timevar_pop (TV_VAR_TRACKING_DATAFLOW); return success; } @@ -8534,7 +8537,9 @@ variable_tracking_main_1 (void) dump_flow_info (dump_file, dump_flags); } + timevar_push (TV_VAR_TRACKING_EMIT); vt_emit_notes (); + timevar_pop (TV_VAR_TRACKING_EMIT); vt_finalize (); vt_debug_insns_local (false); |