diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-22 08:13:00 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-08-22 08:13:00 +0000 |
commit | 39068549063954805cce0d684635c7eb050b3394 (patch) | |
tree | c48ed210d4debb17ebe815f015641f5ba78d46bd /gcc/flow.c | |
parent | 7395a92d0fb07c4441ab03e1cabbef030b8b9b5e (diff) | |
download | gcc-39068549063954805cce0d684635c7eb050b3394.tar.gz |
* flow.c (flow_find_cross_jump): Don't consider unconditional
return insns for commoning.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45101 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/flow.c')
-rw-r--r-- | gcc/flow.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/flow.c b/gcc/flow.c index 3177e65729f..312bab75eba 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -3484,10 +3484,12 @@ flow_find_cross_jump (mode, bb1, bb2, f1, f2) need to be compared for equivalence, which we'll do below. */ i1 = bb1->end; - if (onlyjump_p (i1)) + if (onlyjump_p (i1) + || (returnjump_p (i1) && !side_effects_p (PATTERN (i1)))) i1 = PREV_INSN (i1); i2 = bb2->end; - if (onlyjump_p (i2)) + if (onlyjump_p (i2) + || (returnjump_p (i2) && !side_effects_p (PATTERN (i2)))) i2 = PREV_INSN (i2); last1 = afterlast1 = last2 = afterlast2 = NULL_RTX; |