Title: [187080] branches/safari-601.1-branch/Source/_javascript_Core
Revision
187080
Author
matthew_han...@apple.com
Date
2015-07-20 21:37:58 -0700 (Mon, 20 Jul 2015)

Log Message

Merge r187028. rdar://problem/21869970

Modified Paths

Diff

Modified: branches/safari-601.1-branch/Source/_javascript_Core/ChangeLog (187079 => 187080)


--- branches/safari-601.1-branch/Source/_javascript_Core/ChangeLog	2015-07-21 04:37:55 UTC (rev 187079)
+++ branches/safari-601.1-branch/Source/_javascript_Core/ChangeLog	2015-07-21 04:37:58 UTC (rev 187080)
@@ -1,3 +1,28 @@
+2015-07-20  Matthew Hanson  <matthew_han...@apple.com>
+
+        Merge r187028. rdar://problem/21869970
+
+    2015-07-18  Filip Pizlo  <fpi...@apple.com>
+
+            REGRESSION(186691): OSR entry is broken on loop headers that have no live variables
+            https://bugs.webkit.org/show_bug.cgi?id=147074
+            rdar://problem/21869970
+
+            Reviewed by Michael Saboff.
+
+            The OSR entry must-handle block/value widening introduced in r186691 would cause the
+            CFA to reexecute if it caused any live local variables to change value. But this fails
+            if the must-handle block has no live local variables, and the entry block otherwise
+            appears to be unreachable.
+
+            This fixes the bug by having the change detection include whether the block hadn't been
+            visited in addition to whether any local variable values got widened.
+
+            This is a ~4% speed-up on SunSpider in browser.
+
+            * dfg/DFGCFAPhase.cpp:
+            (JSC::DFG::CFAPhase::run):
+
 2015-07-16  Matthew Hanson  <matthew_han...@apple.com>
 
         Merge r186920. rdar://problem/21764196

Modified: branches/safari-601.1-branch/Source/_javascript_Core/dfg/DFGCFAPhase.cpp (187079 => 187080)


--- branches/safari-601.1-branch/Source/_javascript_Core/dfg/DFGCFAPhase.cpp	2015-07-21 04:37:55 UTC (rev 187079)
+++ branches/safari-601.1-branch/Source/_javascript_Core/dfg/DFGCFAPhase.cpp	2015-07-21 04:37:58 UTC (rev 187080)
@@ -107,7 +107,7 @@
                         m_graph, resultFor(node->variableAccessData()->flushFormat()));
                 }
                 
-                if (changed) {
+                if (changed || !block->cfaHasVisited) {
                     m_changed = true;
                     block->cfaShouldRevisit = true;
                 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to