Read-only Git mirror of the Mercurial gecko repositories at https://hg.mozilla.org. How to contribute: https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html
Перейти к файлу
Lars T Hansen 23854fd5a5 Bug 1566427 - Improved compiler availability computation. r=bbouvier
This patch cleans up wasm compiler selection and a few related things
with as few semantic changes as possible.  The intent is to centralize
compiler availability computation so that all parts of the system stay
in sync and it is easy to change compiler selection policy.

First, we introduce new predicates <Compiler>Available(cx) to test for
the actual availability of a compiler.  These predicates take into
account whether a compiler is compiled into the executable, whether it
supports the hardware, whether it is (currently) selected by
options/switches, and whether it can be used as a result of the
runtime environment (for example, Ion and Cranelift are not available
if the debugger is observing the page or if the GC feature is enabled;
Cranelift is not available if shared memory and atomics are enabled).
We switch to using these predicates almost everywhere that used
<Compiler>CanCompile() or cx->options().wasm<Compiler>(), since those
don't tell the full story.

Second, we implement a priority order of the optimizing compilers and
make it easy to change this order (see comments in code).  At the
moment, Cranelift is prioritized over Ion since Ion is enabled by
default and Cranelift is not; thus the desire of somebody flipping the
pref for Cranelift is to deselect Ion.  The priority order may change
in the future or may become platform-dependent.  The default compiler
selection in both browser and shell remains Baseline+Ion.

Third, we rename HasCompilerSupport() as HasPlatformSupport(), since
the predicate does not test whether compilers are available, only
whether they are present in the executable and support the hardware.
And to make that more sensible, <Compiler>CanCompile() is renamed
as <Compiler>PlatformSupport().

Fourth, we remove some redundant testing predicates (we don't need
both wasmDebugSupport and wasmDebuggingIsSupported, nor do we need
wasmUsesCranelift because wasmCompileMode is more reliable).

Fifth, we introduce a few new test cases that try to ensure that
compiler selection works as it should.  These are white-box and may
need to change if the compiler priority order changes.

Sixth, we rename the internal wasm::Has<Feature>Support() predicates
as wasm::<Feature>Available(), since they all actually test for
compiler availability.

Differential Revision: https://phabricator.services.mozilla.com/D64946

--HG--
extra : moz-landing-system : lando
2020-03-11 07:53:03 +00:00
.cargo Bug 1621044 - Update neqo. r=agrover 2020-03-10 21:04:54 +00:00
.vscode Bug 1594520 - Change directory before running mach in .vscode/tasks.json on Windows. r=jya 2019-11-14 10:35:12 +00:00
accessible Bug 1620318 - Filter out hidden popup menus and announce them when they appear. r=morgan 2020-03-10 22:42:31 +00:00
browser Backed out changeset 66950fa024e1 (bug 1618867) for causing build bustages in /builds/worker/checkouts/gecko/browser/components/urlbar/tests/browser/tips/browser.ini CLOSED TREE 2020-03-11 14:47:18 +02:00
build Bug 1619177 - Remove remaining extra warnings code. r=tcampbell,mccr8 2020-03-10 22:59:41 +00:00
caps Backed out changeset d15b968aa6d1 (bug 1615297) for causing build bustage 2020-03-11 05:41:51 +02:00
chrome Bug 1620542 - Automatically fix ESLint errors in .eslintrc.js files. r=mossop 2020-03-07 10:09:44 +00:00
config Bug 1620744 - Convert jar_maker action to py3; r=firefox-build-system-reviewers,rstewart 2020-03-10 20:19:47 +00:00
devtools Bug 1621306 - Enable the devtools.responsive.browserUI.enabled pref in Nightly only r=bradwerth 2020-03-11 11:41:48 +00:00
docs Bug 1620635 - doc follow up - fix a typo DONTBUILD 2020-03-07 12:13:02 +00:00
docshell Bug 1609822 - make about:checkerboard an HTML file r=ntim 2020-03-10 17:05:16 +00:00
dom Backed out changeset a08637fb30c8 (bug 1143478) for causing bustages in /builds/worker/checkouts/gecko/ipc/mscom/Registration.cpp CLOSED TREE 2020-03-11 14:30:54 +02:00
editor Bug 1620504 - part 16: Clean up warnings in JoinNodeTransaction r=m_kato 2020-03-10 14:20:22 +00:00
extensions Backed out changeset a08637fb30c8 (bug 1143478) for causing bustages in /builds/worker/checkouts/gecko/ipc/mscom/Registration.cpp CLOSED TREE 2020-03-11 14:30:54 +02:00
gfx Backed out changeset a08637fb30c8 (bug 1143478) for causing bustages in /builds/worker/checkouts/gecko/ipc/mscom/Registration.cpp CLOSED TREE 2020-03-11 14:30:54 +02:00
gradle/wrapper Bug 1595926 - Don't use distribution256Sum until Android Studio is fixed. r=snorp 2019-11-14 17:04:32 +00:00
hal Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown 2020-02-27 17:39:15 +00:00
image Backed out changeset a08637fb30c8 (bug 1143478) for causing bustages in /builds/worker/checkouts/gecko/ipc/mscom/Registration.cpp CLOSED TREE 2020-03-11 14:30:54 +02:00
intl Bug 1560038 - Switch Localization IDL to use UTF8String for L10nArgs r=emilio 2020-03-11 07:17:07 +00:00
ipc Bug 1618712 - Use GroupPosition for heading levels in mac. r=morgan,nika 2020-03-10 18:32:38 +00:00
js Bug 1566427 - Improved compiler availability computation. r=bbouvier 2020-03-11 07:53:03 +00:00
layout Backed out changeset a08637fb30c8 (bug 1143478) for causing bustages in /builds/worker/checkouts/gecko/ipc/mscom/Registration.cpp CLOSED TREE 2020-03-11 14:30:54 +02:00
media Bug 1619780 - Update audioipc to 9e4f94a5. r=chunmin 2020-03-10 17:02:27 +00:00
memory Bug 1620542 - Automatically fix ESLint errors in .eslintrc.js files. r=mossop 2020-03-07 10:09:44 +00:00
mfbt Backed out changeset a08637fb30c8 (bug 1143478) for causing bustages in /builds/worker/checkouts/gecko/ipc/mscom/Registration.cpp CLOSED TREE 2020-03-11 14:30:54 +02:00
mobile Bug 1578070 - Rename ClientOpenWindowInCurrentProcess and unskip test_openWindow.html, r=nika 2020-03-10 20:27:49 +00:00
modules Bug 1619177 - Remove remaining extra warnings code. r=tcampbell,mccr8 2020-03-10 22:59:41 +00:00
mozglue Backed out changeset a08637fb30c8 (bug 1143478) for causing bustages in /builds/worker/checkouts/gecko/ipc/mscom/Registration.cpp CLOSED TREE 2020-03-11 14:30:54 +02:00
netwerk Backed out changeset a08637fb30c8 (bug 1143478) for causing bustages in /builds/worker/checkouts/gecko/ipc/mscom/Registration.cpp CLOSED TREE 2020-03-11 14:30:54 +02:00
nsprpub Bug 1600803 - NSPR_4_25_RTM for Firefox 74. r=kjacobs UPGRADE_NSPR_RELEASE 2020-02-03 12:17:20 +00:00
other-licenses Backed out changeset a08637fb30c8 (bug 1143478) for causing bustages in /builds/worker/checkouts/gecko/ipc/mscom/Registration.cpp CLOSED TREE 2020-03-11 14:30:54 +02:00
parser Bug 1620542 - Automatically fix ESLint errors in .eslintrc.js files. r=mossop 2020-03-07 10:09:44 +00:00
python Backed out 12 changesets (bug 1612941) for webrender linting bustage CLOSED TREE 2020-03-11 14:28:55 +02:00
remote Bug 1607474 - Add initial expected data for puppeteer tests, r=remote-protocol-reviewers,maja_zf 2020-03-10 14:08:49 +00:00
security Bug 1621350 - land NSS 710d10a72934 UPGRADE_NSS_RELEASE, r=jcj 2020-03-10 21:35:56 +00:00
services Backed out 8 changesets (bug 1506602, bug 1194529) for Browser-chrome failures in browser/browser_aaa_eventTelemetry_run_first.js. CLOSED TREE 2020-03-11 01:48:36 +02:00
servo Bug 1621044 - Update in-tree consumers of bindgen. r=keeler,rhunt 2020-03-10 21:07:34 +00:00
startupcache Backed out changeset a08637fb30c8 (bug 1143478) for causing bustages in /builds/worker/checkouts/gecko/ipc/mscom/Registration.cpp CLOSED TREE 2020-03-11 14:30:54 +02:00
storage Backed out 2 changesets (bug 1603703) for xpc failures on test_storage_aggregates.js. CLOSED TREE 2020-03-05 19:37:32 +02:00
taskcluster Bug 1621295 - Run SM(arm) build on autoland. r=sfink,bc 2020-03-11 08:33:35 +00:00
testing Backed out changeset a08637fb30c8 (bug 1143478) for causing bustages in /builds/worker/checkouts/gecko/ipc/mscom/Registration.cpp CLOSED TREE 2020-03-11 14:30:54 +02:00
third_party Backed out 12 changesets (bug 1612941) for webrender linting bustage CLOSED TREE 2020-03-11 14:28:55 +02:00
toolkit Backed out changeset a08637fb30c8 (bug 1143478) for causing bustages in /builds/worker/checkouts/gecko/ipc/mscom/Registration.cpp CLOSED TREE 2020-03-11 14:30:54 +02:00
tools Backed out changeset a08637fb30c8 (bug 1143478) for causing bustages in /builds/worker/checkouts/gecko/ipc/mscom/Registration.cpp CLOSED TREE 2020-03-11 14:30:54 +02:00
uriloader Bug 1598216 - Change file extensions with invalid characters to valid file extensions on save. r=Gijs 2020-03-09 16:11:13 +00:00
view Bug 1503656 - Part 7. Notify of safe area insets changed. r=smaug 2020-03-04 08:16:31 +00:00
widget Bug 1621319 - Implement GetWidgetBorder properly for some widgets. r=mstange 2020-03-11 01:52:51 +00:00
xpcom Bug 1589493 - Extending BrowserTestUtils.crashFrame to allow crashing with an OOM;r=mconley,froydnj,dmajor 2020-03-10 14:00:27 +00:00
xpfe/appshell Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpfe. r=mstange 2020-03-10 08:47:24 +00:00
.arcconfig
.clang-format
.clang-format-ignore Bug 1353652 - Initial Draft of MPRIS API Provider (Media API on Linux) r=alwu 2020-02-12 13:10:50 +00:00
.cron.yml Bug 1619944 Migrate partials and pipfile-updates to use requirements.txt r=bhearsum 2020-03-05 13:49:24 +00:00
.eslintignore Bug 1620542 - Turn on linting of .eslintrc.js files. r=mossop 2020-03-07 09:30:44 +00:00
.eslintrc.js Bug 1620542 - Turn on linting of .eslintrc.js files. r=mossop 2020-03-07 09:30:44 +00:00
.flake8 Bug 1597336 - add a fxa+sync scenario r=lina,markh 2020-02-23 23:17:23 +00:00
.gdbinit
.gdbinit_python
.git-blame-ignore-revs
.gitattributes
.gitignore Bug 1614314 - Use GitHub as upstream for the Java code of the HTML parser. r=alchen 2020-02-10 15:05:17 +00:00
.hg-annotate-ignore-revs
.hg-format-source
.hgignore Bug 1617827 - Wasm: Switch to 'wasm-generate-testsuite' tooling for importing spec test-suite. r=lth 2020-03-11 04:05:15 +00:00
.hgtags No bug - Tagging mozilla-central 34377d8c0d2ad98f525b26e7ad8003dbdac94da6 with FIREFOX_NIGHTLY_75_END a=release DONTBUILD CLOSED TREE 2020-03-09 15:37:31 +00:00
.lldbinit Bug 1603804. Move third_party/python/lldbutils to python/lldbutils. r=ahal 2019-12-20 17:10:12 +00:00
.mailmap
.prettierignore Bug 1609671 - Inspect binding should try to get the sourcemapped location while inspecting a function. r=jdescottes,vporof 2020-01-24 12:58:24 +00:00
.prettierrc Bug 1620218 - Update Prettier to 1.18.2 and other ESLint modules to the latest versions. r=mossop 2020-03-08 21:45:23 +00:00
.taskcluster.yml Bug 1606869: Switch decision task docker caches to match the rest the in-tree caches; r=Callek 2020-01-03 22:18:29 +00:00
.trackerignore
.yamllint Bug 1606009 - Fix & silent some tests r=Callek 2019-12-26 22:13:18 +00:00
.ycm_extra_conf.py
AUTHORS
CLOBBER Update configs. IGNORE BROKEN CHANGESETS CLOSED TREE NO BUG a=release ba=release 2020-03-09 15:41:51 +00:00
Cargo.lock Backed out 12 changesets (bug 1612941) for webrender linting bustage CLOSED TREE 2020-03-11 14:28:55 +02:00
Cargo.toml Backed out changeset 4c839456c3ff (bug 1620284) for build bustages on a CLOSED TREE 2020-03-06 12:33:59 +02:00
GNUmakefile
LEGAL
LICENSE
Makefile.in Bug 1620744 - Convert generated_sources.py to py3; r=firefox-build-system-reviewers,rstewart 2020-03-10 20:19:32 +00:00
README.txt Bug 1617846 - Replace IRC with matrix.r=firefox-source-docs-reviewers,sylvestre 2020-02-25 11:39:53 +00:00
aclocal.m4
build.gradle Bug 1608570 - Remove some old Fennec-related build variables r=nalexander 2020-01-10 22:51:03 +00:00
client.mk
client.py
configure.in
configure.py Bug 1619788 - Ensure files generated by `./mach configure` don't have CRLF line endings, even under Python 3 r=glandium 2020-03-06 02:19:21 +00:00
gradle.properties
gradlew
gradlew.bat
mach Bug 1619475 - partial Python 3 compatibility for jit-tests and jstests r=arai 2020-03-06 18:07:38 +00:00
moz.build Bug 1620744 - Convert variables.py:source_repo_header() to py3; r=firefox-build-system-reviewers,rstewart 2020-03-10 20:19:24 +00:00
moz.configure Bug 1620980 - Fix Windows artifact builds after bug 1620165. r=froydnj 2020-03-10 00:23:40 +00:00
mozilla-config.h.in
old-configure.in Bug 1621350 - land NSS 710d10a72934 UPGRADE_NSS_RELEASE, r=jcj 2020-03-10 21:35:56 +00:00
package-lock.json Bug 1620218 - Update Prettier to 1.18.2 and other ESLint modules to the latest versions. r=mossop 2020-03-08 21:45:23 +00:00
package.json Bug 1620218 - Update Prettier to 1.18.2 and other ESLint modules to the latest versions. r=mossop 2020-03-08 21:45:23 +00:00
settings.gradle Bug 1598010 - Move examples into mozilla-central r=agi 2019-11-22 13:30:57 +00:00
substitute-local-geckoview.gradle Bug 1581979 - Use -SNAPSHOT versions locally to enable the local GeckoView substitution flow. r=nalexander 2019-12-11 21:29:44 +00:00
test.mozbuild

README.txt

An explanation of the Mozilla Source Code Directory Structure and links to
project pages with documentation can be found at:

    https://firefox-source-docs.mozilla.org/contributing/directory_structure.html

For information on how to build Mozilla from the source code and create the patch see:

    https://firefox-source-docs.mozilla.org/contributing/how_to_contribute_firefox.html

If you have a question about developing Mozilla, and can't find the solution
on https://developer.mozilla.org, you can try asking your question on Matrix at chat.mozilla.org in `Introduction` (https://chat.mozilla.org/#/room/#introduction:mozilla.org) channel.


Nightly development builds can be downloaded from:

    https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/
            - or -
    https://www.mozilla.org/firefox/channel/desktop/#nightly

Keep in mind that nightly builds, which are used by Mozilla developers for
testing, may be buggy.