From: Richard Guenther Date: Tue, 20 May 2008 12:34:06 +0000 (+0000) Subject: tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=019026537472eae913ccac60774d6e6801c121f8;p=gcc.git tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure. 2008-05-20 Richard Guenther * tree-ssa-reassoc.c (fini_reassoc): Use the statistics infrastructure. * tree-ssa-sccvn.c (process_scc): Likewise. * tree-ssa-sink.c (execute_sink_code): Likewise. * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise. * tree-vrp.c (process_assert_insertions): Likewise. * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise. (perform_tree_ssa_dce): Likewise. * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise. (dump_dominator_optimization_stats): Likewise. * tree-vectorizer.c (vectorize_loops): Likewise. * gcc.dg/tree-ssa/ssa-sink-1.c: Adjust. * gcc.dg/tree-ssa/ssa-sink-2.c: Likewise. * gcc.dg/tree-ssa/ssa-sink-3.c: Likewise. * gcc.dg/tree-ssa/ssa-sink-4.c: Likewise. From-SVN: r135611 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fc28f21667e..9d9bc21a7ad 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,17 @@ +2008-05-20 Richard Guenther + + * tree-ssa-reassoc.c (fini_reassoc): Use the statistics + infrastructure. + * tree-ssa-sccvn.c (process_scc): Likewise. + * tree-ssa-sink.c (execute_sink_code): Likewise. + * tree-ssa-threadupdate.c (thread_through_all_blocks): Likewise. + * tree-vrp.c (process_assert_insertions): Likewise. + * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise. + (perform_tree_ssa_dce): Likewise. + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise. + (dump_dominator_optimization_stats): Likewise. + * tree-vectorizer.c (vectorize_loops): Likewise. + 2008-05-20 Richard Guenther * tree-vn.c (vn_lookup_with_vuses): Do not use the alias oracle. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9e861884b53..ffbddf63f42 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2008-05-20 Richard Guenther + + * gcc.dg/tree-ssa/ssa-sink-1.c: Adjust. + * gcc.dg/tree-ssa/ssa-sink-2.c: Likewise. + * gcc.dg/tree-ssa/ssa-sink-3.c: Likewise. + * gcc.dg/tree-ssa/ssa-sink-4.c: Likewise. + 2008-05-20 Sandra Loosemore * gcc.c-torture/compile/20061214-1.c: New test. diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-1.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-1.c index 4dc415d438e..c3326d27e25 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-1.c @@ -7,5 +7,5 @@ foo (int a, int b, int c) return c ? x : a; } /* We should sink the x = a * b calculation into the branch that returns x. */ -/* { dg-final { scan-tree-dump-times "Sunk statements:1" 1 "sink" } } */ +/* { dg-final { scan-tree-dump-times "Sunk statements: 1" 1 "sink" } } */ /* { dg-final { cleanup-tree-dump "sink" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-2.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-2.c index 259a11a34d1..1d54d019e7f 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-2.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-2.c @@ -9,5 +9,5 @@ bar (int a, int b, int c) return y; } /* We should sink the x = a * b calculation into the else branch */ -/* { dg-final { scan-tree-dump-times "Sunk statements:1" 1 "sink" } } */ +/* { dg-final { scan-tree-dump-times "Sunk statements: 1" 1 "sink" } } */ /* { dg-final { cleanup-tree-dump "sink" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-3.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-3.c index 50efa339f5e..fceb509e8bc 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-3.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-3.c @@ -12,5 +12,5 @@ main (int argc) } } /* We should sink the a = argc + 1 calculation into the if branch */ -/* { dg-final { scan-tree-dump-times "Sunk statements:1" 1 "sink" } } */ +/* { dg-final { scan-tree-dump-times "Sunk statements: 1" 1 "sink" } } */ /* { dg-final { cleanup-tree-dump "sink" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-4.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-4.c index c49c4f8d006..6e1cc50dc11 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-4.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-4.c @@ -17,5 +17,5 @@ main (int argc) foo2 (a); } /* We should sink the first a = b + c calculation into the else branch */ -/* { dg-final { scan-tree-dump-times "Sunk statements:1" 1 "sink" } } */ +/* { dg-final { scan-tree-dump-times "Sunk statements: 1" 1 "sink" } } */ /* { dg-final { cleanup-tree-dump "sink" } } */ diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c index 95457eb7fe4..760e20d14bc 100644 --- a/gcc/tree-ssa-dce.c +++ b/gcc/tree-ssa-dce.c @@ -735,22 +735,19 @@ eliminate_unnecessary_stmts (void) static void print_stats (void) { - if (dump_file && (dump_flags & (TDF_STATS|TDF_DETAILS))) - { - float percg; + float percg; - percg = ((float) stats.removed / (float) stats.total) * 100; - fprintf (dump_file, "Removed %d of %d statements (%d%%)\n", - stats.removed, stats.total, (int) percg); + percg = ((float) stats.removed / (float) stats.total) * 100; + fprintf (dump_file, "Removed %d of %d statements (%d%%)\n", + stats.removed, stats.total, (int) percg); - if (stats.total_phis == 0) - percg = 0; - else - percg = ((float) stats.removed_phis / (float) stats.total_phis) * 100; + if (stats.total_phis == 0) + percg = 0; + else + percg = ((float) stats.removed_phis / (float) stats.total_phis) * 100; - fprintf (dump_file, "Removed %d of %d PHI nodes (%d%%)\n", - stats.removed_phis, stats.total_phis, (int) percg); - } + fprintf (dump_file, "Removed %d of %d PHI nodes (%d%%)\n", + stats.removed_phis, stats.total_phis, (int) percg); } /* Initialization for this pass. Set up the used data structures. */ @@ -854,8 +851,11 @@ perform_tree_ssa_dce (bool aggressive) if (cfg_altered) free_dominance_info (CDI_DOMINATORS); + statistics_counter_event (cfun, "Statements deleted", stats.removed); + statistics_counter_event (cfun, "PHI nodes deleted", stats.removed_phis); + /* Debugging dumps. */ - if (dump_file) + if (dump_file && (dump_flags & (TDF_STATS|TDF_DETAILS))) print_stats (); tree_dce_done (aggressive); diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c index c4145b30ec2..255f24b98e7 100644 --- a/gcc/tree-ssa-dom.c +++ b/gcc/tree-ssa-dom.c @@ -357,6 +357,13 @@ tree_ssa_dominator_optimize (void) SSA_NAME_VALUE (name) = NULL; } + statistics_counter_event (cfun, "Redundant expressions eliminated", + opt_stats.num_re); + statistics_counter_event (cfun, "Constants propagated", + opt_stats.num_const_prop); + statistics_counter_event (cfun, "Copies propagated", + opt_stats.num_copy_prop); + /* Debugging dumps. */ if (dump_file && (dump_flags & TDF_STATS)) dump_dominator_optimization_stats (dump_file); @@ -868,25 +875,11 @@ record_equivalences_from_incoming_edge (basic_block bb) void dump_dominator_optimization_stats (FILE *file) { - long n_exprs; - fprintf (file, "Total number of statements: %6ld\n\n", opt_stats.num_stmts); fprintf (file, "Exprs considered for dominator optimizations: %6ld\n", opt_stats.num_exprs_considered); - n_exprs = opt_stats.num_exprs_considered; - if (n_exprs == 0) - n_exprs = 1; - - fprintf (file, " Redundant expressions eliminated: %6ld (%.0f%%)\n", - opt_stats.num_re, PERCENT (opt_stats.num_re, - n_exprs)); - fprintf (file, " Constants propagated: %6ld\n", - opt_stats.num_const_prop); - fprintf (file, " Copies propagated: %6ld\n", - opt_stats.num_copy_prop); - fprintf (file, "\nHash table statistics:\n"); fprintf (file, " avail_exprs: "); diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c index 19e10398168..5fcaa7bbb16 100644 --- a/gcc/tree-ssa-reassoc.c +++ b/gcc/tree-ssa-reassoc.c @@ -1487,18 +1487,14 @@ init_reassoc (void) static void fini_reassoc (void) { - if (dump_file && (dump_flags & TDF_STATS)) - { - fprintf (dump_file, "Reassociation stats:\n"); - fprintf (dump_file, "Linearized: %d\n", - reassociate_stats.linearized); - fprintf (dump_file, "Constants eliminated: %d\n", - reassociate_stats.constants_eliminated); - fprintf (dump_file, "Ops eliminated: %d\n", - reassociate_stats.ops_eliminated); - fprintf (dump_file, "Statements rewritten: %d\n", - reassociate_stats.rewritten); - } + statistics_counter_event (cfun, "Linearized", + reassociate_stats.linearized); + statistics_counter_event (cfun, "Constants eliminated", + reassociate_stats.constants_eliminated); + statistics_counter_event (cfun, "Ops eliminated", + reassociate_stats.ops_eliminated); + statistics_counter_event (cfun, "Statements rewritten", + reassociate_stats.rewritten); pointer_map_destroy (operand_rank); free_alloc_pool (operand_entry_pool); diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c index 0b20a4ebc72..2bc9cb2e3ef 100644 --- a/gcc/tree-ssa-sccvn.c +++ b/gcc/tree-ssa-sccvn.c @@ -1947,9 +1947,7 @@ process_scc (VEC (tree, heap) *scc) changed |= visit_use (var); } - if (dump_file && (dump_flags & TDF_STATS)) - fprintf (dump_file, "Processing SCC required %d iterations\n", - iterations); + statistics_histogram_event (cfun, "SCC iterations", iterations); /* Finally, visit the SCC once using the valid table. */ current_info = valid_info; diff --git a/gcc/tree-ssa-sink.c b/gcc/tree-ssa-sink.c index 40a3640b736..8945a612663 100644 --- a/gcc/tree-ssa-sink.c +++ b/gcc/tree-ssa-sink.c @@ -546,8 +546,7 @@ execute_sink_code (void) calculate_dominance_info (CDI_DOMINATORS); calculate_dominance_info (CDI_POST_DOMINATORS); sink_code_in_bb (EXIT_BLOCK_PTR); - if (dump_file && (dump_flags & TDF_STATS)) - fprintf (dump_file, "Sunk statements:%d\n", sink_stats.sunk); + statistics_counter_event (cfun, "Sunk statements", sink_stats.sunk); free_dominance_info (CDI_POST_DOMINATORS); remove_fake_exit_edges (); loop_optimizer_finalize (); diff --git a/gcc/tree-ssa-threadupdate.c b/gcc/tree-ssa-threadupdate.c index fe3876ec332..359702161c1 100644 --- a/gcc/tree-ssa-threadupdate.c +++ b/gcc/tree-ssa-threadupdate.c @@ -1069,9 +1069,8 @@ thread_through_all_blocks (bool may_peel_loop_headers) retval |= thread_through_loop_header (loop, may_peel_loop_headers); } - if (dump_file && (dump_flags & TDF_STATS)) - fprintf (dump_file, "\nJumps threaded: %lu\n", - thread_stats.num_threaded_edges); + statistics_counter_event (cfun, "Jumps threaded", + thread_stats.num_threaded_edges); free_original_copy_tables (); diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c index 79a7461a1a9..d374a0640d2 100644 --- a/gcc/tree-vectorizer.c +++ b/gcc/tree-vectorizer.c @@ -2691,6 +2691,7 @@ vectorize_loops (void) } vect_loop_location = UNKNOWN_LOC; + statistics_counter_event (cfun, "Vectorized loops", num_vectorized_loops); if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS) || (vect_print_dump_info (REPORT_VECTORIZED_LOOPS) && num_vectorized_loops > 0)) diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index 8636c5f4fa7..15e7ee57dd6 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -4540,9 +4540,8 @@ process_assert_insertions (void) if (update_edges_p) bsi_commit_edge_inserts (); - if (dump_file && (dump_flags & TDF_STATS)) - fprintf (dump_file, "\nNumber of ASSERT_EXPR expressions inserted: %d\n\n", - num_asserts); + statistics_counter_event (cfun, "Number of ASSERT_EXPR expressions inserted", + num_asserts); }