Title: [263312] trunk
Revision
263312
Author
ysuz...@apple.com
Date
2020-06-19 20:17:41 -0700 (Fri, 19 Jun 2020)

Log Message

[JSC] Attempt to reduce timeout failures on Apple Watch Series 3
https://bugs.webkit.org/show_bug.cgi?id=213419

Reviewed by Mark Lam.

JSTests:

Look into timeout tests, and

1. If the test is using too many iterations, decrease the count.
2. If the test is still useful while iteration count is not so much, try attaching `slow!` to see the effect on the bot.

* stress/memcpy-typed-loops.js:
* stress/op_bitand.js:
* stress/op_bitor.js:
* stress/op_bitxor.js:
* stress/op_mul-ConstVar.js:
* stress/op_mul-VarConst.js:
* stress/op_mul-VarVar.js:
* stress/op_sub-ConstVar.js:
* stress/op_sub-VarConst.js:
* stress/op_sub-VarVar.js:
* stress/set-iteration-oas.js:
* stress/value-to-boolean.js:

Source/_javascript_Core:

* tools/JSDollarVM.cpp:
(JSC::functionUseJIT):
(JSC::JSDollarVM::finishCreation):

Modified Paths

Diff

Modified: trunk/JSTests/ChangeLog (263311 => 263312)


--- trunk/JSTests/ChangeLog	2020-06-20 02:44:55 UTC (rev 263311)
+++ trunk/JSTests/ChangeLog	2020-06-20 03:17:41 UTC (rev 263312)
@@ -1,3 +1,28 @@
+2020-06-19  Yusuke Suzuki  <ysuz...@apple.com>
+
+        [JSC] Attempt to reduce timeout failures on Apple Watch Series 3
+        https://bugs.webkit.org/show_bug.cgi?id=213419
+
+        Reviewed by Mark Lam.
+
+        Look into timeout tests, and
+
+        1. If the test is using too many iterations, decrease the count.
+        2. If the test is still useful while iteration count is not so much, try attaching `slow!` to see the effect on the bot.
+
+        * stress/memcpy-typed-loops.js:
+        * stress/op_bitand.js:
+        * stress/op_bitor.js:
+        * stress/op_bitxor.js:
+        * stress/op_mul-ConstVar.js:
+        * stress/op_mul-VarConst.js:
+        * stress/op_mul-VarVar.js:
+        * stress/op_sub-ConstVar.js:
+        * stress/op_sub-VarConst.js:
+        * stress/op_sub-VarVar.js:
+        * stress/set-iteration-oas.js:
+        * stress/value-to-boolean.js:
+
 2020-06-19  Mark Lam  <mark....@apple.com>
 
         Make $vm properties non-configurable, non-enumerable, and non-writable.

Modified: trunk/JSTests/stress/memcpy-typed-loops.js (263311 => 263312)


--- trunk/JSTests/stress/memcpy-typed-loops.js	2020-06-20 02:44:55 UTC (rev 263311)
+++ trunk/JSTests/stress/memcpy-typed-loops.js	2020-06-20 03:17:41 UTC (rev 263312)
@@ -27,8 +27,9 @@
     arr1[i] = i
 }
 
-for (let i=0; i<10000000; ++i) noLoop(arr1, arr2)
-for (let i=0; i<10000000; ++i) invalidStart(arr1, arr2)
+const iterationCount = $vm.useJIT() ? 10000000 : 100000;
+for (let i=0; i<iterationCount; ++i) noLoop(arr1, arr2)
+for (let i=0; i<iterationCount; ++i) invalidStart(arr1, arr2)
 
 arr2 = new Int32Array(arr1.length)
 invalidStart(arr1, arr2)

Modified: trunk/JSTests/stress/op_bitand.js (263311 => 263312)


--- trunk/JSTests/stress/op_bitand.js	2020-06-20 02:44:55 UTC (rev 263311)
+++ trunk/JSTests/stress/op_bitand.js	2020-06-20 03:17:41 UTC (rev 263312)
@@ -1,4 +1,5 @@
 //@ runFTLNoCJIT
+//@ slow! if $model == "Apple Watch Series 3"
 
 // If all goes well, this test module will terminate silently. If not, it will print
 // errors. See binary-op-test.js for debugging options if needed.

Modified: trunk/JSTests/stress/op_bitor.js (263311 => 263312)


--- trunk/JSTests/stress/op_bitor.js	2020-06-20 02:44:55 UTC (rev 263311)
+++ trunk/JSTests/stress/op_bitor.js	2020-06-20 03:17:41 UTC (rev 263312)
@@ -1,4 +1,5 @@
 //@ runFTLNoCJIT
+//@ slow! if $model == "Apple Watch Series 3"
 
 // If all goes well, this test module will terminate silently. If not, it will print
 // errors. See binary-op-test.js for debugging options if needed.

Modified: trunk/JSTests/stress/op_bitxor.js (263311 => 263312)


--- trunk/JSTests/stress/op_bitxor.js	2020-06-20 02:44:55 UTC (rev 263311)
+++ trunk/JSTests/stress/op_bitxor.js	2020-06-20 03:17:41 UTC (rev 263312)
@@ -1,4 +1,5 @@
 //@ runFTLNoCJIT
+//@ slow! if $model == "Apple Watch Series 3"
 
 // If all goes well, this test module will terminate silently. If not, it will print
 // errors. See binary-op-test.js for debugging options if needed.

Modified: trunk/JSTests/stress/op_mul-ConstVar.js (263311 => 263312)


--- trunk/JSTests/stress/op_mul-ConstVar.js	2020-06-20 02:44:55 UTC (rev 263311)
+++ trunk/JSTests/stress/op_mul-ConstVar.js	2020-06-20 03:17:41 UTC (rev 263312)
@@ -1,4 +1,5 @@
 //@ runFTLNoCJIT
+//@ slow! if $model == "Apple Watch Series 3"
 
 // If all goes well, this test module will terminate silently. If not, it will print
 // errors. See binary-op-test.js for debugging options if needed.

Modified: trunk/JSTests/stress/op_mul-VarConst.js (263311 => 263312)


--- trunk/JSTests/stress/op_mul-VarConst.js	2020-06-20 02:44:55 UTC (rev 263311)
+++ trunk/JSTests/stress/op_mul-VarConst.js	2020-06-20 03:17:41 UTC (rev 263312)
@@ -1,4 +1,5 @@
 //@ runFTLNoCJIT
+//@ slow! if $model == "Apple Watch Series 3"
 
 // If all goes well, this test module will terminate silently. If not, it will print
 // errors. See binary-op-test.js for debugging options if needed.

Modified: trunk/JSTests/stress/op_mul-VarVar.js (263311 => 263312)


--- trunk/JSTests/stress/op_mul-VarVar.js	2020-06-20 02:44:55 UTC (rev 263311)
+++ trunk/JSTests/stress/op_mul-VarVar.js	2020-06-20 03:17:41 UTC (rev 263312)
@@ -1,4 +1,5 @@
 //@ runFTLNoCJIT
+//@ slow! if $model == "Apple Watch Series 3"
 
 // If all goes well, this test module will terminate silently. If not, it will print
 // errors. See binary-op-test.js for debugging options if needed.

Modified: trunk/JSTests/stress/op_sub-ConstVar.js (263311 => 263312)


--- trunk/JSTests/stress/op_sub-ConstVar.js	2020-06-20 02:44:55 UTC (rev 263311)
+++ trunk/JSTests/stress/op_sub-ConstVar.js	2020-06-20 03:17:41 UTC (rev 263312)
@@ -1,4 +1,5 @@
 //@ runFTLNoCJIT
+//@ slow! if $model == "Apple Watch Series 3"
 
 // If all goes well, this test module will terminate silently. If not, it will print
 // errors. See binary-op-test.js for debugging options if needed.

Modified: trunk/JSTests/stress/op_sub-VarConst.js (263311 => 263312)


--- trunk/JSTests/stress/op_sub-VarConst.js	2020-06-20 02:44:55 UTC (rev 263311)
+++ trunk/JSTests/stress/op_sub-VarConst.js	2020-06-20 03:17:41 UTC (rev 263312)
@@ -1,4 +1,5 @@
 //@ runFTLNoCJIT
+//@ slow! if $model == "Apple Watch Series 3"
 
 // If all goes well, this test module will terminate silently. If not, it will print
 // errors. See binary-op-test.js for debugging options if needed.

Modified: trunk/JSTests/stress/op_sub-VarVar.js (263311 => 263312)


--- trunk/JSTests/stress/op_sub-VarVar.js	2020-06-20 02:44:55 UTC (rev 263311)
+++ trunk/JSTests/stress/op_sub-VarVar.js	2020-06-20 03:17:41 UTC (rev 263312)
@@ -1,4 +1,5 @@
 //@ runFTLNoCJIT
+//@ slow! if $model == "Apple Watch Series 3"
 
 // If all goes well, this test module will terminate silently. If not, it will print
 // errors. See binary-op-test.js for debugging options if needed.

Modified: trunk/JSTests/stress/set-iteration-oas.js (263311 => 263312)


--- trunk/JSTests/stress/set-iteration-oas.js	2020-06-20 02:44:55 UTC (rev 263311)
+++ trunk/JSTests/stress/set-iteration-oas.js	2020-06-20 03:17:41 UTC (rev 263312)
@@ -17,5 +17,6 @@
 }
 noInline(test);
 
-for (var i = 0; i < 1e6; ++i)
+const iterationCount = $vm.useJIT() ? 1e6 : 1e4;
+for (var i = 0; i < iterationCount; ++i)
     shouldBe(test(set), 4950);

Modified: trunk/JSTests/stress/value-to-boolean.js (263311 => 263312)


--- trunk/JSTests/stress/value-to-boolean.js	2020-06-20 02:44:55 UTC (rev 263311)
+++ trunk/JSTests/stress/value-to-boolean.js	2020-06-20 03:17:41 UTC (rev 263312)
@@ -60,8 +60,6 @@
 let masquerader = makeMasquerader();
 for (let testFunction of testFunctions) {
     for (let i = 0; i < 10000; i++) {
-        for (let i = 0; i < 10000; i++) {
-            assert(testFunction(masquerader) === false);
-        }
+        assert(testFunction(masquerader) === false);
     }
 }

Modified: trunk/Source/_javascript_Core/ChangeLog (263311 => 263312)


--- trunk/Source/_javascript_Core/ChangeLog	2020-06-20 02:44:55 UTC (rev 263311)
+++ trunk/Source/_javascript_Core/ChangeLog	2020-06-20 03:17:41 UTC (rev 263312)
@@ -1,3 +1,14 @@
+2020-06-19  Yusuke Suzuki  <ysuz...@apple.com>
+
+        [JSC] Attempt to reduce timeout failures on Apple Watch Series 3
+        https://bugs.webkit.org/show_bug.cgi?id=213419
+
+        Reviewed by Mark Lam.
+
+        * tools/JSDollarVM.cpp:
+        (JSC::functionUseJIT):
+        (JSC::JSDollarVM::finishCreation):
+
 2020-06-19  Mark Lam  <mark....@apple.com>
 
         toString of String doesn't check integrity of structureID in one path.

Modified: trunk/Source/_javascript_Core/tools/JSDollarVM.cpp (263311 => 263312)


--- trunk/Source/_javascript_Core/tools/JSDollarVM.cpp	2020-06-20 02:44:55 UTC (rev 263311)
+++ trunk/Source/_javascript_Core/tools/JSDollarVM.cpp	2020-06-20 03:17:41 UTC (rev 263312)
@@ -3094,6 +3094,11 @@
 #endif
 }
 
+static EncodedJSValue JSC_HOST_CALL functionUseJIT(JSGlobalObject*, CallFrame*)
+{
+    return JSValue::encode(jsBoolean(Options::useJIT()));
+}
+
 constexpr unsigned jsDollarVMPropertyAttributes = PropertyAttribute::ReadOnly | PropertyAttribute::DontEnum | PropertyAttribute::DontDelete;
 
 void JSDollarVM::finishCreation(VM& vm)
@@ -3237,6 +3242,7 @@
     addFunction(vm, "assertEnabled", functionAssertEnabled, 0);
 
     addFunction(vm, "isMemoryLimited", functionIsMemoryLimited, 0);
+    addFunction(vm, "useJIT", functionUseJIT, 0);
 
     m_objectDoingSideEffectPutWithoutCorrectSlotStatusStructure.set(vm, this, ObjectDoingSideEffectPutWithoutCorrectSlotStatus::createStructure(vm, globalObject, jsNull()));
 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to