> 2010/5/21 Jan Hubicka <hubi...@ucw.cz>: > >> 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? > > > > Well, RTL already has the clobber insns, that are pretty much what you need > > (and RTL land plays with this at least for double word arithmetic). But > > I am not quite sure how much of DSE we want to deffer to RTL. > > But a clobber for (stack) memory objects doesn't work in the granularity > we want it to be applied, does it?
Clobber takes memory expression that has alias info in it, so you can make it specific to single var. But I guess problem will be that memory clobber (unlike reg clobber) has by default the "may" interpretation (i.e. it may or may not change the memory in random way). Honza