[Bug tree-optimization/17552] [4.0 Regression] Infinite recursion in analyze_scalar_evolution

sebastian dot pop at cri dot ensmp dot fr gcc-bugzilla@gcc.gnu.org
Fri Oct 8 12:24:00 GMT 2004


------- Additional Comments From sebastian dot pop at cri dot ensmp dot fr  2004-10-08 12:24 -------
Subject: Re:  [4.0 Regression] Infinite recursion in analyze_scalar_evolution

Same problem as in PR17560: there is a recursive definition outside
any loop, "j_12 -> j_11 -> j_8 -> j_12".  Here is the IR with loop
structures that scev has to analyze.

loop_0
{
  bb_0 (preds = {bb_-1}, succs = {bb_0bb_0})
  {
  <bb 0>:
    if (k_3 > i_4) goto <L0>; else goto <L8>;

  }
  bb_1 (preds = {bb_0}, succs = {bb_1bb_1})
  {
  <L0>:;
    if (i_4 != 0) goto <L1>; else goto <L3>;

  }
  bb_2 (preds = {bb_1}, succs = {bb_2})
  {
  <L1>:;
    j_9 = i_4 + 1;
    goto <bb 4> (<L4>);

  }
  bb_3 (preds = {bb_1bb_4}, succs = {bb_3})
  {
    # j_12 = PHI <i_4(1), j_11(4)>;
  <L3>:;
    j_8 = j_12 + 1;

  }
  bb_4 (preds = {bb_2bb_3}, succs = {bb_4bb_4})
  {
    # j_11 = PHI <j_9(2), j_8(3)>;
  <L4>:;
    if (k_3 >= j_11) goto <L3>; else goto <L7>;

  }
  bb_7 (preds = {bb_6bb_0}, succs = {bb_7})
  {
  <L8>:;
    return;

  }
  loop_1
  {
    bb_5 (preds = {bb_6}, succs = {bb_5})
    {
    <L6>:;
      k_7 = k_1 + 1;

    }
    bb_6 (preds = {bb_4bb_5}, succs = {bb_6bb_6})
    {
      # k_1 = PHI <i_4(4), k_7(5)>;
    <L7>:;
      if (k_1 < j_11) goto <L6>; else goto <L8>;

    }
  }
}


-- 


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



More information about the Gcc-bugs mailing list