mike.shaver at gmail.com
Thu Sep 15 17:12:38 PDT 2011
On Thu, Sep 15, 2011 at 9:02 AM, Andreas Rossberg <rossberg at google.com> wrote:
> On 14 September 2011 00:00, Brendan Eich <brendan at mozilla.com> wrote:
>> So, static+dynamic. The static side has some powerful algorithms to bring to bear. Dynamic is necessary due to eval and kin, and gives strictly more information (and more relevant information!).
> Nitpick: I believe you are mistaken about the "strictly more" bit.
> There is information that _only_ static analysis can derive. Consider
> e.g. aliasing or escape analysis, or other kinds of global properties.
There are systems that handle escape analysis cases via write
barriers, no? Alias detection (or more importantly non-alias
determinations) seem amenable to the assume-and-guard model used for
PICs and trace selection and other code specialization patterns seen
all over modern JS engines.
The TraceMonkey engine tracks many global properties (including the
properties of globals) to deoptimize as needed and optimize where
possible; our TI and IonMonkey work goes even further.
More information about the es-discuss