------- Comment #4 from rguenth at gcc dot gnu dot org  2008-11-25 21:23 -------
Testcase from comment #1 has wrong points-to sets on the trunk as well (-O).

end = &NONLOCAL
temp_4 = end
end_7 = end_1
temp_8 = temp_2
end_1 = end
end_1 = end_7
temp_2 = temp_4
temp_2 = temp_8

...

end_7 is a non-pointer variable, eliminating edges.
end_7 is a non-pointer variable, eliminating edges.
end_7 is a non-pointer variable,ignoring constraint:end_7 = end_1
end_1 is a non-pointer variable,ignoring constraint:end_1 = end
end_1 is a non-pointer variable,ignoring constraint:end_1 = end_7

...

end_7 = { }
end_1 = { }

...


<bb 2>:
  temp_4 = end_3(D) + -4;
  goto <bb 4>;

<bb 3>:
  D.1238_6 = *temp_2;
  *end_1 = D.1238_6;
  end_7 = end_1 + -4;
  temp_8 = temp_2 + -4;

<bb 4>:
  # end_1 = PHI <end_3(D)(2), end_7(3)>
  # temp_2 = PHI <temp_4(2), temp_8(3)>
  if (end_1 > start_5(D))
    goto <bb 3>;
  else
    goto <bb 5>;


-- 


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

Reply via email to