• fpizlo@apple.com's avatar
    Rationalize closure call heuristics and profiling · 806b5821
    fpizlo@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=106270
    
    Source/JavaScriptCore: 
    
    Reviewed by Oliver Hunt.
            
    Did a number of things:
            
    - CallLinkInfo now remembers if it was ever a closure call, and CallLinkStatus uses
      this. Reduces the likelihood that we will inline a closure call as if it was a
      normal call.
            
    - Made InlineCallFrame print inferred function names, and refactored
      CodeBlock::inferredName() to better use FunctionExecutable's API.
            
    - Made bytecode dumping print frequent exit sites that led to recompilation.
            
    - Made bytecode dumping for op_call and op_construct print what the CallLinkStatus
      saw.
            
    * bytecode/CallLinkInfo.h:
    (JSC::CallLinkInfo::CallLinkInfo):
    (CallLinkInfo):
    * bytecode/CallLinkStatus.cpp:
    (JSC::CallLinkStatus::computeFor):
    * bytecode/CodeBlock.cpp:
    (JSC::CodeBlock::inferredName):
    (JSC::CodeBlock::dumpBytecodeCommentAndNewLine):
    (JSC::CodeBlock::printCallOp):
    * bytecode/CodeOrigin.cpp:
    (JSC::CodeOrigin::dump):
    (JSC::InlineCallFrame::inferredName):
    (JSC):
    (JSC::InlineCallFrame::dumpBriefFunctionInformation):
    (JSC::InlineCallFrame::dump):
    * bytecode/CodeOrigin.h:
    (InlineCallFrame):
    * bytecode/DFGExitProfile.cpp:
    (JSC::DFG::ExitProfile::exitSitesFor):
    (DFG):
    * bytecode/DFGExitProfile.h:
    (ExitProfile):
    * jit/JITStubs.cpp:
    (JSC::DEFINE_STUB_FUNCTION):
    
    Source/WTF: 
    
    Reviewed by Oliver Hunt.
            
    Add a macro to add a method to a class that returns a dumper. Allows you to have
    secondary dump() methods for dumping either more or less information.
    
    * wtf/PrintStream.h:
    (WTF):
    
    Tools: 
    
    Reviewed by Oliver Hunt.
            
    Add ability to use display-profiler-output via a pipe, and add the ability to dump
    all generated code ('display *' or 'd *').
    
    * Scripts/display-profiler-output:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139021 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    806b5821
CallLinkInfo.h 3.41 KB