Title: [207437] trunk/Source/_javascript_Core
- Revision
- 207437
- Author
- [email protected]
- 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 <[email protected]>
+
+ [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 <[email protected]>
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
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes