Title: [207437] trunk/Source/_javascript_Core
Revision
207437
Author
utatane....@gmail.com
Date
2016-10-17 15:09:29 -0700 (Mon, 17 Oct 2016)

Log Message

[DOMJIT][JSC] Add Option::useDOMJIT
https://bugs.webkit.org/show_bug.cgi?id=163457

Reviewed by Saam Barati.

Add an option to switch the DOMJIT optimization.

* bytecode/PolymorphicAccess.cpp:
(JSC::AccessCase::generateImpl):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleGetById):
* runtime/Options.cpp:
(JSC::recomputeDependentOptions):
* runtime/Options.h:

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (207436 => 207437)


--- trunk/Source/_javascript_Core/ChangeLog	2016-10-17 22:03:16 UTC (rev 207436)
+++ trunk/Source/_javascript_Core/ChangeLog	2016-10-17 22:09:29 UTC (rev 207437)
@@ -1,3 +1,20 @@
+2016-10-17  Yusuke Suzuki  <utatane....@gmail.com>
+
+        [DOMJIT][JSC] Add Option::useDOMJIT
+        https://bugs.webkit.org/show_bug.cgi?id=163457
+
+        Reviewed by Saam Barati.
+
+        Add an option to switch the DOMJIT optimization.
+
+        * bytecode/PolymorphicAccess.cpp:
+        (JSC::AccessCase::generateImpl):
+        * dfg/DFGByteCodeParser.cpp:
+        (JSC::DFG::ByteCodeParser::handleGetById):
+        * runtime/Options.cpp:
+        (JSC::recomputeDependentOptions):
+        * runtime/Options.h:
+
 2016-10-17  Filip Pizlo  <fpi...@apple.com>
 
         Air::IRC doesn't need to have a special-case for uncolored Tmps since they all get colored

Modified: trunk/Source/_javascript_Core/bytecode/PolymorphicAccess.cpp (207436 => 207437)


--- trunk/Source/_javascript_Core/bytecode/PolymorphicAccess.cpp	2016-10-17 22:03:16 UTC (rev 207436)
+++ trunk/Source/_javascript_Core/bytecode/PolymorphicAccess.cpp	2016-10-17 22:09:29 UTC (rev 207437)
@@ -949,7 +949,7 @@
             return;
         }
 
-        if (m_type == CustomAccessorGetter && m_rareData->domJIT) {
+        if (Options::useDOMJIT() && m_type == CustomAccessorGetter && m_rareData->domJIT) {
             // We do not need to emit CheckDOM operation since structure check ensures
             // that the structure of the given base value is structure()! So all we should
             // do is performing the CheckDOM thingy in IC compiling time here.

Modified: trunk/Source/_javascript_Core/dfg/DFGByteCodeParser.cpp (207436 => 207437)


--- trunk/Source/_javascript_Core/dfg/DFGByteCodeParser.cpp	2016-10-17 22:03:16 UTC (rev 207436)
+++ trunk/Source/_javascript_Core/dfg/DFGByteCodeParser.cpp	2016-10-17 22:09:29 UTC (rev 207437)
@@ -3302,7 +3302,7 @@
 
     // Special path for custom accessors since custom's offset does not have any meanings.
     // So, this is completely different from Simple one. But we have a chance to optimize it when we use DOMJIT.
-    if (getByIdStatus.isCustom()) {
+    if (Options::useDOMJIT() && getByIdStatus.isCustom()) {
         ASSERT(getByIdStatus.numVariants() == 1);
         ASSERT(!getByIdStatus.makesCalls());
         GetByIdVariant variant = getByIdStatus[0];

Modified: trunk/Source/_javascript_Core/runtime/Options.cpp (207436 => 207437)


--- trunk/Source/_javascript_Core/runtime/Options.cpp	2016-10-17 22:03:16 UTC (rev 207436)
+++ trunk/Source/_javascript_Core/runtime/Options.cpp	2016-10-17 22:09:29 UTC (rev 207437)
@@ -308,6 +308,7 @@
     Options::useJIT() = false;
     Options::useDFGJIT() = false;
     Options::useFTLJIT() = false;
+    Options::useDOMJIT() = false;
 #endif
 #if !ENABLE(YARR_JIT)
     Options::useRegExpJIT() = false;

Modified: trunk/Source/_javascript_Core/runtime/Options.h (207436 => 207437)


--- trunk/Source/_javascript_Core/runtime/Options.h	2016-10-17 22:03:16 UTC (rev 207436)
+++ trunk/Source/_javascript_Core/runtime/Options.h	2016-10-17 22:09:29 UTC (rev 207437)
@@ -108,6 +108,7 @@
     v(bool, useJIT,    true, Normal, "allows the baseline JIT to be used if true") \
     v(bool, useDFGJIT, true, Normal, "allows the DFG JIT to be used if true") \
     v(bool, useRegExpJIT, true, Normal, "allows the RegExp JIT to be used if true") \
+    v(bool, useDOMJIT, true, Normal, "allows the DOMJIT to be used if true") \
     \
     v(bool, reportMustSucceedExecutableAllocations, false, Normal, nullptr) \
     \
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to