searching for reviewer(jandem)
21f755c04005255c5305a13ad9087420e4489b7b: Bug 1580246: Remove object-literal singleton objects allocated at parse. r=mgaudet,jandem
Chris Fallin <cfallin@mozilla.com> - Mon, 18 Nov 2019 20:57:50 +0000 - rev 502478
Push
114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1580246: Remove object-literal singleton objects allocated at parse. r=mgaudet,jandem
Instead, this patch introduces a new `ObjLiteral` mini-bytecode format
that is used to carry object-literal information from parse time to a
later time at which GC objects are safe to allocate. The mini-bytecode simply
specifies a list of fields and constant field values.
The original intent of this patch (realized in previous versions of it)
was to make this an opcode, and completely replace object creation
sequences (NEWINIT, INITPROP, INITPROP, ...) with one OBJLITERAL opcode.
However, there are quite a few performance regressions that occur when
replacing the finely-tuned set of optimizations around this with a new
mechanism.
As a result, this patch only defers allocation of the objects until the
very end of parse. Each object literal adds an ObjLiteralCreationData
instance to the GC-things list, and when the GC-things list is processed
to perform deferred allocations, the described objects will be created.
This is a rebased version of the original patch (landed as D47985 and
then backed out) with the Kraken regression (
bug 1594753) fixed as noted
in the bug above.
Differential Revision:
https://phabricator.services.mozilla.com/D52383
41919e4ed34d693e9bc16755957f27f95936c8a9: Bug 1556033 - Properly skip frame execution if the debugger overrides it. r=jandem
Logan Smyth <loganfsmyth@gmail.com> - Mon, 18 Nov 2019 01:02:31 +0000 - rev 502377
Push
114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1556033 - Properly skip frame execution if the debugger overrides it. r=jandem
The debugger allows its hooks to return explicit completion values that should
take the place of any completion value of the function beig executed. It also
handles tearing down any in-progress generators and such.
In this case, we were attempting to treat the return completion from the
debugger as if it were a real inline 'return' statement, but that attempts to
evaluate the frame and run `finally` blocks and such, which we do not want
because debugger completions are more like function termination with a result.
Differential Revision:
https://phabricator.services.mozilla.com/D52805
6c468a5b599635fc091ea77b888283ada23abfae: Bug 1596572 - make CompareStringInfinityOrNaN work with clang 5.x and C++17; r=jandem
Nathan Froyd <froydnj@mozilla.com> - Fri, 15 Nov 2019 10:29:33 +0000 - rev 502173
Push
114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1596572 - make CompareStringInfinityOrNaN work with clang 5.x and C++17; r=jandem
clang 5.x (which is now our minimum supported clang version as of
bug
1579189) doesn't quite work with inline variables and C++17.
Fortunately, we can make some straightforward changes to make the code
for `CompareStringInfinityOrNan` work in such situations.
Differential Revision:
https://phabricator.services.mozilla.com/D53082
1c3c775faf994b0cb12be28fc5afca9f444569af: Bug 1468789 - Part 2: Collect inner window id information for js interpreter frames and add a mechanism to get that for jit frames r=gerald,jandem,mstange
Nazım Can Altınova <canaltinova@gmail.com> - Fri, 15 Nov 2019 08:01:30 +0000 - rev 502164
Push
114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1468789 - Part 2: Collect inner window id information for js interpreter frames and add a mechanism to get that for jit frames r=gerald,jandem,mstange
Differential Revision:
https://phabricator.services.mozilla.com/D51860
0c93e34bc1f3b2e56d53a48ff6d6c09b083c8bba: Bug 1468789 - Part 1: Add window id inside realm creation options. r=jandem,bzbarsky
Nazım Can Altınova <canaltinova@gmail.com> - Thu, 14 Nov 2019 12:26:25 +0000 - rev 502163
Push
114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1468789 - Part 1: Add window id inside realm creation options. r=jandem,bzbarsky
Differential Revision:
https://phabricator.services.mozilla.com/D51859
bba1ab697faa083c7fe335061b8ca607bd83a2c7: Bug 1596288 - Move some code in Bailouts.h into Bailouts.cpp that is the sole user of it. r=jandem
Jeff Walden <jwalden@mit.edu> - Thu, 14 Nov 2019 22:53:04 +0000 - rev 502065
Push
114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1596288 - Move some code in Bailouts.h into Bailouts.cpp that is the sole user of it. r=jandem
Differential Revision:
https://phabricator.services.mozilla.com/D52936
4cf8f3f89042f4622a349e2fd75a849155ffa75b: Bug 1594998 - Make standalone SpiderMonkey use libxul-like panic. r=froydnj,jandem
Mike Hommey <mh+mozilla@glandium.org> - Wed, 13 Nov 2019 22:07:08 +0000 - rev 501850
Push
114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
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
ddc6fa7e24f2eb5e96e0e0215a943b06d4607b95: Bug 1566141 - implement nullish coalescence in ion monkey r=jandem
yulia <ystartsev@mozilla.com> - Tue, 12 Nov 2019 16:57:39 +0000 - rev 501728
Push
114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1566141 - implement nullish coalescence in ion monkey r=jandem
Differential Revision:
https://phabricator.services.mozilla.com/D51640
2a8c35575189a16dcdf6af014a12b046817b28b2: Bug 1566141 - make baseline work with JSOP code for coalesce r=jorendorff,jandem
yulia <ystartsev@mozilla.com> - Tue, 12 Nov 2019 16:57:21 +0000 - rev 501727
Push
114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1566141 - make baseline work with JSOP code for coalesce r=jorendorff,jandem
Differential Revision:
https://phabricator.services.mozilla.com/D51639
9b150dd56999e1c2b7aa47cf9c0e8d96c6c8eff3: Bug 1566141 - make interpreter work with JSOP code for coalesce r=jorendorff,jandem
yulia <ystartsev@mozilla.com> - Tue, 12 Nov 2019 17:33:55 +0000 - rev 501726
Push
114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1566141 - make interpreter work with JSOP code for coalesce r=jorendorff,jandem
Differential Revision:
https://phabricator.services.mozilla.com/D51638
c3a0f52402f856f9ef747ef6aca49d7123431f0d: Bug 1593971: Add type policy to MTypedArrayIndexToInt32. r=jandem
André Bargull <andre.bargull@gmail.com> - Fri, 08 Nov 2019 09:48:50 +0000 - rev 501603
Push
114172 by dluca@mozilla.com at Tue, 19 Nov 2019 11:31:10 +0000
Bug 1593971: Add type policy to MTypedArrayIndexToInt32. r=jandem
MTypedArrayIndexToInt32's input can be replaced with MPhi nodes after
construction. Use a type policy to ensure these MPhi node have the expected
type (either Int32 or Double).
Differential Revision:
https://phabricator.services.mozilla.com/D52151
a8826071744bd06e4e300f3ab220952f1f92d82c: Bug 1594640 - Implement a new jit/FlushICache.h header, delegating to architecture-specific headers, to expose js::jit::FlushICache in a single location. r=jandem
Jeff Walden <jwalden@mit.edu> - Mon, 11 Nov 2019 22:10:22 +0000 - rev 501530
Push
114170 by malexandru@mozilla.com at Tue, 12 Nov 2019 21:58:32 +0000
Bug 1594640 - Implement a new jit/FlushICache.h header, delegating to architecture-specific headers, to expose js::jit::FlushICache in a single location. r=jandem
Differential Revision:
https://phabricator.services.mozilla.com/D52122
caf55914ccddba34d462a1206530d7868b6c4992: Bug 1594961 - Split FrameIter-related functionality out of vm/Stack.h to vm/FrameIter.h, Activation-related functionality to vm/Activation.h, and JitActivation functionality to vm/JitActivation.h. r=jandem CLOSED TREE
Jeff Walden <jwalden@mit.edu> - Fri, 08 Nov 2019 23:27:36 +0100 - rev 501360
Push
114168 by dluca@mozilla.com at Sun, 10 Nov 2019 03:08:55 +0000
Bug 1594961 - Split FrameIter-related functionality out of vm/Stack.h to vm/FrameIter.h, Activation-related functionality to vm/Activation.h, and JitActivation functionality to vm/JitActivation.h. r=jandem CLOSED TREE
Differential Revision:
https://phabricator.services.mozilla.com/D52315
933f3452a368cddf7a67bf71e2956ee7cac9a718: Bug 1593801: Fix conditional load of BigInt digits. r=jandem
André Bargull <andre.bargull@gmail.com> - Tue, 05 Nov 2019 15:28:34 +0000 - rev 500653
Push
114166 by apavel@mozilla.com at Thu, 07 Nov 2019 10:04:01 +0000
Bug 1593801: Fix conditional load of BigInt digits. r=jandem
Differential Revision:
https://phabricator.services.mozilla.com/D51797
8d0f2ca33ee84b7e6154af67bd2ea367a0a93b24: Bug 1591405 - Add BaseScript::function() and simplify code. r=jandem
Ted Campbell <tcampbell@mozilla.com> - Fri, 01 Nov 2019 21:46:55 +0000 - rev 500455
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1591405 - Add BaseScript::function() and simplify code. r=jandem
Instead of checking for canonical function using scope chain, we can
directly use the functionOrGlobal field. By moving this to the
BaseScript class we can also simplify the debugger acccess.
Differential Revision:
https://phabricator.services.mozilla.com/D47071
b3a76c2b11b343f6170ccb599d1af7d8cfd06858: Bug 1585372 - Run InitScriptCoverage after initialization. r=jandem,nbp
Ted Campbell <tcampbell@mozilla.com> - Mon, 04 Nov 2019 20:21:28 +0000 - rev 500453
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1585372 - Run InitScriptCoverage after initialization. r=jandem,nbp
To allow InitScriptCoverage to be more flexible, we need to delay the call
until the JSScript is actually initialized. This moves the calls from
JSScript constructor until the JSScript is actually initialized. This is
similar to the debugger onNewScript call, but more cleanup would be needed to
unify these.
Differential Revision:
https://phabricator.services.mozilla.com/D51473
821b104d357b899ba03415a82066e96db6aa269b: Bug 1593354 - Add BaseScript::IsFunction flag. r=jandem
Ted Campbell <tcampbell@mozilla.com> - Mon, 04 Nov 2019 07:56:09 +0000 - rev 500452
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1593354 - Add BaseScript::IsFunction flag. r=jandem
Set this flag for scripts that are for functions. This is equivalent to
checking the kind of the bodyScope() but is safe to call in GC contexts such
as finalization.
Also use an isFunction() accessor instead of checking if JSScript::function()
is nullptr throughout the codebase. Similarly, cleanup similar uses of
JSScript::module().
Differential Revision:
https://phabricator.services.mozilla.com/D51472
ae8a16518084434ca7ff1af082d321923c490787: Bug 1582348 - Enable writable streams in the browser when the javascript.options.{,writable_}streams prefs are set. (Writable streams are only half-implemented; DO NOT start reporting bugs yet, it *will* crash in all sorts of trivial ways.) r=jandem
Jeff Walden <jwalden@mit.edu> - Fri, 01 Nov 2019 22:55:05 +0000 - rev 500239
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1582348 - Enable writable streams in the browser when the javascript.options.{,writable_}streams prefs are set. (Writable streams are only half-implemented; DO NOT start reporting bugs yet, it *will* crash in all sorts of trivial ways.) r=jandem
Differential Revision:
https://phabricator.services.mozilla.com/D51049
90583a5ead34b46c110a78b9f74c2af9a16dafe9: Bug 1526870 - Part 16: Change Proxy CacheIR VM functions to use unboxed returned types when possible. r=jandem
André Bargull <andre.bargull@gmail.com> - Fri, 01 Nov 2019 16:06:12 +0000 - rev 500201
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 16: Change Proxy CacheIR VM functions to use unboxed returned types when possible. r=jandem
Differential Revision:
https://phabricator.services.mozilla.com/D51072
8d51d8075975b44f0d49d2506c1d46c342cb37e6: Bug 1526870 - Part 15: Use AutoCallVM for additional CacheIR emitters. r=jandem
André Bargull <andre.bargull@gmail.com> - Thu, 31 Oct 2019 13:23:43 +0000 - rev 500200
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 15: Use AutoCallVM for additional CacheIR emitters. r=jandem
Use a single implementation in CacheIRCompiler.cpp for CacheIR emitters which
can be updated to the changed AutoCallVM class.
Differential Revision:
https://phabricator.services.mozilla.com/D49922
63af736edacb0bb35d26558b246151623c733324: Bug 1526870 - Part 14: Deduce return types in AutoCallVM. r=jandem
André Bargull <andre.bargull@gmail.com> - Thu, 31 Oct 2019 13:22:23 +0000 - rev 500199
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 14: Deduce return types in AutoCallVM. r=jandem
The previous parts had separate Baseline and Ion implementations for some
CacheIR ops, because AutoCallVM only supports Values as the return type. With
this patch AutoCallVM can deduce the return types from VM calls, so more return
types than just Values can be supported.
Differential Revision:
https://phabricator.services.mozilla.com/D49921
1934ce1a9d59d5f9d385c14e4d512f1927191592: Bug 1526870 - Part 13: Support BigInt x String comparisons. r=jandem
André Bargull <andre.bargull@gmail.com> - Thu, 31 Oct 2019 13:22:00 +0000 - rev 500198
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 13: Support BigInt x String comparisons. r=jandem
Comparisons between BigInts and Strings is the only remaining unsupported
sloppy equality operation. Add support for these operand types, so there's
no unexpected performance cliff for non-Object operands in equality
comparisons.
Differential Revision:
https://phabricator.services.mozilla.com/D49920
1f6613c96ad355d9ddee8b4b876d8a25fbca9892: Bug 1526870 - Part 12: Specialise BigInt x Int32 comparisons. r=jandem
André Bargull <andre.bargull@gmail.com> - Thu, 31 Oct 2019 13:21:37 +0000 - rev 500197
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 12: Specialise BigInt x Int32 comparisons. r=jandem
When comparing a BigInt against an Int32, it's not actually necessary to call
into the VM, because we only need to perform some range checks and unsigned
comparisons, which can all be performed directly in inline assembly. This
gives another easy >2x performance improvement compared to the previous part.
Differential Revision:
https://phabricator.services.mozilla.com/D49918
bb7bc8d4265bf1309a0851d2cb8ab060da8b0f2f: Bug 1526870 - Part 11: Support BigInt x Number comparisons. r=jandem
André Bargull <andre.bargull@gmail.com> - Thu, 31 Oct 2019 13:32:34 +0000 - rev 500196
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 11: Support BigInt x Number comparisons. r=jandem
Adds support to compare BigInt and Number values against each other. In contrast
to binary operations, comparison operations allow mixing BigInts and Numbers.
For example when testing if a BigInt value is negative, `bigInt < 0` can be used
in addition to `bigInt < 0n`.
Differential Revision:
https://phabricator.services.mozilla.com/D49917
d2654be900532dbdf2b7f731d875dea5ff3121aa: Bug 1526870 - Part 11.a: Add support for (double, int) -> int ABI calls to the ARM simulators. r=jandem
André Bargull <andre.bargull@gmail.com> - Fri, 01 Nov 2019 09:14:30 +0000 - rev 500195
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 11.a: Add support for (double, int) -> int ABI calls to the ARM simulators. r=jandem
Differential Revision:
https://phabricator.services.mozilla.com/D51263
358c6ecdbab9789dd775557b685b73f129cd9744: Bug 1526870 - Part 10: Support the missing equality ops cases for Boolean values. r=jandem
André Bargull <andre.bargull@gmail.com> - Thu, 31 Oct 2019 13:32:34 +0000 - rev 500194
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 10: Support the missing equality ops cases for Boolean values. r=jandem
Comparing Booleans with either Doubles or Strings always performs ToNumber on
the Boolean operand. So when we add a Boolean to (boxed) Number operation to
CacheIR, we can reuse the existing support for comparing Numbers resp. comparing
Numbers and Strings and further trim down the list of unsupported sloppy equality
operations.
Differential Revision:
https://phabricator.services.mozilla.com/D49916
b64e4fd10c32e38de2017452b10ea75721a38d00: Bug 1526870 - Part 9: Support the missing equality ops cases for Symbol values. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 09:49:21 +0000 - rev 500193
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 9: Support the missing equality ops cases for Symbol values. r=jandem
Comparing a Symbol with one of {String,Boolean,Number,BigInt} is always false (resp.
true for NE/STRICTNE), so it's easy to support this case, too.
Differential Revision:
https://phabricator.services.mozilla.com/D49915
fc1eb2962e75c3ff16737dabfacda33d36e67e86: Bug 1526870 - Part 8: Update list of unsupported sloppy equality ops. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 09:48:59 +0000 - rev 500192
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 8: Update list of unsupported sloppy equality ops. r=jandem
The list of unsupported operations with missing some entries and wasn't
consistent when to omit equivalent cases.
Differential Revision:
https://phabricator.services.mozilla.com/D49914
7f2c547a9ab942f7c8b31cae8bf1bb8fa4bd6b66: Bug 1526870 - Part 7: Replace LBitOpV with LBinaryV. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 09:48:36 +0000 - rev 500191
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 7: Replace LBitOpV with LBinaryV. r=jandem
The separate `LBitOpV` class is no longer needed, because `LBitOpV` and
`LBinaryV` now both use `Value` for their input and output parameters.
Differential Revision:
https://phabricator.services.mozilla.com/D49913
1834c4372f1665eb796cdc8fb5db08419af371d9: Bug 1526870 - Part 6: Support bitwise- and shift-operations in Ion CacheIR. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 10:18:45 +0000 - rev 500190
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 6: Support bitwise- and shift-operations in Ion CacheIR. r=jandem
Ion never emitted MBinaryCache for bitwise- and shift-operations, so we never
used Ion CacheIR for these operations on BigInt values and instead always emitted
a LBitOpV, i.e. a VM call. With this patch, the changes in part 4 now also lead
to a performance improvement in Ion code.
Differential Revision:
https://phabricator.services.mozilla.com/D49912
12c37a20a1c2e7ba7195c001298a505406deafcc: Bug 1526870 - Part 5: Handle BigInts via abi-call in CompareIRGenerator. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 09:48:09 +0000 - rev 500189
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 5: Handle BigInts via abi-call in CompareIRGenerator. r=jandem
Adds new CacheIR ops to support comparison operations with BigInt operands. All
methods simply call into the VM to perform the actual operation. Comparisons
between two BigInt values can't GC or perform any side-effects, so we can use
an ABI call, which saves us an extra indirection through a VM function wrapper
and makes it possible to use a shared implementation in CacheIRCompiler.cpp.
Differential Revision:
https://phabricator.services.mozilla.com/D49911
c1b72e0bcfc1cfa37e24ea7d663e032bce3ca2e9: Bug 1526870 - Part 4: Handle BigInts via vm-call in BinaryArithIRGenerator. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 09:48:07 +0000 - rev 500188
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 4: Handle BigInts via vm-call in BinaryArithIRGenerator. r=jandem
Adds new CacheIR ops to support binary operations with BigInt operands. All
methods simply call into the VM to perform the actual operation.
JSOP_URSH isn't supported because it always throws when used with BigInts.
Parts 14/15 move the separate Baseline and Ion implementations into a single
implementation in CacheIRCompiler.
Differential Revision:
https://phabricator.services.mozilla.com/D49910
59e32702b1a62adff0c021bbc9f43762e885a60b: Bug 1526870 - Part 3: Handle BigInts via vm-call in UnaryArithIRGenerator. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 09:46:54 +0000 - rev 500187
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 3: Handle BigInts via vm-call in UnaryArithIRGenerator. r=jandem
Adds new CacheIR ops to support unary operations with BigInt operands. All
methods simply call into the VM to perform the actual operation.
Parts 14/15 move the separate Baseline and Ion implementations into a single
implementation in CacheIRCompiler.
Differential Revision:
https://phabricator.services.mozilla.com/D49909
ccdc3d34f617718e04685aa91b2d073be9f82177: Bug 1526870 - Part 2: Support BigInts in ToBoolIRGenerator. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 09:46:31 +0000 - rev 500186
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 2: Support BigInts in ToBoolIRGenerator. r=jandem
Adds the 'LoadBigIntTruthyResult' CacheIR op to handle BigInts in boolean contexts.
Differential Revision:
https://phabricator.services.mozilla.com/D49908
1863bee21f04cd1ca8e7e528e392bfc2cd5db7fb: Bug 1526870 - Part 1: Support BigInts in VMFunctions. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 09:46:08 +0000 - rev 500185
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1526870 - Part 1: Support BigInts in VMFunctions. r=jandem
Adds support for BigInt argument and return types to VM functions.
Differential Revision:
https://phabricator.services.mozilla.com/D49907
443669b4e79144aedd90d53d03a293d0fa9cedeb: Bug 1592936 - Remove unncessary check that helper threads have been started in GCParallelTask::startWithLockHeld r=jandem
Jon Coppeard <jcoppeard@mozilla.com> - Fri, 01 Nov 2019 10:52:05 +0000 - rev 500146
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1592936 - Remove unncessary check that helper threads have been started in GCParallelTask::startWithLockHeld r=jandem
Differential Revision:
https://phabricator.services.mozilla.com/D51274
9c304ce34a04364bf6e8a57f3a41a14c1ae1d574: Bug 1592537 - When waiting for a GC task, run it on the main thread if has not yet been picked up by a helper thread r=jandem
Jon Coppeard <jcoppeard@mozilla.com> - Fri, 01 Nov 2019 10:22:47 +0000 - rev 500133
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1592537 - When waiting for a GC task, run it on the main thread if has not yet been picked up by a helper thread r=jandem
Differential Revision:
https://phabricator.services.mozilla.com/D51104
50b918f617568bfc0f015e11be164477cc4f31ae: Bug 1592537 - Give GCParallelTask a new 'running' state and refactor r=jandem
Jon Coppeard <jcoppeard@mozilla.com> - Fri, 01 Nov 2019 10:22:40 +0000 - rev 500132
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1592537 - Give GCParallelTask a new 'running' state and refactor r=jandem
The new state is entered when the task starts executing on a helper thread. This is so we can tell the difference between tasks we have dispatched and those that have actually started running.
Differential Revision:
https://phabricator.services.mozilla.com/D51103
7da36585e596e5230b79a7bef3a7ad1fff5ad90d: Bug 1592958 - Ensure new WebAssembly blocks have slots enough for predecessor results r=jandem
Andy Wingo <wingo@igalia.com> - Fri, 01 Nov 2019 10:11:21 +0000 - rev 500130
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1592958 - Ensure new WebAssembly blocks have slots enough for predecessor results r=jandem
Differential Revision:
https://phabricator.services.mozilla.com/D51259
78949522297626cb5029a331aec9ba0b3a0613d0: Bug 1590694 - Use const GCPtrs where possible r=jandem
Jon Coppeard <jcoppeard@mozilla.com> - Thu, 31 Oct 2019 12:53:31 +0000 - rev 500027
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1590694 - Use const GCPtrs where possible r=jandem
This replaces GCPtr members with const GCPtr where trival to do so.
Depends on D50618
Differential Revision:
https://phabricator.services.mozilla.com/D50619
cfb65a5e10c0a1c1c08437be67bc5bc9fd83e29c: Bug 1590694 - Make it possible to use const GC wrappers r=jandem
Jon Coppeard <jcoppeard@mozilla.com> - Thu, 31 Oct 2019 14:12:15 +0000 - rev 500026
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1590694 - Make it possible to use const GC wrappers r=jandem
The main change is to make BarrieredBase::unsafeUnbarrieredForTracing() const and use const_cast to get return the non-const pointer. This makes sense because the GC is allowed to update the pointer used while preseving the logical value of the cell, e.g. when compacting.
Differential Revision:
https://phabricator.services.mozilla.com/D50618
f65f3003e407afaff8eb3ddc7703e684639f1f9b: Bug 1590694 - Use const GCPtrs where possible r=jandem
Jon Coppeard <jcoppeard@mozilla.com> - Thu, 31 Oct 2019 11:01:10 +0000 - rev 499963
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1590694 - Use const GCPtrs where possible r=jandem
This replaces GCPtr members with const GCPtr where trival to do so.
Depends on D50618
Differential Revision:
https://phabricator.services.mozilla.com/D50619
e42641548cb74ff4283343a970da30ee4b2d2e55: Bug 1590694 - Make it possible to use const GC wrappers r=jandem
Jon Coppeard <jcoppeard@mozilla.com> - Thu, 31 Oct 2019 11:00:25 +0000 - rev 499962
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1590694 - Make it possible to use const GC wrappers r=jandem
The main change is to make BarrieredBase::unsafeUnbarrieredForTracing() const and use const_cast to get return the non-const pointer. This makes sense because the GC is allowed to update the pointer used while preseving the logical value of the cell, e.g. when compacting.
Differential Revision:
https://phabricator.services.mozilla.com/D50618
7b07bb35e7b26ded4cb66242764aa86c42e52b1c: Bug 1129202 - Part 10: Handle TypedArray non-int32 indices in GetPropIRGenerator. r=jandem
André Bargull <andre.bargull@gmail.com> - Thu, 31 Oct 2019 08:22:37 +0000 - rev 499947
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1129202 - Part 10: Handle TypedArray non-int32 indices in GetPropIRGenerator. r=jandem
That way CacheIR can still attach an IC and Baseline/Ion don't need to take the
slow path when a TypedArray access happens through a Double not representable as
an Int32.
Differential Revision:
https://phabricator.services.mozilla.com/D39045
cbeae82d295cf342b231f5d8adec71dbc2b8f924: Bug 1129202 - Part 9: Handle TypedArray non-int32 indices in HasPropIRGenerator. r=jandem
André Bargull <andre.bargull@gmail.com> - Tue, 29 Oct 2019 09:34:59 +0000 - rev 499946
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1129202 - Part 9: Handle TypedArray non-int32 indices in HasPropIRGenerator. r=jandem
That way CacheIR can still attach an IC and Baseline/Ion don't need to take the
slow path when a TypedArray access happens through a Double not representable as
a (positive) Int32.
Differential Revision:
https://phabricator.services.mozilla.com/D39044
371d2efe156c928788d8ae55adbf436cadecc507: Bug 1129202 - Part 8: Handle TypedArray non-int32 indices in SetPropIRGenerator. r=jandem
André Bargull <andre.bargull@gmail.com> - Tue, 29 Oct 2019 09:34:57 +0000 - rev 499945
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1129202 - Part 8: Handle TypedArray non-int32 indices in SetPropIRGenerator. r=jandem
Negative int32 and doubles can both be optimised for TypedArray accesses due to
the fact that any number is a canonical numeric index.
With this change any TypedArray access with a double index can be optimised
without regressing
bug 1535031 or
bug 1526315.
Differential Revision:
https://phabricator.services.mozilla.com/D39043
825e8843d0b1b7737f3010c4c1b9a70f7b1f668a: Bug 1129202 - Part 7: Add MTypedArrayIndexToInt32 for accessing TypedArrays with any Double index. r=jandem
André Bargull <andre.bargull@gmail.com> - Tue, 29 Oct 2019 09:38:46 +0000 - rev 499944
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1129202 - Part 7: Add MTypedArrayIndexToInt32 for accessing TypedArrays with any Double index. r=jandem
The definition of canonical numeric index strings means that any access into a TypedArray
with a Double index never reads from the prototype chain. Instead if the Double is not
representable as an Int32, the access is equivalent to an out-of-bounds access. That
means we can substitute any non-Int32 Double index with an arbitrary index which is OOB.
This helps to avoid deoptimising TypedArray accesses with non-Int32 Double values by
handling them as normal out-of-bounds accesses, which are already optimisable.
Differential Revision:
https://phabricator.services.mozilla.com/D39041
288125d24d237d72ece0af61b011bcebfbc291d3: Bug 1129202 - Part 6: Add constant for maximum TypedArray length. r=jandem
André Bargull <andre.bargull@gmail.com> - Wed, 30 Oct 2019 10:18:38 +0000 - rev 499943
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1129202 - Part 6: Add constant for maximum TypedArray length. r=jandem
The next parts use this constant in static_asserts.
Differential Revision:
https://phabricator.services.mozilla.com/D39040
055d1cad290aafc6947cf2706439723bcf0e49b6: Bug 1129202 - Part 5: Enable now passing test262 tests. r=jandem
André Bargull <andre.bargull@gmail.com> - Tue, 29 Oct 2019 09:32:49 +0000 - rev 499942
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1129202 - Part 5: Enable now passing test262 tests. r=jandem
Differential Revision:
https://phabricator.services.mozilla.com/D39039
77c80b5f79eadeb3d41d27f0b4baae2dffa27f77: Bug 1129202 - Part 4: Allow numbers with fractional parts or exponents for canonical numeric indices. r=jandem
André Bargull <andre.bargull@gmail.com> - Tue, 29 Oct 2019 09:32:27 +0000 - rev 499941
Push
114164 by aiakab@mozilla.com at Tue, 05 Nov 2019 10:06:15 +0000
Bug 1129202 - Part 4: Allow numbers with fractional parts or exponents for canonical numeric indices. r=jandem
Differential Revision:
https://phabricator.services.mozilla.com/D39038