Boostrapping Shell with AOT:
-
An empty
AOTBaselineStub.Sscaffold is checked in, but not attached as build input. AOT dumps direct intoAOTBaseline.S, which is a build input. First step is:cp js/src/jit/AOTBaselineStub.S js/src/jit/AOTBaseline.S -
I have some mozconfigs here, but the only option necessary is:
ac_add_options --enable-aot. Then./mach configure && ./mach build -
Dumping AOT:
IONFLAGS=bl-aot ./js --aot-dump-baseline --aot-dump-ics --aot-dump-self-hosted -e 'quit(0);'Should see 0 ics for now, one interp and all the self-hosted functions.
-
Bootstrap: Run
./mach build, you should see:js/src/jit/AOTBaseline.ocompiled -
Running shell tests:
python3 ./jit-test/jit_test.py --args="--aot" ../../jsTwo expected failures:blinterp-trial-inlining.jsandion/recover-objects.js. Former due to baked in blinterp options from the dump, the later due to a broken assertion. -
Collecting AOT ics: I have some corpi here but ICs can also be collected from the shell:
AOT_ICS_DUMP_MISSING_DIR=js/src/ics AOT_ICS_KEEP_GOING=1 \ ./js --aot --aot-ics-enforce -f {{FILE}}Then
mv IC-* js/src/icsand rebuilding will produced the generated AOT CacheIR files (Chris Fallins infra)
Bootstrapping Browser:
- First bootstrap
AOTBaseline.sagainst the shell same as before - Building the browser will automatically pickup the AOT object
- Instruct usage of AOT with:
JIT_OPTION_useAOTInterp=true JIT_OPTION_useAOTSelfHosted=true JIT_OPTION_useAOTICs=true \ ./build-browser-release-aot/dist/bin/firefox --no-remote