diff options
author | kkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-07-06 13:28:22 +0000 |
---|---|---|
committer | kkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-07-06 13:28:22 +0000 |
commit | a31502084bd689aa52fb605429a4a27beb715281 (patch) | |
tree | 035a4c63678bcbdbee8bf0517b6aa1b9f6cc97a7 /gcc/postreload.c | |
parent | 3e02d180cafcf16f8e6e5517a8f238e1f3bdcd80 (diff) | |
download | gcc-a31502084bd689aa52fb605429a4a27beb715281.tar.gz |
PR rtl-optimization/30807
* postreload.c (reload_combine): For every new use of REG_SUM,
record the use of BASE.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@149282 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/postreload.c')
-rw-r--r-- | gcc/postreload.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/postreload.c b/gcc/postreload.c index cf165ec5f0f..d23ae0b990a 100644 --- a/gcc/postreload.c +++ b/gcc/postreload.c @@ -886,6 +886,19 @@ reload_combine (void) if (apply_change_group ()) { + /* For every new use of REG_SUM, we have to record the use + of BASE therein, i.e. operand 1. */ + for (i = reg_state[regno].use_index; + i < RELOAD_COMBINE_MAX_USES; i++) + reload_combine_note_use + (&XEXP (*reg_state[regno].reg_use[i].usep, 1), + reg_state[regno].reg_use[i].insn); + + if (reg_state[REGNO (base)].use_ruid + > reg_state[regno].use_ruid) + reg_state[REGNO (base)].use_ruid + = reg_state[regno].use_ruid; + /* Delete the reg-reg addition. */ delete_insn (insn); |