summaryrefslogtreecommitdiff
path: root/gcc/postreload.c
diff options
context:
space:
mode:
authorkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>2009-07-06 13:28:22 +0000
committerkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>2009-07-06 13:28:22 +0000
commita31502084bd689aa52fb605429a4a27beb715281 (patch)
tree035a4c63678bcbdbee8bf0517b6aa1b9f6cc97a7 /gcc/postreload.c
parent3e02d180cafcf16f8e6e5517a8f238e1f3bdcd80 (diff)
downloadgcc-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.c13
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);