Title: [161446] trunk/Source/_javascript_Core
Revision
161446
Author
[email protected]
Date
2014-01-07 12:47:50 -0800 (Tue, 07 Jan 2014)

Log Message

r161364 caused JSC tests regression on non-DFG builds (e.g. C Loop and Windows).
https://bugs.webkit.org/show_bug.cgi?id=126589.

Reviewed by Filip Pizlo.

After the removal of ENABLE(VALUE_PROFILER), the LLINT is now expecting the
relevant opcode operands to point to ValueProfiler data structures and will
write profiling data into them. Hence, we need to allocate these data
structures even though the profiling data won't be used in non-DFG builds.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (161445 => 161446)


--- trunk/Source/_javascript_Core/ChangeLog	2014-01-07 20:16:37 UTC (rev 161445)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-01-07 20:47:50 UTC (rev 161446)
@@ -1,3 +1,18 @@
+2014-01-07  Mark Lam  <[email protected]>
+
+        r161364 caused JSC tests regression on non-DFG builds (e.g. C Loop and Windows).
+        https://bugs.webkit.org/show_bug.cgi?id=126589.
+
+        Reviewed by Filip Pizlo.
+
+        After the removal of ENABLE(VALUE_PROFILER), the LLINT is now expecting the
+        relevant opcode operands to point to ValueProfiler data structures and will
+        write profiling data into them. Hence, we need to allocate these data
+        structures even though the profiling data won't be used in non-DFG builds.
+
+        * bytecode/CodeBlock.cpp:
+        (JSC::CodeBlock::CodeBlock):
+
 2014-01-07  Filip Pizlo  <[email protected]>
 
         ASSERT in compileArithNegate on pdfjs

Modified: trunk/Source/_javascript_Core/bytecode/CodeBlock.cpp (161445 => 161446)


--- trunk/Source/_javascript_Core/bytecode/CodeBlock.cpp	2014-01-07 20:16:37 UTC (rev 161445)
+++ trunk/Source/_javascript_Core/bytecode/CodeBlock.cpp	2014-01-07 20:47:50 UTC (rev 161446)
@@ -1644,14 +1644,12 @@
     if (size_t size = unlinkedCodeBlock->numberOfLLintCallLinkInfos())
         m_llintCallLinkInfos.resizeToFit(size);
 #endif
-#if ENABLE(DFG_JIT)
     if (size_t size = unlinkedCodeBlock->numberOfArrayProfiles())
         m_arrayProfiles.grow(size);
     if (size_t size = unlinkedCodeBlock->numberOfArrayAllocationProfiles())
         m_arrayAllocationProfiles.resizeToFit(size);
     if (size_t size = unlinkedCodeBlock->numberOfValueProfiles())
         m_valueProfiles.resizeToFit(size);
-#endif
     if (size_t size = unlinkedCodeBlock->numberOfObjectAllocationProfiles())
         m_objectAllocationProfiles.resizeToFit(size);
 
@@ -1668,7 +1666,6 @@
             instructions[i + j].u.operand = pc[i + j].u.operand;
         }
         switch (pc[i].u.opcode) {
-#if ENABLE(DFG_JIT)
         case op_get_by_val:
         case op_get_argument_by_val: {
             int arrayProfileIndex = pc[i + opLength - 2].u.operand;
@@ -1705,7 +1702,6 @@
             instructions[i + opLength - 1] = &m_arrayAllocationProfiles[arrayAllocationProfileIndex];
             break;
         }
-#endif
         case op_new_object: {
             int objectAllocationProfileIndex = pc[i + opLength - 1].u.operand;
             ObjectAllocationProfile* objectAllocationProfile = &m_objectAllocationProfiles[objectAllocationProfileIndex];
@@ -1719,7 +1715,6 @@
 
         case op_call:
         case op_call_eval: {
-#if ENABLE(DFG_JIT)
             ValueProfile* profile = "" + opLength - 1].u.operand];
             ASSERT(profile->m_bytecodeOffset == -1);
             profile->m_bytecodeOffset = i;
@@ -1727,7 +1722,6 @@
             int arrayProfileIndex = pc[i + opLength - 2].u.operand;
             m_arrayProfiles[arrayProfileIndex] = ArrayProfile(i);
             instructions[i + opLength - 2] = &m_arrayProfiles[arrayProfileIndex];
-#endif
 #if ENABLE(LLINT)
             instructions[i + 5] = &m_llintCallLinkInfos[pc[i + 5].u.operand];
 #endif
@@ -1737,12 +1731,10 @@
 #if ENABLE(LLINT)
             instructions[i + 5] = &m_llintCallLinkInfos[pc[i + 5].u.operand];
 #endif
-#if ENABLE(DFG_JIT)
             ValueProfile* profile = "" + opLength - 1].u.operand];
             ASSERT(profile->m_bytecodeOffset == -1);
             profile->m_bytecodeOffset = i;
             instructions[i + opLength - 1] = profile;
-#endif
             break;
         }
         case op_get_by_id_out_of_line:
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to