Changeset 37653 in webkit for trunk/JavaScriptCore/ChangeLog


Ignore:
Timestamp:
Oct 17, 2008, 4:55:09 AM (17 years ago)
Author:
[email protected]
Message:

2008-10-17 Maciej Stachowiak <[email protected]>

Reviewed by Cameron Zwarich.


  • speed up transitions that resize the property storage a fair bit


~3% speedup on v8 RayTrace benchmark, ~1% on DeltaBlue

  • VM/CTI.cpp: (JSC::resizePropertyStorage): renamed from transitionObject, and reduced to just resize the object's property storage with one inline call. (JSC::CTI::privateCompilePutByIdTransition): Use a separate function for property storage resize, but still do all the rest of the work in assembly in that case, and pass the known compile-time constants of old and new size rather than structureIDs, saving a bunch of redundant memory access.
  • kjs/JSObject.cpp: (JSC::JSObject::allocatePropertyStorage): Just call the inline version.
  • kjs/JSObject.h: (JSC::JSObject::allocatePropertyStorageInline): Inline version of allocatePropertyStorage
  • masm/X86Assembler.h: (JSC::X86Assembler::): (JSC::X86Assembler::pushl_i32): Add code to assmeble push of a constant; code originally by Cameron Zwarich.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r37652 r37653  
     12008-10-17  Maciej Stachowiak  <[email protected]>
     2
     3        Reviewed by Cameron Zwarich.
     4       
     5        - speed up transitions that resize the property storage a fair bit
     6       
     7        ~3% speedup on v8 RayTrace benchmark, ~1% on DeltaBlue
     8
     9        * VM/CTI.cpp:
     10        (JSC::resizePropertyStorage): renamed from transitionObject, and reduced to just resize
     11        the object's property storage with one inline call.
     12        (JSC::CTI::privateCompilePutByIdTransition): Use a separate function for property storage
     13        resize, but still do all the rest of the work in assembly in that case, and pass the known
     14        compile-time constants of old and new size rather than structureIDs, saving a bunch of
     15        redundant memory access.
     16        * kjs/JSObject.cpp:
     17        (JSC::JSObject::allocatePropertyStorage): Just call the inline version.
     18        * kjs/JSObject.h:
     19        (JSC::JSObject::allocatePropertyStorageInline): Inline version of allocatePropertyStorage
     20        * masm/X86Assembler.h:
     21        (JSC::X86Assembler::):
     22        (JSC::X86Assembler::pushl_i32): Add code to assmeble push of a constant; code originally by Cameron Zwarich.
     23
    1242008-10-17  Cameron Zwarich  <[email protected]>
    225
Note: See TracChangeset for help on using the changeset viewer.