Title: [138300] trunk/Source/_javascript_Core
Revision
138300
Author
[email protected]
Date
2012-12-20 14:17:05 -0800 (Thu, 20 Dec 2012)

Log Message

DFG shouldn't emit CheckStructure on array accesses if exit profiling tells it not to
https://bugs.webkit.org/show_bug.cgi?id=105577

Reviewed by Mark Hahnenberg.
        
I don't know why this wasn't there from the beginning.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::getArrayModeAndEmitChecks):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (138299 => 138300)


--- trunk/Source/_javascript_Core/ChangeLog	2012-12-20 22:13:16 UTC (rev 138299)
+++ trunk/Source/_javascript_Core/ChangeLog	2012-12-20 22:17:05 UTC (rev 138300)
@@ -1,3 +1,15 @@
+2012-12-20  Filip Pizlo  <[email protected]>
+
+        DFG shouldn't emit CheckStructure on array accesses if exit profiling tells it not to
+        https://bugs.webkit.org/show_bug.cgi?id=105577
+
+        Reviewed by Mark Hahnenberg.
+        
+        I don't know why this wasn't there from the beginning.
+
+        * dfg/DFGByteCodeParser.cpp:
+        (JSC::DFG::ByteCodeParser::getArrayModeAndEmitChecks):
+
 2012-12-19  Filip Pizlo  <[email protected]>
 
         DFG speculation checks that take JumpList should consolidate OSRExits

Modified: trunk/Source/_javascript_Core/dfg/DFGByteCodeParser.cpp (138299 => 138300)


--- trunk/Source/_javascript_Core/dfg/DFGByteCodeParser.cpp	2012-12-20 22:13:16 UTC (rev 138299)
+++ trunk/Source/_javascript_Core/dfg/DFGByteCodeParser.cpp	2012-12-20 22:17:05 UTC (rev 138300)
@@ -944,7 +944,9 @@
         
         ArrayMode result = ArrayMode::fromObserved(profile, action, makeSafe);
         
-        if (profile->hasDefiniteStructure() && result.benefitsFromStructureCheck())
+        if (profile->hasDefiniteStructure()
+            && result.benefitsFromStructureCheck()
+            && !m_inlineStackTop->m_exitProfile.hasExitSite(m_currentIndex, BadCache))
             addToGraph(CheckStructure, OpInfo(m_graph.addStructureSet(profile->expectedStructure())), base);
         
         return result;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to