aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2005-01-17 18:44:18 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2005-01-17 18:44:18 +0000
commitf8ef82ea63cb3c20dea272738484a08e9a8203fd (patch)
treeb27d0de3954458d5cc09beba287314f57c3f0b27 /gcc
parent26e752144dbe4c3dcb9c4ac8be39b93beef6663e (diff)
downloadgcc-f8ef82ea63cb3c20dea272738484a08e9a8203fd.zip
gcc-f8ef82ea63cb3c20dea272738484a08e9a8203fd.tar.gz
gcc-f8ef82ea63cb3c20dea272738484a08e9a8203fd.tar.bz2
tree-cfg.c (tree_forwarder_block_p): Speed up by walking through the statements backward.
* tree-cfg.c (tree_forwarder_block_p): Speed up by walking through the statements backward. From-SVN: r93768
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/tree-cfg.c6
2 files changed, 6 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e6777c8..fa24164 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -2,6 +2,9 @@
* tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
+ * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
+ through the statements backward.
+
2005-01-17 Ian Lance Taylor <ian@airs.com>
PR middle-end/13127:
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 14c901d..d360719 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -3911,9 +3911,9 @@ tree_forwarder_block_p (basic_block bb)
gcc_assert (bb != ENTRY_BLOCK_PTR);
#endif
- /* Now walk through the statements. We can ignore labels, anything else
- means this is not a forwarder block. */
- for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi))
+ /* Now walk through the statements backward. We can ignore labels,
+ anything else means this is not a forwarder block. */
+ for (bsi = bsi_last (bb); !bsi_end_p (bsi); bsi_next (&bsi))
{
tree stmt = bsi_stmt (bsi);