Title: [207210] branches/safari-602-branch

Diff

Modified: branches/safari-602-branch/JSTests/ChangeLog (207209 => 207210)


--- branches/safari-602-branch/JSTests/ChangeLog	2016-10-12 08:41:48 UTC (rev 207209)
+++ branches/safari-602-branch/JSTests/ChangeLog	2016-10-12 08:41:51 UTC (rev 207210)
@@ -1,5 +1,19 @@
 2016-10-12  Matthew Hanson  <[email protected]>
 
+        Merge r206472. rdar://problem/28545009
+
+    2016-09-27  Filip Pizlo  <[email protected]>
+
+            B3::lowerMacros forgets to before->updatePredecessorsAfter() when lowering ChillMod on ARM64
+            https://bugs.webkit.org/show_bug.cgi?id=162644
+
+            Reviewed by Keith Miller.
+
+            * stress/chill-mod-chill-mod.js: Added.
+            (foo):
+
+2016-10-12  Matthew Hanson  <[email protected]>
+
         Merge r204868. rdar://problem/28216263
 
     2016-08-23  Keith Miller  <[email protected]>

Added: branches/safari-602-branch/JSTests/stress/chill-mod-chill-mod.js (0 => 207210)


--- branches/safari-602-branch/JSTests/stress/chill-mod-chill-mod.js	                        (rev 0)
+++ branches/safari-602-branch/JSTests/stress/chill-mod-chill-mod.js	2016-10-12 08:41:51 UTC (rev 207210)
@@ -0,0 +1,10 @@
+function foo(a, b)
+{
+    return (~~(a % b)) + (~~(b % a));
+}
+
+noInline(foo);
+
+for (var i = 0; i < 10000; ++i)
+    foo(1, 2);
+

Modified: branches/safari-602-branch/Source/_javascript_Core/ChangeLog (207209 => 207210)


--- branches/safari-602-branch/Source/_javascript_Core/ChangeLog	2016-10-12 08:41:48 UTC (rev 207209)
+++ branches/safari-602-branch/Source/_javascript_Core/ChangeLog	2016-10-12 08:41:51 UTC (rev 207210)
@@ -1,5 +1,22 @@
 2016-10-12  Matthew Hanson  <[email protected]>
 
+        Merge r206472. rdar://problem/28545009
+
+    2016-09-27  Filip Pizlo  <[email protected]>
+
+            B3::lowerMacros forgets to before->updatePredecessorsAfter() when lowering ChillMod on ARM64
+            https://bugs.webkit.org/show_bug.cgi?id=162644
+
+            Reviewed by Keith Miller.
+
+            If you forget to update the predecessors of your successors, then bad things will happen if you
+            do something that requires accurate predecessors for correctness. lowerMacros() uses
+            BlockInsertionSet, which relies on accurate predecessors.
+
+            * b3/B3LowerMacros.cpp:
+
+2016-10-12  Matthew Hanson  <[email protected]>
+
         Merge r204868. rdar://problem/28216263
 
     2016-08-23  Keith Miller  <[email protected]>

Modified: branches/safari-602-branch/Source/_javascript_Core/b3/B3LowerMacros.cpp (207209 => 207210)


--- branches/safari-602-branch/Source/_javascript_Core/b3/B3LowerMacros.cpp	2016-10-12 08:41:48 UTC (rev 207209)
+++ branches/safari-602-branch/Source/_javascript_Core/b3/B3LowerMacros.cpp	2016-10-12 08:41:51 UTC (rev 207210)
@@ -138,6 +138,7 @@
                     normalResult->setPhi(phi);
                     zeroResult->setPhi(phi);
                     m_value->replaceWithIdentity(phi);
+                    before->updatePredecessorsAfter();
                     m_changed = true;
                 } else
                     makeDivisionChill(Mod);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to