[PATCH] Fixing m68hc11 reorg after dataflow merge
Rask Ingemann Lambertsen
rask@sygehus.dk
Sun Jun 17 01:36:00 GMT 2007
On Sat, Jun 16, 2007 at 01:25:33PM -0700, Seongbae Park (ë°ì±ë°°, æ´æå¹) wrote:
> On 6/16/07, Rask Ingemann Lambertsen <rask@sygehus.dk> wrote:
> > I need some help making m68hc11_reorg() work after the dataflow merge,
> > in
> >particular this bit:
[snip]
> Try:
>
> df_note_add_problem ();
> df_analyze ();
With this patch, I can at least build cc1. It dies compiling libgcc,
/n/08/rask/src/gcc/libgcc/../gcc/libgcc2.c: In function '__muldi3':
/n/08/rask/src/gcc/libgcc/../gcc/libgcc2.c:566: internal compiler error: in df_refs_verify, at df-scan.c:4066
but it is a start.
2007-06-17 Rask Ingemann Lambertsen <rask@sygehus.dk>
* config/m68hc11/m68hc11.c: Include dataflow header file.
(m68hc11_reorg): Port to dataflow.
Index: gcc/config/m68hc11/m68hc11.c
===================================================================
--- gcc/config/m68hc11/m68hc11.c (revision 125635)
+++ gcc/config/m68hc11/m68hc11.c (working copy)
@@ -59,6 +59,7 @@ Note:
#include "reload.h"
#include "target.h"
#include "target-def.h"
+#include "df.h"
static void emit_move_after_reload (rtx, rtx, rtx);
static rtx simplify_logical (enum machine_mode, int, rtx, rtx *);
@@ -5004,7 +5005,7 @@ static void
m68hc11_reorg (void)
{
int split_done = 0;
- rtx insn, first;
+ rtx first;
z_replacement_completed = 0;
z_reg = gen_rtx_REG (HImode, HARD_Z_REGNUM);
@@ -5036,29 +5037,8 @@ m68hc11_reorg (void)
description to use the best assembly directives. */
if (optimize)
{
- /* Before recomputing the REG_DEAD notes, remove all of them.
- This is necessary because the reload_cse_regs() pass can
- have replaced some (MEM) with a register. In that case,
- the REG_DEAD that could exist for that register may become
- wrong. */
- for (insn = first; insn; insn = NEXT_INSN (insn))
- {
- if (INSN_P (insn))
- {
- rtx *pnote;
-
- pnote = ®_NOTES (insn);
- while (*pnote != 0)
- {
- if (REG_NOTE_KIND (*pnote) == REG_DEAD)
- *pnote = XEXP (*pnote, 1);
- else
- pnote = &XEXP (*pnote, 1);
- }
- }
- }
-
- life_analysis (PROP_REG_INFO | PROP_DEATH_NOTES);
+ df_note_add_problem ();
+ df_analyze ();
}
z_replacement_completed = 2;
--
Rask Ingemann Lambertsen
More information about the Gcc-patches
mailing list