------- Comment #5 from rguenth at gcc dot gnu dot org  2010-03-03 15:42 -------
We shouldn't have deferred BB31 in the first iteration (with just TEN):

<bb 2>:
  goto <bb 13>;

...
<bb 31>:

<bb 13>:
  D.2759_1 = b ();
  if (D.2759_1 != 0)
    goto <bb 32>;
  else
    goto <bb 14>;

<bb 32>:
  goto <bb 12>;

<bb 14>:
  return;

Starting iteration 0
...
Block 31 was deferred for a future iteration.
ANTIC_OUT[14] := {  }
ANTIC_IN[14] := {  }
S[14] := {  }
ANTIC_OUT[13] := {  }
ANTIC_IN[13] := {  }
S[13] := {  }
ANTIC_OUT[2] := {  }
ANTIC_IN[2] := {  }
S[2] := {  }
Starting iteration 1

which means we are iterating in non-optimal order - which is postorder.
It looks like post_order_compute computes BS.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40761

Reply via email to