Title: [161487] branches/jsCStack/Source/_javascript_Core
Revision
161487
Author
fpi...@apple.com
Date
2014-01-07 23:59:37 -0800 (Tue, 07 Jan 2014)

Log Message

Disable AVX in the FTL
https://bugs.webkit.org/show_bug.cgi?id=126620

Not yet reviewed.
        
* ftl/FTLAbbreviations.h:
(JSC::FTL::addTargetDependentFunctionAttr):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::lower):

Modified Paths

Diff

Modified: branches/jsCStack/Source/_javascript_Core/ChangeLog (161486 => 161487)


--- branches/jsCStack/Source/_javascript_Core/ChangeLog	2014-01-08 07:50:49 UTC (rev 161486)
+++ branches/jsCStack/Source/_javascript_Core/ChangeLog	2014-01-08 07:59:37 UTC (rev 161487)
@@ -1,5 +1,17 @@
 2014-01-07  Filip Pizlo  <fpi...@apple.com>
 
+        Disable AVX in the FTL
+        https://bugs.webkit.org/show_bug.cgi?id=126620
+
+        Not yet reviewed.
+        
+        * ftl/FTLAbbreviations.h:
+        (JSC::FTL::addTargetDependentFunctionAttr):
+        * ftl/FTLLowerDFGToLLVM.cpp:
+        (JSC::FTL::LowerDFGToLLVM::lower):
+
+2014-01-07  Filip Pizlo  <fpi...@apple.com>
+
         CStack: Call linking should log call linking for DFG and FTL code blocks if --showDFGDisassembly=true
         https://bugs.webkit.org/show_bug.cgi?id=126617
 

Modified: branches/jsCStack/Source/_javascript_Core/ftl/FTLAbbreviations.h (161486 => 161487)


--- branches/jsCStack/Source/_javascript_Core/ftl/FTLAbbreviations.h	2014-01-08 07:50:49 UTC (rev 161486)
+++ branches/jsCStack/Source/_javascript_Core/ftl/FTLAbbreviations.h	2014-01-08 07:59:37 UTC (rev 161487)
@@ -133,6 +133,7 @@
 static inline LValue addFunction(LModule module, const char* name, LType type) { return llvm->AddFunction(module, name, type); }
 static inline void setLinkage(LValue global, LLinkage linkage) { llvm->SetLinkage(global, linkage); }
 static inline void setFunctionCallingConv(LValue function, LCallConv convention) { llvm->SetFunctionCallConv(function, convention); }
+static inline void addTargetDependentFunctionAttr(LValue function, const char* key, const char* value) { llvm->AddTargetDependentFunctionAttr(function, key, value); }
 
 static inline LValue addExternFunction(LModule module, const char* name, LType type)
 {

Modified: branches/jsCStack/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp (161486 => 161487)


--- branches/jsCStack/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp	2014-01-08 07:50:49 UTC (rev 161486)
+++ branches/jsCStack/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp	2014-01-08 07:59:37 UTC (rev 161487)
@@ -98,6 +98,11 @@
         m_ftlState.function = addFunction(
             m_ftlState.module, name.data(), functionType(m_out.int64));
         setFunctionCallingConv(m_ftlState.function, LLVMCCallConv);
+        if (isX86()) {
+            // AVX makes V8/raytrace 80% slower. It makes Kraken/audio-oscillator 4.5x
+            // slower. It should be disabled.
+            addTargetDependentFunctionAttr(m_ftlState.function, "target-features", "-avx");
+        }
         
         m_out.initialize(m_ftlState.module, m_ftlState.function, m_heaps);
         
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to