On Feb 25, 2015, Alexandre Oliva <aol...@redhat.com> wrote: > if a function is called within a loop and we inline it, bindings from > the call in one iteration of the loop will carry over onto the > subsequent iteration until a new binding occurs.
Wait, I have to take that back and revisit the code I looked at. var-tracking handles confluences differently between VTA-tracked and old-style var-tracking vars, and I was probably confused by that: it occurred to me this morning that confluence points of VTA-tracked variables perform a set intersection, whereas old-style VTA performs set union across locations at all incoming edges. So, what I have concluded should only apply to old-style var-tracking vars, or to VTA-tracked vars in unrolled loops whose intermediate conditions were optimized out (so that there isn't any confluence with incoming edges without bindings for the var). I'm afraid I'll have to look again and figure out what I got wrong. Apologies for the noise. -- Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/ You must be the change you wish to see in the world. -- Gandhi Be Free! -- http://FSFLA.org/ FSF Latin America board member Free Software Evangelist|Red Hat Brasil GNU Toolchain Engineer