diff options
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGToFTLDeferredCompilationCallback.cpp')
-rw-r--r-- | Source/JavaScriptCore/dfg/DFGToFTLDeferredCompilationCallback.cpp | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGToFTLDeferredCompilationCallback.cpp b/Source/JavaScriptCore/dfg/DFGToFTLDeferredCompilationCallback.cpp index 7770fd627..10815fe12 100644 --- a/Source/JavaScriptCore/dfg/DFGToFTLDeferredCompilationCallback.cpp +++ b/Source/JavaScriptCore/dfg/DFGToFTLDeferredCompilationCallback.cpp @@ -30,60 +30,59 @@ #include "CodeBlock.h" #include "DFGJITCode.h" -#include "Executable.h" +#include "JSCInlines.h" namespace JSC { namespace DFG { -ToFTLDeferredCompilationCallback::ToFTLDeferredCompilationCallback( - PassRefPtr<CodeBlock> dfgCodeBlock) - : m_dfgCodeBlock(dfgCodeBlock) +ToFTLDeferredCompilationCallback::ToFTLDeferredCompilationCallback() { } ToFTLDeferredCompilationCallback::~ToFTLDeferredCompilationCallback() { } -PassRefPtr<ToFTLDeferredCompilationCallback> ToFTLDeferredCompilationCallback::create( - PassRefPtr<CodeBlock> dfgCodeBlock) +Ref<ToFTLDeferredCompilationCallback> ToFTLDeferredCompilationCallback::create() { - return adoptRef(new ToFTLDeferredCompilationCallback(dfgCodeBlock)); + return adoptRef(*new ToFTLDeferredCompilationCallback()); } void ToFTLDeferredCompilationCallback::compilationDidBecomeReadyAsynchronously( - CodeBlock* codeBlock) + CodeBlock* codeBlock, CodeBlock* profiledDFGCodeBlock) { if (Options::verboseOSR()) { dataLog( - "Optimizing compilation of ", *codeBlock, " (for ", *m_dfgCodeBlock, + "Optimizing compilation of ", *codeBlock, " (for ", *profiledDFGCodeBlock, ") did become ready.\n"); } - m_dfgCodeBlock->jitCode()->dfg()->forceOptimizationSlowPathConcurrently( - m_dfgCodeBlock.get()); + profiledDFGCodeBlock->jitCode()->dfg()->forceOptimizationSlowPathConcurrently( + profiledDFGCodeBlock); } void ToFTLDeferredCompilationCallback::compilationDidComplete( - CodeBlock* codeBlock, CompilationResult result) + CodeBlock* codeBlock, CodeBlock* profiledDFGCodeBlock, CompilationResult result) { if (Options::verboseOSR()) { dataLog( - "Optimizing compilation of ", *codeBlock, " (for ", *m_dfgCodeBlock, + "Optimizing compilation of ", *codeBlock, " (for ", *profiledDFGCodeBlock, ") result: ", result, "\n"); } - if (m_dfgCodeBlock->replacement() != m_dfgCodeBlock) { + if (profiledDFGCodeBlock->replacement() != profiledDFGCodeBlock) { if (Options::verboseOSR()) { dataLog( "Dropping FTL code block ", *codeBlock, " on the floor because the " - "DFG code block ", *m_dfgCodeBlock, " was jettisoned.\n"); + "DFG code block ", *profiledDFGCodeBlock, " was jettisoned.\n"); } return; } if (result == CompilationSuccessful) - codeBlock->install(); + codeBlock->ownerScriptExecutable()->installCode(codeBlock); - m_dfgCodeBlock->jitCode()->dfg()->setOptimizationThresholdBasedOnCompilationResult( - m_dfgCodeBlock.get(), result); + profiledDFGCodeBlock->jitCode()->dfg()->setOptimizationThresholdBasedOnCompilationResult( + profiledDFGCodeBlock, result); + + DeferredCompilationCallback::compilationDidComplete(codeBlock, profiledDFGCodeBlock, result); } } } // JSC::DFG |