enable-checking failure record_insns () and PARALLEL
Jeffrey A Law
law@cygnus.com
Sun Apr 23 13:57:00 GMT 2000
In message < 38F4CBDC.E0DF4288@rcp.co.uk >you write:
> Hi
>
> I sent the following to gcc-bugs but didn't get any comments.
>
> grahams wrote:
> >
> > Hi
> >
> > I'm getting a enable-checking failure using the current CVS on
> > i686-linux bootstrapping with "-O3 -mcpu=pentiumpro -march=pentiumpro
> > -fomit-frame-pointer"
> >
> > The bootstrap fails because record_insns () is being passed a rtx
> > which is a PARALLEL which causes INSN_UID (insns) to abort.
> >
> > Question. Should record_insns () handle the parallel or does this
> > indicate a bug elsewhere?
> >
> > Graham
>
>
> Here's a patch for record_insns () so it handles a parallel correctly?
>
> It passes bootstrap on i686-linux with/without enable-checking using
> current CVS.
>
> ChangeLog
> * function.c (record_insns): Handle a INSN which is a parallel.
Looking at the callers of record_insns, it appears they're only used to
record the prologue, epilogue & sibcall epilogue.
I can't think of a case where it should have been passed a PARALLEL.
If we emitted multiple instructions we should have had a SEQUENCE, else
we should have had a single INSN, JUMP_INSN or CALL_INSN....
I think you should track down how we got a PARALLEL passed to record_insns
since I think that isn't supposed to happen.
jeff
More information about the Gcc-patches
mailing list