diff options
author | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1994-05-16 20:21:39 +0000 |
---|---|---|
committer | kenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4> | 1994-05-16 20:21:39 +0000 |
commit | 3409bb3dcf27ac4391c195716fa0639b9916fd99 (patch) | |
tree | 5f2d31d057112eec91a33ab653472ae31119150b /gcc/flow.c | |
parent | d0ea084865d99e45a81f1d7e8c7ac75cab159d86 (diff) | |
download | gcc-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.c | 3 |
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)) { |