• oliver@apple.com's avatar
    Add direct string->function code cache · 72b0c04c
    oliver@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=103764
    
    Reviewed by Michael Saboff.
    
    A fairly logically simple patch.  We now track the start of the
    unique portion of a functions body, and use that as our key for
    unlinked function code.  This allows us to cache identical code
    in different contexts, leading to a small but consistent improvement
    on the benchmarks we track.
    
    * bytecode/UnlinkedCodeBlock.cpp:
    (JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
    * bytecode/UnlinkedCodeBlock.h:
    (JSC::UnlinkedFunctionExecutable::functionStartOffset):
    (UnlinkedFunctionExecutable):
    * parser/ASTBuilder.h:
    (ASTBuilder):
    (JSC::ASTBuilder::setFunctionStart):
    * parser/Nodes.cpp:
    * parser/Nodes.h:
    (JSC::FunctionBodyNode::setFunctionStart):
    (JSC::FunctionBodyNode::functionStart):
    (FunctionBodyNode):
    * parser/Parser.cpp:
    (JSC::::parseFunctionInfo):
    * parser/Parser.h:
    (JSC::Parser::findCachedFunctionInfo):
    * parser/SyntaxChecker.h:
    (JSC::SyntaxChecker::setFunctionStart):
    * runtime/CodeCache.cpp:
    (JSC::CodeCache::generateFunctionCodeBlock):
    (JSC::CodeCache::getFunctionCodeBlock):
    (JSC::CodeCache::usedFunctionCode):
    * runtime/CodeCache.h:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@136261 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    72b0c04c
CodeCache.cpp 9.72 KB