diff options
author | Kazu Hirata <kazu@cs.umass.edu> | 2004-10-27 18:33:26 +0000 |
---|---|---|
committer | Kazu Hirata <kazu@gcc.gnu.org> | 2004-10-27 18:33:26 +0000 |
commit | 0b371c72fe94d563b0f2c49288177872f04cc32a (patch) | |
tree | f3f18d5f8a5ac126ea9ba6a73f3750852fca6d94 | |
parent | af88d4ec96defc06ac0b7ae3e5122f14ba148509 (diff) | |
download | gcc-0b371c72fe94d563b0f2c49288177872f04cc32a.zip gcc-0b371c72fe94d563b0f2c49288177872f04cc32a.tar.gz gcc-0b371c72fe94d563b0f2c49288177872f04cc32a.tar.bz2 |
tree-cfg.c (thread_jumps): Speed up by reordering the two conditions for entering basic blocks into worklist.
* tree-cfg.c (thread_jumps): Speed up by reordering the two
conditions for entering basic blocks into worklist.
From-SVN: r89700
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-cfg.c | 20 |
2 files changed, 15 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fcafd5f..ca2253e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2004-10-27 Kazu Hirata <kazu@cs.umass.edu> + * tree-cfg.c (thread_jumps): Speed up by reordering the two + conditions for entering basic blocks into worklist. + +2004-10-27 Kazu Hirata <kazu@cs.umass.edu> + * tree-cfg.c (thread_jumps): Speed up by pretending to have ENTRY_BLOCK_PTR in worklist. diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index 4492daa..e606749 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -3974,11 +3974,11 @@ thread_jumps (void) among BB's predecessors. */ FOR_EACH_EDGE (e, ei, bb->preds) { - /* We are not interested in threading jumps from a forwarder - block. */ - if (!bb_ann (e->src)->forwardable - /* We don't want to put a duplicate into WORKLIST. */ - && (e->src->flags & BB_VISITED) == 0) + /* We don't want to put a duplicate into WORKLIST. */ + if ((e->src->flags & BB_VISITED) == 0 + /* We are not interested in threading jumps from a forwarder + block. */ + && !bb_ann (e->src)->forwardable) { e->src->flags |= BB_VISITED; worklist[size] = e->src; @@ -4013,11 +4013,11 @@ thread_jumps (void) predecessors. */ FOR_EACH_EDGE (f, ej, bb->preds) { - /* We are not interested in threading jumps from a - forwarder block. */ - if (!bb_ann (f->src)->forwardable - /* We don't want to put a duplicate into WORKLIST. */ - && (f->src->flags & BB_VISITED) == 0) + /* We don't want to put a duplicate into WORKLIST. */ + if ((f->src->flags & BB_VISITED) == 0 + /* We are not interested in threading jumps from a + forwarder block. */ + && !bb_ann (f->src)->forwardable) { f->src->flags |= BB_VISITED; worklist[size] = f->src; |