Modified: trunk/Source/_javascript_Core/ChangeLog (195621 => 195622)
--- trunk/Source/_javascript_Core/ChangeLog 2016-01-26 22:07:28 UTC (rev 195621)
+++ trunk/Source/_javascript_Core/ChangeLog 2016-01-26 22:20:10 UTC (rev 195622)
@@ -1,5 +1,16 @@
2016-01-26 Filip Pizlo <[email protected]>
+ It should be possible to disable FTL for a range like we disable DFG for a range
+ https://bugs.webkit.org/show_bug.cgi?id=153511
+
+ Reviewed by Geoffrey Garen.
+
+ * dfg/DFGTierUpCheckInjectionPhase.cpp:
+ (JSC::DFG::TierUpCheckInjectionPhase::run):
+ * runtime/Options.h:
+
+2016-01-26 Filip Pizlo <[email protected]>
+
Shifts by an amount computed using BitAnd with a mask that subsumes the shift's own mask should be rewired around the BitAnd
https://bugs.webkit.org/show_bug.cgi?id=153505
Modified: trunk/Source/_javascript_Core/dfg/DFGTierUpCheckInjectionPhase.cpp (195621 => 195622)
--- trunk/Source/_javascript_Core/dfg/DFGTierUpCheckInjectionPhase.cpp 2016-01-26 22:07:28 UTC (rev 195621)
+++ trunk/Source/_javascript_Core/dfg/DFGTierUpCheckInjectionPhase.cpp 2016-01-26 22:20:10 UTC (rev 195622)
@@ -54,6 +54,9 @@
if (m_graph.m_profiledBlock->m_didFailFTLCompilation)
return false;
+ if (!Options::bytecodeRangeToFTLCompile().isInRange(m_graph.m_profiledBlock->instructionCount()))
+ return false;
+
#if ENABLE(FTL_JIT)
FTL::CapabilityLevel level = FTL::canCompile(m_graph);
if (level == FTL::CannotCompile)
Modified: trunk/Source/_javascript_Core/runtime/Options.h (195621 => 195622)
--- trunk/Source/_javascript_Core/runtime/Options.h 2016-01-26 22:07:28 UTC (rev 195621)
+++ trunk/Source/_javascript_Core/runtime/Options.h 2016-01-26 22:20:10 UTC (rev 195622)
@@ -141,6 +141,7 @@
v(bool, dumpFTLDisassembly, false, "dumps disassembly of FTL function upon compilation") \
v(bool, dumpAllDFGNodes, false, nullptr) \
v(optionRange, bytecodeRangeToDFGCompile, 0, "bytecode size range to allow DFG compilation on, e.g. 1:100") \
+ v(optionRange, bytecodeRangeToFTLCompile, 0, "bytecode size range to allow FTL compilation on, e.g. 1:100") \
v(optionString, dfgWhitelist, nullptr, "file with list of function signatures to allow DFG compilation on") \
v(bool, dumpSourceAtDFGTime, false, "dumps source code of JS function being DFG compiled") \
v(bool, dumpBytecodeAtDFGTime, false, "dumps bytecode of JS function being DFG compiled") \