Changes between Version 13 and Version 14 of squirrelfish


Ignore:
Timestamp:
Mar 26, 2008 3:49:18 PM (15 years ago)
Author:
cwzwarich@uwaterloo.ca
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • squirrelfish

    v13 v14  
    2222Investigating 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.
    2323
    24 Implementing all of the left-over binary operations. We don't have exception support yet, but I'll just add FIXME comments for the division by zero checks.
     24Implementing all of the left-over binary and unary operations.
    2525
    2626Better 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.