This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: haifa infinite loop



  In message <19980419163604.00189@twiddle.rth.home>you write:
  > The problem is that we make no progress if there is not some member
  > of degree[] that is zero.  The relevant variables at the time are:
Yup.


  > (gdb) p tail
  > $1 = 4
  > (gdb) p queue[0]@tail+1
  > $2 = {7, 6, 4, 3, 2}
  > (gdb) p degree[0]@7+1
  > $3 = {1, -1, 1, 1, 1, 1, 1, 1}
  > 
  > I'm pretty sure this case never should have arisen, so there should
  > be no point in checking for the loop not making progress, but I'm 
  > not sure yet where to look for the correct code.
Correct, it shouldn't have happened :-)

There's a backedge in the loop, with I know causes haifa some problems,
though I thought I'd managed to keep such code from being identified
as a schedulable region.

It's probably a situation similar to the one mentioned in the comment
above the code which adds all the block from the loop into the block
queue.

I'll try to look at it tomorrow.

  > OTOH, I suppose checking for an infinite loop and aborting
  > wouldn't be a bad thing...
Agreed.

jeff


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]