Ignore:
Timestamp:
Jul 24, 2013, 9:02:57 PM (12 years ago)
Author:
[email protected]
Message:

fourthTier: Concurrent JIT shouldn't try to recompute the CodeBlockHash as part of debug dumps, since doing so may fail if dealing with a CachedScript that doesn't have its script string handy
https://bugs.webkit.org/show_bug.cgi?id=117676

Reviewed by Sam Weinig.

Source/JavaScriptCore:

CodeBlock now caches m_hash, and the DFG Driver will force its computation if we're doing debug dumps of any kind.

Also made sure that CodeBlock::CodeBlock initializes all of its fields; it was previously missing the
initialization of m_capabilityLevelState.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::hash):
(JSC::CodeBlock::CodeBlock):

  • bytecode/CodeBlock.h:

(CodeBlock):

  • bytecode/CodeBlockHash.cpp:

(JSC::CodeBlockHash::CodeBlockHash):

  • bytecode/CodeBlockHash.h:

(CodeBlockHash):
(JSC::CodeBlockHash::isSet):
(JSC::CodeBlockHash::operator!):

  • dfg/DFGDriver.cpp:

(JSC::DFG::compile):

Source/WebCore:

Remove the broken hack for the concurrent JIT, since now the concurrent JIT won't use this code anymore.

No new tests because no new behavior.

  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::script):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGDriver.cpp

    r153179 r153227  
    7171        return CompilationFailed;
    7272
     73   
     74    // If the concurrent thread will want the code block's hash, then compute it here
     75    // synchronously.
     76    if (Options::showDisassembly()
     77        || Options::showDFGDisassembly()
     78        || Options::dumpBytecodeAtDFGTime()
     79        || Options::verboseCompilation()
     80        || Options::logCompilationChanges()
     81        || Options::validateGraph()
     82        || Options::validateGraphAtEachPhase()
     83        || Options::verboseOSR()
     84        || Options::verboseCompilationQueue()
     85        || Options::reportCompileTimes())
     86        codeBlock->hash();
     87   
    7388    if (logCompilationChanges())
    7489        dataLog("DFG(Driver) compiling ", *codeBlock, ", number of instructions = ", codeBlock->instructionCount(), "\n");
Note: See TracChangeset for help on using the changeset viewer.