------- Comment #3 from rguenth at gcc dot gnu dot org  2009-09-28 11:45 -------
The remaining cases should be

  *p = a_1;
  ...
  if (...)
    *p = b_2;

where sinking the first store is possible and profitable (it's partially dead)

  ...
  if (...)
    *p = b_2;
  else
    *p = a_1;

which is then recognized as a conditional store, if-converted as

  tmp = ... ? b_2 : a_1;
  *p = tmp;

the first part is supposed to be done already by tree-ssa-sink.c, the
second part should be done by if-conversion in tree-ssa-phiopt.c.

Of course tree-ssa-sink.c is likely nor working for the first case.


-- 


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

Reply via email to