Changes between Version 63 and Version 64 of squirrelfish


Ignore:
Timestamp:
Apr 11, 2008 3:41:20 AM (16 years ago)
Author:
cwzwarich@uwaterloo.ca
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • squirrelfish

    v63 v64  
    77     * It occurs to me that these could both (s|g)etters and toString could be "trivially" handled through the standard js -> native -> js call model -- at least in the short-medium term
    88  * eval
    9   * proper values for "this"
    109
    1110'''List of tasks in no order -- pick one, tell everyone what you're doing:
     
    2524'''
    2625
    27 Investigating performance regressions caused by the introduction of new opcodes. In particular, a simple for loop with no body regresses about 25%. It seemed at first that this has to do with the fact that these instructions call arbitrary external functions, but some odd performance differences still occur without these calls. '''Done''': the regression seems to be related to inlining of large function bodies into Machine::privateExecute(). In order to solve this, we have to remove ALWAYS_INLINE from some larger functions, and move some opcodes out into individual functions marked NEVER_INLINE. This is suboptimal, and we still don't know the exact reason why it is happening, but hopefully it will be easy enough to work around for now. Geoff and I worked this out and he landed [http://trac.webkit.org/projects/webkit/changeset/31277 r31277], which fixes the problems we have seen thusfar.
    28 
    2926Better code generation. We have been pondering whether to have a separate peephole optimization pass or to incorporate peephole optimization into code generation. Either way, we should look at some code generation algorithms based on tile matching. We also want to choose an approach that will be compatible with planned extensions, e.g. superinstructions.
    3027
    31 Function-related nodes
     28Constant pool GC
    3229
    3330'''Oliver is working on:
     
    3936'''
    4037
    41 Implement more "emitCode" functions, along with support in the CodeGenerator and the Machine. IfNode would be a good place to start.
    42 
    4338'''Maciej is working on:
    4439'''
    4540
    46 Bracket nodes
     41ScopeChain hackery
    4742
    4843'''You could take something from Geoff, or make something up yourself, or do one of these:'''
     
    5752 * ElementNode
    5853 * EvalFunctionCallNode
    59  * FunctionCallResolveNode (still needs to be fixed to handle thisObj correctly)
    60  * NewExprNode (still needs to be fixed to work with js functions)
    6154 * ParameterNode
    6255 * PostDecConstNode