Title: [124667] trunk/Source/_javascript_Core
Revision
124667
Author
[email protected]
Date
2012-08-03 15:42:29 -0700 (Fri, 03 Aug 2012)

Log Message

DFG handling of get_by_id should always inject a ForceOSRExit node if there is no prediction
https://bugs.webkit.org/show_bug.cgi?id=93162

Reviewed by Mark Hahnenberg.

This simplifies the DFG IR by ensuring that all nodes that use value profiles will be preceded
by a ForceOSRExit if the value profile had no data.

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

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (124666 => 124667)


--- trunk/Source/_javascript_Core/ChangeLog	2012-08-03 22:39:12 UTC (rev 124666)
+++ trunk/Source/_javascript_Core/ChangeLog	2012-08-03 22:42:29 UTC (rev 124667)
@@ -1,5 +1,18 @@
 2012-08-03  Filip Pizlo  <[email protected]>
 
+        DFG handling of get_by_id should always inject a ForceOSRExit node if there is no prediction
+        https://bugs.webkit.org/show_bug.cgi?id=93162
+
+        Reviewed by Mark Hahnenberg.
+
+        This simplifies the DFG IR by ensuring that all nodes that use value profiles will be preceded
+        by a ForceOSRExit if the value profile had no data.
+
+        * dfg/DFGByteCodeParser.cpp:
+        (JSC::DFG::ByteCodeParser::parseBlock):
+
+2012-08-03  Filip Pizlo  <[email protected]>
+
         DFG::StructureCheckHoistingPhase keeps a Node& around for too long
         https://bugs.webkit.org/show_bug.cgi?id=93157
 

Modified: trunk/Source/_javascript_Core/dfg/DFGByteCodeParser.cpp (124666 => 124667)


--- trunk/Source/_javascript_Core/dfg/DFGByteCodeParser.cpp	2012-08-03 22:39:12 UTC (rev 124666)
+++ trunk/Source/_javascript_Core/dfg/DFGByteCodeParser.cpp	2012-08-03 22:42:29 UTC (rev 124667)
@@ -2235,7 +2235,7 @@
         }
         case op_get_by_id:
         case op_get_by_id_out_of_line: {
-            SpeculatedType prediction = getPredictionWithoutOSRExit();
+            SpeculatedType prediction = getPrediction();
             
             NodeIndex base = get(currentInstruction[2].u.operand);
             unsigned identifierNumber = m_inlineStackTop->m_identifierRemap[currentInstruction[3].u.operand];
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to