mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 02:14:43 +00:00
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:
parent
b311f0f9b4
commit
227741192b
@ -1 +1,2 @@
|
||||
basic/bug1610192.js
|
||||
ion/pow-base-power-of-two.js
|
||||
|
@ -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
|
||||
|
10
js/src/devtools/automation/variants/arm64-cranelift-sim
Normal file
10
js/src/devtools/automation/variants/arm64-cranelift-sim
Normal 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
|
||||
}
|
@ -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;
|
||||
|
@ -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:
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user