This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Patch: REG_LABEL is an INSN_LIST [Was: Re: REG_LABEL is anEXPR_LIST, not an INSN_LIST]
Alexandre Oliva <oliva@lsd.ic.unicamp.br> writes:
> On Aug 30, 2001, Andreas Jaeger <aj@suse.de> wrote:
>
>> Alexandre, I'd like to see the "patch reversion" policy applied since
>> I didn't see any response from you on RTH's email 38 hours ago...
>
> Please go ahead and revert it. I've been having serious network
> problems lately. I can't even get `cvs update' to complete, and I
> feel I have been missing a lot of e-mail. :-(
>
> It would be even nicer of you if you'd not only revert the patch, but
> also fix the other occurrences in which an EXPR_LIST is created for
> REG_LABELs. A simple grep will show them all. Thanks in advance.
I've done the simple grep and fixed all occurences with the appended
patch. I'm bootstrapping/regtesting this currently on i686-linux.
Ok to commit if regtesting passes?
Andreas
2001-08-31 Andreas Jaeger <aj@suse.de>
* gcse.c (add_label_notes): REG_LABEL is an INSN_LIST.
* loop.c (add_label_notes): Likewise.
* reload.c (find_reloads): Likewise.
* config/sh/sh.c (machine_dependent_reorg): Likewise.
============================================================
Index: gcc/gcse.c
--- gcc/gcse.c 2001/08/29 21:43:41 1.151
+++ gcc/gcse.c 2001/08/31 06:11:08
@@ -5113,7 +5113,7 @@
We no longer ignore such label references (see LABEL_REF handling in
mark_jump_label for additional information). */
- REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_LABEL, XEXP (x, 0),
+ REG_NOTES (insn) = gen_rtx_INSN_LIST (REG_LABEL, XEXP (x, 0),
REG_NOTES (insn));
if (LABEL_P (XEXP (x, 0)))
LABEL_NUSES (XEXP (x, 0))++;
============================================================
Index: gcc/loop.c
--- gcc/loop.c 2001/08/22 14:51:32 1.351
+++ gcc/loop.c 2001/08/31 06:11:19
@@ -1626,7 +1626,7 @@
for (insn = insns; insn; insn = NEXT_INSN (insn))
if (reg_mentioned_p (XEXP (x, 0), insn))
{
- REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_LABEL, XEXP (x, 0),
+ REG_NOTES (insn) = gen_rtx_INSN_LIST (REG_LABEL, XEXP (x, 0),
REG_NOTES (insn));
if (LABEL_P (XEXP (x, 0)))
LABEL_NUSES (XEXP (x, 0))++;
============================================================
Index: gcc/reload.c
--- gcc/reload.c 2001/08/27 18:25:23 1.158
+++ gcc/reload.c 2001/08/31 06:11:27
@@ -3875,7 +3875,7 @@
if (GET_CODE (insn) != JUMP_INSN
&& GET_CODE (substitution) == LABEL_REF
&& !find_reg_note (insn, REG_LABEL, XEXP (substitution, 0)))
- REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_LABEL,
+ REG_NOTES (insn) = gen_rtx_INSN_LIST (REG_LABEL,
XEXP (substitution, 0),
REG_NOTES (insn));
}
@@ -5782,7 +5782,7 @@
register refers to. */
if (GET_CODE (*r->where) == LABEL_REF
&& GET_CODE (insn) == JUMP_INSN)
- REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_LABEL,
+ REG_NOTES (insn) = gen_rtx_INSN_LIST (REG_LABEL,
XEXP (*r->where, 0),
REG_NOTES (insn));
============================================================
Index: gcc/config/sh/sh.c
--- gcc/config/sh/sh.c 2001/08/18 20:25:53 1.117
+++ gcc/config/sh/sh.c 2001/08/31 06:11:35
@@ -3238,9 +3238,9 @@
or pseudo-op. */
label = gen_label_rtx ();
- REG_NOTES (link) = gen_rtx_EXPR_LIST (REG_LABEL, label,
+ REG_NOTES (link) = gen_rtx_INSN_LIST (REG_LABEL, label,
REG_NOTES (link));
- REG_NOTES (insn) = gen_rtx_EXPR_LIST (REG_LABEL, label,
+ REG_NOTES (insn) = gen_rtx_INSN_LIST (REG_LABEL, label,
REG_NOTES (insn));
if (rescan)
{
@@ -3256,7 +3256,7 @@
|| ((reg2 = sfunc_uses_reg (scan))
&& REGNO (reg2) == REGNO (reg))))
REG_NOTES (scan)
- = gen_rtx_EXPR_LIST (REG_LABEL, label, REG_NOTES (scan));
+ = gen_rtx_INSN_LIST (REG_LABEL, label, REG_NOTES (scan));
}
while (scan != dies);
}
--
Andreas Jaeger
SuSE Labs aj@suse.de
private aj@arthur.inka.de
http://www.suse.de/~aj