aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2004-10-22 17:59:50 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2004-10-22 17:59:50 +0000
commit385efa80b70c085c5856c2454236c0bdf0567c80 (patch)
tree0852828a4b7b9d8a04d2366874e06d56e7a833aa
parentafc3f3960382425780dd949a987d2f2e6fda1878 (diff)
downloadgcc-385efa80b70c085c5856c2454236c0bdf0567c80.zip
gcc-385efa80b70c085c5856c2454236c0bdf0567c80.tar.gz
gcc-385efa80b70c085c5856c2454236c0bdf0567c80.tar.bz2
tree-cfg.c (thread_jumps_from_bb): Speed up by extracting edge information when...
* tree-cfg.c (thread_jumps_from_bb): Speed up by extracting edge information when we commit ourselves to threading a particular jump. From-SVN: r89462
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-cfg.c5
2 files changed, 8 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7a23a2d..34abac1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
+ * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting
+ edge information when we commit ourselves to threading a
+ particular jump.
+
+2004-10-22 Kazu Hirata <kazu@cs.umass.edu>
+
* tree-cfg.c (thread_jumps): Speed up by putting basic blocks
into worklist instead of their indexes.
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 0bf7b16..bdcabf3 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -3788,9 +3788,6 @@ thread_jumps_from_bb (basic_block bb)
continue;
}
- count = e->count;
- freq = EDGE_FREQUENCY (e);
-
/* Now walk through as many forwarder blocks as possible to find
the ultimate destination we want to thread our jump to. */
last = EDGE_SUCC (e->dest, 0);
@@ -3839,6 +3836,8 @@ thread_jumps_from_bb (basic_block bb)
/* Perform the redirection. */
retval = true;
+ count = e->count;
+ freq = EDGE_FREQUENCY (e);
old_dest = e->dest;
e = redirect_edge_and_branch (e, dest);