Граф коммитов

78888 Коммитов

Автор SHA1 Сообщение Дата
André Bargull bf0dfea844 Bug 1643944 - Part 3: Transpile LoadFunctionName. r=evilpie
Transpile LoadFunctionName using the same approach as taken for LoadFunctionLength.

Depends on D90966

Differential Revision: https://phabricator.services.mozilla.com/D90967
2020-09-23 09:08:54 +00:00
André Bargull da13b1846e Bug 1643944 - Part 2: Optimise function.name in CacheIR. r=evilpie
Optimise `function.name` similar to the existing `function.length` optimisation.

Depends on D90965

Differential Revision: https://phabricator.services.mozilla.com/D90966
2020-09-23 08:36:43 +00:00
André Bargull 7fd944048e Bug 1643944 - Part 1: Use else-statement in finishBoundFunctionInit. r=evilpie
`name` is non-nullptr if and only if the non-resolve hook fast-path was taken.
That means we can change `if (!name)` to use a simple `else` statement.

Differential Revision: https://phabricator.services.mozilla.com/D90965
2020-09-22 11:43:49 +00:00
Iain Ireland aba0004206 Bug 1666142: Fix CreateThis r=jandem
I will land a testcase separately once I manage to write something that triggers the arguments rectifier code and doesn't use Intl.

Differential Revision: https://phabricator.services.mozilla.com/D91018
2020-09-22 23:04:56 +00:00
Caroline Cullen baabb20c47 Bug 1657206 - Run RateMyCacheIR without having to explicitly call the shell function. r=iain
Differential Revision: https://phabricator.services.mozilla.com/D90752
2020-09-22 18:36:26 +00:00
Caroline Cullen e69342d551 Bug 1657206 - Call RateMyCacheIR with one script, but spew multiple scripts from the same StructuredSpewer. r=iain
Differential Revision: https://phabricator.services.mozilla.com/D90750
2020-09-22 18:36:24 +00:00
Csoregi Natalia d35f6aa3be Backed out 4 changesets (bug 1659104) for build bustages on StencilXdr.cpp. CLOSED TREE
Backed out changeset 145c513b9bdd (bug 1659104)
Backed out changeset 2019253fda44 (bug 1659104)
Backed out changeset 55f980703773 (bug 1659104)
Backed out changeset ffac61e233f7 (bug 1659104)
2020-09-23 05:21:54 +03:00
Jan de Mooij ee63eaa4e7 Bug 1666417 part 2 - Remove JitOptions.typeInference. r=iain
At this point it's equivalent to Warp being disabled.

Depends on D90956

Differential Revision: https://phabricator.services.mozilla.com/D90957
2020-09-22 16:00:25 +00:00
Jan de Mooij d6bba0cf60 Bug 1666417 part 1 - Make Warp pref work on non-Nightly. r=iain
Differential Revision: https://phabricator.services.mozilla.com/D90956
2020-09-22 16:00:21 +00:00
Kris Maglione 6315798344 Bug 1663747: Part 2 - Use PastShutdownPhase() in component loader shutdown checks. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D89810
2020-09-22 00:58:02 +00:00
Kannan Vijayan 56390273e8 Bug 1659104 - Part 4 - Shell and testing functions for Stencil XDR. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D90513
2020-09-22 15:46:32 +00:00
Kannan Vijayan dbc5b77ddd Bug 1659104 - Part 3 - Add XDR support to Stencils. r=tcampbell,arai
Differential Revision: https://phabricator.services.mozilla.com/D90512
2020-09-22 15:41:53 +00:00
Kannan Vijayan 4104d406d3 Bug 1659104 - Part 2 - Define XDR encoder and decoder variants that operate on stencils. r=tcampbell,arai
Differential Revision: https://phabricator.services.mozilla.com/D90511
2020-09-22 15:36:26 +00:00
Kannan Vijayan b41c01bdaa Bug 1659104 - Part 1 - Add ParserAtom support for Char16LE strings. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D90510
2020-09-22 15:36:01 +00:00
Jon Coppeard 6bb01d4a27 Bug 1665338 - Make GC cell header word atomic to avoid race in compacting GC r=sfink,decoder
Differential Revision: https://phabricator.services.mozilla.com/D90389
2020-09-22 12:49:40 +00:00
Jan de Mooij 7ab28dec2f Bug 1640565 part 2 - Support roundsd for floor/ceil/trunc in CacheIR and Warp. r=anba
On CPUs with SSE 4.1 this is quite a lot faster than the C++ call (at least 4x on
some micro-benchmarks) so it's worth keeping this optimization.

Depends on D90983

Differential Revision: https://phabricator.services.mozilla.com/D90984
2020-09-22 11:18:47 +00:00
Jan de Mooij 8d8afa850c Bug 1640565 part 1 - Add nearbyIntDouble and nearbyIntFloat32 to the MacroAssembler. r=anba
Differential Revision: https://phabricator.services.mozilla.com/D90983
2020-09-22 11:16:54 +00:00
Andreea Pavel 7c41607bc4 Backed out 8 changesets (bug 1639153, bug 1664953) due to general instability on a CLOSED TREE
Backed out changeset f999994ff312 (bug 1664953)
Backed out changeset 09390cf1d667 (bug 1639153)
Backed out changeset 83a3ed07220d (bug 1639153)
Backed out changeset 659b24c3626c (bug 1639153)
Backed out changeset 174a622bf334 (bug 1639153)
Backed out changeset 444f4554ea94 (bug 1639153)
Backed out changeset 93f3b8aa5bc5 (bug 1639153)
Backed out changeset f1af63fb5986 (bug 1639153)
2020-09-22 12:24:01 +03:00
Jan de Mooij 2f57fdc946 Bug 1666070 - Fix trialInline testing function to ignore cross-realm scripts. r=iain
Differential Revision: https://phabricator.services.mozilla.com/D90853
2020-09-21 17:11:08 +00:00
Jan de Mooij 7b1781e316 Bug 1666230 - Tidy up CacheIR opcode metadata. r=iain
Replace argLengths array with a byte-sized struct that stores both the arg length
and transpile flag. Use this flag in WarpOracle instead of the switch-statement.
The flag could also be used by trial inlining to check for un-transpilable ops.

Differential Revision: https://phabricator.services.mozilla.com/D90847
2020-09-21 17:13:51 +00:00
Mihai Alexandru Michis a9f468308c Backed out 2 changesets (bug 1663747) for causing xpcshell failures in ThrottledEventQueue.
CLOSED TREE

Backed out changeset 643aa6baf458 (bug 1663747)
Backed out changeset 491472fe44f4 (bug 1663747)
2020-09-22 03:54:59 +03:00
Ryan Hunt 5b516a52a9 Bug 1665106 - wasm: Only save the module name if the subsection finishes validation correctly. r=lth
In a name section of length 0, the first call to DecodeModuleNameSubsection will decode a name
but fail when finishNameSubsection detects the currentOffset is past the declared length of the
section. This failure result will bubble to the finish label of DecodeNameSection and be ignored.
This is okay, but we need to not set the moduleName until the subsection is completely validated.

Differential Revision: https://phabricator.services.mozilla.com/D90514
2020-09-21 14:31:10 +00:00
Kris Maglione 230ad04844 Bug 1663747: Part 2 - Use PastShutdownPhase() in component loader shutdown checks. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D89810
2020-09-21 19:20:42 +00:00
Matthew Gaudet cddf827b93 Bug 1664550 - Update addAccessorProperty assertion to account for private methods r=jorendorff
Differential Revision: https://phabricator.services.mozilla.com/D89967
2020-09-21 13:42:27 +00:00
André Bargull 3bccc01b76 Bug 1665946 - Part 4: Align CacheIR unary with binary bit-ops. r=jandem
Use the same approach as taken for binary bitwise operations. This ensures no
unexpected performance differences can happen when switching between binary
and unary operations. This change also removes unreachable code in
`UnaryArithIRGenerator::tryAttachStringNumber()`: If the input is a string,
we always succeed in `tryAttachStringInt32()`, so the `JSOp::BitNot` case in
`tryAttachStringNumber()` is never taken. Furthermore this avoids attaching
the same stub multiple times in `tryAttachStringInt32()` when the string can't
be parsed as an int32 (e.g. `~"1.1"`).

Depends on D90714

Differential Revision: https://phabricator.services.mozilla.com/D90715
2020-09-21 13:36:04 +00:00
André Bargull d7860f3237 Bug 1665946 - Part 3: Extract CanTruncateToInt32 and TruncateToInt32Guard functions. r=jandem
Extract the `CanTruncateToInt32` and `EmitTruncateToInt32Guard` functions in
preparation for the next part.

Depends on D90713

Differential Revision: https://phabricator.services.mozilla.com/D90714
2020-09-21 07:01:15 +00:00
André Bargull 085e1e7b96 Bug 1665946 - Part 2: Handle Strings in CacheIR binary bit-ops. r=jandem
`string|0` is sometimes used as a "fast" way to convert strings to integers.
Ion handles this case, but Warp doesn't yet.

Depends on D90712

Differential Revision: https://phabricator.services.mozilla.com/D90713
2020-09-21 06:59:27 +00:00
André Bargull ea03b8e9d5 Bug 1665946 - Part 1: Handle null and undefined in CacheIR binary bit-ops. r=jandem
Handle `null` and `undefined` to avoid the slow VM-call fallback for code like
`int32Array[invalidIndex]|0` (bug 1515620).

Differential Revision: https://phabricator.services.mozilla.com/D90712
2020-09-21 06:57:01 +00:00
Simon Giesecke eaa00050e4 Bug 1665850 - Switch JS to use non-reference errors with mozilla::Result. r=jandem
Also switch optimizations for HasFreeLSB and existing tests to no longer
use references.

Differential Revision: https://phabricator.services.mozilla.com/D90661
2020-09-21 13:14:10 +00:00
Simon Giesecke 2e065c64d6 Bug 1665614 - Make mozilla::Result work with non-copyable/non-param error types. r=emilio,jandem
Among other things, there were some misuses of std::forward, and
GenericErrorResult was (presumably accidentally) instatiated with
references as the template argument type, e.g. const nsresult&,
which circumvented the check for not calling it with NS_OK in
ResultExtensions.h

Differential Revision: https://phabricator.services.mozilla.com/D90561
2020-09-21 13:12:48 +00:00
Butkovits Atila 270e7e2200 Backed out 5 changesets (bug 1665927, bug 1665614, bug 1665850) for causing bustage on Result.h. CLOSED TREE
Backed out changeset 1467e76399e8 (bug 1665927)
Backed out changeset ebd4dfbc0a88 (bug 1665850)
Backed out changeset 5e23340e3b39 (bug 1665850)
Backed out changeset 5bc547e7a773 (bug 1665850)
Backed out changeset 8d88afb85a78 (bug 1665614)
2020-09-21 15:25:16 +03:00
Simon Giesecke 70bda1ef61 Bug 1665850 - Switch JS to use non-reference errors with mozilla::Result. r=jandem
Also switch optimizations for HasFreeLSB and existing tests to no longer
use references.

Differential Revision: https://phabricator.services.mozilla.com/D90661
2020-09-21 11:11:02 +00:00
Simon Giesecke 3b0420646e Bug 1665614 - Make mozilla::Result work with non-copyable/non-param error types. r=emilio,jandem
Among other things, there were some misuses of std::forward, and
GenericErrorResult was (presumably accidentally) instatiated with
references as the template argument type, e.g. const nsresult&,
which circumvented the check for not calling it with NS_OK in
ResultExtensions.h

Differential Revision: https://phabricator.services.mozilla.com/D90561
2020-09-21 10:38:19 +00:00
Jessica Tallon 1ab5dc76df Bug 1651725 - Add 'minimum' argument to WASM's Memory & Table r=lth
This adds a 'minimum' argument to the JS-API for the WebAssembly.Memory
and WebAssembly.Table objects. This parameter represents the minimum
size of the object which was specified by the 'initial' parameter. This
supports using either initial or minimum to specify the parameter.

This commit is part of the work to add type reflections to the
WebAssembly JS-API as specified in the js-types proposal.

Differential Revision: https://phabricator.services.mozilla.com/D85887
2020-09-21 11:01:19 +00:00
Bogdan Tara 38ab674b2b Backed out changeset 2550e7f176e4 (bug 1664979) for causing bustage CLOSED TREE 2020-09-21 09:13:16 +03:00
Dmitry Bezhetskov a111dc1b42 Bug 1664979 - Fix tls offset in case of widenFloatToDouble is true [fast fix]. r=lth
When we do Push(srcSingle) inside outOfLineTruncateSlow but we don't adjust tlsOffset.

Differential Revision: https://phabricator.services.mozilla.com/D90537
2020-09-21 05:18:59 +00:00
Sylvestre Ledru ec8859e69e Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D90793
2020-09-20 10:14:09 +00:00
Tooru Fujisawa bc885eef14 Bug 1666024 - Clear FunctionFlags::Flags::MUTABLE_FLAGS bits in FunctionBox. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D90755
2020-09-18 21:06:28 +00:00
Jon Coppeard d0f4cccc5d Bug 1665583 - Report OOM for off-thread buffer allocations r=tcampbell
I don't know why we never did this before.  And I guess it won't be needed when
we stop allocating GC things off-thread.

Differential Revision: https://phabricator.services.mozilla.com/D90701
2020-09-18 14:33:31 +00:00
Jan de Mooij 5bac1f5ee0 Bug 1665303 - Clean up inlined ICScript if attaching the new stub failed. r=iain
It was hard to fix the test to reproduce on mozilla-central tip so this adds a
trialInline() testing function to trigger trial inlining of the caller's frame.

Differential Revision: https://phabricator.services.mozilla.com/D90552
2020-09-18 13:36:58 +00:00
André Bargull bbb6bf73e4 Bug 1665348 - Part 8: Transpile LoadFunctionLengthResult. r=jandem
Also change CacheIR to not attach the stub if it will fail.

Differential Revision: https://phabricator.services.mozilla.com/D90409
2020-09-18 13:32:12 +00:00
André Bargull e80fdf64f6 Bug 1665348 - Part 7: Move bound-function length slot constant into FunctionExtended. r=jandem
No self-hosted code reads `BOUND_FUN_LENGTH_SLOT`, so we might as well move it
to the other constants in `FunctionExtended`.

Drive-by fix:
- Use fallibleUnboxInt32 in `MacroAssembler::loadFunctionLength()`.

Differential Revision: https://phabricator.services.mozilla.com/D90408
2020-09-18 13:01:37 +00:00
André Bargull 8b7c441b4b Bug 1665348 - Part 6: Check property name before the lookup when trying to attach FunctionLength. r=jandem
This avoids calling `LookupPropertyPure` unless the property name is actually "length".

Differential Revision: https://phabricator.services.mozilla.com/D90407
2020-09-18 13:00:32 +00:00
André Bargull 105e32097c Bug 1665348 - Part 5: Transpile LoadArgumentsObjectLengthResult. r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D90406
2020-09-18 13:00:04 +00:00
André Bargull 449328d5fe Bug 1665348 - Part 4: Add MacroAssembler::loadArgumentsObjectLength. r=jandem
Add in preparation for the next part.

Differential Revision: https://phabricator.services.mozilla.com/D90405
2020-09-18 12:58:06 +00:00
André Bargull 52cf9271ad Bug 1665348 - Part 3: Transpile LoadArgumentsObjectArgResult. r=jandem
Uses the same alias set as `MGetArgumentsObjectArg`. A more narrow alias set
may be possible, but we need to be sure not to run into any issues with mapped
arguments.

Differential Revision: https://phabricator.services.mozilla.com/D90404
2020-09-18 12:57:58 +00:00
André Bargull a88c07e6cf Bug 1665348 - Part 2: Add MacroAssembler::loadArgumentsObjectElement. r=jandem
Add `MacroAssembler::loadArgumentsObjectElement` in preparation for the next
part.

Differential Revision: https://phabricator.services.mozilla.com/D90403
2020-09-18 12:54:53 +00:00
André Bargull 5f97d2fddb Bug 1665348 - Part 1: Don't attach LoadArgumentsObjectArgResult when it will fail. r=jandem
Don't attach LoadArgumentsObjectArgResult when it will fail anyway. The checks mirror
the dynamic checks from CacheIRCompiler.

Differential Revision: https://phabricator.services.mozilla.com/D90396
2020-09-18 12:53:55 +00:00
Jon Coppeard 09993c9c49 Bug 1665572 - Remove GCParallelTask's 'finishing' state which is no longer needed now that task execution happens with the lock held r=jandem
Depends on D90526

Differential Revision: https://phabricator.services.mozilla.com/D90527
2020-09-18 09:38:12 +00:00
Jon Coppeard 593516ea32 Bug 1665572 - Call GCParallelTask::run() method with the helper thread lock held r=jandem
The first part is to call this method with the lock held and update the implementations.

Differential Revision: https://phabricator.services.mozilla.com/D90526
2020-09-18 09:19:36 +00:00