Hi! I picked this up again, as I was doing some work in this area and this patch would have been helpful.
The reason ScopeNodeData is a currently separate object is because embedded function and eval code is parsed lazily, so the initial scan doesn't need to allocate space for the captured identifiers set, or the varstack, or the functionstack -- or, notably, for a new parsing arena. Changing the ParserArena to allocate its IdentifierArena lazily fixes the performance regression introduced by moving ScopeNodeData into ScopeNode. I'll open a bug for that. Andy On Wed, 2012-01-18 at 11:14 -0800, Geoffrey Garen wrote: > Hi Andy. > > I don't see any obvious reason why this patch would be a regression. It's not > clear to me why ScopeNodeData is a separate object. > > Geoff > > On Jan 18, 2012, at 9:47 AM, Andy Wingo wrote: > > > Hello list! > > > > I was poking about the parser recently and thought I could clean up some > > of the shenanigans there. I came up with the attached patch, which > > seems to slow down sunspider by about half a percent. > > > > My question is, why is this? It would seem to be easier on the > > allocator to make one object than two. Is WTF_MAKE_FAST_ALLOCATED > > really so powerful that it's worth splitting objects into multiple > > pieces? > > > > Just wondering :) > > > > Cheers, > > > > Andy > > > > > > <diff>_______________________________________________ > > squirrelfish-dev mailing list > > [email protected] > > http://lists.webkit.org/mailman/listinfo.cgi/squirrelfish-dev > _______________________________________________ squirrelfish-dev mailing list [email protected] http://lists.webkit.org/mailman/listinfo.cgi/squirrelfish-dev
