Diff
Modified: trunk/JSTests/ChangeLog (293472 => 293473)
--- trunk/JSTests/ChangeLog 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/ChangeLog 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,3 +1,40 @@
+2022-04-26 Yusuke Suzuki <ysuz...@apple.com>
+
+ [JSC] Add forceUnlinkedDFG option
+ https://bugs.webkit.org/show_bug.cgi?id=239751
+
+ Reviewed by Saam Barati.
+
+ Attach `forceUnlinkedDFG=0` option to the following tests which require careful story of how DFG is compiled, which is changed with unlinked DFG.
+
+ * stress/arith-abs-on-various-types.js:
+ * stress/arith-abs-to-arith-negate-range-optimizaton.js:
+ * stress/arith-acos-on-various-types.js:
+ * stress/arith-acosh-on-various-types.js:
+ * stress/arith-asin-on-various-types.js:
+ * stress/arith-asinh-on-various-types.js:
+ * stress/arith-atan-on-various-types.js:
+ * stress/arith-atanh-on-various-types.js:
+ * stress/arith-cbrt-on-various-types.js:
+ * stress/arith-ceil-on-various-types.js:
+ * stress/arith-clz32-on-various-types.js:
+ * stress/arith-cos-on-various-types.js:
+ * stress/arith-cosh-on-various-types.js:
+ * stress/arith-expm1-on-various-types.js:
+ * stress/arith-floor-on-various-types.js:
+ * stress/arith-fround-on-various-types.js:
+ * stress/arith-log-on-various-types.js:
+ * stress/arith-log10-on-various-types.js:
+ * stress/arith-log2-on-various-types.js:
+ * stress/arith-round-on-various-types.js:
+ * stress/arith-sin-on-various-types.js:
+ * stress/arith-sinh-on-various-types.js:
+ * stress/arith-sqrt-on-various-types.js:
+ * stress/arith-tan-on-various-types.js:
+ * stress/arith-tanh-on-various-types.js:
+ * stress/arith-trunc-on-various-types.js:
+ * stress/fold-multi-get-by-offset-to-get-by-offset-with-watchpoint.js:
+
2022-04-26 Michael Catanzaro <mcatanz...@redhat.com>
Several internationalization tests broken with ICU 69.1
Modified: trunk/JSTests/stress/arith-abs-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-abs-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-abs-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-abs-to-arith-negate-range-optimizaton.js (293472 => 293473)
--- trunk/JSTests/stress/arith-abs-to-arith-negate-range-optimizaton.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-abs-to-arith-negate-range-optimizaton.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-acos-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-acos-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-acos-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-acosh-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-acosh-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-acosh-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-asin-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-asin-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-asin-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-asinh-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-asinh-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-asinh-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-atan-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-atan-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-atan-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-atanh-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-atanh-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-atanh-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-cbrt-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-cbrt-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-cbrt-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-ceil-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-ceil-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-ceil-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-clz32-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-clz32-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-clz32-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-cos-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-cos-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-cos-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-cosh-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-cosh-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-cosh-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-expm1-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-expm1-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-expm1-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-floor-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-floor-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-floor-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-fround-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-fround-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-fround-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-log-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-log-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-log-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ runNoCJITValidatePhases
//@ runFTLNoCJITValidate
"use strict";
Modified: trunk/JSTests/stress/arith-log10-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-log10-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-log10-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-log2-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-log2-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-log2-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-round-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-round-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-round-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-sin-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-sin-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-sin-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-sinh-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-sinh-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-sinh-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-sqrt-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-sqrt-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-sqrt-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-tan-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-tan-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-tan-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-tanh-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-tanh-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-tanh-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/arith-trunc-on-various-types.js (293472 => 293473)
--- trunk/JSTests/stress/arith-trunc-on-various-types.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/arith-trunc-on-various-types.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,4 +1,5 @@
//@ skip if not $jitTests
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
"use strict";
Modified: trunk/JSTests/stress/fold-multi-get-by-offset-to-get-by-offset-with-watchpoint.js (293472 => 293473)
--- trunk/JSTests/stress/fold-multi-get-by-offset-to-get-by-offset-with-watchpoint.js 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/JSTests/stress/fold-multi-get-by-offset-to-get-by-offset-with-watchpoint.js 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,3 +1,4 @@
+//@ requireOptions("--forceUnlinkedDFG=0")
//@ defaultNoEagerRun
function foo(o) {
Modified: trunk/Source/_javascript_Core/ChangeLog (293472 => 293473)
--- trunk/Source/_javascript_Core/ChangeLog 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/Source/_javascript_Core/ChangeLog 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,3 +1,18 @@
+2022-04-26 Yusuke Suzuki <ysuz...@apple.com>
+
+ [JSC] Add forceUnlinkedDFG option
+ https://bugs.webkit.org/show_bug.cgi?id=239751
+
+ Reviewed by Saam Barati.
+
+ This patch adds forceUnlinkedDFG option to start running tests with unlinked DFG (while it is not truly unlinked yet).
+
+ * jit/JITOperations.cpp:
+ (JSC::JSC_DEFINE_JIT_OPERATION):
+ * runtime/Options.cpp:
+ (JSC::Options::recomputeDependentOptions):
+ * runtime/OptionsList.h:
+
2022-04-26 Elliott Williams <e...@apple.com>
Fix build error: "cp: _javascript_Core.profdata is not a directory"
Modified: trunk/Source/_javascript_Core/jit/JITOperations.cpp (293472 => 293473)
--- trunk/Source/_javascript_Core/jit/JITOperations.cpp 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/Source/_javascript_Core/jit/JITOperations.cpp 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1953,7 +1953,7 @@
// possible in order to minimize the chances of us executing baseline code after
// optimized code is already available.
JITWorklist::State worklistState = JITWorklist::ensureGlobalWorklist().completeAllReadyPlansForVM(
- vm, JITCompilationKey(codeBlock, JITCompilationMode::DFG));
+ vm, JITCompilationKey(codeBlock, Options::forceUnlinkedDFG() ? JITCompilationMode::UnlinkedDFG : JITCompilationMode::DFG));
if (worklistState == JITWorklist::Compiling) {
CODEBLOCK_LOG_EVENT(codeBlock, "delayOptimizeToDFG", ("compiling"));
@@ -2027,7 +2027,7 @@
CodeBlock* replacementCodeBlock = codeBlock->newReplacement();
CompilationResult result = DFG::compile(
- vm, replacementCodeBlock, nullptr, JITCompilationMode::DFG, bytecodeIndex,
+ vm, replacementCodeBlock, nullptr, Options::forceUnlinkedDFG() ? JITCompilationMode::UnlinkedDFG : JITCompilationMode::DFG, bytecodeIndex,
mustHandleValues, JITToDFGDeferredCompilationCallback::create());
if (result != CompilationSuccessful) {
Modified: trunk/Source/_javascript_Core/runtime/Options.cpp (293472 => 293473)
--- trunk/Source/_javascript_Core/runtime/Options.cpp 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/Source/_javascript_Core/runtime/Options.cpp 2022-04-26 22:22:00 UTC (rev 293473)
@@ -439,6 +439,7 @@
#if !CPU(X86_64) && !CPU(ARM64)
Options::useConcurrentGC() = false;
+ Options::forceUnlinkedDFG() = false;
#endif
// At initialization time, we may decide that useJIT should be false for any
Modified: trunk/Source/_javascript_Core/runtime/OptionsList.h (293472 => 293473)
--- trunk/Source/_javascript_Core/runtime/OptionsList.h 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/Source/_javascript_Core/runtime/OptionsList.h 2022-04-26 22:22:00 UTC (rev 293473)
@@ -102,6 +102,7 @@
\
v(Bool, forceCodeBlockLiveness, false, Normal, nullptr) \
v(Bool, forceICFailure, false, Normal, nullptr) \
+ v(Bool, forceUnlinkedDFG, false, Normal, nullptr) \
\
v(Unsigned, repatchCountForCoolDown, 8, Normal, nullptr) \
v(Unsigned, initialCoolDownCount, 20, Normal, nullptr) \
Modified: trunk/Tools/ChangeLog (293472 => 293473)
--- trunk/Tools/ChangeLog 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/Tools/ChangeLog 2022-04-26 22:22:00 UTC (rev 293473)
@@ -1,3 +1,12 @@
+2022-04-26 Yusuke Suzuki <ysuz...@apple.com>
+
+ [JSC] Add forceUnlinkedDFG option
+ https://bugs.webkit.org/show_bug.cgi?id=239751
+
+ Reviewed by Saam Barati.
+
+ * Scripts/run-jsc-stress-tests:
+
2022-04-26 Wenson Hsieh <wenson_hs...@apple.com>
Show the option to Markup Image in the callout bar only when appropriate
Modified: trunk/Tools/Scripts/run-jsc-stress-tests (293472 => 293473)
--- trunk/Tools/Scripts/run-jsc-stress-tests 2022-04-26 22:18:33 UTC (rev 293472)
+++ trunk/Tools/Scripts/run-jsc-stress-tests 2022-04-26 22:22:00 UTC (rev 293473)
@@ -623,7 +623,7 @@
EAGER_OPTIONS = ["--thresholdForJITAfterWarmUp=10", "--thresholdForJITSoon=10", "--thresholdForOptimizeAfterWarmUp=20", "--thresholdForOptimizeAfterLongWarmUp=20", "--thresholdForOptimizeSoon=20", "--thresholdForFTLOptimizeAfterWarmUp=20", "--thresholdForFTLOptimizeSoon=20", "--thresholdForOMGOptimizeAfterWarmUp=20", "--thresholdForOMGOptimizeSoon=20", "--maximumEvalCacheableSourceLength=150000", "--useEagerCodeBlockJettisonTiming=true", "--repatchBufferingCountdown=0"]
# NOTE: Tests rely on this using scribbleFreeCells.
NO_CJIT_OPTIONS = ["--useConcurrentJIT=false", "--thresholdForJITAfterWarmUp=100", "--scribbleFreeCells=true"]
-B3O1_OPTIONS = ["--defaultB3OptLevel=1", "--useDataICInOptimizingJIT=1"]
+B3O1_OPTIONS = ["--defaultB3OptLevel=1", "--useDataICInOptimizingJIT=1", "--forceUnlinkedDFG=1"]
B3O0_OPTIONS = ["--maxDFGNodesInBasicBlockForPreciseAnalysis=100", "--defaultB3OptLevel=0"]
FTL_OPTIONS = ["--useFTLJIT=true"]
FORCE_LLINT_EXIT_OPTIONS = ["--forceOSRExitToLLInt=true"]
@@ -1118,6 +1118,7 @@
"--useSamplingProfiler=true",
"--airForceIRCAllocator=true",
"--useDataICInOptimizingJIT=true",
+ "--forceUnlinkedDFG=true",
] +
FTL_OPTIONS +
NO_CJIT_OPTIONS