Title: [199690] trunk/Source/_javascript_Core
Revision
199690
Author
[email protected]
Date
2016-04-18 15:09:27 -0700 (Mon, 18 Apr 2016)

Log Message

Disable AVX.

Rubber stampted by Benjamin Poulain.

AVX is silly. If you use it and some of your other code isn't careful with float register bits, you
will run 10x slower. We could fix the underlying issue, but it's better to stay away from this odd
instruction subset.

This fixes a massive regression on some real code.

* assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::supportsAVX):
(JSC::MacroAssemblerX86Common::updateEax1EcxFlags):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (199689 => 199690)


--- trunk/Source/_javascript_Core/ChangeLog	2016-04-18 21:53:02 UTC (rev 199689)
+++ trunk/Source/_javascript_Core/ChangeLog	2016-04-18 22:09:27 UTC (rev 199690)
@@ -1,5 +1,21 @@
 2016-04-18  Filip Pizlo  <[email protected]>
 
+        Disable AVX.
+
+        Rubber stampted by Benjamin Poulain.
+
+        AVX is silly. If you use it and some of your other code isn't careful with float register bits, you
+        will run 10x slower. We could fix the underlying issue, but it's better to stay away from this odd
+        instruction subset.
+
+        This fixes a massive regression on some real code.
+
+        * assembler/MacroAssemblerX86Common.h:
+        (JSC::MacroAssemblerX86Common::supportsAVX):
+        (JSC::MacroAssemblerX86Common::updateEax1EcxFlags):
+
+2016-04-18  Filip Pizlo  <[email protected]>
+
         ToThis should have a fast path based on type info flags
         https://bugs.webkit.org/show_bug.cgi?id=156712
 

Modified: trunk/Source/_javascript_Core/assembler/MacroAssemblerX86Common.h (199689 => 199690)


--- trunk/Source/_javascript_Core/assembler/MacroAssemblerX86Common.h	2016-04-18 21:53:02 UTC (rev 199689)
+++ trunk/Source/_javascript_Core/assembler/MacroAssemblerX86Common.h	2016-04-18 22:09:27 UTC (rev 199690)
@@ -2620,9 +2620,8 @@
 
     static bool supportsAVX()
     {
-        if (s_avxCheckState == CPUIDCheckState::NotChecked)
-            updateEax1EcxFlags();
-        return s_avxCheckState == CPUIDCheckState::Set;
+        // AVX still causes mysterious regressions and those regressions can be massive.
+        return false;
     }
 
     static void updateEax1EcxFlags()
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to