From 5236b8bbaf85c9d3cc5fca80d364bce6e4f683ae Mon Sep 17 00:00:00 2001 From: dnovillo Date: Tue, 7 Jun 2005 21:01:14 +0000 Subject: [PATCH 1/1] * tree-ssa-threadupdate.c (struct thread_stats_d): Declare. (thread_stats): New local variable. (redirect_edges): Increment count of threaded edges. (thread_through_all_blocks): Initialize thread_stats. Display number of threaded jumps if TDF_STATS is enabled. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100722 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 8 ++++++++ gcc/tree-ssa-threadupdate.c | 17 +++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 04974e53fe2..74416efb538 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2005-06-07 Diego Novillo + + * tree-ssa-threadupdate.c (struct thread_stats_d): Declare. + (thread_stats): New local variable. + (redirect_edges): Increment count of threaded edges. + (thread_through_all_blocks): Initialize thread_stats. + Display number of threaded jumps if TDF_STATS is enabled. + 2005-06-07 Kazu Hirata * sbitmap.h (sbitmap_iter_init): Consistently treat bit_num as diff --git a/gcc/tree-ssa-threadupdate.c b/gcc/tree-ssa-threadupdate.c index 25f6cdfdc02..ea4413710a1 100644 --- a/gcc/tree-ssa-threadupdate.c +++ b/gcc/tree-ssa-threadupdate.c @@ -147,6 +147,16 @@ struct local_info bool jumps_threaded; }; +/* Jump threading statistics. */ + +struct thread_stats_d +{ + unsigned long num_threaded_edges; +}; + +struct thread_stats_d thread_stats; + + /* Remove the last statement in block BB if it is a control statement Also remove all outgoing edges except the edge which reaches DEST_BB. If DEST_BB is NULL, then remove all outgoing edges. */ @@ -589,6 +599,8 @@ redirect_edges (void **slot, void *data) to clear it will cause all kinds of unpleasant problems later. */ e->aux = NULL; + thread_stats.num_threaded_edges++; + if (rd->dup_block) { edge e2; @@ -811,6 +823,7 @@ thread_through_all_blocks (bitmap threaded_blocks) bitmap_iterator bi; rediscover_loops_after_threading = false; + memset (&thread_stats, 0, sizeof (thread_stats)); EXECUTE_IF_SET_IN_BITMAP (threaded_blocks, 0, i, bi) { @@ -820,5 +833,9 @@ thread_through_all_blocks (bitmap threaded_blocks) retval |= thread_block (bb); } + if (dump_file && (dump_flags & TDF_STATS)) + fprintf (dump_file, "\nJumps threaded: %lu\n", + thread_stats.num_threaded_edges); + return retval; } -- 2.11.0