Ignore:
Timestamp:
Aug 29, 2013, 9:41:07 AM (12 years ago)
Author:
[email protected]
Message:

Unreviewed, rolling out r154804.
http://trac.webkit.org/changeset/154804
https://bugs.webkit.org/show_bug.cgi?id=120477

Broke Windows build (assumes LLInt features not enabled on
this build) (Requested by bfulgham on #webkit).

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Target.pri:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::linkIncomingCall):
(JSC::CodeBlock::unlinkIncomingCalls):
(JSC::CodeBlock::reoptimize):
(JSC::ProgramCodeBlock::replacement):
(JSC::EvalCodeBlock::replacement):
(JSC::FunctionCodeBlock::replacement):
(JSC::ProgramCodeBlock::compileOptimized):
(JSC::ProgramCodeBlock::replaceWithDeferredOptimizedCode):
(JSC::EvalCodeBlock::compileOptimized):
(JSC::EvalCodeBlock::replaceWithDeferredOptimizedCode):
(JSC::FunctionCodeBlock::compileOptimized):
(JSC::FunctionCodeBlock::replaceWithDeferredOptimizedCode):
(JSC::ProgramCodeBlock::jitCompileImpl):
(JSC::EvalCodeBlock::jitCompileImpl):
(JSC::FunctionCodeBlock::jitCompileImpl):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::jitType):
(JSC::CodeBlock::jitCompile):

  • bytecode/DeferredCompilationCallback.cpp: Removed.
  • bytecode/DeferredCompilationCallback.h: Removed.
  • dfg/DFGDriver.cpp:

(JSC::DFG::compile):
(JSC::DFG::tryCompile):
(JSC::DFG::tryCompileFunction):
(JSC::DFG::tryFinalizePlan):

  • dfg/DFGDriver.h:

(JSC::DFG::tryCompile):
(JSC::DFG::tryCompileFunction):
(JSC::DFG::tryFinalizePlan):

  • dfg/DFGFailedFinalizer.cpp:

(JSC::DFG::FailedFinalizer::finalize):
(JSC::DFG::FailedFinalizer::finalizeFunction):

  • dfg/DFGFailedFinalizer.h:
  • dfg/DFGFinalizer.h:
  • dfg/DFGJITFinalizer.cpp:

(JSC::DFG::JITFinalizer::finalize):
(JSC::DFG::JITFinalizer::finalizeFunction):

  • dfg/DFGJITFinalizer.h:
  • dfg/DFGOSRExitPreparation.cpp:

(JSC::DFG::prepareCodeOriginForOSRExit):

  • dfg/DFGOperations.cpp:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::Plan):
(JSC::DFG::Plan::compileInThreadImpl):
(JSC::DFG::Plan::finalize):

  • dfg/DFGPlan.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::completeAllReadyPlansForVM):
(JSC::DFG::Worklist::runThread):

  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::finalize):
(JSC::FTL::JITFinalizer::finalizeFunction):

  • ftl/FTLJITFinalizer.h:
  • heap/Heap.h:
  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):

  • jit/JITDriver.h: Added.

(JSC::jitCompileIfAppropriateImpl):
(JSC::jitCompileFunctionIfAppropriateImpl):
(JSC::jitCompileIfAppropriate):
(JSC::jitCompileFunctionIfAppropriate):

  • jit/JITStubs.cpp:

(JSC::DEFINE_STUB_FUNCTION):
(JSC::jitCompileFor):
(JSC::lazyLinkFor):

  • jit/JITToDFGDeferredCompilationCallback.cpp: Removed.
  • jit/JITToDFGDeferredCompilationCallback.h: Removed.
  • llint/LLIntEntrypoints.cpp:

(JSC::LLInt::getFunctionEntrypoint):
(JSC::LLInt::getEvalEntrypoint):
(JSC::LLInt::getProgramEntrypoint):

  • llint/LLIntEntrypoints.h:

(JSC::LLInt::getEntrypoint):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::jitCompileAndSetHeuristics):
(JSC::LLInt::setUpCall):

  • runtime/ArrayPrototype.cpp:

(JSC::isNumericCompareFunction):

  • runtime/CommonSlowPaths.cpp:
  • runtime/CompilationResult.cpp:

(WTF::printInternal):

  • runtime/CompilationResult.h:
  • runtime/Executable.cpp:

(JSC::EvalExecutable::compileOptimized):
(JSC::EvalExecutable::jitCompile):
(JSC::EvalExecutable::compileInternal):
(JSC::EvalExecutable::replaceWithDeferredOptimizedCode):
(JSC::ProgramExecutable::compileOptimized):
(JSC::ProgramExecutable::jitCompile):
(JSC::ProgramExecutable::compileInternal):
(JSC::ProgramExecutable::replaceWithDeferredOptimizedCode):
(JSC::FunctionExecutable::compileOptimizedForCall):
(JSC::FunctionExecutable::compileOptimizedForConstruct):
(JSC::FunctionExecutable::jitCompileForCall):
(JSC::FunctionExecutable::jitCompileForConstruct):
(JSC::FunctionExecutable::produceCodeBlockFor):
(JSC::FunctionExecutable::compileForCallInternal):
(JSC::FunctionExecutable::replaceWithDeferredOptimizedCodeForCall):
(JSC::FunctionExecutable::compileForConstructInternal):
(JSC::FunctionExecutable::replaceWithDeferredOptimizedCodeForConstruct):

  • runtime/Executable.h:

(JSC::ExecutableBase::offsetOfJITCodeWithArityCheckFor):
(JSC::ExecutableBase::offsetOfNumParametersFor):
(JSC::ExecutableBase::catchRoutineFor):
(JSC::EvalExecutable::compile):
(JSC::ProgramExecutable::compile):
(JSC::FunctionExecutable::compileForCall):
(JSC::FunctionExecutable::compileForConstruct):
(JSC::FunctionExecutable::compileFor):
(JSC::FunctionExecutable::compileOptimizedFor):
(JSC::FunctionExecutable::replaceWithDeferredOptimizedCodeFor):
(JSC::FunctionExecutable::jitCompileFor):

  • runtime/ExecutionHarness.h: Added.

(JSC::prepareForExecutionImpl):
(JSC::prepareFunctionForExecutionImpl):
(JSC::installOptimizedCode):
(JSC::prepareForExecution):
(JSC::prepareFunctionForExecution):
(JSC::replaceWithDeferredOptimizedCode):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/jit/JITStubs.cpp

    r154804 r154814  
    5252#include "JIT.h"
    5353#include "JITExceptions.h"
    54 #include "JITToDFGDeferredCompilationCallback.h"
    5554#include "JSActivation.h"
    5655#include "JSArray.h"
     
    1000999            dataLog("Considering OSR ", *codeBlock, " -> ", *codeBlock->replacement(), ".\n");
    10011000        // If we have an optimized replacement, then it must be the case that we entered
    1002         // cti_optimize from a loop. That's because if there's an optimized replacement,
     1001        // cti_optimize from a loop. That's because is there's an optimized replacement,
    10031002        // then all calls to this function will be relinked to the replacement and so
    10041003        // the prologue OSR will never fire.
     
    10341033            dataLog("Triggering optimized compilation of ", *codeBlock, "\n");
    10351034       
    1036         RefPtr<DeferredCompilationCallback> callback =
    1037             JITToDFGDeferredCompilationCallback::create();
    1038         RefPtr<CodeBlock> newCodeBlock = codeBlock->newReplacement();
    1039         CompilationResult result = newCodeBlock->prepareForExecutionAsynchronously(
    1040             callFrame, JITCode::DFGJIT, callback, JITCompilationCanFail, bytecodeIndex);
     1035        JSScope* scope = callFrame->scope();
     1036        CompilationResult result;
     1037        JSObject* error = codeBlock->compileOptimized(callFrame, scope, result, bytecodeIndex);
     1038        if (Options::verboseOSR()) {
     1039            dataLog("Optimizing compilation of ", *codeBlock, " result: ", result, "\n");
     1040            if (error)
     1041                dataLog("WARNING: optimized compilation failed with a JS error.\n");
     1042        }
    10411043       
     1044        codeBlock->setOptimizationThresholdBasedOnCompilationResult(result);
    10421045        if (result != CompilationSuccessful)
    10431046            return;
     
    11661169    FunctionExecutable* executable = function->jsExecutable();
    11671170    JSScope* callDataScopeChain = function->scope();
    1168     JSObject* error = executable->prepareForExecution(callFrame, callDataScopeChain, kind);
     1171    JSObject* error = executable->compileFor(callFrame, callDataScopeChain, kind);
    11691172    if (!error)
    11701173        return function;
     
    12651268    else {
    12661269        FunctionExecutable* functionExecutable = static_cast<FunctionExecutable*>(executable);
    1267         if (JSObject* error = functionExecutable->prepareForExecution(callFrame, callee->scope(), kind)) {
     1270        if (JSObject* error = functionExecutable->compileFor(callFrame, callee->scope(), kind)) {
    12681271            callFrame->vm().throwException(callFrame, error);
    12691272            return 0;
     
    13421345        FunctionExecutable* functionExecutable = jsCast<FunctionExecutable*>(executable);
    13431346        JSScope* scopeChain = callee->scope();
    1344         JSObject* error = functionExecutable->prepareForExecution(callFrame, scopeChain, CodeForCall);
     1347        JSObject* error = functionExecutable->compileFor(callFrame, scopeChain, CodeForCall);
    13451348        if (error) {
    13461349            callFrame->vm().throwException(callFrame, error);
Note: See TracChangeset for help on using the changeset viewer.