Title: [194164] trunk/Source/_javascript_Core
Revision
194164
Author
[email protected]
Date
2015-12-16 11:10:55 -0800 (Wed, 16 Dec 2015)

Log Message

Work around a bug in LLVM by flipping the unification order
https://bugs.webkit.org/show_bug.cgi?id=152341
rdar://problem/23920749

Reviewed by Mark Lam.

* dfg/DFGUnificationPhase.cpp:
(JSC::DFG::UnificationPhase::run):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (194163 => 194164)


--- trunk/Source/_javascript_Core/ChangeLog	2015-12-16 19:02:42 UTC (rev 194163)
+++ trunk/Source/_javascript_Core/ChangeLog	2015-12-16 19:10:55 UTC (rev 194164)
@@ -1,3 +1,14 @@
+2015-12-16  Filip Pizlo  <[email protected]>
+
+        Work around a bug in LLVM by flipping the unification order
+        https://bugs.webkit.org/show_bug.cgi?id=152341
+        rdar://problem/23920749
+
+        Reviewed by Mark Lam.
+
+        * dfg/DFGUnificationPhase.cpp:
+        (JSC::DFG::UnificationPhase::run):
+
 2015-12-16  Saam barati  <[email protected]>
 
         Add "explicit operator bool" to ScratchRegisterAllocator::PreservedState

Modified: trunk/Source/_javascript_Core/dfg/DFGUnificationPhase.cpp (194163 => 194164)


--- trunk/Source/_javascript_Core/dfg/DFGUnificationPhase.cpp	2015-12-16 19:02:42 UTC (rev 194163)
+++ trunk/Source/_javascript_Core/dfg/DFGUnificationPhase.cpp	2015-12-16 19:10:55 UTC (rev 194164)
@@ -59,8 +59,12 @@
                 for (unsigned childIdx = 0; childIdx < AdjacencyList::Size; ++childIdx) {
                     if (!phi->children.child(childIdx))
                         break;
-                    
-                    phi->children.child(childIdx)->variableAccessData()->unify(phi->variableAccessData());
+
+                    // We'd like to reverse the order of unification because it helps to reveal
+                    // more bugs on our end, though it's otherwise not observable. But we do it
+                    // this way because it works around a bug in open source LLVM's live-outs
+                    // computation.
+                    phi->variableAccessData()->unify(phi->children.child(childIdx)->variableAccessData());
                 }
             }
         }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to