summaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1994-05-16 20:21:39 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1994-05-16 20:21:39 +0000
commit3409bb3dcf27ac4391c195716fa0639b9916fd99 (patch)
tree5f2d31d057112eec91a33ab653472ae31119150b /gcc/flow.c
parentd0ea084865d99e45a81f1d7e8c7ac75cab159d86 (diff)
downloadgcc-3409bb3dcf27ac4391c195716fa0639b9916fd99.tar.gz
(try_pre_increment_1): Don't try to create a pre-increment expression
if the register dies in the succeeding insn. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@7308 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/flow.c')
-rw-r--r--gcc/flow.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 71d15ad7014..448608cdc52 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -2516,6 +2516,9 @@ try_pre_increment_1 (insn)
rtx y = reg_next_use[regno];
if (y != 0
&& BLOCK_NUM (y) == BLOCK_NUM (insn)
+ /* Don't do this if the reg dies, or gets set in y; a standard addressing
+ mode would be better. */
+ && ! dead_or_set_p (y, SET_DEST (x))
&& try_pre_increment (y, SET_DEST (PATTERN (insn)),
amount))
{