<!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>[161364] trunk/Source</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/161364">161364</a></dd>
<dt>Author</dt> <dd>fpizlo@apple.com</dd>
<dt>Date</dt> <dd>2014-01-06 12:41:32 -0800 (Mon, 06 Jan 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>Get rid of ENABLE(VALUE_PROFILER). It's on all the time now.

Rubber stamped by Mark Hahnenberg.

Source/JavaScriptCore: 

* bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeFor):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpValueProfiling):
(JSC::CodeBlock::dumpArrayProfiling):
(JSC::CodeBlock::dumpRareCaseProfile):
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::setNumParameters):
(JSC::CodeBlock::shrinkToFit):
(JSC::CodeBlock::shouldOptimizeNow):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::valueProfileForBytecodeOffset):
* bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeForChain):
(JSC::GetByIdStatus::computeFor):
* bytecode/LazyOperandValueProfile.cpp:
* bytecode/LazyOperandValueProfile.h:
* bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::computeFor):
* bytecode/ValueProfile.h:
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::newArrayProfile):
(JSC::BytecodeGenerator::newArrayAllocationProfile):
(JSC::BytecodeGenerator::emitProfiledOpcode):
* jit/GPRInfo.h:
* jit/JIT.cpp:
(JSC::JIT::JIT):
(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::privateCompile):
* jit/JIT.h:
* jit/JITArithmetic.cpp:
(JSC::JIT::compileBinaryArithOp):
(JSC::JIT::emit_op_mul):
(JSC::JIT::emit_op_div):
* jit/JITArithmetic32_64.cpp:
(JSC::JIT::emitBinaryDoubleOp):
(JSC::JIT::emit_op_mul):
(JSC::JIT::emitSlow_op_mul):
(JSC::JIT::emit_op_div):
* jit/JITCall.cpp:
(JSC::JIT::emitPutCallResult):
* jit/JITCall32_64.cpp:
(JSC::JIT::emitPutCallResult):
* jit/JITInlines.h:
(JSC::JIT::appendCallWithExceptionCheckSetJSValueResultWithProfile):
(JSC::JIT::emitValueProfilingSite):
(JSC::JIT::emitArrayProfilingSiteForBytecodeIndex):
(JSC::JIT::emitArrayProfileStoreToHoleSpecialCase):
(JSC::JIT::emitArrayProfileOutOfBoundsSpecialCase):
(JSC::arrayProfileSaw):
(JSC::JIT::chooseArrayMode):
* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_get_argument_by_val):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_get_argument_by_val):
* jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_from_scope):
* jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_from_scope):
* llint/LLIntOfflineAsmConfig.h:
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* llint/LowLevelInterpreter.asm:
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* profiler/ProfilerBytecodeSequence.cpp:
(JSC::Profiler::BytecodeSequence::BytecodeSequence):
* runtime/CommonSlowPaths.cpp:

Source/WTF: 

* wtf/Platform.h:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceJavaScriptCoreChangeLog">trunk/Source/JavaScriptCore/ChangeLog</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeCallLinkStatuscpp">trunk/Source/JavaScriptCore/bytecode/CallLinkStatus.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeCodeBlockcpp">trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeCodeBlockh">trunk/Source/JavaScriptCore/bytecode/CodeBlock.h</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeGetByIdStatuscpp">trunk/Source/JavaScriptCore/bytecode/GetByIdStatus.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeLazyOperandValueProfilecpp">trunk/Source/JavaScriptCore/bytecode/LazyOperandValueProfile.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeLazyOperandValueProfileh">trunk/Source/JavaScriptCore/bytecode/LazyOperandValueProfile.h</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodePutByIdStatuscpp">trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecodeValueProfileh">trunk/Source/JavaScriptCore/bytecode/ValueProfile.h</a></li>
<li><a href="#trunkSourceJavaScriptCorebytecompilerBytecodeGeneratorcpp">trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitGPRInfoh">trunk/Source/JavaScriptCore/jit/GPRInfo.h</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITcpp">trunk/Source/JavaScriptCore/jit/JIT.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITh">trunk/Source/JavaScriptCore/jit/JIT.h</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITArithmeticcpp">trunk/Source/JavaScriptCore/jit/JITArithmetic.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITArithmetic32_64cpp">trunk/Source/JavaScriptCore/jit/JITArithmetic32_64.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITCallcpp">trunk/Source/JavaScriptCore/jit/JITCall.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITCall32_64cpp">trunk/Source/JavaScriptCore/jit/JITCall32_64.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITInlinesh">trunk/Source/JavaScriptCore/jit/JITInlines.h</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITOpcodescpp">trunk/Source/JavaScriptCore/jit/JITOpcodes.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITOpcodes32_64cpp">trunk/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITPropertyAccesscpp">trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorejitJITPropertyAccess32_64cpp">trunk/Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorellintLLIntOfflineAsmConfigh">trunk/Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h</a></li>
<li><a href="#trunkSourceJavaScriptCorellintLLIntSlowPathscpp">trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCorellintLowLevelInterpreterasm">trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.asm</a></li>
<li><a href="#trunkSourceJavaScriptCorellintLowLevelInterpreter32_64asm">trunk/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm</a></li>
<li><a href="#trunkSourceJavaScriptCorellintLowLevelInterpreter64asm">trunk/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm</a></li>
<li><a href="#trunkSourceJavaScriptCoreprofilerProfilerBytecodeSequencecpp">trunk/Source/JavaScriptCore/profiler/ProfilerBytecodeSequence.cpp</a></li>
<li><a href="#trunkSourceJavaScriptCoreruntimeCommonSlowPathscpp">trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp</a></li>
<li><a href="#trunkSourceWTFChangeLog">trunk/Source/WTF/ChangeLog</a></li>
<li><a href="#trunkSourceWTFwtfPlatformh">trunk/Source/WTF/wtf/Platform.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceJavaScriptCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/ChangeLog (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/ChangeLog        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/ChangeLog        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -1,5 +1,87 @@
</span><span class="cx"> 2014-01-06  Filip Pizlo  &lt;fpizlo@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        Get rid of ENABLE(VALUE_PROFILER). It's on all the time now.
+
+        Rubber stamped by Mark Hahnenberg.
+
+        * bytecode/CallLinkStatus.cpp:
+        (JSC::CallLinkStatus::computeFor):
+        * bytecode/CodeBlock.cpp:
+        (JSC::CodeBlock::dumpValueProfiling):
+        (JSC::CodeBlock::dumpArrayProfiling):
+        (JSC::CodeBlock::dumpRareCaseProfile):
+        (JSC::CodeBlock::dumpBytecode):
+        (JSC::CodeBlock::CodeBlock):
+        (JSC::CodeBlock::setNumParameters):
+        (JSC::CodeBlock::shrinkToFit):
+        (JSC::CodeBlock::shouldOptimizeNow):
+        * bytecode/CodeBlock.h:
+        (JSC::CodeBlock::valueProfileForBytecodeOffset):
+        * bytecode/GetByIdStatus.cpp:
+        (JSC::GetByIdStatus::computeForChain):
+        (JSC::GetByIdStatus::computeFor):
+        * bytecode/LazyOperandValueProfile.cpp:
+        * bytecode/LazyOperandValueProfile.h:
+        * bytecode/PutByIdStatus.cpp:
+        (JSC::PutByIdStatus::computeFor):
+        * bytecode/ValueProfile.h:
+        * bytecompiler/BytecodeGenerator.cpp:
+        (JSC::BytecodeGenerator::newArrayProfile):
+        (JSC::BytecodeGenerator::newArrayAllocationProfile):
+        (JSC::BytecodeGenerator::emitProfiledOpcode):
+        * jit/GPRInfo.h:
+        * jit/JIT.cpp:
+        (JSC::JIT::JIT):
+        (JSC::JIT::privateCompileSlowCases):
+        (JSC::JIT::privateCompile):
+        * jit/JIT.h:
+        * jit/JITArithmetic.cpp:
+        (JSC::JIT::compileBinaryArithOp):
+        (JSC::JIT::emit_op_mul):
+        (JSC::JIT::emit_op_div):
+        * jit/JITArithmetic32_64.cpp:
+        (JSC::JIT::emitBinaryDoubleOp):
+        (JSC::JIT::emit_op_mul):
+        (JSC::JIT::emitSlow_op_mul):
+        (JSC::JIT::emit_op_div):
+        * jit/JITCall.cpp:
+        (JSC::JIT::emitPutCallResult):
+        * jit/JITCall32_64.cpp:
+        (JSC::JIT::emitPutCallResult):
+        * jit/JITInlines.h:
+        (JSC::JIT::appendCallWithExceptionCheckSetJSValueResultWithProfile):
+        (JSC::JIT::emitValueProfilingSite):
+        (JSC::JIT::emitArrayProfilingSiteForBytecodeIndex):
+        (JSC::JIT::emitArrayProfileStoreToHoleSpecialCase):
+        (JSC::JIT::emitArrayProfileOutOfBoundsSpecialCase):
+        (JSC::arrayProfileSaw):
+        (JSC::JIT::chooseArrayMode):
+        * jit/JITOpcodes.cpp:
+        (JSC::JIT::emit_op_get_argument_by_val):
+        * jit/JITOpcodes32_64.cpp:
+        (JSC::JIT::emit_op_get_argument_by_val):
+        * jit/JITPropertyAccess.cpp:
+        (JSC::JIT::emit_op_get_by_val):
+        (JSC::JIT::emitSlow_op_get_by_val):
+        (JSC::JIT::emit_op_get_by_id):
+        (JSC::JIT::emit_op_get_from_scope):
+        * jit/JITPropertyAccess32_64.cpp:
+        (JSC::JIT::emit_op_get_by_val):
+        (JSC::JIT::emitSlow_op_get_by_val):
+        (JSC::JIT::emit_op_get_by_id):
+        (JSC::JIT::emit_op_get_from_scope):
+        * llint/LLIntOfflineAsmConfig.h:
+        * llint/LLIntSlowPaths.cpp:
+        (JSC::LLInt::LLINT_SLOW_PATH_DECL):
+        * llint/LowLevelInterpreter.asm:
+        * llint/LowLevelInterpreter32_64.asm:
+        * llint/LowLevelInterpreter64.asm:
+        * profiler/ProfilerBytecodeSequence.cpp:
+        (JSC::Profiler::BytecodeSequence::BytecodeSequence):
+        * runtime/CommonSlowPaths.cpp:
+
+2014-01-06  Filip Pizlo  &lt;fpizlo@apple.com&gt;
+
</ins><span class="cx">         LLInt shouldn't check for ENABLE(JIT).
</span><span class="cx"> 
</span><span class="cx">         Rubber stamped by Mark Hahnenberg.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeCallLinkStatuscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/CallLinkStatus.cpp (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/CallLinkStatus.cpp        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/bytecode/CallLinkStatus.cpp        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -101,7 +101,7 @@
</span><span class="cx">     
</span><span class="cx">     UNUSED_PARAM(profiledBlock);
</span><span class="cx">     UNUSED_PARAM(bytecodeIndex);
</span><del>-#if ENABLE(JIT) &amp;&amp; ENABLE(VALUE_PROFILER)
</del><ins>+#if ENABLE(JIT)
</ins><span class="cx">     if (!profiledBlock-&gt;hasBaselineJITProfiling())
</span><span class="cx">         return computeFromLLInt(profiledBlock, bytecodeIndex);
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeCodeBlockcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -622,16 +622,11 @@
</span><span class="cx">     ConcurrentJITLocker locker(m_lock);
</span><span class="cx">     
</span><span class="cx">     ++it;
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     CString description = it-&gt;u.profile-&gt;briefDescription(locker);
</span><span class="cx">     if (!description.length())
</span><span class="cx">         return;
</span><span class="cx">     beginDumpProfiling(out, hasPrintedProfiling);
</span><span class="cx">     out.print(description);
</span><del>-#else
-    UNUSED_PARAM(out);
-    UNUSED_PARAM(hasPrintedProfiling);
-#endif
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void CodeBlock::dumpArrayProfiling(PrintStream&amp; out, const Instruction*&amp; it, bool&amp; hasPrintedProfiling)
</span><span class="lines">@@ -639,7 +634,6 @@
</span><span class="cx">     ConcurrentJITLocker locker(m_lock);
</span><span class="cx">     
</span><span class="cx">     ++it;
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     if (!it-&gt;u.arrayProfile)
</span><span class="cx">         return;
</span><span class="cx">     CString description = it-&gt;u.arrayProfile-&gt;briefDescription(locker, this);
</span><span class="lines">@@ -647,13 +641,8 @@
</span><span class="cx">         return;
</span><span class="cx">     beginDumpProfiling(out, hasPrintedProfiling);
</span><span class="cx">     out.print(description);
</span><del>-#else
-    UNUSED_PARAM(out);
-    UNUSED_PARAM(hasPrintedProfiling);
-#endif
</del><span class="cx"> }
</span><span class="cx"> 
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx"> void CodeBlock::dumpRareCaseProfile(PrintStream&amp; out, const char* name, RareCaseProfile* profile, bool&amp; hasPrintedProfiling)
</span><span class="cx"> {
</span><span class="cx">     if (!profile || !profile-&gt;m_counter)
</span><span class="lines">@@ -662,7 +651,6 @@
</span><span class="cx">     beginDumpProfiling(out, hasPrintedProfiling);
</span><span class="cx">     out.print(name, profile-&gt;m_counter);
</span><span class="cx"> }
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx"> void CodeBlock::dumpBytecode(PrintStream&amp; out, ExecState* exec, const Instruction* begin, const Instruction*&amp; it, const StubInfoMap&amp; map)
</span><span class="cx"> {
</span><span class="lines">@@ -1422,10 +1410,8 @@
</span><span class="cx"> #endif
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     dumpRareCaseProfile(out, &quot;rare case: &quot;, rareCaseProfileForBytecodeOffset(location), hasPrintedProfiling);
</span><span class="cx">     dumpRareCaseProfile(out, &quot;special fast case: &quot;, specialFastCaseProfileForBytecodeOffset(location), hasPrintedProfiling);
</span><del>-#endif
</del><span class="cx">     
</span><span class="cx"> #if ENABLE(DFG_JIT)
</span><span class="cx">     Vector&lt;DFG::FrequentExitSite&gt; exitSites = exitProfile().exitSitesFor(location);
</span><span class="lines">@@ -1799,12 +1785,10 @@
</span><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         case op_get_from_scope: {
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">             ValueProfile* profile = &amp;m_valueProfiles[pc[i + opLength - 1].u.operand];
</span><span class="cx">             ASSERT(profile-&gt;m_bytecodeOffset == -1);
</span><span class="cx">             profile-&gt;m_bytecodeOffset = i;
</span><span class="cx">             instructions[i + opLength - 1] = profile;
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx">             // get_from_scope dst, scope, id, ResolveModeAndType, Structure, Operand
</span><span class="cx">             const Identifier&amp; ident = identifier(pc[i + 3].u.operand);
</span><span class="lines">@@ -1924,9 +1908,7 @@
</span><span class="cx"> {
</span><span class="cx">     m_numParameters = newValue;
</span><span class="cx"> 
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     m_argumentValueProfiles.resizeToFit(newValue);
</span><del>-#endif
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void EvalCodeCache::visitAggregate(SlotVisitor&amp; visitor)
</span><span class="lines">@@ -2596,10 +2578,8 @@
</span><span class="cx"> #if ENABLE(JIT)
</span><span class="cx">     m_callLinkInfos.shrinkToFit();
</span><span class="cx"> #endif
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     m_rareCaseProfiles.shrinkToFit();
</span><span class="cx">     m_specialFastCaseProfiles.shrinkToFit();
</span><del>-#endif
</del><span class="cx">     
</span><span class="cx">     if (shrinkMode == EarlyShrink) {
</span><span class="cx">         m_additionalIdentifiers.shrinkToFit();
</span><span class="lines">@@ -3181,7 +3161,6 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx"> ArrayProfile* CodeBlock::getArrayProfile(unsigned bytecodeOffset)
</span><span class="cx"> {
</span><span class="cx">     for (unsigned i = 0; i &lt; m_arrayProfiles.size(); ++i) {
</span><span class="lines">@@ -3254,10 +3233,6 @@
</span><span class="cx">     if (Options::verboseOSR())
</span><span class="cx">         dataLog(&quot;Considering optimizing &quot;, *this, &quot;...\n&quot;);
</span><span class="cx"> 
</span><del>-#if ENABLE(VERBOSE_VALUE_PROFILE)
-    dumpValueProfiles();
-#endif
-
</del><span class="cx">     if (m_optimizationDelayCounter &gt;= Options::maximumOptimizationDelay())
</span><span class="cx">         return true;
</span><span class="cx">     
</span><span class="lines">@@ -3286,7 +3261,6 @@
</span><span class="cx">     optimizeAfterWarmUp();
</span><span class="cx">     return false;
</span><span class="cx"> }
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx"> #if ENABLE(DFG_JIT)
</span><span class="cx"> void CodeBlock::tallyFrequentExitSites()
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeCodeBlockh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/CodeBlock.h (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/CodeBlock.h        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/bytecode/CodeBlock.h        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -277,12 +277,12 @@
</span><span class="cx">         return result;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-#if ENABLE(JIT)
</del><span class="cx">     bool hasBaselineJITProfiling() const
</span><span class="cx">     {
</span><span class="cx">         return jitType() == JITCode::BaselineJIT;
</span><span class="cx">     }
</span><span class="cx">     
</span><ins>+#if ENABLE(JIT)
</ins><span class="cx">     virtual CodeBlock* replacement() = 0;
</span><span class="cx"> 
</span><span class="cx">     virtual DFG::CapabilityLevel capabilityLevelInternal() = 0;
</span><span class="lines">@@ -410,7 +410,6 @@
</span><span class="cx">     CallLinkInfo&amp; callLinkInfo(int index) { return m_callLinkInfos[index]; }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     unsigned numberOfArgumentValueProfiles()
</span><span class="cx">     {
</span><span class="cx">         ASSERT(m_numParameters &gt;= 0);
</span><span class="lines">@@ -429,13 +428,12 @@
</span><span class="cx">     ValueProfile* valueProfileForBytecodeOffset(int bytecodeOffset)
</span><span class="cx">     {
</span><span class="cx">         ValueProfile* result = binarySearch&lt;ValueProfile, int&gt;(
</span><del>-                                                               m_valueProfiles, m_valueProfiles.size(), bytecodeOffset,
-                                                               getValueProfileBytecodeOffset&lt;ValueProfile&gt;);
</del><ins>+            m_valueProfiles, m_valueProfiles.size(), bytecodeOffset,
+            getValueProfileBytecodeOffset&lt;ValueProfile&gt;);
</ins><span class="cx">         ASSERT(result-&gt;m_bytecodeOffset != -1);
</span><span class="cx">         ASSERT(instructions()[bytecodeOffset + opcodeLength(
</span><del>-                                                            m_vm-&gt;interpreter-&gt;getOpcodeID(
-                                                                                           instructions()[
-                                                                                                          bytecodeOffset].u.opcode)) - 1].u.profile == result);
</del><ins>+            m_vm-&gt;interpreter-&gt;getOpcodeID(
+                instructions()[bytecodeOffset].u.opcode)) - 1].u.profile == result);
</ins><span class="cx">         return result;
</span><span class="cx">     }
</span><span class="cx">     SpeculatedType valueProfilePredictionForBytecodeOffset(const ConcurrentJITLocker&amp; locker, int bytecodeOffset)
</span><span class="lines">@@ -543,7 +541,6 @@
</span><span class="cx">     }
</span><span class="cx">     ArrayProfile* getArrayProfile(unsigned bytecodeOffset);
</span><span class="cx">     ArrayProfile* getOrAddArrayProfile(unsigned bytecodeOffset);
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx">     // Exception handling support
</span><span class="cx"> 
</span><span class="lines">@@ -884,22 +881,11 @@
</span><span class="cx">     unsigned numberOfDFGCompiles() { return 0; }
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     bool shouldOptimizeNow();
</span><span class="cx">     void updateAllValueProfilePredictions();
</span><span class="cx">     void updateAllArrayPredictions();
</span><span class="cx">     void updateAllPredictions();
</span><del>-#else
-    bool updateAllPredictionsAndCheckIfShouldOptimizeNow() { return false; }
-    void updateAllValueProfilePredictions() { }
-    void updateAllArrayPredictions() { }
-    void updateAllPredictions() { }
-#endif
</del><span class="cx"> 
</span><del>-#if ENABLE(VERBOSE_VALUE_PROFILE)
-    void dumpValueProfiles();
-#endif
-    
</del><span class="cx">     unsigned frameRegisterCount();
</span><span class="cx"> 
</span><span class="cx">     // FIXME: Make these remaining members private.
</span><span class="lines">@@ -959,9 +945,7 @@
</span><span class="cx">     ClosureCallStubRoutine* findClosureCallForReturnPC(ReturnAddressPtr);
</span><span class="cx"> #endif
</span><span class="cx">         
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     void updateAllPredictionsAndCountLiveness(unsigned&amp; numberOfLiveNonArgumentValueProfiles, unsigned&amp; numberOfSamplesInProfiles);
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx">     void setConstantRegisters(const Vector&lt;WriteBarrier&lt;Unknown&gt;&gt;&amp; constants)
</span><span class="cx">     {
</span><span class="lines">@@ -996,9 +980,7 @@
</span><span class="cx">     void beginDumpProfiling(PrintStream&amp;, bool&amp; hasPrintedProfiling);
</span><span class="cx">     void dumpValueProfiling(PrintStream&amp;, const Instruction*&amp;, bool&amp; hasPrintedProfiling);
</span><span class="cx">     void dumpArrayProfiling(PrintStream&amp;, const Instruction*&amp;, bool&amp; hasPrintedProfiling);
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     void dumpRareCaseProfile(PrintStream&amp;, const char* name, RareCaseProfile*, bool&amp; hasPrintedProfiling);
</span><del>-#endif
</del><span class="cx">         
</span><span class="cx"> #if ENABLE(DFG_JIT)
</span><span class="cx">     bool shouldImmediatelyAssumeLivenessDuringScan()
</span><span class="lines">@@ -1080,14 +1062,12 @@
</span><span class="cx">     DFG::ExitProfile m_exitProfile;
</span><span class="cx">     CompressedLazyOperandValueProfileHolder m_lazyOperandValueProfiles;
</span><span class="cx"> #endif
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     Vector&lt;ValueProfile&gt; m_argumentValueProfiles;
</span><span class="cx">     Vector&lt;ValueProfile&gt; m_valueProfiles;
</span><span class="cx">     SegmentedVector&lt;RareCaseProfile, 8&gt; m_rareCaseProfiles;
</span><span class="cx">     SegmentedVector&lt;RareCaseProfile, 8&gt; m_specialFastCaseProfiles;
</span><span class="cx">     Vector&lt;ArrayAllocationProfile&gt; m_arrayAllocationProfiles;
</span><span class="cx">     ArrayProfileVector m_arrayProfiles;
</span><del>-#endif
</del><span class="cx">     Vector&lt;ObjectAllocationProfile&gt; m_objectAllocationProfiles;
</span><span class="cx"> 
</span><span class="cx">     // Constant Pool
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeGetByIdStatuscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/GetByIdStatus.cpp (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/GetByIdStatus.cpp        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/bytecode/GetByIdStatus.cpp        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -69,7 +69,7 @@
</span><span class="cx"> 
</span><span class="cx"> void GetByIdStatus::computeForChain(GetByIdStatus&amp; result, CodeBlock* profiledBlock, StringImpl* uid)
</span><span class="cx"> {
</span><del>-#if ENABLE(JIT) &amp;&amp; ENABLE(VALUE_PROFILER)
</del><ins>+#if ENABLE(JIT)
</ins><span class="cx">     // Validate the chain. If the chain is invalid, then currently the best thing
</span><span class="cx">     // we can do is to assume that TakesSlow is true. In the future, it might be
</span><span class="cx">     // worth exploring reifying the structure chain from the structure we've got
</span><span class="lines">@@ -123,7 +123,7 @@
</span><span class="cx">     UNUSED_PARAM(profiledBlock);
</span><span class="cx">     UNUSED_PARAM(bytecodeIndex);
</span><span class="cx">     UNUSED_PARAM(uid);
</span><del>-#if ENABLE(JIT) &amp;&amp; ENABLE(VALUE_PROFILER)
</del><ins>+#if ENABLE(JIT)
</ins><span class="cx">     StructureStubInfo* stubInfo = map.get(CodeOrigin(bytecodeIndex));
</span><span class="cx">     if (!stubInfo || !stubInfo-&gt;seen)
</span><span class="cx">         return computeFromLLInt(profiledBlock, bytecodeIndex, uid);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeLazyOperandValueProfilecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/LazyOperandValueProfile.cpp (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/LazyOperandValueProfile.cpp        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/bytecode/LazyOperandValueProfile.cpp        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -26,8 +26,6 @@
</span><span class="cx"> #include &quot;config.h&quot;
</span><span class="cx"> #include &quot;LazyOperandValueProfile.h&quot;
</span><span class="cx"> 
</span><del>-#if ENABLE(VALUE_PROFILER)
-
</del><span class="cx"> #include &quot;Operations.h&quot;
</span><span class="cx"> 
</span><span class="cx"> namespace JSC {
</span><span class="lines">@@ -100,5 +98,3 @@
</span><span class="cx"> 
</span><span class="cx"> } // namespace JSC
</span><span class="cx"> 
</span><del>-#endif // ENABLE(VALUE_PROFILER)
-
</del></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeLazyOperandValueProfileh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/LazyOperandValueProfile.h (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/LazyOperandValueProfile.h        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/bytecode/LazyOperandValueProfile.h        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -26,10 +26,6 @@
</span><span class="cx"> #ifndef LazyOperandValueProfile_h
</span><span class="cx"> #define LazyOperandValueProfile_h
</span><span class="cx"> 
</span><del>-#include &lt;wtf/Platform.h&gt;
-
-#if ENABLE(VALUE_PROFILER)
-
</del><span class="cx"> #include &quot;ConcurrentJITLock.h&quot;
</span><span class="cx"> #include &quot;ValueProfile.h&quot;
</span><span class="cx"> #include &quot;VirtualRegister.h&quot;
</span><span class="lines">@@ -188,8 +184,6 @@
</span><span class="cx"> 
</span><span class="cx"> } // namespace JSC
</span><span class="cx"> 
</span><del>-#endif // ENABLE(VALUE_PROFILER)
-
</del><span class="cx"> #endif // LazyOperandValueProfile_h
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodePutByIdStatuscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -88,7 +88,7 @@
</span><span class="cx">     UNUSED_PARAM(profiledBlock);
</span><span class="cx">     UNUSED_PARAM(bytecodeIndex);
</span><span class="cx">     UNUSED_PARAM(uid);
</span><del>-#if ENABLE(JIT) &amp;&amp; ENABLE(VALUE_PROFILER)
</del><ins>+#if ENABLE(JIT)
</ins><span class="cx">     if (profiledBlock-&gt;likelyToTakeSlowCase(bytecodeIndex))
</span><span class="cx">         return PutByIdStatus(TakesSlowPath, 0, 0, 0, invalidOffset);
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecodeValueProfileh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecode/ValueProfile.h (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecode/ValueProfile.h        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/bytecode/ValueProfile.h        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -29,10 +29,6 @@
</span><span class="cx"> #ifndef ValueProfile_h
</span><span class="cx"> #define ValueProfile_h
</span><span class="cx"> 
</span><del>-#include &lt;wtf/Platform.h&gt;
-
-#if ENABLE(VALUE_PROFILER)
-
</del><span class="cx"> #include &quot;ConcurrentJITLock.h&quot;
</span><span class="cx"> #include &quot;Heap.h&quot;
</span><span class="cx"> #include &quot;JSArray.h&quot;
</span><span class="lines">@@ -212,7 +208,5 @@
</span><span class="cx"> 
</span><span class="cx"> } // namespace JSC
</span><span class="cx"> 
</span><del>-#endif // ENABLE(VALUE_PROFILER)
-
</del><span class="cx"> #endif // ValueProfile_h
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorebytecompilerBytecodeGeneratorcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -636,20 +636,12 @@
</span><span class="cx"> 
</span><span class="cx"> UnlinkedArrayProfile BytecodeGenerator::newArrayProfile()
</span><span class="cx"> {
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     return m_codeBlock-&gt;addArrayProfile();
</span><del>-#else
-    return 0;
-#endif
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> UnlinkedArrayAllocationProfile BytecodeGenerator::newArrayAllocationProfile()
</span><span class="cx"> {
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     return m_codeBlock-&gt;addArrayAllocationProfile();
</span><del>-#else
-    return 0;
-#endif
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> UnlinkedObjectAllocationProfile BytecodeGenerator::newObjectAllocationProfile()
</span><span class="lines">@@ -659,11 +651,7 @@
</span><span class="cx"> 
</span><span class="cx"> UnlinkedValueProfile BytecodeGenerator::emitProfiledOpcode(OpcodeID opcodeID)
</span><span class="cx"> {
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     UnlinkedValueProfile result = m_codeBlock-&gt;addValueProfile();
</span><del>-#else
-    UnlinkedValueProfile result = 0;
-#endif
</del><span class="cx">     emitOpcode(opcodeID);
</span><span class="cx">     return result;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitGPRInfoh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/GPRInfo.h (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/GPRInfo.h        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/jit/GPRInfo.h        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -574,10 +574,6 @@
</span><span class="cx">     static const GPRReg returnValueGPR2 = ARM64Registers::x1; // regT1
</span><span class="cx">     static const GPRReg nonPreservedNonReturnGPR = ARM64Registers::x2;
</span><span class="cx"> 
</span><del>-#if ENABLE(VALUE_PROFILER)
-    static const GPRReg bucketCounterRegister = ARM64Registers::x7;
-#endif
-
</del><span class="cx">     // GPRReg mapping is direct, the machine regsiter numbers can
</span><span class="cx">     // be used directly as indices into the GPR RegisterBank.
</span><span class="cx">     COMPILE_ASSERT(ARM64Registers::q0 == 0, q0_is_0);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JIT.cpp (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JIT.cpp        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/jit/JIT.cpp        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -81,10 +81,8 @@
</span><span class="cx">     , m_byValInstructionIndex(UINT_MAX)
</span><span class="cx">     , m_callLinkInfoIndex(UINT_MAX)
</span><span class="cx">     , m_randomGenerator(cryptographicallyRandomNumber())
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     , m_canBeOptimized(false)
</span><span class="cx">     , m_shouldEmitProfiling(false)
</span><del>-#endif
</del><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -329,7 +327,6 @@
</span><span class="cx">     m_byValInstructionIndex = 0;
</span><span class="cx">     m_callLinkInfoIndex = 0;
</span><span class="cx">     
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     // Use this to assert that slow-path code associates new profiling sites with existing
</span><span class="cx">     // ValueProfiles rather than creating new ones. This ensures that for a given instruction
</span><span class="cx">     // (say, get_by_id) we get combined statistics for both the fast-path executions of that
</span><span class="lines">@@ -337,7 +334,6 @@
</span><span class="cx">     // new ValueProfiles then the ValueProfiles would no longer be sorted by bytecode offset,
</span><span class="cx">     // which would break the invariant necessary to use CodeBlock::valueProfileForBytecodeOffset().
</span><span class="cx">     unsigned numberOfValueProfiles = m_codeBlock-&gt;numberOfValueProfiles();
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx">     for (Vector&lt;SlowCaseEntry&gt;::iterator iter = m_slowCases.begin(); iter != m_slowCases.end();) {
</span><span class="cx">         m_bytecodeOffset = iter-&gt;to;
</span><span class="lines">@@ -346,11 +342,9 @@
</span><span class="cx"> 
</span><span class="cx">         Instruction* currentInstruction = instructionsBegin + m_bytecodeOffset;
</span><span class="cx">         
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">         RareCaseProfile* rareCaseProfile = 0;
</span><span class="cx">         if (shouldEmitProfiling())
</span><span class="cx">             rareCaseProfile = m_codeBlock-&gt;addRareCaseProfile(m_bytecodeOffset);
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx"> #if ENABLE(JIT_VERBOSE)
</span><span class="cx">         dataLogF(&quot;Old JIT emitting slow code for bc#%u at offset 0x%lx.\n&quot;, m_bytecodeOffset, (long)debugOffset());
</span><span class="lines">@@ -431,10 +425,8 @@
</span><span class="cx">         RELEASE_ASSERT_WITH_MESSAGE(iter == m_slowCases.end() || firstTo != iter-&gt;to, &quot;Not enough jumps linked in slow case codegen.&quot;);
</span><span class="cx">         RELEASE_ASSERT_WITH_MESSAGE(firstTo == (iter - 1)-&gt;to, &quot;Too many jumps linked in slow case codegen.&quot;);
</span><span class="cx">         
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">         if (shouldEmitProfiling())
</span><span class="cx">             add32(TrustedImm32(1), AbsoluteAddress(&amp;rareCaseProfile-&gt;m_counter));
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx">         emitJumpSlowToHot(jump(), 0);
</span><span class="cx">     }
</span><span class="lines">@@ -442,9 +434,7 @@
</span><span class="cx">     RELEASE_ASSERT(m_getByIdIndex == m_getByIds.size());
</span><span class="cx">     RELEASE_ASSERT(m_putByIdIndex == m_putByIds.size());
</span><span class="cx">     RELEASE_ASSERT(m_callLinkInfoIndex == m_callStructureStubCompilationInfo.size());
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     RELEASE_ASSERT(numberOfValueProfiles == m_codeBlock-&gt;numberOfValueProfiles());
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx"> #ifndef NDEBUG
</span><span class="cx">     // Reset this, in order to guard its use with ASSERTs.
</span><span class="lines">@@ -454,7 +444,6 @@
</span><span class="cx"> 
</span><span class="cx"> CompilationResult JIT::privateCompile(JITCompilationEffort effort)
</span><span class="cx"> {
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     DFG::CapabilityLevel level = m_codeBlock-&gt;capabilityLevel();
</span><span class="cx">     switch (level) {
</span><span class="cx">     case DFG::CannotCompile:
</span><span class="lines">@@ -489,7 +478,6 @@
</span><span class="cx">         m_codeBlock-&gt;m_shouldAlwaysBeInlined &amp;= canInline(level) &amp;&amp; DFG::mightInlineFunction(m_codeBlock);
</span><span class="cx">         break;
</span><span class="cx">     }
</span><del>-#endif
</del><span class="cx">     
</span><span class="cx">     if (Options::showDisassembly() || m_vm-&gt;m_perBytecodeProfiler)
</span><span class="cx">         m_disassembler = adoptPtr(new JITDisassembler(m_codeBlock));
</span><span class="lines">@@ -521,7 +509,6 @@
</span><span class="cx"> 
</span><span class="cx">     Jump stackCheck;
</span><span class="cx">     if (m_codeBlock-&gt;codeType() == FunctionCode) {
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">         ASSERT(m_bytecodeOffset == (unsigned)-1);
</span><span class="cx">         if (shouldEmitProfiling()) {
</span><span class="cx">             for (int argument = 0; argument &lt; m_codeBlock-&gt;numParameters(); ++argument) {
</span><span class="lines">@@ -536,10 +523,9 @@
</span><span class="cx">                 load32(Address(callFrameRegister, offset + OBJECT_OFFSETOF(JSValue, u.asBits.payload)), regT0);
</span><span class="cx">                 load32(Address(callFrameRegister, offset + OBJECT_OFFSETOF(JSValue, u.asBits.tag)), regT1);
</span><span class="cx"> #endif
</span><del>-                emitValueProfilingSite(m_codeBlock-&gt;valueProfileForArgument(argument), regT4);
</del><ins>+                emitValueProfilingSite(m_codeBlock-&gt;valueProfileForArgument(argument));
</ins><span class="cx">             }
</span><span class="cx">         }
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx">         addPtr(TrustedImm32(virtualRegisterForLocal(frameRegisterCountFor(m_codeBlock)).offset() * sizeof(Register)), callFrameRegister, regT1);
</span><span class="cx">         stackCheck = branchPtr(Above, AbsoluteAddress(m_vm-&gt;addressOfJSStackLimit()), regT1);
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JIT.h (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JIT.h        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/jit/JIT.h        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -331,16 +331,11 @@
</span><span class="cx">         template&lt;typename StructureType&gt; // StructureType can be RegisterID or ImmPtr.
</span><span class="cx">         void emitAllocateJSObject(RegisterID allocator, StructureType, RegisterID result, RegisterID scratch);
</span><span class="cx">         
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">         // This assumes that the value to profile is in regT0 and that regT3 is available for
</span><span class="cx">         // scratch.
</span><del>-        void emitValueProfilingSite(ValueProfile*, RegisterID);
-        void emitValueProfilingSite(unsigned bytecodeOffset, RegisterID);
-        void emitValueProfilingSite(RegisterID);
-#else
-        void emitValueProfilingSite(unsigned, RegisterID) { }
-        void emitValueProfilingSite(RegisterID) { }
-#endif
</del><ins>+        void emitValueProfilingSite(ValueProfile*);
+        void emitValueProfilingSite(unsigned bytecodeOffset);
+        void emitValueProfilingSite();
</ins><span class="cx">         void emitArrayProfilingSite(RegisterID structureAndIndexingType, RegisterID scratch, ArrayProfile*);
</span><span class="cx">         void emitArrayProfilingSiteForBytecodeIndex(RegisterID structureAndIndexingType, RegisterID scratch, unsigned bytecodeIndex);
</span><span class="cx">         void emitArrayProfileStoreToHoleSpecialCase(ArrayProfile*);
</span><span class="lines">@@ -827,11 +822,9 @@
</span><span class="cx">         WeakRandom m_randomGenerator;
</span><span class="cx">         static CodeRef stringGetByValStubGenerator(VM*);
</span><span class="cx"> 
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">         bool m_canBeOptimized;
</span><span class="cx">         bool m_canBeOptimizedOrInlined;
</span><span class="cx">         bool m_shouldEmitProfiling;
</span><del>-#endif
</del><span class="cx">     } JIT_CLASS_ALIGNMENT;
</span><span class="cx"> 
</span><span class="cx"> } // namespace JSC
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITArithmeticcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITArithmetic.cpp (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITArithmetic.cpp        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/jit/JITArithmetic.cpp        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -668,16 +668,13 @@
</span><span class="cx">     emitGetVirtualRegisters(op1, regT0, op2, regT1);
</span><span class="cx">     emitJumpSlowCaseIfNotImmediateInteger(regT0);
</span><span class="cx">     emitJumpSlowCaseIfNotImmediateInteger(regT1);
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     RareCaseProfile* profile = m_codeBlock-&gt;addSpecialFastCaseProfile(m_bytecodeOffset);
</span><del>-#endif
</del><span class="cx">     if (opcodeID == op_add)
</span><span class="cx">         addSlowCase(branchAdd32(Overflow, regT1, regT0));
</span><span class="cx">     else if (opcodeID == op_sub)
</span><span class="cx">         addSlowCase(branchSub32(Overflow, regT1, regT0));
</span><span class="cx">     else {
</span><span class="cx">         ASSERT(opcodeID == op_mul);
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">         if (shouldEmitProfiling()) {
</span><span class="cx">             // We want to be able to measure if this is taking the slow case just
</span><span class="cx">             // because of negative zero. If this produces positive zero, then we
</span><span class="lines">@@ -701,10 +698,6 @@
</span><span class="cx">             addSlowCase(branchMul32(Overflow, regT1, regT0));
</span><span class="cx">             addSlowCase(branchTest32(Zero, regT0));
</span><span class="cx">         }
</span><del>-#else
-        addSlowCase(branchMul32(Overflow, regT1, regT0));
-        addSlowCase(branchTest32(Zero, regT0));
-#endif
</del><span class="cx">     }
</span><span class="cx">     emitFastArithIntToImmNoCheck(regT0, regT0);
</span><span class="cx"> }
</span><span class="lines">@@ -849,19 +842,15 @@
</span><span class="cx">     // For now, only plant a fast int case if the constant operand is greater than zero.
</span><span class="cx">     int32_t value;
</span><span class="cx">     if (isOperandConstantImmediateInt(op1) &amp;&amp; ((value = getConstantOperandImmediateInt(op1)) &gt; 0)) {
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">         // Add a special fast case profile because the DFG JIT will expect one.
</span><span class="cx">         m_codeBlock-&gt;addSpecialFastCaseProfile(m_bytecodeOffset);
</span><del>-#endif
</del><span class="cx">         emitGetVirtualRegister(op2, regT0);
</span><span class="cx">         emitJumpSlowCaseIfNotImmediateInteger(regT0);
</span><span class="cx">         addSlowCase(branchMul32(Overflow, Imm32(value), regT0, regT1));
</span><span class="cx">         emitFastArithReTagImmediate(regT1, regT0);
</span><span class="cx">     } else if (isOperandConstantImmediateInt(op2) &amp;&amp; ((value = getConstantOperandImmediateInt(op2)) &gt; 0)) {
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">         // Add a special fast case profile because the DFG JIT will expect one.
</span><span class="cx">         m_codeBlock-&gt;addSpecialFastCaseProfile(m_bytecodeOffset);
</span><del>-#endif
</del><span class="cx">         emitGetVirtualRegister(op1, regT0);
</span><span class="cx">         emitJumpSlowCaseIfNotImmediateInteger(regT0);
</span><span class="cx">         addSlowCase(branchMul32(Overflow, Imm32(value), regT0, regT1));
</span><span class="lines">@@ -930,7 +919,6 @@
</span><span class="cx">     }
</span><span class="cx">     divDouble(fpRegT1, fpRegT0);
</span><span class="cx">     
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     // Is the result actually an integer? The DFG JIT would really like to know. If it's
</span><span class="cx">     // not an integer, we increment a count. If this together with the slow case counter
</span><span class="cx">     // are below threshold then the DFG JIT will compile this division with a specualtion
</span><span class="lines">@@ -957,11 +945,6 @@
</span><span class="cx">     move(tagTypeNumberRegister, regT0);
</span><span class="cx">     trueDouble.link(this);
</span><span class="cx">     isInteger.link(this);
</span><del>-#else
-    // Double result.
-    moveDoubleTo64(fpRegT0, regT0);
-    sub64(tagTypeNumberRegister, regT0);
-#endif
</del><span class="cx"> 
</span><span class="cx">     emitPutVirtualRegister(dst, regT0);
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITArithmetic32_64cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITArithmetic32_64.cpp (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITArithmetic32_64.cpp        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/jit/JITArithmetic32_64.cpp        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -742,7 +742,6 @@
</span><span class="cx">                 emitLoadDouble(op1, fpRegT1);
</span><span class="cx">                 divDouble(fpRegT0, fpRegT1);
</span><span class="cx"> 
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">                 // Is the result actually an integer? The DFG JIT would really like to know. If it's
</span><span class="cx">                 // not an integer, we increment a count. If this together with the slow case counter
</span><span class="cx">                 // are below threshold then the DFG JIT will compile this division with a specualtion
</span><span class="lines">@@ -766,9 +765,6 @@
</span><span class="cx">                 add32(TrustedImm32(1), AbsoluteAddress(&amp;m_codeBlock-&gt;specialFastCaseProfileForBytecodeOffset(m_bytecodeOffset)-&gt;m_counter));
</span><span class="cx">                 emitStoreDouble(dst, fpRegT1);
</span><span class="cx">                 isInteger.link(this);
</span><del>-#else
-                emitStoreDouble(dst, fpRegT1);
-#endif
</del><span class="cx">                 break;
</span><span class="cx">             }
</span><span class="cx">             case op_jless:
</span><span class="lines">@@ -846,7 +842,6 @@
</span><span class="cx">             case op_div: {
</span><span class="cx">                 emitLoadDouble(op2, fpRegT2);
</span><span class="cx">                 divDouble(fpRegT2, fpRegT0);
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">                 // Is the result actually an integer? The DFG JIT would really like to know. If it's
</span><span class="cx">                 // not an integer, we increment a count. If this together with the slow case counter
</span><span class="cx">                 // are below threshold then the DFG JIT will compile this division with a specualtion
</span><span class="lines">@@ -870,9 +865,6 @@
</span><span class="cx">                 add32(TrustedImm32(1), AbsoluteAddress(&amp;m_codeBlock-&gt;specialFastCaseProfileForBytecodeOffset(m_bytecodeOffset)-&gt;m_counter));
</span><span class="cx">                 emitStoreDouble(dst, fpRegT0);
</span><span class="cx">                 isInteger.link(this);
</span><del>-#else
-                emitStoreDouble(dst, fpRegT0);
-#endif
</del><span class="cx">                 break;
</span><span class="cx">             }
</span><span class="cx">             case op_jless:
</span><span class="lines">@@ -924,9 +916,7 @@
</span><span class="cx">     int op2 = currentInstruction[3].u.operand;
</span><span class="cx">     OperandTypes types = OperandTypes::fromInt(currentInstruction[4].u.operand);
</span><span class="cx"> 
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     m_codeBlock-&gt;addSpecialFastCaseProfile(m_bytecodeOffset);
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx">     JumpList notInt32Op1;
</span><span class="cx">     JumpList notInt32Op2;
</span><span class="lines">@@ -969,12 +959,10 @@
</span><span class="cx">     emitJumpSlowToHot(jump(), OPCODE_LENGTH(op_mul));
</span><span class="cx"> 
</span><span class="cx">     negZero.link(this);
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     // We only get here if we have a genuine negative zero. Record this,
</span><span class="cx">     // so that the speculative JIT knows that we failed speculation
</span><span class="cx">     // because of a negative zero.
</span><span class="cx">     add32(TrustedImm32(1), AbsoluteAddress(&amp;m_codeBlock-&gt;specialFastCaseProfileForBytecodeOffset(m_bytecodeOffset)-&gt;m_counter));
</span><del>-#endif
</del><span class="cx">     overflow.link(this);
</span><span class="cx"> 
</span><span class="cx">     if (!supportsFloatingPoint()) {
</span><span class="lines">@@ -1005,9 +993,7 @@
</span><span class="cx">     int op2 = currentInstruction[3].u.operand;
</span><span class="cx">     OperandTypes types = OperandTypes::fromInt(currentInstruction[4].u.operand);
</span><span class="cx"> 
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     m_codeBlock-&gt;addSpecialFastCaseProfile(m_bytecodeOffset);
</span><del>-#endif
</del><span class="cx"> 
</span><span class="cx">     if (!supportsFloatingPoint()) {
</span><span class="cx">         addSlowCase(jump());
</span><span class="lines">@@ -1028,7 +1014,6 @@
</span><span class="cx">     convertInt32ToDouble(regT0, fpRegT0);
</span><span class="cx">     convertInt32ToDouble(regT2, fpRegT1);
</span><span class="cx">     divDouble(fpRegT1, fpRegT0);
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     // Is the result actually an integer? The DFG JIT would really like to know. If it's
</span><span class="cx">     // not an integer, we increment a count. If this together with the slow case counter
</span><span class="cx">     // are below threshold then the DFG JIT will compile this division with a specualtion
</span><span class="lines">@@ -1051,9 +1036,6 @@
</span><span class="cx">     notInteger.link(this);
</span><span class="cx">     add32(TrustedImm32(1), AbsoluteAddress(&amp;m_codeBlock-&gt;specialFastCaseProfileForBytecodeOffset(m_bytecodeOffset)-&gt;m_counter));
</span><span class="cx">     emitStoreDouble(dst, fpRegT0);
</span><del>-#else
-    emitStoreDouble(dst, fpRegT0);
-#endif
</del><span class="cx">     end.append(jump());
</span><span class="cx"> 
</span><span class="cx">     // Double divide.
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITCallcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITCall.cpp (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITCall.cpp        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/jit/JITCall.cpp        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -48,7 +48,7 @@
</span><span class="cx"> void JIT::emitPutCallResult(Instruction* instruction)
</span><span class="cx"> {
</span><span class="cx">     int dst = instruction[1].u.operand;
</span><del>-    emitValueProfilingSite(regT4);
</del><ins>+    emitValueProfilingSite();
</ins><span class="cx">     emitPutVirtualRegister(dst);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITCall32_64cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITCall32_64.cpp (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITCall32_64.cpp        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/jit/JITCall32_64.cpp        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -47,7 +47,7 @@
</span><span class="cx"> void JIT::emitPutCallResult(Instruction* instruction)
</span><span class="cx"> {
</span><span class="cx">     int dst = instruction[1].u.operand;
</span><del>-    emitValueProfilingSite(regT4);
</del><ins>+    emitValueProfilingSite();
</ins><span class="cx">     emitStore(dst, regT1, regT0);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITInlinesh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITInlines.h (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITInlines.h        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/jit/JITInlines.h        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -142,7 +142,7 @@
</span><span class="cx"> ALWAYS_INLINE MacroAssembler::Call JIT::appendCallWithExceptionCheckSetJSValueResultWithProfile(const FunctionPtr&amp; function, int dst)
</span><span class="cx"> {
</span><span class="cx">     MacroAssembler::Call call = appendCallWithExceptionCheck(function);
</span><del>-    emitValueProfilingSite(regT4);
</del><ins>+    emitValueProfilingSite();
</ins><span class="cx"> #if USE(JSVALUE64)
</span><span class="cx">     emitPutVirtualRegister(dst, returnValueGPR);
</span><span class="cx"> #else
</span><span class="lines">@@ -680,8 +680,7 @@
</span><span class="cx">     storePtr(TrustedImmPtr(0), Address(result, JSObject::butterflyOffset()));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-#if ENABLE(VALUE_PROFILER)
-inline void JIT::emitValueProfilingSite(ValueProfile* valueProfile, RegisterID bucketCounterRegister)
</del><ins>+inline void JIT::emitValueProfilingSite(ValueProfile* valueProfile)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(shouldEmitProfiling());
</span><span class="cx">     ASSERT(valueProfile);
</span><span class="lines">@@ -690,47 +689,29 @@
</span><span class="cx"> #if USE(JSVALUE32_64)
</span><span class="cx">     const RegisterID valueTag = regT1;
</span><span class="cx"> #endif
</span><del>-    const RegisterID scratch = regT3;
</del><span class="cx">     
</span><del>-    if (ValueProfile::numberOfBuckets == 1) {
-        // We're in a simple configuration: only one bucket, so we can just do a direct
-        // store.
</del><ins>+    // We're in a simple configuration: only one bucket, so we can just do a direct
+    // store.
</ins><span class="cx"> #if USE(JSVALUE64)
</span><del>-        store64(value, valueProfile-&gt;m_buckets);
</del><ins>+    store64(value, valueProfile-&gt;m_buckets);
</ins><span class="cx"> #else
</span><del>-        EncodedValueDescriptor* descriptor = bitwise_cast&lt;EncodedValueDescriptor*&gt;(valueProfile-&gt;m_buckets);
-        store32(value, &amp;descriptor-&gt;asBits.payload);
-        store32(valueTag, &amp;descriptor-&gt;asBits.tag);
</del><ins>+    EncodedValueDescriptor* descriptor = bitwise_cast&lt;EncodedValueDescriptor*&gt;(valueProfile-&gt;m_buckets);
+    store32(value, &amp;descriptor-&gt;asBits.payload);
+    store32(valueTag, &amp;descriptor-&gt;asBits.tag);
</ins><span class="cx"> #endif
</span><del>-        return;
-    }
-    
-    if (m_randomGenerator.getUint32() &amp; 1)
-        add32(TrustedImm32(1), bucketCounterRegister);
-    else
-        add32(TrustedImm32(3), bucketCounterRegister);
-    and32(TrustedImm32(ValueProfile::bucketIndexMask), bucketCounterRegister);
-    move(TrustedImmPtr(valueProfile-&gt;m_buckets), scratch);
-#if USE(JSVALUE64)
-    store64(value, BaseIndex(scratch, bucketCounterRegister, TimesEight));
-#elif USE(JSVALUE32_64)
-    store32(value, BaseIndex(scratch, bucketCounterRegister, TimesEight, OBJECT_OFFSETOF(JSValue, u.asBits.payload)));
-    store32(valueTag, BaseIndex(scratch, bucketCounterRegister, TimesEight, OBJECT_OFFSETOF(JSValue, u.asBits.tag)));
-#endif
</del><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline void JIT::emitValueProfilingSite(unsigned bytecodeOffset, RegisterID bucketCounterRegister)
</del><ins>+inline void JIT::emitValueProfilingSite(unsigned bytecodeOffset)
</ins><span class="cx"> {
</span><span class="cx">     if (!shouldEmitProfiling())
</span><span class="cx">         return;
</span><del>-    emitValueProfilingSite(m_codeBlock-&gt;valueProfileForBytecodeOffset(bytecodeOffset), bucketCounterRegister);
</del><ins>+    emitValueProfilingSite(m_codeBlock-&gt;valueProfileForBytecodeOffset(bytecodeOffset));
</ins><span class="cx"> }
</span><span class="cx"> 
</span><del>-inline void JIT::emitValueProfilingSite(RegisterID bucketCounterRegister)
</del><ins>+inline void JIT::emitValueProfilingSite()
</ins><span class="cx"> {
</span><del>-    emitValueProfilingSite(m_bytecodeOffset, bucketCounterRegister);
</del><ins>+    emitValueProfilingSite(m_bytecodeOffset);
</ins><span class="cx"> }
</span><del>-#endif // ENABLE(VALUE_PROFILER)
</del><span class="cx"> 
</span><span class="cx"> inline void JIT::emitArrayProfilingSite(RegisterID structureAndIndexingType, RegisterID scratch, ArrayProfile* arrayProfile)
</span><span class="cx"> {
</span><span class="lines">@@ -747,46 +728,26 @@
</span><span class="cx"> 
</span><span class="cx"> inline void JIT::emitArrayProfilingSiteForBytecodeIndex(RegisterID structureAndIndexingType, RegisterID scratch, unsigned bytecodeIndex)
</span><span class="cx"> {
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     emitArrayProfilingSite(structureAndIndexingType, scratch, m_codeBlock-&gt;getOrAddArrayProfile(bytecodeIndex));
</span><del>-#else
-    UNUSED_PARAM(bytecodeIndex);
-    emitArrayProfilingSite(structureAndIndexingType, scratch, 0);
-#endif
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline void JIT::emitArrayProfileStoreToHoleSpecialCase(ArrayProfile* arrayProfile)
</span><span class="cx"> {
</span><del>-#if ENABLE(VALUE_PROFILER)    
</del><span class="cx">     store8(TrustedImm32(1), arrayProfile-&gt;addressOfMayStoreToHole());
</span><del>-#else
-    UNUSED_PARAM(arrayProfile);
-#endif
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline void JIT::emitArrayProfileOutOfBoundsSpecialCase(ArrayProfile* arrayProfile)
</span><span class="cx"> {
</span><del>-#if ENABLE(VALUE_PROFILER)    
</del><span class="cx">     store8(TrustedImm32(1), arrayProfile-&gt;addressOfOutOfBounds());
</span><del>-#else
-    UNUSED_PARAM(arrayProfile);
-#endif
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> static inline bool arrayProfileSaw(ArrayModes arrayModes, IndexingType capability)
</span><span class="cx"> {
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     return arrayModesInclude(arrayModes, capability);
</span><del>-#else
-    UNUSED_PARAM(arrayModes);
-    UNUSED_PARAM(capability);
-    return false;
-#endif
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> inline JITArrayMode JIT::chooseArrayMode(ArrayProfile* profile)
</span><span class="cx"> {
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     ConcurrentJITLocker locker(m_codeBlock-&gt;m_lock);
</span><span class="cx">     profile-&gt;computeUpdatedPrediction(locker, m_codeBlock);
</span><span class="cx">     ArrayModes arrayModes = profile-&gt;observedArrayModes(locker);
</span><span class="lines">@@ -797,10 +758,6 @@
</span><span class="cx">     if (arrayProfileSaw(arrayModes, ArrayStorageShape))
</span><span class="cx">         return JITArrayStorage;
</span><span class="cx">     return JITContiguous;
</span><del>-#else
-    UNUSED_PARAM(profile);
-    return JITContiguous;
-#endif
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> #if USE(JSVALUE32_64)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITOpcodescpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITOpcodes.cpp (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITOpcodes.cpp        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/jit/JITOpcodes.cpp        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -1071,7 +1071,7 @@
</span><span class="cx"> 
</span><span class="cx">     signExtend32ToPtr(regT1, regT1);
</span><span class="cx">     load64(BaseIndex(callFrameRegister, regT1, TimesEight, CallFrame::thisArgumentOffset() * static_cast&lt;int&gt;(sizeof(Register))), regT0);
</span><del>-    emitValueProfilingSite(regT4);
</del><ins>+    emitValueProfilingSite();
</ins><span class="cx">     emitPutVirtualRegister(dst, regT0);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITOpcodes32_64cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -1170,7 +1170,7 @@
</span><span class="cx">     
</span><span class="cx">     loadPtr(BaseIndex(callFrameRegister, regT2, TimesEight, OBJECT_OFFSETOF(JSValue, u.asBits.payload) + CallFrame::thisArgumentOffset() * static_cast&lt;int&gt;(sizeof(Register))), regT0);
</span><span class="cx">     loadPtr(BaseIndex(callFrameRegister, regT2, TimesEight, OBJECT_OFFSETOF(JSValue, u.asBits.tag) + CallFrame::thisArgumentOffset() * static_cast&lt;int&gt;(sizeof(Register))), regT1);
</span><del>-    emitValueProfilingSite(regT4);
</del><ins>+    emitValueProfilingSite();
</ins><span class="cx">     emitStore(dst, regT1, regT0);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITPropertyAccesscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -143,7 +143,7 @@
</span><span class="cx">     resultOK.link(this);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    emitValueProfilingSite(regT4);
</del><ins>+    emitValueProfilingSite();
</ins><span class="cx">     emitPutVirtualRegister(dst);
</span><span class="cx">     
</span><span class="cx">     m_byValCompilationInfo.append(ByValCompilationInfo(m_bytecodeOffset, badType, mode, done));
</span><span class="lines">@@ -232,7 +232,7 @@
</span><span class="cx">     m_byValCompilationInfo[m_byValInstructionIndex].returnAddress = call;
</span><span class="cx">     m_byValInstructionIndex++;
</span><span class="cx"> 
</span><del>-    emitValueProfilingSite(regT4);
</del><ins>+    emitValueProfilingSite();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void JIT::compileGetDirectOffset(RegisterID base, RegisterID result, RegisterID offset, RegisterID scratch, FinalObjectMode finalObjectMode)
</span><span class="lines">@@ -525,7 +525,7 @@
</span><span class="cx">     addSlowCase(gen.slowPathJump());
</span><span class="cx">     m_getByIds.append(gen);
</span><span class="cx"> 
</span><del>-    emitValueProfilingSite(regT4);
</del><ins>+    emitValueProfilingSite();
</ins><span class="cx">     emitPutVirtualRegister(resultVReg);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -743,7 +743,7 @@
</span><span class="cx">         break;
</span><span class="cx">     }
</span><span class="cx">     emitPutVirtualRegister(dst);
</span><del>-    emitValueProfilingSite(regT4);
</del><ins>+    emitValueProfilingSite();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void JIT::emitSlow_op_get_from_scope(Instruction* currentInstruction, Vector&lt;SlowCaseEntry&gt;::iterator&amp; iter)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorejitJITPropertyAccess32_64cpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -168,7 +168,7 @@
</span><span class="cx">     resultOK.link(this);
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    emitValueProfilingSite(regT4);
</del><ins>+    emitValueProfilingSite();
</ins><span class="cx">     emitStore(dst, regT1, regT0);
</span><span class="cx">     
</span><span class="cx">     m_byValCompilationInfo.append(ByValCompilationInfo(m_bytecodeOffset, badType, mode, done));
</span><span class="lines">@@ -263,7 +263,7 @@
</span><span class="cx">     m_byValCompilationInfo[m_byValInstructionIndex].returnAddress = call;
</span><span class="cx">     m_byValInstructionIndex++;
</span><span class="cx"> 
</span><del>-    emitValueProfilingSite(regT4);
</del><ins>+    emitValueProfilingSite();
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void JIT::emit_op_put_by_val(Instruction* currentInstruction)
</span><span class="lines">@@ -487,7 +487,7 @@
</span><span class="cx">     addSlowCase(gen.slowPathJump());
</span><span class="cx">     m_getByIds.append(gen);
</span><span class="cx"> 
</span><del>-    emitValueProfilingSite(regT4);
</del><ins>+    emitValueProfilingSite();
</ins><span class="cx">     emitStore(dst, regT1, regT0);
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -783,7 +783,7 @@
</span><span class="cx">         addSlowCase(jump());
</span><span class="cx">         break;
</span><span class="cx">     }
</span><del>-    emitValueProfilingSite(regT4);
</del><ins>+    emitValueProfilingSite();
</ins><span class="cx">     emitStore(dst, regT1, regT0);
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorellintLLIntOfflineAsmConfigh"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -148,10 +148,4 @@
</span><span class="cx"> #define OFFLINE_ASM_ALWAYS_ALLOCATE_SLOW 0
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-#if ENABLE(VALUE_PROFILER)
-#define OFFLINE_ASM_VALUE_PROFILER 1
-#else
-#define OFFLINE_ASM_VALUE_PROFILER 0
-#endif
-
</del><span class="cx"> #endif // LLIntOfflineAsmConfig_h
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorellintLLIntSlowPathscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -119,7 +119,6 @@
</span><span class="cx">         LLINT_END_IMPL();                       \
</span><span class="cx">     } while (false)
</span><span class="cx"> 
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx"> #define LLINT_RETURN_PROFILED(opcode, value) do {               \
</span><span class="cx">         JSValue __rp_returnValue = (value);                     \
</span><span class="cx">         LLINT_CHECK_EXCEPTION();                                \
</span><span class="lines">@@ -133,13 +132,6 @@
</span><span class="cx">         JSValue::encode(value);                  \
</span><span class="cx">     } while (false)
</span><span class="cx"> 
</span><del>-#else // ENABLE(VALUE_PROFILER)
-#define LLINT_RETURN_PROFILED(opcode, value) LLINT_RETURN(value)
-
-#define LLINT_PROFILE_VALUE(opcode, value) do { } while (false)
-
-#endif // ENABLE(VALUE_PROFILER)
-
</del><span class="cx"> #define LLINT_CALL_END_IMPL(exec, callTarget) LLINT_RETURN_TWO((callTarget), (exec))
</span><span class="cx"> 
</span><span class="cx"> #define LLINT_CALL_THROW(exec, exceptionToThrow) do {                   \
</span><span class="lines">@@ -565,16 +557,12 @@
</span><span class="cx">         &amp;&amp; isJSArray(baseValue)
</span><span class="cx">         &amp;&amp; ident == exec-&gt;propertyNames().length) {
</span><span class="cx">         pc[0].u.opcode = LLInt::getOpcode(llint_op_get_array_length);
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">         ArrayProfile* arrayProfile = codeBlock-&gt;getOrAddArrayProfile(pc - codeBlock-&gt;instructions().begin());
</span><span class="cx">         arrayProfile-&gt;observeStructure(baseValue.asCell()-&gt;structure());
</span><span class="cx">         pc[4].u.arrayProfile = arrayProfile;
</span><del>-#endif
</del><span class="cx">     }
</span><span class="cx"> 
</span><del>-#if ENABLE(VALUE_PROFILER)    
</del><span class="cx">     pc[OPCODE_LENGTH(op_get_by_id) - 1].u.profile-&gt;m_buckets[0] = JSValue::encode(result);
</span><del>-#endif
</del><span class="cx">     LLINT_END();
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorellintLowLevelInterpreterasm"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.asm (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.asm        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.asm        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -259,9 +259,7 @@
</span><span class="cx"> macro arrayProfile(structureAndIndexingType, profile, scratch)
</span><span class="cx">     const structure = structureAndIndexingType
</span><span class="cx">     const indexingType = structureAndIndexingType
</span><del>-    if VALUE_PROFILER
-        storep structure, ArrayProfile::m_lastSeenStructure[profile]
-    end
</del><ins>+    storep structure, ArrayProfile::m_lastSeenStructure[profile]
</ins><span class="cx">     loadb Structure::m_indexingType[structure], indexingType
</span><span class="cx"> end
</span><span class="cx"> 
</span><span class="lines">@@ -343,37 +341,35 @@
</span><span class="cx"> # Expects that CodeBlock is in t1, which is what prologue() leaves behind.
</span><span class="cx"> # Must call dispatch(0) after calling this.
</span><span class="cx"> macro functionInitialization(profileArgSkip)
</span><del>-    if VALUE_PROFILER
-        # Profile the arguments. Unfortunately, we have no choice but to do this. This
-        # code is pretty horrendous because of the difference in ordering between
-        # arguments and value profiles, the desire to have a simple loop-down-to-zero
-        # loop, and the desire to use only three registers so as to preserve the PC and
-        # the code block. It is likely that this code should be rewritten in a more
-        # optimal way for architectures that have more than five registers available
-        # for arbitrary use in the interpreter.
-        loadi CodeBlock::m_numParameters[t1], t0
-        addp -profileArgSkip, t0 # Use addi because that's what has the peephole
-        assert(macro (ok) bpgteq t0, 0, ok end)
-        btpz t0, .argumentProfileDone
-        loadp CodeBlock::m_argumentValueProfiles + VectorBufferOffset[t1], t3
-        mulp sizeof ValueProfile, t0, t2 # Aaaaahhhh! Need strength reduction!
-        lshiftp 3, t0
-        addp t2, t3
-    .argumentProfileLoop:
-        if JSVALUE64
-            loadq ThisArgumentOffset - 8 + profileArgSkip * 8[cfr, t0], t2
-            subp sizeof ValueProfile, t3
-            storeq t2, profileArgSkip * sizeof ValueProfile + ValueProfile::m_buckets[t3]
-        else
-            loadi ThisArgumentOffset + TagOffset - 8 + profileArgSkip * 8[cfr, t0], t2
-            subp sizeof ValueProfile, t3
-            storei t2, profileArgSkip * sizeof ValueProfile + ValueProfile::m_buckets + TagOffset[t3]
-            loadi ThisArgumentOffset + PayloadOffset - 8 + profileArgSkip * 8[cfr, t0], t2
-            storei t2, profileArgSkip * sizeof ValueProfile + ValueProfile::m_buckets + PayloadOffset[t3]
-        end
-        baddpnz -8, t0, .argumentProfileLoop
-    .argumentProfileDone:
</del><ins>+    # Profile the arguments. Unfortunately, we have no choice but to do this. This
+    # code is pretty horrendous because of the difference in ordering between
+    # arguments and value profiles, the desire to have a simple loop-down-to-zero
+    # loop, and the desire to use only three registers so as to preserve the PC and
+    # the code block. It is likely that this code should be rewritten in a more
+    # optimal way for architectures that have more than five registers available
+    # for arbitrary use in the interpreter.
+    loadi CodeBlock::m_numParameters[t1], t0
+    addp -profileArgSkip, t0 # Use addi because that's what has the peephole
+    assert(macro (ok) bpgteq t0, 0, ok end)
+    btpz t0, .argumentProfileDone
+    loadp CodeBlock::m_argumentValueProfiles + VectorBufferOffset[t1], t3
+    mulp sizeof ValueProfile, t0, t2 # Aaaaahhhh! Need strength reduction!
+    lshiftp 3, t0
+    addp t2, t3
+.argumentProfileLoop:
+    if JSVALUE64
+        loadq ThisArgumentOffset - 8 + profileArgSkip * 8[cfr, t0], t2
+        subp sizeof ValueProfile, t3
+        storeq t2, profileArgSkip * sizeof ValueProfile + ValueProfile::m_buckets[t3]
+    else
+        loadi ThisArgumentOffset + TagOffset - 8 + profileArgSkip * 8[cfr, t0], t2
+        subp sizeof ValueProfile, t3
+        storei t2, profileArgSkip * sizeof ValueProfile + ValueProfile::m_buckets + TagOffset[t3]
+        loadi ThisArgumentOffset + PayloadOffset - 8 + profileArgSkip * 8[cfr, t0], t2
+        storei t2, profileArgSkip * sizeof ValueProfile + ValueProfile::m_buckets + PayloadOffset[t3]
</ins><span class="cx">     end
</span><ins>+    baddpnz -8, t0, .argumentProfileLoop
+.argumentProfileDone:
</ins><span class="cx">         
</span><span class="cx">     # Check stack height.
</span><span class="cx">     loadi CodeBlock::m_numCalleeRegisters[t1], t0
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorellintLowLevelInterpreter32_64asm"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -496,11 +496,9 @@
</span><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> macro valueProfile(tag, payload, operand, scratch)
</span><del>-    if VALUE_PROFILER
-        loadp operand[PC], scratch
-        storei tag, ValueProfile::m_buckets + TagOffset[scratch]
-        storei payload, ValueProfile::m_buckets + PayloadOffset[scratch]
-    end
</del><ins>+    loadp operand[PC], scratch
+    storei tag, ValueProfile::m_buckets + TagOffset[scratch]
+    storei payload, ValueProfile::m_buckets + PayloadOffset[scratch]
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -1483,10 +1481,8 @@
</span><span class="cx">     dispatch(6)
</span><span class="cx"> 
</span><span class="cx"> .opGetByValOutOfBounds:
</span><del>-    if VALUE_PROFILER
-        loadpFromInstruction(4, t0)
-        storeb 1, ArrayProfile::m_outOfBounds[t0]
-    end
</del><ins>+    loadpFromInstruction(4, t0)
+    storeb 1, ArrayProfile::m_outOfBounds[t0]
</ins><span class="cx"> .opGetByValSlow:
</span><span class="cx">     callSlowPath(_llint_slow_path_get_by_val)
</span><span class="cx">     dispatch(6)
</span><span class="lines">@@ -1556,10 +1552,8 @@
</span><span class="cx"> 
</span><span class="cx"> .outOfBounds:
</span><span class="cx">     biaeq t3, -sizeof IndexingHeader + IndexingHeader::u.lengths.vectorLength[t0], .opPutByValOutOfBounds
</span><del>-    if VALUE_PROFILER
-        loadp 16[PC], t2
-        storeb 1, ArrayProfile::m_mayStoreToHole[t2]
-    end
</del><ins>+    loadp 16[PC], t2
+    storeb 1, ArrayProfile::m_mayStoreToHole[t2]
</ins><span class="cx">     addi 1, t3, t2
</span><span class="cx">     storei t2, -sizeof IndexingHeader + IndexingHeader::u.lengths.publicLength[t0]
</span><span class="cx">     jmp .storeResult
</span><span class="lines">@@ -1626,10 +1620,8 @@
</span><span class="cx">     dispatch(5)
</span><span class="cx"> 
</span><span class="cx"> .opPutByValArrayStorageEmpty:
</span><del>-    if VALUE_PROFILER
-        loadp 16[PC], t1
-        storeb 1, ArrayProfile::m_mayStoreToHole[t1]
-    end
</del><ins>+    loadp 16[PC], t1
+    storeb 1, ArrayProfile::m_mayStoreToHole[t1]
</ins><span class="cx">     addi 1, ArrayStorage::m_numValuesInVector[t0]
</span><span class="cx">     bib t3, -sizeof IndexingHeader + IndexingHeader::u.lengths.publicLength[t0], .opPutByValArrayStorageStoreResult
</span><span class="cx">     addi 1, t3, t1
</span><span class="lines">@@ -1637,10 +1629,8 @@
</span><span class="cx">     jmp .opPutByValArrayStorageStoreResult
</span><span class="cx"> 
</span><span class="cx"> .opPutByValOutOfBounds:
</span><del>-    if VALUE_PROFILER
-        loadpFromInstruction(4, t0)
-        storeb 1, ArrayProfile::m_outOfBounds[t0]
-    end
</del><ins>+    loadpFromInstruction(4, t0)
+    storeb 1, ArrayProfile::m_outOfBounds[t0]
</ins><span class="cx"> .opPutByValSlow:
</span><span class="cx">     callSlowPath(slowPath)
</span><span class="cx">     dispatch(5)
</span><span class="lines">@@ -1857,16 +1847,14 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> macro arrayProfileForCall()
</span><del>-    if VALUE_PROFILER
-        loadi 16[PC], t3
-        negi t3
-        bineq ThisArgumentOffset + TagOffset[cfr, t3, 8], CellTag, .done
-        loadi ThisArgumentOffset + PayloadOffset[cfr, t3, 8], t0
-        loadp JSCell::m_structure[t0], t0
-        loadp 24[PC], t1
-        storep t0, ArrayProfile::m_lastSeenStructure[t1]
-    .done:
-    end
</del><ins>+    loadi 16[PC], t3
+    negi t3
+    bineq ThisArgumentOffset + TagOffset[cfr, t3, 8], CellTag, .done
+    loadi ThisArgumentOffset + PayloadOffset[cfr, t3, 8], t0
+    loadp JSCell::m_structure[t0], t0
+    loadp 24[PC], t1
+    storep t0, ArrayProfile::m_lastSeenStructure[t1]
+.done:
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> macro doCall(slowPath)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCorellintLowLevelInterpreter64asm"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -336,10 +336,8 @@
</span><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> macro valueProfile(value, operand, scratch)
</span><del>-    if VALUE_PROFILER
-        loadpFromInstruction(operand, scratch)
-        storeq value, ValueProfile::m_buckets[scratch]
-    end
</del><ins>+    loadpFromInstruction(operand, scratch)
+    storeq value, ValueProfile::m_buckets[scratch]
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="lines">@@ -1284,10 +1282,8 @@
</span><span class="cx">     dispatch(6)
</span><span class="cx"> 
</span><span class="cx"> .opGetByValOutOfBounds:
</span><del>-    if VALUE_PROFILER
-        loadpFromInstruction(4, t0)
-        storeb 1, ArrayProfile::m_outOfBounds[t0]
-    end
</del><ins>+    loadpFromInstruction(4, t0)
+    storeb 1, ArrayProfile::m_outOfBounds[t0]
</ins><span class="cx"> .opGetByValSlow:
</span><span class="cx">     callSlowPath(_llint_slow_path_get_by_val)
</span><span class="cx">     dispatch(6)
</span><span class="lines">@@ -1357,10 +1353,8 @@
</span><span class="cx"> 
</span><span class="cx"> .outOfBounds:
</span><span class="cx">     biaeq t3, -sizeof IndexingHeader + IndexingHeader::u.lengths.vectorLength[t0], .opPutByValOutOfBounds
</span><del>-    if VALUE_PROFILER
-        loadp 32[PB, PC, 8], t2
-        storeb 1, ArrayProfile::m_mayStoreToHole[t2]
-    end
</del><ins>+    loadp 32[PB, PC, 8], t2
+    storeb 1, ArrayProfile::m_mayStoreToHole[t2]
</ins><span class="cx">     addi 1, t3, t2
</span><span class="cx">     storei t2, -sizeof IndexingHeader + IndexingHeader::u.lengths.publicLength[t0]
</span><span class="cx">     jmp .storeResult
</span><span class="lines">@@ -1423,10 +1417,8 @@
</span><span class="cx">     dispatch(5)
</span><span class="cx"> 
</span><span class="cx"> .opPutByValArrayStorageEmpty:
</span><del>-    if VALUE_PROFILER
-        loadpFromInstruction(4, t1)
-        storeb 1, ArrayProfile::m_mayStoreToHole[t1]
-    end
</del><ins>+    loadpFromInstruction(4, t1)
+    storeb 1, ArrayProfile::m_mayStoreToHole[t1]
</ins><span class="cx">     addi 1, ArrayStorage::m_numValuesInVector[t0]
</span><span class="cx">     bib t3, -sizeof IndexingHeader + IndexingHeader::u.lengths.publicLength[t0], .opPutByValArrayStorageStoreResult
</span><span class="cx">     addi 1, t3, t1
</span><span class="lines">@@ -1434,10 +1426,8 @@
</span><span class="cx">     jmp .opPutByValArrayStorageStoreResult
</span><span class="cx"> 
</span><span class="cx"> .opPutByValOutOfBounds:
</span><del>-    if VALUE_PROFILER
-        loadpFromInstruction(4, t0)
-        storeb 1, ArrayProfile::m_outOfBounds[t0]
-    end
</del><ins>+    loadpFromInstruction(4, t0)
+    storeb 1, ArrayProfile::m_outOfBounds[t0]
</ins><span class="cx"> .opPutByValSlow:
</span><span class="cx">     callSlowPath(slowPath)
</span><span class="cx">     dispatch(5)
</span><span class="lines">@@ -1659,16 +1649,14 @@
</span><span class="cx"> 
</span><span class="cx"> 
</span><span class="cx"> macro arrayProfileForCall()
</span><del>-    if VALUE_PROFILER
-        loadisFromInstruction(4, t3)
-        negp t3
-        loadq ThisArgumentOffset[cfr, t3, 8], t0
-        btqnz t0, tagMask, .done
-        loadp JSCell::m_structure[t0], t0
-        loadpFromInstruction(6, t1)
-        storep t0, ArrayProfile::m_lastSeenStructure[t1]
-    .done:
-    end
</del><ins>+    loadisFromInstruction(4, t3)
+    negp t3
+    loadq ThisArgumentOffset[cfr, t3, 8], t0
+    btqnz t0, tagMask, .done
+    loadp JSCell::m_structure[t0], t0
+    loadpFromInstruction(6, t1)
+    storep t0, ArrayProfile::m_lastSeenStructure[t1]
+.done:
</ins><span class="cx"> end
</span><span class="cx"> 
</span><span class="cx"> macro doCall(slowPath)
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreprofilerProfilerBytecodeSequencecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/profiler/ProfilerBytecodeSequence.cpp (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/profiler/ProfilerBytecodeSequence.cpp        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/profiler/ProfilerBytecodeSequence.cpp        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -38,7 +38,6 @@
</span><span class="cx"> {
</span><span class="cx">     StringPrintStream out;
</span><span class="cx">     
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx">     for (unsigned i = 0; i &lt; codeBlock-&gt;numberOfArgumentValueProfiles(); ++i) {
</span><span class="cx">         ConcurrentJITLocker locker(codeBlock-&gt;m_lock);
</span><span class="cx">         CString description = codeBlock-&gt;valueProfileForArgument(i)-&gt;briefDescription(locker);
</span><span class="lines">@@ -48,7 +47,6 @@
</span><span class="cx">         out.print(&quot;arg&quot;, i, &quot; (r&quot;, virtualRegisterForArgument(i).offset(), &quot;): &quot;, description);
</span><span class="cx">         m_header.append(out.toCString());
</span><span class="cx">     }
</span><del>-#endif // ENABLE(VALUE_PROFILER)
</del><span class="cx">     
</span><span class="cx">     for (unsigned bytecodeIndex = 0; bytecodeIndex &lt; codeBlock-&gt;instructions().size();) {
</span><span class="cx">         out.reset();
</span></span></pre></div>
<a id="trunkSourceJavaScriptCoreruntimeCommonSlowPathscpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.cpp        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -124,7 +124,6 @@
</span><span class="cx">         END_IMPL();                       \
</span><span class="cx">     } while (false)
</span><span class="cx"> 
</span><del>-#if ENABLE(VALUE_PROFILER)
</del><span class="cx"> #define RETURN_PROFILED(opcode, value) do {                  \
</span><span class="cx">         JSValue rpPeturnValue = (value);                     \
</span><span class="cx">         CHECK_EXCEPTION();                                   \
</span><span class="lines">@@ -138,13 +137,6 @@
</span><span class="cx">         JSValue::encode(value);                  \
</span><span class="cx">     } while (false)
</span><span class="cx"> 
</span><del>-#else // ENABLE(VALUE_PROFILER)
-#define RETURN_PROFILED(opcode, value) RETURN(value)
-
-#define PROFILE_VALUE(opcode, value) do { } while (false)
-
-#endif // ENABLE(VALUE_PROFILER)
-
</del><span class="cx"> #define CALL_END_IMPL(exec, callTarget) RETURN_TWO((callTarget), (exec))
</span><span class="cx"> 
</span><span class="cx"> #define CALL_THROW(exec, pc, exceptionToThrow) do {                     \
</span></span></pre></div>
<a id="trunkSourceWTFChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/ChangeLog (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/ChangeLog        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/WTF/ChangeLog        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -1,3 +1,11 @@
</span><ins>+2014-01-06  Filip Pizlo  &lt;fpizlo@apple.com&gt;
+
+        Get rid of ENABLE(VALUE_PROFILER). It's on all the time now.
+
+        Rubber stamped by Mark Hahnenberg.
+
+        * wtf/Platform.h:
+
</ins><span class="cx"> 2014-01-06  Zan Dobersek  &lt;zdobersek@igalia.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Remove using directives for the std namespace from WTF
</span></span></pre></div>
<a id="trunkSourceWTFwtfPlatformh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WTF/wtf/Platform.h (161363 => 161364)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WTF/wtf/Platform.h        2014-01-06 20:35:58 UTC (rev 161363)
+++ trunk/Source/WTF/wtf/Platform.h        2014-01-06 20:41:32 UTC (rev 161364)
</span><span class="lines">@@ -772,18 +772,6 @@
</span><span class="cx"> #error You have to have at least one execution model enabled to build JSC
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-/* Profiling of types and values used by JIT code. DFG_JIT depends on it, but you
-   can enable it manually with DFG turned off if you want to use it as a standalone
-   profiler. In that case, you probably want to also enable VERBOSE_VALUE_PROFILE
-   below. */
-#if !defined(ENABLE_VALUE_PROFILER) &amp;&amp; ENABLE(DFG_JIT)
-#define ENABLE_VALUE_PROFILER 1
-#endif
-
-#if !defined(ENABLE_VERBOSE_VALUE_PROFILE) &amp;&amp; ENABLE(VALUE_PROFILER)
-#define ENABLE_VERBOSE_VALUE_PROFILE 0
-#endif
-
</del><span class="cx"> /* Generational collector for JSC */
</span><span class="cx"> #if !defined(ENABLE_GGC)
</span><span class="cx"> #define ENABLE_GGC 0
</span></span></pre>
</div>
</div>

</body>
</html>