[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