<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[159886] trunk/Source/JavaScriptCore</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/159886">159886</a></dd>
<dt>Author</dt> <dd>fpizlo@apple.com</dd>
<dt>Date</dt> <dd>2013-11-30 09:23:32 -0800 (Sat, 30 Nov 2013)</dd>
</dl>
<h3>Log Message</h3>
<pre>Finally remove those DFG_ENABLE things
https://bugs.webkit.org/show_bug.cgi?id=125025
Rubber stamped by Sam Weinig.
This removes a bunch of unused and untested insanity.
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::tallyFrequentExitSites):
* dfg/DFGArgumentsSimplificationPhase.cpp:
(JSC::DFG::ArgumentsSimplificationPhase::run):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::injectLazyOperandSpeculation):
(JSC::DFG::ByteCodeParser::getArrayModeConsideringSlowPath):
(JSC::DFG::ByteCodeParser::makeSafe):
(JSC::DFG::ByteCodeParser::makeDivSafe):
(JSC::DFG::ByteCodeParser::handleCall):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::linkBlock):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
(JSC::DFG::ByteCodeParser::parseCodeBlock):
(JSC::DFG::ByteCodeParser::parse):
(JSC::DFG::parse):
* dfg/DFGCFGSimplificationPhase.cpp:
(JSC::DFG::CFGSimplificationPhase::run):
(JSC::DFG::CFGSimplificationPhase::convertToJump):
(JSC::DFG::CFGSimplificationPhase::fixJettisonedPredecessors):
* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::endIndexForPureCSE):
(JSC::DFG::CSEPhase::eliminateIrrelevantPhantomChildren):
(JSC::DFG::CSEPhase::setReplacement):
(JSC::DFG::CSEPhase::eliminate):
(JSC::DFG::CSEPhase::performNodeCSE):
* dfg/DFGCommon.h:
(JSC::DFG::verboseCompilationEnabled):
(JSC::DFG::logCompilationChanges):
(JSC::DFG::shouldDumpGraphAtEachPhase):
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::injectInt32ToDoubleNode):
* dfg/DFGInPlaceAbstractState.cpp:
(JSC::DFG::InPlaceAbstractState::initialize):
(JSC::DFG::InPlaceAbstractState::endBasicBlock):
(JSC::DFG::InPlaceAbstractState::mergeStateAtTail):
(JSC::DFG::InPlaceAbstractState::mergeToSuccessors):
* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::compileBody):
(JSC::DFG::JITCompiler::link):
* dfg/DFGOSRExitCompiler.cpp:
* dfg/DFGOSRExitCompiler32_64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
* dfg/DFGOSRExitCompiler64.cpp:
(JSC::DFG::OSRExitCompiler::compileExit):
* dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::adjustAndJumpToTarget):
* dfg/DFGPredictionInjectionPhase.cpp:
(JSC::DFG::PredictionInjectionPhase::run):
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::run):
(JSC::DFG::PredictionPropagationPhase::propagate):
(JSC::DFG::PredictionPropagationPhase::propagateForward):
(JSC::DFG::PredictionPropagationPhase::propagateBackward):
(JSC::DFG::PredictionPropagationPhase::doRoundOfDoubleVoting):
* dfg/DFGScoreBoard.h:
(JSC::DFG::ScoreBoard::use):
* dfg/DFGSlowPathGenerator.h:
(JSC::DFG::SlowPathGenerator::generate):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::terminateSpeculativeExecution):
(JSC::DFG::SpeculativeJIT::runSlowPathGenerators):
(JSC::DFG::SpeculativeJIT::dump):
(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::checkGeneratedTypeForToInt32):
* dfg/DFGSpeculativeJIT.h:
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
(JSC::DFG::SpeculativeJIT::fillSpeculateCell):
(JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGVariableEventStream.cpp:
(JSC::DFG::VariableEventStream::reconstruct):
* dfg/DFGVariableEventStream.h:
(JSC::DFG::VariableEventStream::appendAndLog):
* dfg/DFGVirtualRegisterAllocationPhase.cpp:
(JSC::DFG::VirtualRegisterAllocationPhase::run):
* jit/JIT.cpp:
(JSC::JIT::privateCompile):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeCodeBlockcpp">trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGArgumentsSimplificationPhasecpp">trunk/Source/JavaScriptCore/dfg/DFGArgumentsSimplificationPhase.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGByteCodeParsercpp">trunk/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGCFGSimplificationPhasecpp">trunk/Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGCSEPhasecpp">trunk/Source/JavaScriptCore/dfg/DFGCSEPhase.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGCommonh">trunk/Source/JavaScriptCore/dfg/DFGCommon.h</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGConstantFoldingPhasecpp">trunk/Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGFixupPhasecpp">trunk/Source/JavaScriptCore/dfg/DFGFixupPhase.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGInPlaceAbstractStatecpp">trunk/Source/JavaScriptCore/dfg/DFGInPlaceAbstractState.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGJITCompilercpp">trunk/Source/JavaScriptCore/dfg/DFGJITCompiler.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGOSRExitCompilercpp">trunk/Source/JavaScriptCore/dfg/DFGOSRExitCompiler.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGOSRExitCompiler32_64cpp">trunk/Source/JavaScriptCore/dfg/DFGOSRExitCompiler32_64.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGOSRExitCompiler64cpp">trunk/Source/JavaScriptCore/dfg/DFGOSRExitCompiler64.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGOSRExitCompilerCommoncpp">trunk/Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGPredictionInjectionPhasecpp">trunk/Source/JavaScriptCore/dfg/DFGPredictionInjectionPhase.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGPredictionPropagationPhasecpp">trunk/Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGRegisterBankh">trunk/Source/JavaScriptCore/dfg/DFGRegisterBank.h</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGScoreBoardh">trunk/Source/JavaScriptCore/dfg/DFGScoreBoard.h</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGSlowPathGeneratorh">trunk/Source/JavaScriptCore/dfg/DFGSlowPathGenerator.h</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGSpeculativeJITcpp">trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGSpeculativeJITh">trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGSpeculativeJIT32_64cpp">trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGSpeculativeJIT64cpp">trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGVariableEventStreamcpp">trunk/Source/JavaScriptCore/dfg/DFGVariableEventStream.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGVariableEventStreamh">trunk/Source/JavaScriptCore/dfg/DFGVariableEventStream.h</a></li>
<li><a href="#trunkSourceJavaScriptCoredfgDFGVirtualRegisterAllocationPhasecpp">trunk/Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITcpp">trunk/Source/JavaScriptCore/jit/JIT.cpp</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/ChangeLog        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -1,5 +1,105 @@
</span><span class="cx"> 2013-11-29 Filip Pizlo <fpizlo@apple.com>
</span><span class="cx">
</span><ins>+ Finally remove those DFG_ENABLE things
+ https://bugs.webkit.org/show_bug.cgi?id=125025
+
+ Rubber stamped by Sam Weinig.
+
+ This removes a bunch of unused and untested insanity.
+
+ * bytecode/CodeBlock.cpp:
+ (JSC::CodeBlock::tallyFrequentExitSites):
+ * dfg/DFGArgumentsSimplificationPhase.cpp:
+ (JSC::DFG::ArgumentsSimplificationPhase::run):
+ * dfg/DFGByteCodeParser.cpp:
+ (JSC::DFG::ByteCodeParser::injectLazyOperandSpeculation):
+ (JSC::DFG::ByteCodeParser::getArrayModeConsideringSlowPath):
+ (JSC::DFG::ByteCodeParser::makeSafe):
+ (JSC::DFG::ByteCodeParser::makeDivSafe):
+ (JSC::DFG::ByteCodeParser::handleCall):
+ (JSC::DFG::ByteCodeParser::handleInlining):
+ (JSC::DFG::ByteCodeParser::parseBlock):
+ (JSC::DFG::ByteCodeParser::linkBlock):
+ (JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):
+ (JSC::DFG::ByteCodeParser::parseCodeBlock):
+ (JSC::DFG::ByteCodeParser::parse):
+ (JSC::DFG::parse):
+ * dfg/DFGCFGSimplificationPhase.cpp:
+ (JSC::DFG::CFGSimplificationPhase::run):
+ (JSC::DFG::CFGSimplificationPhase::convertToJump):
+ (JSC::DFG::CFGSimplificationPhase::fixJettisonedPredecessors):
+ * dfg/DFGCSEPhase.cpp:
+ (JSC::DFG::CSEPhase::endIndexForPureCSE):
+ (JSC::DFG::CSEPhase::eliminateIrrelevantPhantomChildren):
+ (JSC::DFG::CSEPhase::setReplacement):
+ (JSC::DFG::CSEPhase::eliminate):
+ (JSC::DFG::CSEPhase::performNodeCSE):
+ * dfg/DFGCommon.h:
+ (JSC::DFG::verboseCompilationEnabled):
+ (JSC::DFG::logCompilationChanges):
+ (JSC::DFG::shouldDumpGraphAtEachPhase):
+ * dfg/DFGConstantFoldingPhase.cpp:
+ (JSC::DFG::ConstantFoldingPhase::foldConstants):
+ * dfg/DFGFixupPhase.cpp:
+ (JSC::DFG::FixupPhase::fixupNode):
+ (JSC::DFG::FixupPhase::injectInt32ToDoubleNode):
+ * dfg/DFGInPlaceAbstractState.cpp:
+ (JSC::DFG::InPlaceAbstractState::initialize):
+ (JSC::DFG::InPlaceAbstractState::endBasicBlock):
+ (JSC::DFG::InPlaceAbstractState::mergeStateAtTail):
+ (JSC::DFG::InPlaceAbstractState::mergeToSuccessors):
+ * dfg/DFGJITCompiler.cpp:
+ (JSC::DFG::JITCompiler::compileBody):
+ (JSC::DFG::JITCompiler::link):
+ * dfg/DFGOSRExitCompiler.cpp:
+ * dfg/DFGOSRExitCompiler32_64.cpp:
+ (JSC::DFG::OSRExitCompiler::compileExit):
+ * dfg/DFGOSRExitCompiler64.cpp:
+ (JSC::DFG::OSRExitCompiler::compileExit):
+ * dfg/DFGOSRExitCompilerCommon.cpp:
+ (JSC::DFG::adjustAndJumpToTarget):
+ * dfg/DFGPredictionInjectionPhase.cpp:
+ (JSC::DFG::PredictionInjectionPhase::run):
+ * dfg/DFGPredictionPropagationPhase.cpp:
+ (JSC::DFG::PredictionPropagationPhase::run):
+ (JSC::DFG::PredictionPropagationPhase::propagate):
+ (JSC::DFG::PredictionPropagationPhase::propagateForward):
+ (JSC::DFG::PredictionPropagationPhase::propagateBackward):
+ (JSC::DFG::PredictionPropagationPhase::doRoundOfDoubleVoting):
+ * dfg/DFGScoreBoard.h:
+ (JSC::DFG::ScoreBoard::use):
+ * dfg/DFGSlowPathGenerator.h:
+ (JSC::DFG::SlowPathGenerator::generate):
+ * dfg/DFGSpeculativeJIT.cpp:
+ (JSC::DFG::SpeculativeJIT::terminateSpeculativeExecution):
+ (JSC::DFG::SpeculativeJIT::runSlowPathGenerators):
+ (JSC::DFG::SpeculativeJIT::dump):
+ (JSC::DFG::SpeculativeJIT::compileCurrentBlock):
+ (JSC::DFG::SpeculativeJIT::checkGeneratedTypeForToInt32):
+ * dfg/DFGSpeculativeJIT.h:
+ * dfg/DFGSpeculativeJIT32_64.cpp:
+ (JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
+ (JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
+ (JSC::DFG::SpeculativeJIT::fillSpeculateCell):
+ (JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
+ (JSC::DFG::SpeculativeJIT::compile):
+ * dfg/DFGSpeculativeJIT64.cpp:
+ (JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
+ (JSC::DFG::SpeculativeJIT::fillSpeculateDouble):
+ (JSC::DFG::SpeculativeJIT::fillSpeculateCell):
+ (JSC::DFG::SpeculativeJIT::fillSpeculateBoolean):
+ (JSC::DFG::SpeculativeJIT::compile):
+ * dfg/DFGVariableEventStream.cpp:
+ (JSC::DFG::VariableEventStream::reconstruct):
+ * dfg/DFGVariableEventStream.h:
+ (JSC::DFG::VariableEventStream::appendAndLog):
+ * dfg/DFGVirtualRegisterAllocationPhase.cpp:
+ (JSC::DFG::VirtualRegisterAllocationPhase::run):
+ * jit/JIT.cpp:
+ (JSC::JIT::privateCompile):
+
+2013-11-29 Filip Pizlo <fpizlo@apple.com>
+
</ins><span class="cx"> FTL IC should nop-fill to make up the difference between the actual IC size and the requested patchpoint size
</span><span class="cx"> https://bugs.webkit.org/show_bug.cgi?id=124960
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeCodeBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -3260,10 +3260,6 @@
</span><span class="cx">
</span><span class="cx"> if (!exit.considerAddingAsFrequentExitSite(profiledBlock))
</span><span class="cx"> continue;
</span><del>-
-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLog("OSR exit #", i, " (bc#", exit.m_codeOrigin.bytecodeIndex, ", ", exit.m_kind, ") for ", *this, " occurred frequently: counting as frequent exit site.\n");
-#endif
</del><span class="cx"> }
</span><span class="cx"> break;
</span><span class="cx"> }
</span><span class="lines">@@ -3279,10 +3275,6 @@
</span><span class="cx">
</span><span class="cx"> if (!exit.considerAddingAsFrequentExitSite(profiledBlock))
</span><span class="cx"> continue;
</span><del>-
-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLog("OSR exit #", i, " (bc#", exit.m_codeOrigin.bytecodeIndex, ", ", exit.m_kind, ") for ", *this, " occurred frequently: counting as frequent exit site.\n");
-#endif
</del><span class="cx"> }
</span><span class="cx"> break;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGArgumentsSimplificationPhasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGArgumentsSimplificationPhase.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGArgumentsSimplificationPhase.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGArgumentsSimplificationPhase.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -372,53 +372,6 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF("Arguments aliasing states:\n");
- for (unsigned i = 0; i < m_graph.m_variableAccessData.size(); ++i) {
- VariableAccessData* variableAccessData = &m_graph.m_variableAccessData[i];
- if (!variableAccessData->isRoot())
- continue;
- dataLog(" r", variableAccessData->local(), "(", VariableAccessDataDump(m_graph, variableAccessData), "): ");
- if (variableAccessData->isCaptured())
- dataLogF("Captured");
- else {
- ArgumentsAliasingData& data =
- m_argumentsAliasing.find(variableAccessData)->value;
- bool first = true;
- if (data.callContextIsValid()) {
- if (!first)
- dataLogF(", ");
- dataLogF("Have Call Context: %p", data.callContext);
- first = false;
- if (!m_createsArguments.contains(data.callContext))
- dataLogF(" (Does Not Create Arguments)");
- }
- if (data.argumentsAssignmentIsValid()) {
- if (!first)
- dataLogF(", ");
- dataLogF("Arguments Assignment Is Valid");
- first = false;
- }
- if (!data.escapes) {
- if (!first)
- dataLogF(", ");
- dataLogF("Does Not Escape");
- first = false;
- }
- if (!first)
- dataLogF(", ");
- if (data.isValid()) {
- if (m_createsArguments.contains(data.callContext))
- dataLogF("VALID");
- else
- dataLogF("INVALID (due to argument creation)");
- } else
- dataLogF("INVALID (due to bad variable use)");
- }
- dataLogF("\n");
- }
-#endif
-
</del><span class="cx"> InsertionSet insertionSet(m_graph);
</span><span class="cx">
</span><span class="cx"> for (BlockIndex blockIndex = 0; blockIndex < m_graph.numBlocks(); ++blockIndex) {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGByteCodeParsercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -255,9 +255,6 @@
</span><span class="cx"> ConcurrentJITLocker locker(m_inlineStackTop->m_profiledBlock->m_lock);
</span><span class="cx"> LazyOperandValueProfileKey key(m_currentIndex, node->local());
</span><span class="cx"> SpeculatedType prediction = m_inlineStackTop->m_lazyOperands.prediction(locker, key);
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLog("Lazy operand [@", node->index(), ", bc#", m_currentIndex, ", r", node->local(), "] prediction: ", SpeculationDump(prediction), "\n");
-#endif
</del><span class="cx"> node->variableAccessData()->predict(prediction);
</span><span class="cx"> return node;
</span><span class="cx"> }
</span><span class="lines">@@ -852,12 +849,6 @@
</span><span class="cx">
</span><span class="cx"> profile->computeUpdatedPrediction(locker, m_inlineStackTop->m_profiledBlock);
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- if (m_inlineStackTop->m_profiledBlock->numberOfRareCaseProfiles())
- dataLogF("Slow case profile for bc#%u: %u\n", m_currentIndex, m_inlineStackTop->m_profiledBlock->rareCaseProfileForBytecodeOffset(m_currentIndex)->m_counter);
- dataLogF("Array profile for bc#%u: %u %s%s\n", m_currentIndex, profile->observedArrayModes(locker), profile->structureIsPolymorphic(locker) ? " (polymorphic)" : "", profile->mayInterceptIndexedAccesses(locker) ? " (may intercept)" : "");
-#endif
-
</del><span class="cx"> bool makeSafe =
</span><span class="cx"> m_inlineStackTop->m_profiledBlock->likelyToTakeSlowCase(m_currentIndex)
</span><span class="cx"> || profile->outOfBounds(locker);
</span><span class="lines">@@ -899,18 +890,11 @@
</span><span class="cx">
</span><span class="cx"> case ArithMul:
</span><span class="cx"> if (m_inlineStackTop->m_profiledBlock->likelyToTakeDeepestSlowCase(m_currentIndex)
</span><del>- || m_inlineStackTop->m_exitProfile.hasExitSite(m_currentIndex, Overflow)) {
-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("Making ArithMul @%u take deepest slow case.\n", node->index());
-#endif
</del><ins>+ || m_inlineStackTop->m_exitProfile.hasExitSite(m_currentIndex, Overflow))
</ins><span class="cx"> node->mergeFlags(NodeMayOverflow | NodeMayNegZero);
</span><del>- } else if (m_inlineStackTop->m_profiledBlock->likelyToTakeSlowCase(m_currentIndex)
- || m_inlineStackTop->m_exitProfile.hasExitSite(m_currentIndex, NegativeZero)) {
-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("Making ArithMul @%u take faster slow case.\n", node->index());
-#endif
</del><ins>+ else if (m_inlineStackTop->m_profiledBlock->likelyToTakeSlowCase(m_currentIndex)
+ || m_inlineStackTop->m_exitProfile.hasExitSite(m_currentIndex, NegativeZero))
</ins><span class="cx"> node->mergeFlags(NodeMayNegZero);
</span><del>- }
</del><span class="cx"> break;
</span><span class="cx">
</span><span class="cx"> default:
</span><span class="lines">@@ -936,10 +920,6 @@
</span><span class="cx"> && !m_inlineStackTop->m_exitProfile.hasExitSite(m_currentIndex, NegativeZero))
</span><span class="cx"> return node;
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("Making %s @%u safe at bc#%u because special fast-case counter is at %u and exit profiles say %d, %d\n", Graph::opName(node->op()), node->index(), m_currentIndex, m_inlineStackTop->m_profiledBlock->specialFastCaseProfileForBytecodeOffset(m_currentIndex)->m_counter, m_inlineStackTop->m_exitProfile.hasExitSite(m_currentIndex, Overflow), m_inlineStackTop->m_exitProfile.hasExitSite(m_currentIndex, NegativeZero));
-#endif
-
</del><span class="cx"> // FIXME: It might be possible to make this more granular. The DFG certainly can
</span><span class="cx"> // distinguish between negative zero and overflow in its exit profiles.
</span><span class="cx"> node->mergeFlags(NodeMayOverflow | NodeMayNegZero);
</span><span class="lines">@@ -1160,10 +1140,6 @@
</span><span class="cx"> callLinkStatus.setHasBadExecutableExitSite(m_inlineStackTop->m_exitProfile.hasExitSite(m_currentIndex, BadExecutable));
</span><span class="cx"> }
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLog("For call at bc#", m_currentIndex, ": ", callLinkStatus, "\n");
-#endif
-
</del><span class="cx"> if (!callLinkStatus.canOptimize()) {
</span><span class="cx"> // Oddly, this conflates calls that haven't executed with calls that behaved sufficiently polymorphically
</span><span class="cx"> // that we cannot optimize them.
</span><span class="lines">@@ -1287,10 +1263,6 @@
</span><span class="cx"> if (!canInlineFunctionFor(codeBlock, kind, callLinkStatus.isClosureCall()))
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("Inlining executable %p.\n", executable);
-#endif
-
</del><span class="cx"> // Now we know without a doubt that we are committed to inlining. So begin the process
</span><span class="cx"> // by checking the callee (if necessary) and making sure that arguments and the callee
</span><span class="cx"> // are flushed.
</span><span class="lines">@@ -1382,9 +1354,6 @@
</span><span class="cx"> // If we created new blocks then the last block needs linking, but in the
</span><span class="cx"> // caller. It doesn't need to be linked to, but it needs outgoing links.
</span><span class="cx"> if (!inlineStackEntry.m_unlinkedBlocks.isEmpty()) {
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("Reascribing bytecode index of block %p from bc#%u to bc#%u (inline return case).\n", lastBlock, lastBlock->bytecodeBegin, m_currentIndex);
-#endif
</del><span class="cx"> // For debugging purposes, set the bytecodeBegin. Note that this doesn't matter
</span><span class="cx"> // for release builds because this block will never serve as a potential target
</span><span class="cx"> // in the linker's binary search.
</span><span class="lines">@@ -1393,10 +1362,6 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> m_currentBlock = m_graph.lastBlock();
</span><del>-
-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("Done inlining executable %p, continuing code generation at epilogue.\n", executable);
-#endif
</del><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -1407,10 +1372,6 @@
</span><span class="cx"> // Need to create a new basic block for the continuation at the caller.
</span><span class="cx"> RefPtr<BasicBlock> block = adoptRef(new BasicBlock(nextOffset, m_numArguments, m_numLocals));
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("Creating inline epilogue basic block %p, #%zu for %p bc#%u at inline depth %u.\n", block.get(), m_graph.numBlocks(), m_inlineStackTop->executable(), m_currentIndex, CodeOrigin::inlineDepthForCallFrame(inlineCallFrame()));
-#endif
-
</del><span class="cx"> // Link the early returns to the basic block we're about to create.
</span><span class="cx"> for (size_t i = 0; i < inlineStackEntry.m_unlinkedBlocks.size(); ++i) {
</span><span class="cx"> if (!inlineStackEntry.m_unlinkedBlocks[i].m_needsEarlyReturnLinking)
</span><span class="lines">@@ -1436,9 +1397,6 @@
</span><span class="cx">
</span><span class="cx"> // At this point we return and continue to generate code for the caller, but
</span><span class="cx"> // in the new basic block.
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("Done inlining executable %p, continuing code generation in new block.\n", executable);
-#endif
</del><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -1901,11 +1859,6 @@
</span><span class="cx"> // to be true.
</span><span class="cx"> if (!m_currentBlock->isEmpty())
</span><span class="cx"> addToGraph(Jump, OpInfo(m_currentIndex));
</span><del>- else {
-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("Refusing to plant jump at limit %u because block %p is empty.\n", limit, m_currentBlock);
-#endif
- }
</del><span class="cx"> return shouldContinueParsing;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -3325,17 +3278,11 @@
</span><span class="cx"> switch (node->op()) {
</span><span class="cx"> case Jump:
</span><span class="cx"> node->setTakenBlock(blockForBytecodeOffset(possibleTargets, node->takenBytecodeOffsetDuringParsing()));
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("Linked basic block %p to %p, #%u.\n", block, node->takenBlock(), node->takenBlock()->index);
-#endif
</del><span class="cx"> break;
</span><span class="cx">
</span><span class="cx"> case Branch:
</span><span class="cx"> node->setTakenBlock(blockForBytecodeOffset(possibleTargets, node->takenBytecodeOffsetDuringParsing()));
</span><span class="cx"> node->setNotTakenBlock(blockForBytecodeOffset(possibleTargets, node->notTakenBytecodeOffsetDuringParsing()));
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("Linked basic block %p to %p, #%u and %p, #%u.\n", block, node->takenBlock(), node->takenBlock()->index, node->notTakenBlock(), node->notTakenBlock()->index);
-#endif
</del><span class="cx"> break;
</span><span class="cx">
</span><span class="cx"> case Switch:
</span><span class="lines">@@ -3345,9 +3292,6 @@
</span><span class="cx"> break;
</span><span class="cx">
</span><span class="cx"> default:
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("Marking basic block %p as linked.\n", block);
-#endif
</del><span class="cx"> break;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -3472,12 +3416,6 @@
</span><span class="cx"> m_inlineCallFrame->capturedVars.set(VirtualRegister(local.offset() + m_inlineCallFrame->stackOffset).toLocal());
</span><span class="cx"> }
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("Current captured variables: ");
- m_inlineCallFrame->capturedVars.dump(WTF::dataFile());
- dataLogF("\n");
-#endif
-
</del><span class="cx"> byteCodeParser->buildOperandMapsIfNecessary();
</span><span class="cx">
</span><span class="cx"> m_identifierRemap.resize(codeBlock->numberOfIdentifiers());
</span><span class="lines">@@ -3570,9 +3508,6 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> bool shouldDumpBytecode = Options::dumpBytecodeAtDFGTime();
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- shouldDumpBytecode |= true;
-#endif
</del><span class="cx"> if (shouldDumpBytecode) {
</span><span class="cx"> dataLog("Parsing ", *codeBlock);
</span><span class="cx"> if (inlineCallFrame()) {
</span><span class="lines">@@ -3601,12 +3536,6 @@
</span><span class="cx"> for (unsigned jumpTargetIndex = 0; jumpTargetIndex <= jumpTargets.size(); ++jumpTargetIndex) {
</span><span class="cx"> // The maximum bytecode offset to go into the current basicblock is either the next jump target, or the end of the instructions.
</span><span class="cx"> unsigned limit = jumpTargetIndex < jumpTargets.size() ? jumpTargets[jumpTargetIndex] : codeBlock->instructions().size();
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLog(
- "Parsing bytecode with limit ", pointerDump(inlineCallFrame()),
- " bc#", limit, " at inline depth ",
- CodeOrigin::inlineDepthForCallFrame(inlineCallFrame()), ".\n");
-#endif
</del><span class="cx"> ASSERT(m_currentIndex < limit);
</span><span class="cx">
</span><span class="cx"> // Loop until we reach the current limit (i.e. next jump target).
</span><span class="lines">@@ -3626,15 +3555,9 @@
</span><span class="cx"> }
</span><span class="cx"> // Change its bytecode begin and continue.
</span><span class="cx"> m_currentBlock = m_graph.lastBlock();
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("Reascribing bytecode index of block %p from bc#%u to bc#%u (peephole case).\n", m_currentBlock, m_currentBlock->bytecodeBegin, m_currentIndex);
-#endif
</del><span class="cx"> m_currentBlock->bytecodeBegin = m_currentIndex;
</span><span class="cx"> } else {
</span><span class="cx"> RefPtr<BasicBlock> block = adoptRef(new BasicBlock(m_currentIndex, m_numArguments, m_numLocals));
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("Creating basic block %p, #%zu for %p bc#%u at inline depth %u.\n", block.get(), m_graph.numBlocks(), m_inlineStackTop->executable(), m_currentIndex, CodeOrigin::inlineDepthForCallFrame(inlineCallFrame()));
-#endif
</del><span class="cx"> m_currentBlock = block.get();
</span><span class="cx"> // This assertion checks two things:
</span><span class="cx"> // 1) If the bytecodeBegin is greater than currentIndex, then something has gone
</span><span class="lines">@@ -3681,11 +3604,6 @@
</span><span class="cx"> // Set during construction.
</span><span class="cx"> ASSERT(!m_currentIndex);
</span><span class="cx">
</span><del>-#if DFG_ENABLE(ALL_VARIABLES_CAPTURED)
- // We should be pretending that the code has an activation.
- ASSERT(m_graph.needsActivation());
-#endif
-
</del><span class="cx"> InlineStackEntry inlineStackEntry(
</span><span class="cx"> this, m_codeBlock, m_profiledBlock, 0, 0, VirtualRegister(), VirtualRegister(),
</span><span class="cx"> m_codeBlock->numParameters(), CodeForCall);
</span><span class="lines">@@ -3715,12 +3633,7 @@
</span><span class="cx"> bool parse(Graph& graph)
</span><span class="cx"> {
</span><span class="cx"> SamplingRegion samplingRegion("DFG Parsing");
</span><del>-#if DFG_DEBUG_LOCAL_DISBALE
- UNUSED_PARAM(graph);
- return false;
-#else
</del><span class="cx"> return ByteCodeParser(graph).parse();
</span><del>-#endif
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> } } // namespace JSC::DFG
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGCFGSimplificationPhasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGCFGSimplificationPhase.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -64,25 +64,12 @@
</span><span class="cx"> // Successor with one predecessor -> merge.
</span><span class="cx"> if (block->successor(0)->predecessors.size() == 1) {
</span><span class="cx"> ASSERT(block->successor(0)->predecessors[0] == block);
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLog("CFGSimplify: Jump merge on Block ", *block, " to Block ", *block->successor(0), ".\n");
-#endif
</del><span class="cx"> if (extremeLogging)
</span><span class="cx"> m_graph.dump();
</span><span class="cx"> m_graph.dethread();
</span><span class="cx"> mergeBlocks(block, block->successor(0), noBlocks());
</span><span class="cx"> innerChanged = outerChanged = true;
</span><span class="cx"> break;
</span><del>- } else {
-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLog("CFGSimplify: Not jump merging on Block ", *block, " to Block ", *block->successor(0), " because predecessors = ",);
- for (unsigned i = 0; i < block->successor(0)->predecessors.size(); ++i) {
- if (i)
- dataLogF(", ");
- dataLog(*block->successor(0)->predecessors[i]);
- }
- dataLogF(".\n");
-#endif
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // FIXME: Block only has a jump -> remove. This is tricky though because of
</span><span class="lines">@@ -102,23 +89,11 @@
</span><span class="cx"> BasicBlock* targetBlock = block->successorForCondition(condition);
</span><span class="cx"> BasicBlock* jettisonedBlock = block->successorForCondition(!condition);
</span><span class="cx"> if (targetBlock->predecessors.size() == 1) {
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLog(
- "CFGSimplify: Known condition (", condition, ") branch merge ",
- "on Block ", *block, " to Block ", *targetBlock,
- ", jettisoning Block ", *jettisonedBlock, ".\n");
-#endif
</del><span class="cx"> if (extremeLogging)
</span><span class="cx"> m_graph.dump();
</span><span class="cx"> m_graph.dethread();
</span><span class="cx"> mergeBlocks(block, targetBlock, oneBlock(jettisonedBlock));
</span><span class="cx"> } else {
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLog(
- "CFGSimplify: Known condition (", condition, ") ",
- "branch->jump conversion on Block ", *block, " to Block ",
- targetBlock, ", jettisoning Block ", jettisonedBlock, ".\n");
-#endif
</del><span class="cx"> if (extremeLogging)
</span><span class="cx"> m_graph.dump();
</span><span class="cx"> m_graph.dethread();
</span><span class="lines">@@ -144,11 +119,6 @@
</span><span class="cx"> break;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF("Not branch simplifying on Block #%u because the successors differ and the condition is not known.\n",
- blockIndex);
-#endif
-
</del><span class="cx"> // Branch to same destination -> jump.
</span><span class="cx"> // FIXME: this will currently not be hit because of the lack of jump-only
</span><span class="cx"> // block simplification.
</span><span class="lines">@@ -198,24 +168,12 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (targetBlock->predecessors.size() == 1) {
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLog(
- "CFGSimplify: Known constant (", value, ") switch merge on ",
- "Block ", *block, " to Block ", *targetBlock, ".\n");
-#endif
-
</del><span class="cx"> if (extremeLogging)
</span><span class="cx"> m_graph.dump();
</span><span class="cx"> m_graph.dethread();
</span><span class="cx">
</span><span class="cx"> mergeBlocks(block, targetBlock, jettisonedBlocks);
</span><span class="cx"> } else {
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLog(
- "CFGSimplify: Known constant (", value, ") switch->jump "
- "conversion on Block ", *block, " to Block #",
- *targetBlock, ".\n");
-#endif
</del><span class="cx"> if (extremeLogging)
</span><span class="cx"> m_graph.dump();
</span><span class="cx"> m_graph.dethread();
</span><span class="lines">@@ -286,19 +244,9 @@
</span><span class="cx"> ASSERT(targetBlock);
</span><span class="cx"> ASSERT(targetBlock->isReachable);
</span><span class="cx"> if (targetBlock->predecessors.size() == 1) {
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLog(
- "CFGSimplify: Branch/Switch to same successor merge on Block ", *block,
- " to Block ", *targetBlock, ".\n");
-#endif
</del><span class="cx"> m_graph.dethread();
</span><span class="cx"> mergeBlocks(block, targetBlock, noBlocks());
</span><span class="cx"> } else {
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLog(
- "CFGSimplify: Branch->jump conversion to same successor on Block ",
- *block, " to Block ", *targetBlock, ".\n",
-#endif
</del><span class="cx"> Node* branch = block->last();
</span><span class="cx"> ASSERT(branch->isTerminal());
</span><span class="cx"> ASSERT(branch->op() == Branch || branch->op() == Switch);
</span><span class="lines">@@ -335,11 +283,6 @@
</span><span class="cx">
</span><span class="cx"> void fixJettisonedPredecessors(BasicBlock* block, BasicBlock* jettisonedBlock)
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLog(
- "Fixing predecessors and phis due to jettison of Block ", *jettisonedBlock,
- " from Block ", *block, ".\n");
-#endif
</del><span class="cx"> jettisonedBlock->removePredecessor(block);
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGCSEPhasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGCSEPhase.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGCSEPhase.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGCSEPhase.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -71,9 +71,6 @@
</span><span class="cx"> else
</span><span class="cx"> result++;
</span><span class="cx"> ASSERT(result <= m_indexInBlock);
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(" limit %u: ", result);
-#endif
</del><span class="cx"> return result;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -949,9 +946,6 @@
</span><span class="cx"> if (edge->flags() & NodeRelevantToOSR)
</span><span class="cx"> continue;
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLog(" Eliminating edge @", m_currentNode->index(), " -> @", edge->index());
-#endif
</del><span class="cx"> node->children.removeEdge(i--);
</span><span class="cx"> m_changed = true;
</span><span class="cx"> }
</span><span class="lines">@@ -962,10 +956,6 @@
</span><span class="cx"> if (!replacement)
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(" Replacing @%u -> @%u", m_currentNode->index(), replacement->index());
-#endif
-
</del><span class="cx"> m_currentNode->convertToPhantom();
</span><span class="cx"> eliminateIrrelevantPhantomChildren(m_currentNode);
</span><span class="cx">
</span><span class="lines">@@ -979,10 +969,6 @@
</span><span class="cx">
</span><span class="cx"> void eliminate()
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(" Eliminating @%u", m_currentNode->index());
-#endif
-
</del><span class="cx"> ASSERT(m_currentNode->mustGenerate());
</span><span class="cx"> m_currentNode->convertToPhantom();
</span><span class="cx"> eliminateIrrelevantPhantomChildren(m_currentNode);
</span><span class="lines">@@ -1010,10 +996,6 @@
</span><span class="cx"> if (node->op() == SetLocal)
</span><span class="cx"> node->child1()->mergeFlags(NodeRelevantToOSR);
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(" %s @%u: ", Graph::opName(node->op()), node->index());
-#endif
-
</del><span class="cx"> switch (node->op()) {
</span><span class="cx">
</span><span class="cx"> case Identity:
</span><span class="lines">@@ -1337,9 +1319,6 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> m_lastSeen[node->op()] = m_indexInBlock;
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF("\n");
-#endif
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void performBlockCSE(BasicBlock* block)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGCommonh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGCommon.h (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGCommon.h        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGCommon.h        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -34,39 +34,6 @@
</span><span class="cx"> #include "Options.h"
</span><span class="cx"> #include "VirtualRegister.h"
</span><span class="cx">
</span><del>-/* DFG_ENABLE() - turn on a specific features in the DFG JIT */
-#define DFG_ENABLE(DFG_FEATURE) (defined DFG_ENABLE_##DFG_FEATURE && DFG_ENABLE_##DFG_FEATURE)
-
-// Emit various logging information for debugging, including dumping the dataflow graphs.
-#define DFG_ENABLE_DEBUG_VERBOSE 0
-// Emit dumps during propagation, in addition to just after.
-#define DFG_ENABLE_DEBUG_PROPAGATION_VERBOSE 0
-// Emit logging for OSR exit value recoveries at every node, not just nodes that
-// actually has speculation checks.
-#define DFG_ENABLE_VERBOSE_VALUE_RECOVERIES 0
-// Enable generation of dynamic checks into the instruction stream.
-#if !ASSERT_DISABLED
-#define DFG_ENABLE_JIT_ASSERT 1
-#else
-#define DFG_ENABLE_JIT_ASSERT 0
-#endif
-// Consistency check contents compiler data structures.
-#define DFG_ENABLE_CONSISTENCY_CHECK 0
-// Emit a breakpoint into the head of every generated function, to aid debugging in GDB.
-#define DFG_ENABLE_JIT_BREAK_ON_EVERY_FUNCTION 0
-// Emit a breakpoint into the head of every generated block, to aid debugging in GDB.
-#define DFG_ENABLE_JIT_BREAK_ON_EVERY_BLOCK 0
-// Emit a breakpoint into the head of every generated node, to aid debugging in GDB.
-#define DFG_ENABLE_JIT_BREAK_ON_EVERY_NODE 0
-// Emit a pair of xorPtr()'s on regT0 with the node index to make it easy to spot node boundaries in disassembled code.
-#define DFG_ENABLE_XOR_DEBUG_AID 0
-// Emit a breakpoint into the speculation failure code.
-#define DFG_ENABLE_JIT_BREAK_ON_SPECULATION_FAILURE 0
-// Disable the DFG JIT without having to touch Platform.h
-#define DFG_DEBUG_LOCAL_DISBALE 0
-// Generate stats on how successful we were in making use of the DFG jit, and remaining on the hot path.
-#define DFG_ENABLE_SUCCESS_STATS 0
-
</del><span class="cx"> namespace JSC { namespace DFG {
</span><span class="cx">
</span><span class="cx"> struct Node;
</span><span class="lines">@@ -98,29 +65,17 @@
</span><span class="cx">
</span><span class="cx"> inline bool verboseCompilationEnabled()
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- return true;
-#else
</del><span class="cx"> return Options::verboseCompilation() || Options::dumpGraphAtEachPhase();
</span><del>-#endif
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> inline bool logCompilationChanges()
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- return true;
-#else
</del><span class="cx"> return verboseCompilationEnabled() || Options::logCompilationChanges();
</span><del>-#endif
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> inline bool shouldDumpGraphAtEachPhase()
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- return true;
-#else
</del><span class="cx"> return Options::dumpGraphAtEachPhase();
</span><del>-#endif
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> inline bool validationEnabled()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGConstantFoldingPhasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -68,9 +68,6 @@
</span><span class="cx"> private:
</span><span class="cx"> bool foldConstants(BasicBlock* block)
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLog("Constant folding considering Block ", *block, ".\n");
-#endif
</del><span class="cx"> bool changed = false;
</span><span class="cx"> m_state.beginBasicBlock(block);
</span><span class="cx"> for (unsigned indexInBlock = 0; indexInBlock < block->size(); ++indexInBlock) {
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGFixupPhasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGFixupPhase.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGFixupPhase.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGFixupPhase.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -88,10 +88,6 @@
</span><span class="cx"> {
</span><span class="cx"> NodeType op = node->op();
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(" %s @%u: ", Graph::opName(op), node->index());
-#endif
-
</del><span class="cx"> switch (op) {
</span><span class="cx"> case SetLocal: {
</span><span class="cx"> // This gets handled by fixupSetLocalsInBlock().
</span><span class="lines">@@ -963,14 +959,6 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> DFG_NODE_DO_TO_CHILDREN(m_graph, node, observeUntypedEdge);
</span><del>-
-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- if (!(node->flags() & NodeHasVarArgs)) {
- dataLogF("new children: ");
- node->dumpChildren(WTF::dataFile());
- }
- dataLogF("\n");
-#endif
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void observeUntypedEdge(Node*, Edge& edge)
</span><span class="lines">@@ -1540,12 +1528,6 @@
</span><span class="cx"> if (direction == ForwardSpeculation)
</span><span class="cx"> result->mergeFlags(NodeExitsForward);
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(
- "(replacing @%u->@%u with @%u->@%u) ",
- m_currentNode->index(), edge->index(), m_currentNode->index(), result->index());
-#endif
-
</del><span class="cx"> edge = Edge(result, useKind);
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGInPlaceAbstractStatecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGInPlaceAbstractState.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGInPlaceAbstractState.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGInPlaceAbstractState.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -163,11 +163,6 @@
</span><span class="cx"> AbstractValue value = m_graph.m_mustHandleAbstractValues[i];
</span><span class="cx"> int operand = m_graph.m_mustHandleAbstractValues.operandForIndex(i);
</span><span class="cx"> block->valuesAtHead.operand(operand).merge(value);
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(" Initializing Block #%u, operand r%d, to ", blockIndex, operand);
- block->valuesAtHead.operand(operand).dump(WTF::dataFile());
- dataLogF("\n");
-#endif
</del><span class="cx"> }
</span><span class="cx"> block->cfaShouldRevisit = true;
</span><span class="cx"> }
</span><span class="lines">@@ -203,17 +198,11 @@
</span><span class="cx"> switch (m_graph.m_form) {
</span><span class="cx"> case ThreadedCPS: {
</span><span class="cx"> for (size_t argument = 0; argument < block->variablesAtTail.numberOfArguments(); ++argument) {
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(" Merging state for argument %zu.\n", argument);
-#endif
</del><span class="cx"> AbstractValue& destination = block->valuesAtTail.argument(argument);
</span><span class="cx"> changed |= mergeStateAtTail(destination, m_variables.argument(argument), block->variablesAtTail.argument(argument));
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> for (size_t local = 0; local < block->variablesAtTail.numberOfLocals(); ++local) {
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(" Merging state for local %zu.\n", local);
-#endif
</del><span class="cx"> AbstractValue& destination = block->valuesAtTail.local(local);
</span><span class="cx"> changed |= mergeStateAtTail(destination, m_variables.local(local), block->variablesAtTail.local(local));
</span><span class="cx"> }
</span><span class="lines">@@ -240,10 +229,6 @@
</span><span class="cx">
</span><span class="cx"> ASSERT(mergeMode != DontMerge || !changed);
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(" Branch direction = %s\n", branchDirectionToString(m_branchDirection));
-#endif
-
</del><span class="cx"> reset();
</span><span class="cx">
</span><span class="cx"> if (mergeMode != MergeToSuccessors)
</span><span class="lines">@@ -273,16 +258,7 @@
</span><span class="cx"> // GetLocal's result.
</span><span class="cx">
</span><span class="cx"> source = inVariable;
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(" Transfering ");
- source.dump(WTF::dataFile());
- dataLogF(" from last access due to captured variable.\n");
-#endif
</del><span class="cx"> } else {
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(" It's live, node @%u.\n", node->index());
-#endif
-
</del><span class="cx"> switch (node->op()) {
</span><span class="cx"> case Phi:
</span><span class="cx"> case SetArgument:
</span><span class="lines">@@ -290,21 +266,11 @@
</span><span class="cx"> case Flush:
</span><span class="cx"> // The block transfers the value from head to tail.
</span><span class="cx"> source = inVariable;
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(" Transfering ");
- source.dump(WTF::dataFile());
- dataLogF(" from head to tail.\n");
-#endif
</del><span class="cx"> break;
</span><span class="cx">
</span><span class="cx"> case GetLocal:
</span><span class="cx"> // The block refines the value with additional speculations.
</span><span class="cx"> source = forNode(node);
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(" Refining to ");
- source.dump(WTF::dataFile());
- dataLogF("\n");
-#endif
</del><span class="cx"> break;
</span><span class="cx">
</span><span class="cx"> case SetLocal:
</span><span class="lines">@@ -319,11 +285,6 @@
</span><span class="cx"> source.filter(SpecDouble);
</span><span class="cx"> }
</span><span class="cx"> }
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(" Setting to ");
- source.dump(WTF::dataFile());
- dataLogF("\n");
-#endif
</del><span class="cx"> break;
</span><span class="cx">
</span><span class="cx"> default:
</span><span class="lines">@@ -335,9 +296,6 @@
</span><span class="cx"> if (destination == source) {
</span><span class="cx"> // Abstract execution did not change the output value of the variable, for this
</span><span class="cx"> // basic block, on this iteration.
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(" Not changed!\n");
-#endif
</del><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -345,9 +303,6 @@
</span><span class="cx"> // this variable after execution of this basic block. Update the state, and return
</span><span class="cx"> // true to indicate that the fixpoint must go on!
</span><span class="cx"> destination = source;
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(" Changed!\n");
-#endif
</del><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -408,23 +363,14 @@
</span><span class="cx"> switch (terminal->op()) {
</span><span class="cx"> case Jump: {
</span><span class="cx"> ASSERT(basicBlock->cfaBranchDirection == InvalidBranchDirection);
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLog(" Merging to block ", *terminal->takenBlock(), ".\n");
-#endif
</del><span class="cx"> return merge(basicBlock, terminal->takenBlock());
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> case Branch: {
</span><span class="cx"> ASSERT(basicBlock->cfaBranchDirection != InvalidBranchDirection);
</span><span class="cx"> bool changed = false;
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLog(" Merging to block ", *terminal->takenBlock(), ".\n");
-#endif
</del><span class="cx"> if (basicBlock->cfaBranchDirection != TakeFalse)
</span><span class="cx"> changed |= merge(basicBlock, terminal->takenBlock());
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLog(" Merging to block ", *terminal->notTakenBlock(), ".\n");
-#endif
</del><span class="cx"> if (basicBlock->cfaBranchDirection != TakeTrue)
</span><span class="cx"> changed |= merge(basicBlock, terminal->notTakenBlock());
</span><span class="cx"> return changed;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGJITCompilercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGJITCompiler.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGJITCompiler.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGJITCompiler.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -108,11 +108,6 @@
</span><span class="cx"> // We generate the speculative code path, followed by OSR exit code to return
</span><span class="cx"> // to the old JIT code if speculations fail.
</span><span class="cx">
</span><del>-#if DFG_ENABLE(JIT_BREAK_ON_EVERY_FUNCTION)
- // Handy debug tool!
- breakpoint();
-#endif
-
</del><span class="cx"> bool compiledSpeculative = m_speculative->compile();
</span><span class="cx"> ASSERT_UNUSED(compiledSpeculative, compiledSpeculative);
</span><span class="cx"> }
</span><span class="lines">@@ -150,10 +145,6 @@
</span><span class="cx"> void JITCompiler::link(LinkBuffer& linkBuffer)
</span><span class="cx"> {
</span><span class="cx"> // Link the code, populate data in CodeBlock data structures.
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("JIT code for %p start at [%p, %p). Size = %zu.\n", m_codeBlock, linkBuffer.debugAddress(), static_cast<char*>(linkBuffer.debugAddress()) + linkBuffer.debugSize(), linkBuffer.debugSize());
-#endif
-
</del><span class="cx"> m_jitCode->common.frameRegisterCount = m_graph.frameRegisterCount();
</span><span class="cx"> m_jitCode->common.requiredRegisterCountForExit = m_graph.requiredRegisterCountForExit();
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGOSRExitCompilercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGOSRExitCompiler.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGOSRExitCompiler.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGOSRExitCompiler.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -76,13 +76,6 @@
</span><span class="cx"> if (exit.m_recoveryIndex != UINT_MAX)
</span><span class="cx"> recovery = &codeBlock->jitCode()->dfg()->speculationRecovery[exit.m_recoveryIndex];
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLog(
- "Generating OSR exit #", exitIndex, " (seq#", exit.m_streamIndex,
- ", bc#", exit.m_codeOrigin.bytecodeIndex, ", ",
- exit.m_kind, ") for ", *codeBlock, ".\n");
-#endif
-
</del><span class="cx"> {
</span><span class="cx"> CCallHelpers jit(vm, codeBlock);
</span><span class="cx"> OSRExitCompiler exitCompiler(jit);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGOSRExitCompiler32_64cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGOSRExitCompiler32_64.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGOSRExitCompiler32_64.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGOSRExitCompiler32_64.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -38,18 +38,6 @@
</span><span class="cx"> void OSRExitCompiler::compileExit(const OSRExit& exit, const Operands<ValueRecovery>& operands, SpeculationRecovery* recovery)
</span><span class="cx"> {
</span><span class="cx"> // 1) Pro-forma stuff.
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("OSR exit (");
- for (CodeOrigin codeOrigin = exit.m_codeOrigin; ; codeOrigin = codeOrigin.inlineCallFrame->caller) {
- dataLogF("bc#%u", codeOrigin.bytecodeIndex);
- if (!codeOrigin.inlineCallFrame)
- break;
- dataLogF(" -> %p ", codeOrigin.inlineCallFrame->executable.get());
- }
- dataLogF(") at JIT offset 0x%x ", m_jit.debugOffset());
- dataLog(operands);
-#endif
-
</del><span class="cx"> if (Options::printEachOSRExit()) {
</span><span class="cx"> SpeculationFailureDebugInfo* debugInfo = new SpeculationFailureDebugInfo;
</span><span class="cx"> debugInfo->codeBlock = m_jit.codeBlock();
</span><span class="lines">@@ -57,15 +45,6 @@
</span><span class="cx"> m_jit.debugCall(debugOperationPrintSpeculationFailure, debugInfo);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-#if DFG_ENABLE(JIT_BREAK_ON_SPECULATION_FAILURE)
- m_jit.breakpoint();
-#endif
-
-#if DFG_ENABLE(SUCCESS_STATS)
- static SamplingCounter counter("SpeculationFailure");
- m_jit.emitCount(counter);
-#endif
-
</del><span class="cx"> // 2) Perform speculation recovery. This only comes into play when an operation
</span><span class="cx"> // starts mutating state before verifying the speculation it has already made.
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGOSRExitCompiler64cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGOSRExitCompiler64.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGOSRExitCompiler64.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGOSRExitCompiler64.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -40,18 +40,6 @@
</span><span class="cx"> void OSRExitCompiler::compileExit(const OSRExit& exit, const Operands<ValueRecovery>& operands, SpeculationRecovery* recovery)
</span><span class="cx"> {
</span><span class="cx"> // 1) Pro-forma stuff.
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("OSR exit for (");
- for (CodeOrigin codeOrigin = exit.m_codeOrigin; ; codeOrigin = codeOrigin.inlineCallFrame->caller) {
- dataLogF("bc#%u", codeOrigin.bytecodeIndex);
- if (!codeOrigin.inlineCallFrame)
- break;
- dataLogF(" -> %p ", codeOrigin.inlineCallFrame->executable.get());
- }
- dataLogF(") ");
- dataLog(operands);
-#endif
-
</del><span class="cx"> if (Options::printEachOSRExit()) {
</span><span class="cx"> SpeculationFailureDebugInfo* debugInfo = new SpeculationFailureDebugInfo;
</span><span class="cx"> debugInfo->codeBlock = m_jit.codeBlock();
</span><span class="lines">@@ -59,15 +47,6 @@
</span><span class="cx"> m_jit.debugCall(debugOperationPrintSpeculationFailure, debugInfo);
</span><span class="cx"> }
</span><span class="cx">
</span><del>-#if DFG_ENABLE(JIT_BREAK_ON_SPECULATION_FAILURE)
- m_jit.breakpoint();
-#endif
-
-#if DFG_ENABLE(SUCCESS_STATS)
- static SamplingCounter counter("SpeculationFailure");
- m_jit.emitCount(counter);
-#endif
-
</del><span class="cx"> // 2) Perform speculation recovery. This only comes into play when an operation
</span><span class="cx"> // starts mutating state before verifying the speculation it has already made.
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGOSRExitCompilerCommoncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -176,10 +176,6 @@
</span><span class="cx">
</span><span class="cx"> jit.move(AssemblyHelpers::TrustedImmPtr(jumpTarget), GPRInfo::regT2);
</span><span class="cx"> jit.jump(GPRInfo::regT2);
</span><del>-
-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF(" -> %p\n", jumpTarget);
-#endif
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> } } // namespace JSC::DFG
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGPredictionInjectionPhasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGPredictionInjectionPhase.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGPredictionInjectionPhase.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGPredictionInjectionPhase.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -58,13 +58,6 @@
</span><span class="cx">
</span><span class="cx"> m_graph.m_arguments[arg]->variableAccessData()->predict(
</span><span class="cx"> profile->computeUpdatedPrediction(locker));
</span><del>-
-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLog(
- "Argument [", arg, "] prediction: ",
- SpeculationDump(m_graph.m_arguments[arg]->variableAccessData()->prediction()),
- "\n");
-#endif
</del><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGPredictionPropagationPhasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -57,9 +57,6 @@
</span><span class="cx"> ASSERT(m_graph.m_form == ThreadedCPS);
</span><span class="cx"> ASSERT(m_graph.m_unificationState == GloballyUnified);
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- m_count = 0;
-#endif
</del><span class="cx"> // 1) propagate predictions
</span><span class="cx">
</span><span class="cx"> do {
</span><span class="lines">@@ -132,10 +129,6 @@
</span><span class="cx"> {
</span><span class="cx"> NodeType op = node->op();
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLog(" ", Graph::opName(op), " ", m_currentNode, ": ", NodeFlagsDump(node->flags()), " ");
-#endif
-
</del><span class="cx"> bool changed = false;
</span><span class="cx">
</span><span class="cx"> switch (op) {
</span><span class="lines">@@ -605,18 +598,11 @@
</span><span class="cx"> #endif
</span><span class="cx"> }
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLog(SpeculationDump(node->prediction()), "\n");
-#endif
-
</del><span class="cx"> m_changed |= changed;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void propagateForward()
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF("Propagating predictions forward [%u]\n", ++m_count);
-#endif
</del><span class="cx"> for (BlockIndex blockIndex = 0; blockIndex < m_graph.numBlocks(); ++blockIndex) {
</span><span class="cx"> BasicBlock* block = m_graph.block(blockIndex);
</span><span class="cx"> if (!block)
</span><span class="lines">@@ -631,9 +617,6 @@
</span><span class="cx">
</span><span class="cx"> void propagateBackward()
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF("Propagating predictions backward [%u]\n", ++m_count);
-#endif
</del><span class="cx"> for (BlockIndex blockIndex = m_graph.numBlocks(); blockIndex--;) {
</span><span class="cx"> BasicBlock* block = m_graph.block(blockIndex);
</span><span class="cx"> if (!block)
</span><span class="lines">@@ -761,9 +744,6 @@
</span><span class="cx">
</span><span class="cx"> void doRoundOfDoubleVoting()
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF("Voting on double uses of locals [%u]\n", m_count);
-#endif
</del><span class="cx"> for (unsigned i = 0; i < m_graph.m_variableAccessData.size(); ++i)
</span><span class="cx"> m_graph.m_variableAccessData[i].find()->clearVotes();
</span><span class="cx"> for (BlockIndex blockIndex = 0; blockIndex < m_graph.numBlocks(); ++blockIndex) {
</span><span class="lines">@@ -794,10 +774,6 @@
</span><span class="cx">
</span><span class="cx"> Node* m_currentNode;
</span><span class="cx"> bool m_changed;
</span><del>-
-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- unsigned m_count;
-#endif
</del><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> bool performPredictionPropagation(Graph& graph)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGRegisterBankh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGRegisterBank.h (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGRegisterBank.h        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGRegisterBank.h        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -212,7 +212,6 @@
</span><span class="cx"> return isLocked(reg) || name(reg).isValid();
</span><span class="cx"> }
</span><span class="cx">
</span><del>-#ifndef NDEBUG
</del><span class="cx"> void dump()
</span><span class="cx"> {
</span><span class="cx"> // For each register, print the VirtualRegister 'name'.
</span><span class="lines">@@ -224,7 +223,6 @@
</span><span class="cx"> }
</span><span class="cx"> dataLogF("\n");
</span><span class="cx"> }
</span><del>-#endif
</del><span class="cx">
</span><span class="cx"> class iterator {
</span><span class="cx"> friend class RegisterBank<BankInfo>;
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGScoreBoardh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGScoreBoard.h (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGScoreBoard.h        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGScoreBoard.h        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -103,18 +103,11 @@
</span><span class="cx"> uint32_t index = child->virtualRegister().toLocal();
</span><span class="cx"> ASSERT(m_used[index] != max());
</span><span class="cx"> if (child->refCount() == ++m_used[index]) {
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(" Freeing virtual register %u.", index);
-#endif
</del><span class="cx"> // If the use count in the scoreboard reaches the use count for the node,
</span><span class="cx"> // then this was its last use; the virtual register is now free.
</span><span class="cx"> // Clear the use count & add to the free list.
</span><span class="cx"> m_used[index] = 0;
</span><span class="cx"> m_free.append(index);
</span><del>- } else {
-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(" Virtual register %u is at %u/%u uses.", index, m_used[index], child->refCount());
-#endif
</del><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx"> void use(Edge child)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGSlowPathGeneratorh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGSlowPathGenerator.h (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGSlowPathGenerator.h        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGSlowPathGenerator.h        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -48,15 +48,11 @@
</span><span class="cx"> virtual ~SlowPathGenerator() { }
</span><span class="cx"> void generate(SpeculativeJIT* jit)
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("Generating slow path %p at offset 0x%x\n", this, jit->m_jit.debugOffset());
-#endif
</del><span class="cx"> m_label = jit->m_jit.label();
</span><span class="cx"> jit->m_currentNode = m_currentNode;
</span><span class="cx"> generateInternal(jit);
</span><del>-#if !ASSERT_DISABLED
- jit->m_jit.breakpoint(); // make sure that the generator jumps back to somewhere
-#endif
</del><ins>+ if (!ASSERT_DISABLED)
+ jit->m_jit.breakpoint(); // make sure that the generator jumps back to somewhere
</ins><span class="cx"> }
</span><span class="cx"> MacroAssembler::Label label() const { return m_label; }
</span><span class="cx"> virtual MacroAssembler::Call call() const
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGSpeculativeJITcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -238,9 +238,6 @@
</span><span class="cx"> void SpeculativeJIT::terminateSpeculativeExecution(ExitKind kind, JSValueRegs jsValueRegs, Node* node)
</span><span class="cx"> {
</span><span class="cx"> ASSERT(m_isCheckingArgumentTypes || m_canExit);
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("SpeculativeJIT was terminated.\n");
-#endif
</del><span class="cx"> if (!m_compileOkay)
</span><span class="cx"> return;
</span><span class="cx"> speculationCheck(kind, jsValueRegs, node, m_jit.jump());
</span><span class="lines">@@ -300,9 +297,6 @@
</span><span class="cx">
</span><span class="cx"> void SpeculativeJIT::runSlowPathGenerators()
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("Running %lu slow path generators.\n", m_slowPathGenerators.size());
-#endif
</del><span class="cx"> for (unsigned i = 0; i < m_slowPathGenerators.size(); ++i)
</span><span class="cx"> m_slowPathGenerators[i]->generate(this);
</span><span class="cx"> }
</span><span class="lines">@@ -1069,7 +1063,6 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-#ifndef NDEBUG
</del><span class="cx"> static const char* dataFormatString(DataFormat format)
</span><span class="cx"> {
</span><span class="cx"> // These values correspond to the DataFormat enum.
</span><span class="lines">@@ -1125,117 +1118,7 @@
</span><span class="cx"> if (label)
</span><span class="cx"> dataLogF("</%s>\n", label);
</span><span class="cx"> }
</span><del>-#endif
</del><span class="cx">
</span><del>-
-#if DFG_ENABLE(CONSISTENCY_CHECK)
-void SpeculativeJIT::checkConsistency()
-{
- bool failed = false;
-
- for (gpr_iterator iter = m_gprs.begin(); iter != m_gprs.end(); ++iter) {
- if (iter.isLocked()) {
- dataLogF("DFG_CONSISTENCY_CHECK failed: gpr %s is locked.\n", iter.debugName());
- failed = true;
- }
- }
- for (fpr_iterator iter = m_fprs.begin(); iter != m_fprs.end(); ++iter) {
- if (iter.isLocked()) {
- dataLogF("DFG_CONSISTENCY_CHECK failed: fpr %s is locked.\n", iter.debugName());
- failed = true;
- }
- }
-
- for (unsigned i = 0; i < m_generationInfo.size(); ++i) {
- VirtualRegister virtualRegister = (VirtualRegister)i;
- GenerationInfo& info = generationInfoFromVirtualRegister(virtualRegister);
- if (!info.alive())
- continue;
- switch (info.registerFormat()) {
- case DataFormatNone:
- break;
- case DataFormatJS:
- case DataFormatJSInt32:
- case DataFormatJSDouble:
- case DataFormatJSCell:
- case DataFormatJSBoolean:
-#if USE(JSVALUE32_64)
- break;
-#endif
- case DataFormatInt32:
- case DataFormatCell:
- case DataFormatBoolean:
- case DataFormatStorage: {
- GPRReg gpr = info.gpr();
- ASSERT(gpr != InvalidGPRReg);
- if (m_gprs.name(gpr) != virtualRegister) {
- dataLogF("DFG_CONSISTENCY_CHECK failed: name mismatch for virtual register %d (gpr %s).\n", virtualRegister, GPRInfo::debugName(gpr));
- failed = true;
- }
- break;
- }
- case DataFormatDouble: {
- FPRReg fpr = info.fpr();
- ASSERT(fpr != InvalidFPRReg);
- if (m_fprs.name(fpr) != virtualRegister) {
- dataLogF("DFG_CONSISTENCY_CHECK failed: name mismatch for virtual register %d (fpr %s).\n", virtualRegister, FPRInfo::debugName(fpr));
- failed = true;
- }
- break;
- }
- case DataFormatOSRMarker:
- case DataFormatDead:
- case DataFormatArguments:
- RELEASE_ASSERT_NOT_REACHED();
- break;
- }
- }
-
- for (gpr_iterator iter = m_gprs.begin(); iter != m_gprs.end(); ++iter) {
- VirtualRegister virtualRegister = iter.name();
- if (!virtualRegister.isValid())
- continue;
-
- GenerationInfo& info = generationInfoFromVirtualRegister(virtualRegister);
-#if USE(JSVALUE64)
- if (iter.regID() != info.gpr()) {
- dataLogF("DFG_CONSISTENCY_CHECK failed: name mismatch for gpr %s (virtual register %d).\n", iter.debugName(), virtualRegister);
- failed = true;
- }
-#else
- if (!(info.registerFormat() & DataFormatJS)) {
- if (iter.regID() != info.gpr()) {
- dataLogF("DFG_CONSISTENCY_CHECK failed: name mismatch for gpr %s (virtual register %d).\n", iter.debugName(), virtualRegister);
- failed = true;
- }
- } else {
- if (iter.regID() != info.tagGPR() && iter.regID() != info.payloadGPR()) {
- dataLogF("DFG_CONSISTENCY_CHECK failed: name mismatch for gpr %s (virtual register %d).\n", iter.debugName(), virtualRegister);
- failed = true;
- }
- }
-#endif
- }
-
- for (fpr_iterator iter = m_fprs.begin(); iter != m_fprs.end(); ++iter) {
- VirtualRegister virtualRegister = iter.name();
- if (!virtualRegister.isValid())
- continue;
-
- GenerationInfo& info = generationInfoFromVirtualRegister(virtualRegister);
- if (iter.regID() != info.fpr()) {
- dataLogF("DFG_CONSISTENCY_CHECK failed: name mismatch for fpr %s (virtual register %d).\n", iter.debugName(), virtualRegister);
- failed = true;
- }
- }
-
- if (failed) {
- dump();
- CRASH();
- }
-}
-#endif
-
</del><span class="cx"> GPRTemporary::GPRTemporary()
</span><span class="cx"> : m_jit(0)
</span><span class="cx"> , m_gpr(InvalidGPRReg)
</span><span class="lines">@@ -1580,14 +1463,6 @@
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-#if DFG_ENABLE(JIT_BREAK_ON_EVERY_BLOCK)
- m_jit.breakpoint();
-#endif
-
-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLog("Setting up state for block ", *m_block, ": ");
-#endif
-
</del><span class="cx"> m_stream->appendAndLog(VariableEvent::reset());
</span><span class="cx">
</span><span class="cx"> m_jit.jitAssertHasValidCallFrame();
</span><span class="lines">@@ -1621,10 +1496,6 @@
</span><span class="cx"> m_codeOriginForExitTarget = CodeOrigin();
</span><span class="cx"> m_codeOriginForExitProfile = CodeOrigin();
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("\n");
-#endif
-
</del><span class="cx"> for (m_indexInBlock = 0; m_indexInBlock < m_block->size(); ++m_indexInBlock) {
</span><span class="cx"> m_currentNode = m_block->at(m_indexInBlock);
</span><span class="cx">
</span><span class="lines">@@ -1641,9 +1512,6 @@
</span><span class="cx"> m_codeOriginForExitTarget = m_currentNode->codeOriginForExitTarget;
</span><span class="cx"> m_codeOriginForExitProfile = m_currentNode->codeOrigin;
</span><span class="cx"> if (!m_currentNode->shouldGenerate()) {
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("SpeculativeJIT skipping Node @%d (bc#%u) at JIT offset 0x%x ", m_currentNode->index(), m_currentNode->codeOrigin.bytecodeIndex, m_jit.debugOffset());
-#endif
</del><span class="cx"> switch (m_currentNode->op()) {
</span><span class="cx"> case JSConstant:
</span><span class="cx"> m_minifiedGraph->append(MinifiedNode::fromNode(m_currentNode));
</span><span class="lines">@@ -1679,20 +1547,8 @@
</span><span class="cx"> "SpeculativeJIT generating Node @%d (bc#%u) at JIT offset 0x%x",
</span><span class="cx"> (int)m_currentNode->index(),
</span><span class="cx"> m_currentNode->codeOrigin.bytecodeIndex, m_jit.debugOffset());
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLog(" ");
-#else
</del><span class="cx"> dataLog("\n");
</span><del>-#endif
</del><span class="cx"> }
</span><del>-#if DFG_ENABLE(JIT_BREAK_ON_EVERY_NODE)
- m_jit.breakpoint();
-#endif
-#if DFG_ENABLE(XOR_DEBUG_AID)
- m_jit.xorPtr(JITCompiler::TrustedImm32(m_currentNode->index()), GPRInfo::regT0);
- m_jit.xorPtr(JITCompiler::TrustedImm32(m_currentNode->index()), GPRInfo::regT0);
-#endif
- checkConsistency();
</del><span class="cx">
</span><span class="cx"> m_speculationDirection = (m_currentNode->flags() & NodeExitsForward) ? ForwardSpeculation : BackwardSpeculation;
</span><span class="cx">
</span><span class="lines">@@ -1711,46 +1567,20 @@
</span><span class="cx"> m_minifiedGraph->append(MinifiedNode::fromNode(m_currentNode));
</span><span class="cx"> noticeOSRBirth(m_currentNode);
</span><span class="cx"> }
</span><del>-
-#if DFG_ENABLE(DEBUG_VERBOSE)
- if (m_currentNode->hasResult()) {
- GenerationInfo& info = m_generationInfo[m_currentNode->virtualRegister().toLocal()];
- dataLogF("-> %s, vr#%d", dataFormatToString(info.registerFormat()), m_currentNode->virtualRegister().toLocal());
- if (info.registerFormat() != DataFormatNone) {
- if (info.registerFormat() == DataFormatDouble)
- dataLogF(", %s", FPRInfo::debugName(info.fpr()));
-#if USE(JSVALUE32_64)
- else if (info.registerFormat() & DataFormatJS)
- dataLogF(", %s %s", GPRInfo::debugName(info.tagGPR()), GPRInfo::debugName(info.payloadGPR()));
-#endif
- else
- dataLogF(", %s", GPRInfo::debugName(info.gpr()));
- }
- dataLogF(" ");
- } else
- dataLogF(" ");
-#endif
</del><span class="cx"> }
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("\n");
-#endif
-
</del><span class="cx"> // Make sure that the abstract state is rematerialized for the next node.
</span><span class="cx"> if (shouldExecuteEffects)
</span><span class="cx"> m_interpreter.executeEffects(m_indexInBlock);
</span><del>-
- if (m_currentNode->shouldGenerate())
- checkConsistency();
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // Perform the most basic verification that children have been used correctly.
</span><del>-#if !ASSERT_DISABLED
- for (unsigned index = 0; index < m_generationInfo.size(); ++index) {
- GenerationInfo& info = m_generationInfo[index];
- ASSERT(!info.alive());
</del><ins>+ if (!ASSERT_DISABLED) {
+ for (unsigned index = 0; index < m_generationInfo.size(); ++index) {
+ GenerationInfo& info = m_generationInfo[index];
+ RELEASE_ASSERT(!info.alive());
+ }
</ins><span class="cx"> }
</span><del>-#endif
</del><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> // If we are making type predictions about our arguments then
</span><span class="lines">@@ -2094,9 +1924,6 @@
</span><span class="cx">
</span><span class="cx"> GeneratedOperandType SpeculativeJIT::checkGeneratedTypeForToInt32(Node* node)
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("checkGeneratedTypeForToInt32@%d ", node->index());
-#endif
</del><span class="cx"> VirtualRegister virtualRegister = node->virtualRegister();
</span><span class="cx"> GenerationInfo& info = generationInfoFromVirtualRegister(virtualRegister);
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGSpeculativeJITh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -1905,16 +1905,8 @@
</span><span class="cx">
</span><span class="cx"> void linkBranches();
</span><span class="cx">
</span><del>-#ifndef NDEBUG
</del><span class="cx"> void dump(const char* label = 0);
</span><del>-#endif
</del><span class="cx">
</span><del>-#if DFG_ENABLE(CONSISTENCY_CHECK)
- void checkConsistency();
-#else
- void checkConsistency() { }
-#endif
-
</del><span class="cx"> bool isInteger(Node* node)
</span><span class="cx"> {
</span><span class="cx"> if (node->hasInt32Result())
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGSpeculativeJIT32_64cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -727,9 +727,6 @@
</span><span class="cx"> template<bool strict>
</span><span class="cx"> GPRReg SpeculativeJIT::fillSpeculateInt32Internal(Edge edge, DataFormat& returnFormat)
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("SpecInt@%d ", edge->index());
-#endif
</del><span class="cx"> AbstractValue& value = m_state.forNode(edge);
</span><span class="cx"> SpeculatedType type = value.m_type;
</span><span class="cx"> ASSERT(edge.useKind() != KnownInt32Use || !(value.m_type & ~SpecInt32));
</span><span class="lines">@@ -828,9 +825,6 @@
</span><span class="cx">
</span><span class="cx"> FPRReg SpeculativeJIT::fillSpeculateDouble(Edge edge)
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("SpecDouble@%d ", edge->index());
-#endif
</del><span class="cx"> AbstractValue& value = m_state.forNode(edge);
</span><span class="cx"> SpeculatedType type = value.m_type;
</span><span class="cx"> ASSERT(edge.useKind() != KnownNumberUse || !(value.m_type & ~SpecFullNumber));
</span><span class="lines">@@ -965,9 +959,6 @@
</span><span class="cx">
</span><span class="cx"> GPRReg SpeculativeJIT::fillSpeculateCell(Edge edge)
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("SpecCell@%d ", edge->index());
-#endif
</del><span class="cx"> AbstractValue& value = m_state.forNode(edge);
</span><span class="cx"> SpeculatedType type = value.m_type;
</span><span class="cx"> ASSERT((edge.useKind() != KnownCellUse && edge.useKind() != KnownStringUse) || !(value.m_type & ~SpecCell));
</span><span class="lines">@@ -1047,9 +1038,6 @@
</span><span class="cx">
</span><span class="cx"> GPRReg SpeculativeJIT::fillSpeculateBoolean(Edge edge)
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("SpecBool@%d ", edge.node()->index());
-#endif
</del><span class="cx"> AbstractValue& value = m_state.forNode(edge);
</span><span class="cx"> SpeculatedType type = value.m_type;
</span><span class="cx"> m_interpreter.filter(value, SpecBoolean);
</span><span class="lines">@@ -3095,11 +3083,6 @@
</span><span class="cx"> ASSERT(GPRInfo::regT1 != GPRInfo::returnValueGPR);
</span><span class="cx"> ASSERT(GPRInfo::returnValueGPR != GPRInfo::callFrameRegister);
</span><span class="cx">
</span><del>-#if DFG_ENABLE(SUCCESS_STATS)
- static SamplingCounter counter("SpeculativeJIT");
- m_jit.emitCount(counter);
-#endif
-
</del><span class="cx"> // Return the result in returnValueGPR.
</span><span class="cx"> JSValueOperand op1(this, node->child1());
</span><span class="cx"> op1.fill();
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGSpeculativeJIT64cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -738,9 +738,6 @@
</span><span class="cx"> template<bool strict>
</span><span class="cx"> GPRReg SpeculativeJIT::fillSpeculateInt32Internal(Edge edge, DataFormat& returnFormat)
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("SpecInt@%d ", edge->index());
-#endif
</del><span class="cx"> AbstractValue& value = m_state.forNode(edge);
</span><span class="cx"> SpeculatedType type = value.m_type;
</span><span class="cx"> ASSERT(edge.useKind() != KnownInt32Use || !(value.m_type & ~SpecInt32));
</span><span class="lines">@@ -1123,9 +1120,6 @@
</span><span class="cx">
</span><span class="cx"> FPRReg SpeculativeJIT::fillSpeculateDouble(Edge edge)
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("SpecDouble@%d ", edge->index());
-#endif
</del><span class="cx"> AbstractValue& value = m_state.forNode(edge);
</span><span class="cx"> SpeculatedType type = value.m_type;
</span><span class="cx"> ASSERT(edge.useKind() != KnownNumberUse || !(value.m_type & ~SpecFullNumber));
</span><span class="lines">@@ -1320,9 +1314,6 @@
</span><span class="cx">
</span><span class="cx"> GPRReg SpeculativeJIT::fillSpeculateCell(Edge edge)
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("SpecCell@%d ", edge->index());
-#endif
</del><span class="cx"> AbstractValue& value = m_state.forNode(edge);
</span><span class="cx"> SpeculatedType type = value.m_type;
</span><span class="cx"> ASSERT((edge.useKind() != KnownCellUse && edge.useKind() != KnownStringUse) || !(value.m_type & ~SpecCell));
</span><span class="lines">@@ -1365,11 +1356,11 @@
</span><span class="cx"> case DataFormatJSCell: {
</span><span class="cx"> GPRReg gpr = info.gpr();
</span><span class="cx"> m_gprs.lock(gpr);
</span><del>-#if DFG_ENABLE(JIT_ASSERT)
- MacroAssembler::Jump checkCell = m_jit.branchTest64(MacroAssembler::Zero, gpr, GPRInfo::tagMaskRegister);
- m_jit.breakpoint();
- checkCell.link(&m_jit);
-#endif
</del><ins>+ if (!ASSERT_DISABLED) {
+ MacroAssembler::Jump checkCell = m_jit.branchTest64(MacroAssembler::Zero, gpr, GPRInfo::tagMaskRegister);
+ m_jit.breakpoint();
+ checkCell.link(&m_jit);
+ }
</ins><span class="cx"> return gpr;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -1405,9 +1396,6 @@
</span><span class="cx">
</span><span class="cx"> GPRReg SpeculativeJIT::fillSpeculateBoolean(Edge edge)
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("SpecBool@%d ", edge->index());
-#endif
</del><span class="cx"> AbstractValue& value = m_state.forNode(edge);
</span><span class="cx"> SpeculatedType type = value.m_type;
</span><span class="cx"> m_interpreter.filter(value, SpecBoolean);
</span><span class="lines">@@ -3431,11 +3419,6 @@
</span><span class="cx"> ASSERT(GPRInfo::regT1 != GPRInfo::returnValueGPR);
</span><span class="cx"> ASSERT(GPRInfo::returnValueGPR != GPRInfo::callFrameRegister);
</span><span class="cx">
</span><del>-#if DFG_ENABLE(SUCCESS_STATS)
- static SamplingCounter counter("SpeculativeJIT");
- m_jit.emitCount(counter);
-#endif
-
</del><span class="cx"> // Return the result in returnValueGPR.
</span><span class="cx"> JSValueOperand op1(this, node->child1());
</span><span class="cx"> m_jit.move(op1.gpr(), GPRInfo::returnValueGPR);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGVariableEventStreamcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGVariableEventStream.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGVariableEventStream.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGVariableEventStream.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -136,10 +136,6 @@
</span><span class="cx"> while (at(startIndex).kind() != Reset)
</span><span class="cx"> startIndex--;
</span><span class="cx">
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- dataLogF("Computing OSR exit recoveries starting at seq#%u.\n", startIndex);
-#endif
-
</del><span class="cx"> // Step 2: Create a mock-up of the DFG's state and execute the events.
</span><span class="cx"> Operands<ValueSource> operandSources(codeBlock->numParameters(), numVariables);
</span><span class="cx"> for (unsigned i = operandSources.size(); i--;)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGVariableEventStreamh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGVariableEventStream.h (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGVariableEventStream.h        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGVariableEventStream.h        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -42,9 +42,6 @@
</span><span class="cx"> public:
</span><span class="cx"> void appendAndLog(const VariableEvent& event)
</span><span class="cx"> {
</span><del>-#if DFG_ENABLE(DEBUG_VERBOSE)
- logEvent(event);
-#endif
</del><span class="cx"> append(event);
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoredfgDFGVirtualRegisterAllocationPhasecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/dfg/DFGVirtualRegisterAllocationPhase.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -47,9 +47,6 @@
</span><span class="cx"> {
</span><span class="cx"> ScoreBoard scoreBoard(m_graph.m_nextMachineLocal);
</span><span class="cx"> scoreBoard.assertClear();
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- bool needsNewLine = false;
-#endif
</del><span class="cx"> for (size_t blockIndex = 0; blockIndex < m_graph.numBlocks(); ++blockIndex) {
</span><span class="cx"> BasicBlock* block = m_graph.block(blockIndex);
</span><span class="cx"> if (!block)
</span><span class="lines">@@ -58,12 +55,6 @@
</span><span class="cx"> continue;
</span><span class="cx"> for (size_t indexInBlock = 0; indexInBlock < block->size(); ++indexInBlock) {
</span><span class="cx"> Node* node = block->at(indexInBlock);
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- if (needsNewLine)
- dataLogF("\n");
- dataLogF(" @%u:", node->index());
- needsNewLine = true;
-#endif
</del><span class="cx">
</span><span class="cx"> if (!node->shouldGenerate())
</span><span class="cx"> continue;
</span><span class="lines">@@ -97,11 +88,6 @@
</span><span class="cx"> continue;
</span><span class="cx">
</span><span class="cx"> VirtualRegister virtualRegister = scoreBoard.allocate();
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- dataLogF(
- " Assigning virtual register %u to node %u.",
- virtualRegister, node->index());
-#endif
</del><span class="cx"> node->setVirtualRegister(virtualRegister);
</span><span class="cx"> // 'mustGenerate' nodes have their useCount artificially elevated,
</span><span class="cx"> // call use now to account for this.
</span><span class="lines">@@ -110,10 +96,6 @@
</span><span class="cx"> }
</span><span class="cx"> scoreBoard.assertClear();
</span><span class="cx"> }
</span><del>-#if DFG_ENABLE(DEBUG_PROPAGATION_VERBOSE)
- if (needsNewLine)
- dataLogF("\n");
-#endif
</del><span class="cx">
</span><span class="cx"> // Record the number of virtual registers we're using. This is used by calls
</span><span class="cx"> // to figure out where to put the parameters.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JIT.cpp (159885 => 159886)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JIT.cpp        2013-11-30 17:05:06 UTC (rev 159885)
+++ trunk/Source/JavaScriptCore/jit/JIT.cpp        2013-11-30 17:23:32 UTC (rev 159886)
</span><span class="lines">@@ -540,13 +540,6 @@
</span><span class="cx">
</span><span class="cx"> Jump stackCheck;
</span><span class="cx"> if (m_codeBlock->codeType() == FunctionCode) {
</span><del>-#if ENABLE(DFG_JIT)
-#if DFG_ENABLE(SUCCESS_STATS)
- static SamplingCounter counter("orignalJIT");
- emitCount(counter);
-#endif
-#endif
-
</del><span class="cx"> #if ENABLE(VALUE_PROFILER)
</span><span class="cx"> ASSERT(m_bytecodeOffset == (unsigned)-1);
</span><span class="cx"> if (shouldEmitProfiling()) {
</span></span></pre>
</div>
</div>
</body>
</html>