[PATCH] Re: reg_dead_notes!=0: New abort in haifa schedulerin latest CVS

Franz Sirl Franz.Sirl-kernel@lauterbach.com
Sun May 10 16:07:00 GMT 1998


At 7:12 Uhr -0000 06.05.1998, Jeffrey A Law wrote:
>  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 :-)

Ahem ;-) Sorry to bother you again, but your integration of Jim's patch
does no longer solve the original problem with
< http://homepages.munich.netsurf.de/Franz.Sirl/misc/super.i > (gcc -O2).
Please recheck your solution.

Bye,
Franz.





More information about the Gcc-bugs mailing list