On Wed, Nov 23, 2011 at 8:05 PM, Jiangning Liu <jiangning....@arm.com> wrote:
> If this is the root cause, which optimization pass in GCC take the role to
> sink them out of loop? How should we get it fixed?

lim1 handles the case just fine for me.  lim1 is the first loop pass.

After lim1 I get:

<bb 4>:
  # i.1_34 = PHI <i.6_18(9), k.0_9(7)>
  D.2934_5 = pretmp.11_33;
  D.2936_7 = i.1_34 + D.2934_5;
  a_p.2_8 = &a[D.2936_7];
  a_p_lsm.13_37 = a_p.2_8;
  b_p.3_13 = &b[D.2936_7];
  b_p_lsm.14_38 = b_p.3_13;
  MEM[(int *)&a][D.2936_7] = 7;
  MEM[(int *)&b][D.2936_7] = 7;
  i.6_18 = k.0_9 + i.1_34;
  i_lsm.12_39 = i.6_18;
  if (i.6_18 <= 511)
    goto <bb 9>;
  else
    goto <bb 8>;

<bb 9>:
  goto <bb 4>;




Thanks,
Andrew Pinski

Reply via email to