[PATCH] Re: reg_dead_notes!=0: New abort in haifa scheduler in latest CVS
Jeffrey A Law
law@cygnus.com
Wed May 6 00:21:00 GMT 1998
In message < 199805050248.TAA18515@rtl.cygnus.com >you write:
> - if (num_succs[j] == 0)
> + if (out_edges[j] == 0)
>
> Yes, this is a problem. Rather than revert Jeff's change, I believe this
> fixes the problem the way he intended it to work. This works for your
> testcase.
>
> A block with no out_edges is a block with one successor which is the
> EXIT_BLOCK.
>
> Mon May 4 19:43:08 1998 Jim Wilson <wilson@cygnus.com>
>
> * haifa-sched.c (find_rgns): In no_loops case, fix test for leaf
> blocks. Check for 1 successor which is the EXIT_BLOCK.
Jim's patch is correct. I got slightly confused -- we do not put
edges from blocks to the exit in the edge table, but those edges
do show up in num_succs. Something to remember as I convert more
code to use the pred/succ lists instead of the edge table.
I've checked in Jim's patch as well as a patch to detect unreachable
loops which have more than a single basic block.
Onward to fixing rth's haifa problem :-)
jeff
More information about the Gcc-bugs
mailing list