summaryrefslogtreecommitdiff
path: root/gcc/regrename.c
diff options
context:
space:
mode:
authorsteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>2009-01-09 21:34:22 +0000
committersteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>2009-01-09 21:34:22 +0000
commit100329af4652d5bbb46e7832767e4d9d65f2de04 (patch)
tree6fd2a5d0f9646278f03352cbe2ed0a2eb19302a8 /gcc/regrename.c
parent1ef48c9d67b7aee978c2a78d0a4b8dbc90a5db50 (diff)
downloadgcc-100329af4652d5bbb46e7832767e4d9d65f2de04.tar.gz
* regrename.c (regrename_optimize): Fix dumping.
(find_oldest_value_reg): Preserve REG_POINTER. (copy_hardreg_forward_1): Likewise. process_init_element callers. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@143235 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/regrename.c')
-rw-r--r--gcc/regrename.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/regrename.c b/gcc/regrename.c
index 83fd605fcb4..2da42c38ecb 100644
--- a/gcc/regrename.c
+++ b/gcc/regrename.c
@@ -340,12 +340,12 @@ regrename_optimize (void)
continue;
}
+ if (dump_file)
+ fprintf (dump_file, ", renamed as %s\n", reg_names[best_new_reg]);
+
do_replace (this_du, best_new_reg);
tick[best_new_reg] = ++this_tick;
df_set_regs_ever_live (best_new_reg, true);
-
- if (dump_file)
- fprintf (dump_file, ", renamed as %s\n", reg_names[best_new_reg]);
}
obstack_free (&rename_obstack, first_obj);
@@ -1388,6 +1388,7 @@ find_oldest_value_reg (enum reg_class cl, rtx reg, struct value_data *vd)
{
ORIGINAL_REGNO (new_rtx) = ORIGINAL_REGNO (reg);
REG_ATTRS (new_rtx) = REG_ATTRS (reg);
+ REG_POINTER (new_rtx) = REG_POINTER (reg);
return new_rtx;
}
}
@@ -1686,6 +1687,7 @@ copyprop_hardreg_forward_1 (basic_block bb, struct value_data *vd)
{
ORIGINAL_REGNO (new_rtx) = ORIGINAL_REGNO (src);
REG_ATTRS (new_rtx) = REG_ATTRS (src);
+ REG_POINTER (new_rtx) = REG_POINTER (src);
if (dump_file)
fprintf (dump_file,
"insn %u: replaced reg %u with %u\n",