Commit Graph

152 Commits

Author SHA1 Message Date
Lars T Hansen
2517967e0e Bug 1637332 - wasm simd x86, part 2 - implement it. r=rhunt
This patch generalizes the x64 code that was moved into x86-shared
code in the previous patch, and makes it all work for x86.

Generally the changes are pedestrian.  The most interesting bit is
that signed right shift i64x2 is now scalarized in the compilers, not
in the macroassemblers, as this simplifies code everywhere.  This
gives rise to a new kind of porting API that reveals information about
what the macroassembler supports on the platform, in the form of the
MustScalarize/MustMaskShiftCount predicates in MacroAssembler.h.

Multiply i64x2, which is scalarized in the macroassemblers now, could
have been subjected to the same treatment, but I did not do so (yet)
because this op presented fewer problems than the right shift. (Discuss.)

Differential Revision: https://phabricator.services.mozilla.com/D74935
2020-06-05 06:39:32 +00:00
Iain Ireland
31ded7e5aa Bug 1642493: Clean up remaining references to ENABLE_NEW_REGEXP and old irregexp r=mgaudet
I kept a running list of code that would be dead once we removed the old engine. This is what was on that list.

Note: The regexp_parse tests used a testing function that parsed a regexp and returned an AST to compare against the expected AST. They are being deleted because the tests are fragile in the face of upstream changes, not particularly useful, and a lot of work to convert.

Depends on D77727

Differential Revision: https://phabricator.services.mozilla.com/D77728
2020-06-04 14:35:04 +00:00
Lars T Hansen
58d34fe0f0 Bug 1635038 - Make wasm-gc properly dependent on reftypes and typed-objects. r=rhunt
Currently our wasm-gc prototypes requires that typed objects are enabled,
and of course it is also dependent on reference types.  So make sure the
default is computed correctly and die during configure if wasm-gc is
requested while the other options are disabled.

Differential Revision: https://phabricator.services.mozilla.com/D77780
2020-06-03 10:45:14 +00:00
Mike Hommey
9088528947 Bug 1635764 - Move --with-system-icu and --with-intl-api to python configure. r=firefox-build-system-reviewers,rstewart
At the same time, because it's now simpler to do so, set the right data
file name for big-endians, even though we don't have or produce it
(bug #1264836). Also remove USE_ICU, which is redundant with
JS_HAS_INTL_API, and actively break the build at configure time when
using --without-intl-api with Firefox because this hasn't actually
worked for close to 3 years (since bug 1402048).

Differential Revision: https://phabricator.services.mozilla.com/D77416
2020-05-29 21:29:52 +00:00
Mike Hommey
8a9448c75b Bug 1641785 - Move --with-jitreport-granularity to python configure. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D77415
2020-05-29 12:17:26 +00:00
Mike Hommey
313131917e Bug 1641775 - Move --with-system-nspr to python configure. r=firefox-build-system-reviewers,rstewart
Versions of NSPR >= 4.10 come with a pkg-config file. We currently
depend on 4.9.2 for spidermonkey, but much more recent versions for
Firefox. 4.10 is less than a year newer than 4.9.2, and 4.10 is 7 years
old, so bumping the requirement to 4.10 is not really a big deal.

With the use of pkg-config, --with-nspr-cflags and --with-nspr-libs are
not needed.

None of the AC_TRY_COMPILE tests were any useful because
PR_STATIC_ASSERT and PR_UINT64 have been when we look for them since
4.8.6 and 4.9 respectively.

Differential Revision: https://phabricator.services.mozilla.com/D77412
2020-05-29 17:11:27 +00:00
Mike Hommey
79feb07ead Bug 1639815 - Move --enable-readline to python configure. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D76287
2020-05-21 22:38:46 +00:00
Mike Hommey
0e16889c8a Bug 1639815 - Move --with-sixgill to python configure. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D76286
2020-05-21 22:38:46 +00:00
Mike Hommey
af5718ca89 Bug 1639815 - Move --with-qemu-exe and --with-cross-lib to python configure. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D76285
2020-05-21 22:38:46 +00:00
Bogdan Tara
0bff3c4d0b Backed out 7 changesets (bug 1639815) for --disable-install-strip related bustages CLOSED TREE
Backed out changeset 04a1388fc17d (bug 1639815)
Backed out changeset d48eea557b6d (bug 1639815)
Backed out changeset 6fba10f61bd2 (bug 1639815)
Backed out changeset cfb945f6c82f (bug 1639815)
Backed out changeset 16447c678749 (bug 1639815)
Backed out changeset 89475adf15b6 (bug 1639815)
Backed out changeset 94877a079054 (bug 1639815)
2020-05-22 01:33:22 +03:00
Mike Hommey
7ebe2d69fb Bug 1639815 - Move --enable-readline to python configure. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D76287
2020-05-21 10:13:24 +00:00
Mike Hommey
3feaca35c7 Bug 1639815 - Move --with-sixgill to python configure. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D76286
2020-05-21 10:10:31 +00:00
Mike Hommey
69d706ac05 Bug 1639815 - Move --with-qemu-exe and --with-cross-lib to python configure. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D76285
2020-05-21 10:11:21 +00:00
Lars T Hansen
589dab34a0 Bug 1631228 - wasm ion simd, part 1: enablement + test directives. r=bbouvier,perftest-reviewers
Change --wasm-simd to --no-wasm-simd and flip the default for both this
switch and for the about:config flag.

Add testing directives so that we test baseline, ion, and --no-wasm-simd.

Differential Revision: https://phabricator.services.mozilla.com/D71819
2020-05-20 07:01:38 +00:00
Asumu Takikawa
b15a80284e Bug 1623628 - part 1, remove compile-time and run-time flags for BigInt/I64 conversion in Wasm r=wingo,lth
This patch removes the compile-time and run-time flags that disable BigInt/I64 so that the feature can be shipped. It also adjusts/removes tests as appropriate to account for the removed code paths.

Differential Revision: https://phabricator.services.mozilla.com/D74142
2020-05-18 18:30:47 +00:00
Iain Ireland
5a987970c4 Bug 1634135: Turn new regexp engine on by default in Nightly r=mgaudet
Pull the lever!

(After responsibly waiting for 78 to open.)

Differential Revision: https://phabricator.services.mozilla.com/D73120
2020-05-13 16:24:04 +00:00
Sebastian Hengst
ff55bf0ffc Backed out 12 changesets (bug 1634135) for causing crashes e.g. when urls get pasted in Slack (bug 1637243). a=backout
Backed out changeset ee1018a8611a (bug 1634135)
Backed out changeset 0081b4c73633 (bug 1634135)
Backed out changeset 4eda5acc8e1f (bug 1634135)
Backed out changeset d8f770d123f2 (bug 1634135)
Backed out changeset 3f680457842f (bug 1634135)
Backed out changeset f3b9c956fa85 (bug 1634135)
Backed out changeset b3b82e1cda7f (bug 1634135)
Backed out changeset 9dddfd577a3d (bug 1634135)
Backed out changeset ba01ceb63cf3 (bug 1634135)
Backed out changeset f53110858cb9 (bug 1634135)
Backed out changeset 49b9d6a8a3a5 (bug 1634135)
Backed out changeset a73e5ff68480 (bug 1634135)
2020-05-12 16:00:06 +02:00
Iain Ireland
52982ba943 Bug 1634135: Turn new regexp engine on by default in Nightly r=mgaudet
Pull the lever!

(After responsibly waiting for 78 to open.)

Differential Revision: https://phabricator.services.mozilla.com/D73120
2020-05-10 16:00:26 +00:00
Narcis Beleuzu
d6e59a92f6 Backed out 9 changesets (bug 1634135) for assertion failure on nsContentUtils.cpp . CLOSED TREE
Backed out changeset 392feb3c6f73 (bug 1634135)
Backed out changeset 88cf3b3be886 (bug 1634135)
Backed out changeset 080d06573454 (bug 1634135)
Backed out changeset f849ce4fe7de (bug 1634135)
Backed out changeset 4560a77cbe7b (bug 1634135)
Backed out changeset c2183a88c085 (bug 1634135)
Backed out changeset 18b93628199b (bug 1634135)
Backed out changeset 6aaf6e87a5d1 (bug 1634135)
Backed out changeset 35f6669e31a9 (bug 1634135)
2020-05-06 19:17:36 +03:00
Iain Ireland
a027d50452 Bug 1634135: Turn new regexp engine on by default in Nightly r=mgaudet
Pull the lever!

(After responsibly waiting for 78 to open.)

Differential Revision: https://phabricator.services.mozilla.com/D73120
2020-05-05 16:50:07 +00:00
Andy Wingo
a9303d9bd2 Bug 1628321 - Ship support for WebAssembly multi-value proposal r=lth
The configure option is now --disable-wasm-multi-value, rather than
--enable-wasm-multi-value.

Differential Revision: https://phabricator.services.mozilla.com/D72307
2020-04-27 11:12:06 +00:00
Jon Coppeard
34b313001d Bug 1386298 - Replace the unused GCTrace framework r=sfink
The tracing framework is unused but Matthew found the hook points useful, so this changes those into empty inline functions that can be used to insert probes.

Differential Revision: https://phabricator.services.mozilla.com/D73816
2020-05-05 16:35:14 +00:00
Lars T Hansen
414fee387b Bug 1478632 - wasm simd, part 1: feature gating and related prep. r=rhunt
We add a configuration option for SIMD and apply ENABLE_WASM_SIMD
throughout the engine as appropriate, mostly to insert #error or
MOZ_CRASH where things need to be done in later patches or for
architectures that we won't currently consider.

We add a command line switch for the shell and an option for
about:config and plumb the value of this through the engine.

Differential Revision: https://phabricator.services.mozilla.com/D57940
2020-05-05 08:17:47 +00:00
Jan de Mooij
6f5ae737ef Bug 1627255 part 2 - Rename the --enable-ion configure option to --enable-jit. r=glandium
For many years now this has covered all our JIT codegen, not just Ion, so this is
a lot less confusing. Using --enable-ion/--disable-ion now results in an error that
suggests the new name.

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

--HG--
extra : moz-landing-system : lando
2020-04-07 14:52:33 +00:00
Jan de Mooij
7977c543bd Bug 1627255 part 1 - Remove the ENABLE_ION config item. r=glandium
These days we can get the same information by checking JS_CODEGEN_NONE, so let's
do that.

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

--HG--
extra : moz-landing-system : lando
2020-04-07 08:34:27 +00:00
Andy Wingo
2a92dcdaf5 Bug 1625927 - Enable multi-value on nightly r=lth
Now that multi-value is code-complete, we enable it on nightly browsers
in addition to shell builds.

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

--HG--
extra : moz-landing-system : lando
2020-04-07 09:01:18 +00:00
Mike Hommey
314c1a65a3 Bug 1626951 - Disable new pass manager on aarch64-windows builds without LTO. r=dmajor
Differential Revision: https://phabricator.services.mozilla.com/D69500

--HG--
extra : moz-landing-system : lando
2020-04-03 14:27:45 +00:00
Dorel Luca
b91244b465 Backed out changeset ace2339387ab (bug 1625927) landed by mistake
--HG--
extra : rebase_source : 465e34a3d289222f0d8df4c1a4b3c945844e8eed
2020-04-02 14:29:25 +03:00
Andy Wingo
d8168d3013 Bug 1625927 - Enable multi-value on nightly r=lth
Now that multi-value is code-complete, we enable it on nightly browsers
in addition to shell builds.

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

--HG--
extra : source : 98f78bb873005cd22f5794dc53b5cfb41f94c83b
2020-04-01 08:57:40 +00:00
Daniel Varga
c24b9707fd Backed out 2 changesets (bug 1625927, bug 1625887) on request by dev
Backed out changeset 98f78bb87300 (bug 1625927)
Backed out changeset 1e25841508c8 (bug 1625887)
2020-04-02 12:48:09 +03:00
Andy Wingo
05b61b956c Bug 1625927 - Enable multi-value on nightly r=lth
Now that multi-value is code-complete, we enable it on nightly browsers
in addition to shell builds.

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

--HG--
extra : moz-landing-system : lando
2020-04-01 08:57:40 +00:00
Lars T Hansen
7b4366d9af Bug 1623889 - Allow SAB to be disabled in js shell. r=bbouvier
The previous fix here was a hack that would disable SAB in the JS
shell on non-nightly, but this breaks various tests that no longer
guard properly for SAB.  Instead of embedding the hack more deeply by
changing those tests, we fix it the way it should have been from the
outset: SAB is enabled in the shell on all channels but can be
disabled by a switch.

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

--HG--
extra : moz-landing-system : lando
2020-03-27 16:56:25 +00:00
Lars T Hansen
edf764eeec 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 15:03:45 +00:00
shindli
ca0e071e53 Backed out changeset ce48cc49397b (bug 1566427) for causing unexpected failures in python/mozbuild/mozbuild/test/configure/lint.py CLOSED TREE 2020-03-11 15:39:52 +02:00
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
Tooru Fujisawa
350ed0cf8c Bug 1612515 - Part 6: Import the SmooshMonkey change from rust-frontend. r=jorendorff,glandium
Differential Revision: https://phabricator.services.mozilla.com/D64170

--HG--
extra : moz-landing-system : lando
2020-02-28 14:17:33 +00:00
Iain Ireland
e0d1887eb7 Bug 1592302: Part 2: Add new regexp files to build behind config option r=mgaudet
Differential Revision: https://phabricator.services.mozilla.com/D51929

--HG--
extra : moz-landing-system : lando
2019-12-02 16:13:05 +00:00
Philip Chimento
46313a101e Bug 1590907 - Make ENABLE_INTL_API and ENABLE_TYPED_OBJECTS into js-config macros. r=sfink,firefox-build-system-reviewers,mshal
Whether ENABLE_INTL_API and ENABLE_TYPED_OBJECTS are defined, affects
the behaviour of JS_FOR_PROTOTYPES for the prototypes of Intl and
TypedObject. Therefore, these macros have to be available to embedders.
Rename them to JS_HAS_INTL_API and JS_HAS_TYPED_OBJECTS (in line with
the existing JS_HAS_CTYPES) everywhere they are used, and add them to
js-config.h.in.

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

--HG--
extra : moz-landing-system : lando
2019-11-26 07:25:35 +00:00
Brindusan Cristian
3e0cb96b6e Backed out 7 changesets (bug 1590907) for build bustages at jsfriendapi.cpp. CLOSED TREE
Backed out changeset d6ac9325cb2c (bug 1590907)
Backed out changeset fc85ee5e144c (bug 1590907)
Backed out changeset 1b5b40dcaac4 (bug 1590907)
Backed out changeset 1b2d91f00be2 (bug 1590907)
Backed out changeset 67f939760329 (bug 1590907)
Backed out changeset 4d5818a72b46 (bug 1590907)
Backed out changeset 308b42f3a99c (bug 1590907)

--HG--
extra : rebase_source : 47578231d4749f023c3d206c479ee532dbf6fc6c
extra : histedit_source : 9e7427349342272e7fbe02fee29cb87cda45f75d
2019-11-26 05:23:11 +02:00
Philip Chimento
a710bbae5d Bug 1590907 - Make ENABLE_INTL_API and ENABLE_TYPED_OBJECTS into js-config macros. r=sfink,firefox-build-system-reviewers,mshal
Whether ENABLE_INTL_API and ENABLE_TYPED_OBJECTS are defined, affects
the behaviour of JS_FOR_PROTOTYPES for the prototypes of Intl and
TypedObject. Therefore, these macros have to be available to embedders.
Rename them to JS_HAS_INTL_API and JS_HAS_TYPED_OBJECTS (in line with
the existing JS_HAS_CTYPES) everywhere they are used, and add them to
js-config.h.in.

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

--HG--
extra : moz-landing-system : lando
2019-11-26 02:02:23 +00:00
Mike Hommey
87b77cda38 Bug 1594998 - Make standalone SpiderMonkey use libxul-like panic. r=froydnj
This moves the parts of toolkit/library/rust/shared/lib.rs related to
panic hooking to a new mozglue subdirectory, which will be used for
things that can be statically linked to e.g. libxul, rather than in
a "shared library".

The panic hook is disabled when building spidermonkey via the mozjs_sys
crate.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 13:14:42 +00:00
Ciure Andrei
70b54837ac Backed out changeset 7a28c229e654 (bug 1594998) for causing bustages CLOSED TREE 2019-11-15 03:26:34 +02:00
Mike Hommey
63489b5491 Bug 1594998 - Make standalone SpiderMonkey use libxul-like panic. r=froydnj
This moves the parts of toolkit/library/rust/shared/lib.rs related to
panic hooking to a new mozglue subdirectory, which will be used for
things that can be statically linked to e.g. libxul, rather than in
a "shared library".

The panic hook is disabled when building spidermonkey via the mozjs_sys
crate.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 00:21:32 +00:00
Gurzau Raul
f4fadbbe04 Backed out changeset 4cf8f3f89042 (bug 1594998) for xpcshell failures at test_crash_rust_panic.js on a CLOSED TREE. 2019-11-14 03:52:52 +02:00
Mike Hommey
f33a622429 Bug 1594998 - Make standalone SpiderMonkey use libxul-like panic. r=froydnj,jandem
This moves the parts of toolkit/library/rust/shared/lib.rs related to
panic hooking to a new mozglue subdirectory, which will be used for
things that can be statically linked to e.g. libxul, rather than in
a "shared library".

The panic hook is disabled when building spidermonkey via the mozjs_sys
crate.

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

--HG--
extra : moz-landing-system : lando
2019-11-13 22:07:08 +00:00
Andy Wingo
dd3580208d Bug 1577757 - Add a compile-time option for wasm multi-value r=luke
Differential Revision: https://phabricator.services.mozilla.com/D44142

--HG--
extra : moz-landing-system : lando
2019-10-01 14:30:35 +00:00
Dorel Luca
e99487f43b Backed out 2 changesets (bug 1577757, bug 1576900) for build bustage in build/src/js/src/wasm/WasmOpIter.h. CLOSED TREE
Backed out changeset d2fa4e1a030f (bug 1576900)
Backed out changeset 3e82a481ae9d (bug 1577757)
2019-09-30 13:31:49 +03:00
Andy Wingo
64ee9771f9 Bug 1577757 - Add a compile-time option for wasm multi-value r=luke
Differential Revision: https://phabricator.services.mozilla.com/D44142

--HG--
extra : moz-landing-system : lando
2019-09-20 14:03:14 +00:00
Henri Sivonen
ac75f8e389 Bug 1578677 - Support --enable-rust-simd for standalone SpiderMonkey builds. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D46144

--HG--
extra : moz-landing-system : lando
2019-09-24 00:26:55 +00:00
Andreea Pavel
4ceee566c7 Backed out 3 changesets (bug 1577757, bug 1577508, bug 1576900) for bustages at WasmOpIter.h on a CLOSED TREE
Backed out changeset 8a9ae25b1019 (bug 1577508)
Backed out changeset 948702f3a01f (bug 1576900)
Backed out changeset c3aaa0bee2b5 (bug 1577757)
2019-09-20 16:59:20 +03:00