IA64 bootstrap failure

Jim Wilson wilson@redhat.com
Tue Feb 11 18:22:00 GMT 2003


>I've been looking at the code and what happens is that scheduler updates
>CFG and then IA-64 hook jumps in and messes it up.  I can fix that in
>case this is usefull for IA-64 port.

It is more complicated than that.  The IA-64 port adds instructions to carry
out-of-band info that the CFG code doesn't understand.

For instance, search for control_flow_insn_p in verify_flow_info.  It calls
error if it finds a control flow insn inside a basic block.  However, if
you add the special IA-64 insns into the CFG, then we can have padding nops
and/or stop bits after a control flow insn.  There is a fundamental conflict
here.  Either we no longer end a basic block with a branch, or we stop using
regular insns for this info, or we don't put the special IA-64 isnsns into the
CFG.  I think the first option is a bad choice, and I don't see any real
benefit to the second choice, so the third option seems best for now.  Thus
I think we just need to avoid calling verify_flow_info during or after
MACHINE_DEPENDENT_REORG.

I suppose building the CFG wrong to make verify_flow_info happy is another
choice, but I also think that is a bad choice.

Jim



More information about the Gcc mailing list