------- Additional Comments From rth at gcc dot gnu dot org 2005-02-03 06:37 ------- We have incomming into out-of-ssa,
x.1 = exp1 x.2 = x.1 + exp2 x.3 = x.2 + exp3 We're currently allowing TER to produce x.3 = exp1 + exp2 + exp3 What if we were to disable TER substitution when the base variable on the lhs matches the base variable on the rhs? So in this case we'd notice x.1 and x.2 have the same base variable and not merge. And (more importantly) so forth so that the definitions of x.20 and x.19 aren't merged either. This can probably still fall down, especially when a lot of our variables get replaced by "ivtmp.x" and "pretmp.y", but at least we'll have some cut off that handles accumulation naturally. Perhaps there's some loser notion of "base variable" we can use, like "in the same partition", or something. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17549