Title: [194040] trunk/Source/_javascript_Core
Revision
194040
Author
[email protected]
Date
2015-12-14 11:39:45 -0800 (Mon, 14 Dec 2015)

Log Message

We should not employ the snippet code in the DFG if no OSR exit was previously encountered.
https://bugs.webkit.org/show_bug.cgi?id=152255

Reviewed by Saam Barati.

* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (194039 => 194040)


--- trunk/Source/_javascript_Core/ChangeLog	2015-12-14 19:13:31 UTC (rev 194039)
+++ trunk/Source/_javascript_Core/ChangeLog	2015-12-14 19:39:45 UTC (rev 194040)
@@ -1,3 +1,13 @@
+2015-12-14  Mark Lam  <[email protected]>
+
+        We should not employ the snippet code in the DFG if no OSR exit was previously encountered.
+        https://bugs.webkit.org/show_bug.cgi?id=152255
+
+        Reviewed by Saam Barati.
+
+        * dfg/DFGFixupPhase.cpp:
+        (JSC::DFG::FixupPhase::fixupNode):
+
 2015-12-14  Filip Pizlo  <[email protected]>
 
         B3->Air compare-branch fusion should fuse even if the result of the comparison is used more than once

Modified: trunk/Source/_javascript_Core/dfg/DFGFixupPhase.cpp (194039 => 194040)


--- trunk/Source/_javascript_Core/dfg/DFGFixupPhase.cpp	2015-12-14 19:13:31 UTC (rev 194039)
+++ trunk/Source/_javascript_Core/dfg/DFGFixupPhase.cpp	2015-12-14 19:39:45 UTC (rev 194040)
@@ -185,8 +185,8 @@
         case ArithAdd:
         case ArithSub: {
             if (op == ArithSub
-                && (Node::shouldSpeculateUntypedForArithmetic(node->child1().node(), node->child2().node())
-                    || m_graph.hasExitSite(node->origin.semantic, BadType))) {
+                && Node::shouldSpeculateUntypedForArithmetic(node->child1().node(), node->child2().node())
+                && m_graph.hasExitSite(node->origin.semantic, BadType)) {
 
                 fixEdge<UntypedUse>(node->child1());
                 fixEdge<UntypedUse>(node->child2());
@@ -230,7 +230,7 @@
             Edge& leftChild = node->child1();
             Edge& rightChild = node->child2();
             if (Node::shouldSpeculateUntypedForArithmetic(leftChild.node(), rightChild.node())
-                || m_graph.hasExitSite(node->origin.semantic, BadType)) {
+                && m_graph.hasExitSite(node->origin.semantic, BadType)) {
                 fixEdge<UntypedUse>(leftChild);
                 fixEdge<UntypedUse>(rightChild);
                 node->setResult(NodeResultJS);
@@ -268,8 +268,8 @@
             Edge& leftChild = node->child1();
             Edge& rightChild = node->child2();
             if (op == ArithDiv
-                && (Node::shouldSpeculateUntypedForArithmetic(leftChild.node(), rightChild.node())
-                    || m_graph.hasExitSite(node->origin.semantic, BadType))) {
+                && Node::shouldSpeculateUntypedForArithmetic(leftChild.node(), rightChild.node())
+                && m_graph.hasExitSite(node->origin.semantic, BadType)) {
                 fixEdge<UntypedUse>(leftChild);
                 fixEdge<UntypedUse>(rightChild);
                 node->setResult(NodeResultJS);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to