On Fri, May 21, 2010 at 6:13 PM, Xinliang David Li <davi...@google.com> wrote: > On Fri, May 21, 2010 at 2:24 AM, Richard Guenther > <richard.guent...@gmail.com> wrote: >> On Thu, May 20, 2010 at 11:21 PM, Xinliang David Li <davi...@google.com> >> wrote: >>> On Thu, May 20, 2010 at 2:18 PM, Steven Bosscher <stevenb....@gmail.com> >>> wrote: >>>> On Thu, May 20, 2010 at 11:14 PM, Xinliang David Li <davi...@google.com> >>>> wrote: >>>>> stack variable overlay and stack slot assignments is here too. >>>> >>>> Yes, and for these I would like to add a separate timevar. Agree? >>> >>> Yes. (By the way, we are rewriting this pass to eliminate the code >>> motion/aliasing problem -- but that is a different topic). >> > > >> Btw, we want to address the same problem by representing the >> points where (big) variables go out-of scope in the IL, also to >> help DSE. The original idea was to simply drop in an aggregate >> assignment from an undefined value at the end of the scope >> during lowering, like >> >> var = {undefined}; >> >> which we'd expand to nothing. Of course shifting the problem to >> the RTL optimizers, so better expand to a similar RTL construct. >> But then are you addressing the similar problem on the RTL side? > > We are probably talking about different problems -- the one I > mentioned is that code motion leading to overlapping live range for > variables in different scopes which invalidates the scope based stack > variable overlay. What is the problem you referred? Any PR? I wonder > why a dummy assignment is needed.
Yes, it's the same problem. A dummy assignment would prevent the code motion on the tree level and thus keep the scope block information valid. Richard.