Skip to content
  • fpizlo@apple.com's avatar
    DFG should not load the property storage if it is inline. · 16bba26e
    fpizlo@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=83455
    
    Reviewed by Gavin Barraclough.
            
    We had previously decided to have all property storage accesses go through
    the property storage pointer even if they don't "really" have to, because
    we were thinking this would help GC barriers somehow. Well, we never ended
    up doing anything with that. Hence, doing these wasted loads of the
    property storage pointer when the storage is inline is just a waste of CPU
    cycles.
            
    This change makes the DFG's inline property accesses (GetByOffset and
    PutByOffset) go directly to the inline property storage if the structure(s)
    tell us that it's OK.
            
    This looks like an across-the-board 1% win.
    
    * bytecode/StructureSet.h:
    (JSC):
    (JSC::StructureSet::allAreUsingInlinePropertyStorage):
    (StructureSet):
    * dfg/DFGByteCodeParser.cpp:
    (JSC::DFG::ByteCodeParser::parseBlock):
    * dfg/DFGSpeculativeJIT.cpp:
    (JSC::DFG::SpeculativeJIT::fillStorage):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@113557 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    16bba26e