Bug 1649928: add CI jobs for Cranelift/aarch64 Wasm backend using simulator. r=sfink

This adds a new job variant `arm64-cranelift-sim` to the SpiderMonkey
build configurations, and adds a Taskherder CI configuration to run it.
The job uses the aarch64 simulator support built-in to SpiderMonkey, so
it does not need to run on native aarch64 hardware.

A few tests needed to be added to the "slow tests" list as they time out
under the simulator otherwise.

This also fixes an issue with an error message in `build-sm.sh` in which
the overloading of the backtick's meaning (code-quotes in
Markdown-world, and command interpolation in shell scripts) led to an
amusing attempt to execute parts of the error message.

Finally, this fixes an error that seems unrelated to Cranelift or
WebAssembly in a GC jit-test, wherein its way of measuring maximum stack
recursion depth was failing.

Differential Revision: https://phabricator.services.mozilla.com/D86131
This commit is contained in:
Chris Fallin 2020-08-07 18:17:37 +00:00
parent b311f0f9b4
commit 227741192b
6 changed files with 40 additions and 5 deletions

View File

@ -1 +1,2 @@
basic/bug1610192.js
ion/pow-base-power-of-two.js

View File

@ -47,3 +47,6 @@ test262/built-ins/RegExp/CharacterClassEscapes/character-class-non-whitespace-cl
test262/built-ins/RegExp/CharacterClassEscapes/character-class-non-digit-class-escape-flags-u.js
test262/built-ins/RegExp/CharacterClassEscapes/character-class-non-word-class-escape-flags-u.js
test262/built-ins/RegExp/property-escapes/generated/
test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter.js
test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js
test262/built-ins/RegExp/property-escapes/generated/General_Category_-_Unassigned.js

View File

@ -0,0 +1,10 @@
{
"configure-args": "--enable-simulator=arm64 --enable-rust-simd",
"optimize": true,
"debug": true,
"env": {
"JSTESTS_EXTRA_ARGS": "--exclude-file={DIR}/arm64-jstests-slow.txt",
"JITTEST_EXTRA_ARGS": "--ignore-timeouts={DIR}/arm64-jittests-timeouts.txt --args=--wasm-compiler=cranelift"
},
"bits": 64
}

View File

@ -25,14 +25,16 @@ let registry = new FinalizationRegistry(x => {
});
// Attempt to find the maximum supported stack depth.
var stackSize = 0;
function findStackSize(i) {
try {
return findStackSize(i + 1);
} catch {
return i;
stackSize = i;
findStackSize(i + 1);
} catch (e) {
return;
}
}
const stackSize = findStackSize(0);
findStackSize(0);
// Multiply the calculated stack size by some factor just to be on the safe side.
const exceedStackDepthLimit = stackSize * 5;

View File

@ -150,6 +150,25 @@ sm-arm64-sim-linux64/debug:
run:
spidermonkey-variant: arm64-sim
sm-arm64-sim-cranelift-linux64/debug:
description: "Spidermonkey ARM64 sim with Cranelift Wasm backend"
index:
job-name: sm-arm64-sim-cranelift-linux64-debug
treeherder:
platform: linux64/debug
symbol: SM(arm64cl)
run:
spidermonkey-variant: arm64-cranelift-sim
fetches:
toolchain:
- linux64-binutils
- linux64-clang
- linux64-gcc
- linux64-rust
- linux64-rust-size
- linux64-cbindgen
run-on-projects: ['mozilla-central']
sm-asan-linux64/opt:
description: "Spidermonkey Address Sanitizer"
index:

View File

@ -45,7 +45,7 @@ else # !upload
# Provide a note for users on why we don't include artifacts for these builds
# by default, and how they can get the artifacts if they really need them.
cat >$UPLOAD_DIR/README-artifacts.txt <<EOF
cat >$UPLOAD_DIR/README-artifacts.txt <<'EOF'
Artifact upload has been disabled for this build due to infrequent usage of the
generated artifacts. If you find yourself in a position where you need the
shell or similar artifacts from this build, please redo your push with the