summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2010-07-03 19:34:30 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2010-07-03 19:34:30 +0000
commite2050933274590be6704cf0ba0fb54fe5770d0ca (patch)
tree92fd474513a4b99dd15dccfa56a907a3c196f084 /gcc
parent9f3c2a90c1dc7b4d659a55c34ca6da56fa5781c8 (diff)
downloadgcc-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/ChangeLog15
-rw-r--r--gcc/cfgexpand.c8
-rw-r--r--gcc/lto-streamer-out.c4
-rw-r--r--gcc/lto/lto.c8
-rw-r--r--gcc/timevar.def11
-rw-r--r--gcc/var-tracking.c5
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);