This is the mail archive of the gcc-bugs@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]
Other format: [Raw text]

[Bug tree-optimization/17560] [4.0 Regression] Infinite recursion in tree-scalar-evolution with -Os


------- Additional Comments From sebastian dot pop at cri dot ensmp dot fr  2004-10-08 12:07 -------
Subject: Re:  [4.0 Regression] Infinite recursion in tree-scalar-evolution with -Os

Here is what the code looks like at the level of my analyzer.

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

  }
  bb_1 (preds = {bb_0}, succs = {bb_1})
  {
  <L0>:;
    i_7 = i_4 + 1;

  }
  bb_2 (preds = {bb_5bb_1}, succs = {bb_2})
  {
    # i_1 = PHI <i_2(5), i_7(1)>;
  L:;
    goto <bb 4> (<L5>);

  }
  bb_5 (preds = {bb_0bb_4}, succs = {bb_5bb_5})
  {
    # i_2 = PHI <i_4(0), i_1(4)>;
  <L6>:;
    if (i_2 != 1) goto L; else goto <L8>;

  }
  bb_6 (preds = {bb_5}, succs = {bb_6})
  {
  <L8>:;
    return;

  }
  loop_1
  {
    bb_3 (preds = {bb_4}, succs = {bb_3})
    {
    <L4>:;
      j_6 = j_3 + 1;

    }
    bb_4 (preds = {bb_3bb_2}, succs = {bb_4bb_4})
    {
      # j_3 = PHI <0(2), j_6(3)>;
    <L5>:;
      if (j_3 < i_1) goto <L4>; else goto <L6>;

    }
  }
}

The problem is that we have a cycle "i_1 -> i_2 -> i_1" outside any
loop, and I'm not sure about the semantics of this representation.  
By the way, is this a valid SSA form?



-- 


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


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