------- Comment #3 from pinskia at gcc dot gnu dot org 2006-08-28 06:43 ------- If I do this: int f(int t, int a, int b) { int c, d, e; if (t) { c = a+1; d = a+1; e = a+1; } else { c = b+1; d = b+1; e = b+1; } return c+d+e; }
We get the extra moves elimintated (though not at the tree level). -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28868