diff options
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp')
-rw-r--r-- | Source/JavaScriptCore/dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp b/Source/JavaScriptCore/dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp index 70cc82502..17b45a328 100644 --- a/Source/JavaScriptCore/dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp +++ b/Source/JavaScriptCore/dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp @@ -31,7 +31,6 @@ #include "CodeBlock.h" #include "DFGJITCode.h" #include "Executable.h" -#include "JSCInlines.h" namespace JSC { namespace DFG { @@ -45,10 +44,11 @@ ToFTLForOSREntryDeferredCompilationCallback::~ToFTLForOSREntryDeferredCompilatio { } -Ref<ToFTLForOSREntryDeferredCompilationCallback>ToFTLForOSREntryDeferredCompilationCallback::create( +PassRefPtr<ToFTLForOSREntryDeferredCompilationCallback> +ToFTLForOSREntryDeferredCompilationCallback::create( PassRefPtr<CodeBlock> dfgCodeBlock) { - return adoptRef(*new ToFTLForOSREntryDeferredCompilationCallback(dfgCodeBlock)); + return adoptRef(new ToFTLForOSREntryDeferredCompilationCallback(dfgCodeBlock)); } void ToFTLForOSREntryDeferredCompilationCallback::compilationDidBecomeReadyAsynchronously( @@ -73,24 +73,13 @@ void ToFTLForOSREntryDeferredCompilationCallback::compilationDidComplete( ") result: ", result, "\n"); } - JITCode* jitCode = m_dfgCodeBlock->jitCode()->dfg(); - - switch (result) { - case CompilationSuccessful: - jitCode->osrEntryBlock = codeBlock; - break; - case CompilationFailed: - jitCode->osrEntryRetry = 0; - jitCode->abandonOSREntry = true; - break; - case CompilationDeferred: - RELEASE_ASSERT_NOT_REACHED(); - case CompilationInvalidated: - jitCode->osrEntryRetry = 0; - break; - } + if (result == CompilationSuccessful) + m_dfgCodeBlock->jitCode()->dfg()->osrEntryBlock = codeBlock; - DeferredCompilationCallback::compilationDidComplete(codeBlock, result); + // FIXME: if we failed, we might want to just turn off OSR entry rather than + // totally turning off tier-up. + m_dfgCodeBlock->jitCode()->dfg()->setOptimizationThresholdBasedOnCompilationResult( + m_dfgCodeBlock.get(), result); } } } // JSC::DFG |