This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: ICE in fixup_reorder_chain, at bb-reorder.c:633
On Thu, Sep 07, 2000 at 05:47:24PM -0400, John David Anglin wrote:
> After looking at this, it became apparent that the "fallthru" block is
> the same as the block for the casesi insn.
Eh? That makes no sense at all. If true, that just means that
the initial CFG is broken. But looking at how the CFG is created,
I don't see how that could happen.
> I think bb-reorder is confused here. If a jump is required when the
> block with casesi insn is moved, then fixup_reorder_chain should
> provide for it.
Certainly it should, if one is needed. That was the whole point of
my comment. That said, I wish you'd provided a compilable test case,
since we should have kept the two blocks together, but didn't.
Put a breakpoint at
/* In the absence of a prediction, disturb things as little as possible
by selecting the old "next" block from the list of successors. If
there had been a fallthru edge, that will be the one. */
if (! next)
{
for (e = bb->succ; e ; e = e->succ_next)
conditional on bb->index == 206, and see why the fallthru edge is
not chosen.
r~