------- 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

Reply via email to