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