Changes between Version 9 and Version 10 of SquirrelFishPerfIdeas


Ignore:
Timestamp:
Apr 28, 2008 10:51:38 PM (16 years ago)
Author:
mjs@apple.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SquirrelFishPerfIdeas

    v9 v10  
    1111 * Maybe sorting opcode implementations by frequency of use would make things faster.
    1212
     13 * Avoid creation of wrapper objects for primitives just to call methods, when this can be avoided. ES4 defines a way that seems like it could work with 100% back compatibility (make the wrapper object only when "this" is accessed inside a method.) A slightly simpler possibility is to reuse a single wrapper but taint it when used as "this" so that it's known not to be safe to use as the shared one any more.
     14
    1315'''Larger ideas:'''
    1416
     
    1921 * Better codegen framework. We don't have a great way to pick from one of several instructions, using a "tile matching" algorithm may be a good way. This could enable super-instructions, type-specialized instructions, and handling of the fact that you may want different codegen in value, condition and void contexts.
    2022
    21  * Cull frameworks like dojo, YUI, and ASP.NET AJAX, for patterns to optimize for. For example, ASP.NET AJAX is obsessed with the "arguments" object.
     23 * Cull frameworks like dojo, jQuery, MochiKit, Scriptaculous, Prototype, YUI, and ASP.NET AJAX, for patterns to optimize for. For example, ASP.NET AJAX is obsessed with the "arguments" object.
    2224
    2325 * Produce code that expects but verifies int values when we see expressions like "<<" and "++".
     
    2628
    2729 * Optimize for inner functions that only close a few free variables: don't copy or create scope chain entries for the rest.
     30
     31 * Simple static type analysis could be easily doable for temporaries - when a node produces a known exact type (either because it is a constant or due to the nature of the operator), it could annotate the register, and instructions depending on that value could assume that type. Handling locals would be trickier, though, as you need some dataflow analysis.
    2832
    2933'''Analysis of SunSpider tests that show little improvement'''