diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1994-12-19 17:53:11 -0800 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1994-12-19 17:53:11 -0800 |
commit | 935149165b83d8d409584384729c059b34e20590 (patch) | |
tree | 3e6ab93a42ed6931678d9e070f4fb62d10f05b22 | |
parent | bff3fc417e1cf2f06de047ed02282bc988cd8370 (diff) | |
download | gcc-935149165b83d8d409584384729c059b34e20590.zip gcc-935149165b83d8d409584384729c059b34e20590.tar.gz gcc-935149165b83d8d409584384729c059b34e20590.tar.bz2 |
(mark_set_1): For multi-reg hard register, clear all
reg_next_use entries.
From-SVN: r8670
-rw-r--r-- | gcc/flow.c | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -2019,9 +2019,6 @@ mark_set_1 (needed, dead, x, insn, significant) register rtx y = reg_next_use[regno]; register int blocknum = BLOCK_NUM (insn); - /* The next use is no longer "next", since a store intervenes. */ - reg_next_use[regno] = 0; - /* If this is a hard reg, record this function uses the reg. */ if (regno < FIRST_PSEUDO_REGISTER) @@ -2031,12 +2028,20 @@ mark_set_1 (needed, dead, x, insn, significant) for (i = regno; i < endregno; i++) { + /* The next use is no longer "next", since a store + intervenes. */ + reg_next_use[i] = 0; + regs_ever_live[i] = 1; reg_n_sets[i]++; } } else { + /* The next use is no longer "next", since a store + intervenes. */ + reg_next_use[regno] = 0; + /* Keep track of which basic blocks each reg appears in. */ if (reg_basic_block[regno] == REG_BLOCK_UNKNOWN) |