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

78794 Коммитов

Автор SHA1 Сообщение Дата
Tooru Fujisawa 2e3005ac3c Bug 1665015 - Use SystemAllocPolicy for ObjLiteralWriterBase and ObjLiteralAtomVector. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D90243
2020-09-15 14:54:10 +00:00
Jon Coppeard 2e7dd08c7c Bug 1664810 - Remove some dependencies of vm/EnvironmentObject.h r=jandem
Similar to previous patches, remove includes from EnvironmentObject.h where
possible and some of its uses.

Differential Revision: https://phabricator.services.mozilla.com/D90104
2020-09-15 12:54:09 +00:00
Jon Coppeard d6d58f3b3d Bug 1664810 - Slim down AtomMarking includes r=sfink
Including SymbolType.h in AtomMarking.h pulls in a ton of vm includes. This
dependency can be moved to the -inl.h which used rarely.

Differential Revision: https://phabricator.services.mozilla.com/D90103
2020-09-15 11:04:31 +00:00
Jon Coppeard a5d4574b7c Bug 1664810 - Remove dependencies on jit/MacroAssembler.h where possible r=jandem
This file is huge and pulls in a ton of includes. We can remove some of its
includes and a bunch of its uses too.

Differential Revision: https://phabricator.services.mozilla.com/D90102
2020-09-15 11:04:31 +00:00
Jon Coppeard 722d63f40b Bug 1664810 - Move internal helper thread definitions into a separate header file r=jandem
Currently HelperThreads.h defines all the internals of the helper thread
system, but most of this is only neeed by HelperThreads.cpp itself. This patch
splits that out into a separate file so that HelperThreads.h defines an API for
the helper thread system.

Differential Revision: https://phabricator.services.mozilla.com/D90101
2020-09-15 11:04:31 +00:00
Jon Coppeard 2f4a67969d Bug 1664810 - Remove TraceIncomingCCWs from the public API r=sfink
This is only used by ubinode and doesn't need to be in the public API. I
removed ZoneSet/CompartmentSet which are otherwise unneeded.

Differential Revision: https://phabricator.services.mozilla.com/D90100
2020-09-15 11:04:31 +00:00
Csoregi Natalia dd1efa8650 Backed out 5 changesets (bug 1664810) for build bustages on TestingFunctions.cpp. CLOSED TREE
Backed out changeset 8342bb37c478 (bug 1664810)
Backed out changeset 0cf50c9c75d9 (bug 1664810)
Backed out changeset b85512fd99e1 (bug 1664810)
Backed out changeset 99bd2cab97c8 (bug 1664810)
Backed out changeset 0d5cd8372bcb (bug 1664810)
2020-09-15 14:01:07 +03:00
Jon Coppeard bc5cc1dd1b Bug 1664810 - Remove some dependencies of vm/EnvironmentObject.h r=jandem
Similar to previous patches, remove includes from EnvironmentObject.h where
possible and some of its uses.

Differential Revision: https://phabricator.services.mozilla.com/D90104
2020-09-15 10:32:29 +00:00
Jon Coppeard 337a3accde Bug 1664810 - Slim down AtomMarking includes r=sfink
Including SymbolType.h in AtomMarking.h pulls in a ton of vm includes. This
dependency can be moved to the -inl.h which used rarely.

Differential Revision: https://phabricator.services.mozilla.com/D90103
2020-09-15 10:30:29 +00:00
Jon Coppeard 1342723b78 Bug 1664810 - Remove dependencies on jit/MacroAssembler.h where possible r=jandem
This file is huge and pulls in a ton of includes. We can remove some of its
includes and a bunch of its uses too.

Differential Revision: https://phabricator.services.mozilla.com/D90102
2020-09-15 10:30:14 +00:00
Jon Coppeard 456115c547 Bug 1664810 - Move internal helper thread definitions into a separate header file r=jandem
Currently HelperThreads.h defines all the internals of the helper thread
system, but most of this is only neeed by HelperThreads.cpp itself. This patch
splits that out into a separate file so that HelperThreads.h defines an API for
the helper thread system.

Differential Revision: https://phabricator.services.mozilla.com/D90101
2020-09-15 10:29:29 +00:00
Jon Coppeard f55613367d Bug 1664810 - Remove TraceIncomingCCWs from the public API r=sfink
This is only used by ubinode and doesn't need to be in the public API. I
removed ZoneSet/CompartmentSet which are otherwise unneeded.

Differential Revision: https://phabricator.services.mozilla.com/D90100
2020-09-15 10:27:57 +00:00
Doug Thayer 025f5fb9f0 Bug 1656261 - Back out all recent StartupCache work r=RyanVM
This backs out all work from bug 1627075 as well as all of its
descendents. There were a few conflicts when backing this out but
overall it was pretty clean, so I would say it's a fairly mild
level of risk. Historically Nathan Froyd has reviewed these patches,
but he is no longer at Mozilla, and no one else is particularly
familiar with the code, so I am passing this off to RyanVM who has
at least been familiar with the history of the bug.

Differential Revision: https://phabricator.services.mozilla.com/D90096
2020-09-14 17:00:53 +00:00
André Bargull accfb4e676 Bug 1664195: Add inlining support to Object.prototype.isPrototypeOf. r=jandem
`Object.prototype.isPrototypeOf` can directly be inlined through the existing
`MInstanceOf` mir node resp. the `LoadInstanceOfObjectResult` CacheIR op.

Differential Revision: https://phabricator.services.mozilla.com/D89735
2020-09-14 13:13:51 +00:00
André Bargull 9c2f1ec069 Bug 1663650: Optimise String when called as a constructor in CacheIR and Warp. r=jandem
The shareable code with the existing `tryAttachString()` was minimal, therefore
a separate function was added to handle the case when `String()` is called as a
constructor.

Differential Revision: https://phabricator.services.mozilla.com/D89459
2020-09-14 13:14:37 +00:00
Jan de Mooij aa01acb495 Bug 1663404 part 4 - Check forceInlineCaches option in WarpOracle. r=anba
Differential Revision: https://phabricator.services.mozilla.com/D89444
2020-09-14 07:43:06 +00:00
Jan de Mooij 74c6172172 Bug 1663404 part 3 - Add Ion/Warp IC for OptimizeSpreadCall. r=anba
Differential Revision: https://phabricator.services.mozilla.com/D89443
2020-09-14 07:37:04 +00:00
Jan de Mooij c78b5c555e Bug 1663404 part 2 - Add CacheIR generator for OptimizeSpreadCall. r=anba
Differential Revision: https://phabricator.services.mozilla.com/D89442
2020-09-14 07:05:54 +00:00
Jan de Mooij 0d4ee674a0 Bug 1663404 part 1 - Add Baseline IC for OptimizeSpreadCall. r=anba
Differential Revision: https://phabricator.services.mozilla.com/D89441
2020-09-14 07:05:36 +00:00
Dorel Luca a8db20c94f Backed out 4 changesets (bug 1663404) for Reftest failures in js/src/tests/non262/Array/regress-101964.js. CLOSED TREE
Backed out changeset f957a22b6edf (bug 1663404)
Backed out changeset 8056b46d4e1f (bug 1663404)
Backed out changeset f4bf1e361087 (bug 1663404)
Backed out changeset 7662ebd5a4cb (bug 1663404)
2020-09-14 12:41:08 +03:00
Jan de Mooij 6a7d037492 Bug 1663404 part 4 - Check forceInlineCaches option in WarpOracle. r=anba
Differential Revision: https://phabricator.services.mozilla.com/D89444
2020-09-14 07:43:06 +00:00
Jan de Mooij bbecb1f661 Bug 1663404 part 3 - Add Ion/Warp IC for OptimizeSpreadCall. r=anba
Differential Revision: https://phabricator.services.mozilla.com/D89443
2020-09-14 07:37:04 +00:00
Jan de Mooij ff5291c1f5 Bug 1663404 part 2 - Add CacheIR generator for OptimizeSpreadCall. r=anba
Differential Revision: https://phabricator.services.mozilla.com/D89442
2020-09-14 07:05:54 +00:00
Jan de Mooij 3513169737 Bug 1663404 part 1 - Add Baseline IC for OptimizeSpreadCall. r=anba
Differential Revision: https://phabricator.services.mozilla.com/D89441
2020-09-14 07:05:36 +00:00
Dmitry Bezhetskov 0c97a6410f Bug 1639153 - Part 6.6: Add tls dependency for truncate i32. r=lth
We generate builtin call for MTruncateToInt32 operation for floating points types,
so we need to add a tls dependency.
I inserted NYI for arm64 because Ion doesn't support arm64.

Differential Revision: https://phabricator.services.mozilla.com/D89550
2020-09-14 05:19:44 +00:00
Dmitry Bezhetskov b72efe024e Bug 1639153 - Part 6.3: Establish dependency from tls for arm callWithABI div/mod i64. r=lth
To be able to call c++ runtime via Builtin thunk we need to set up WasmTlsReg.
In this patch I create dependencies from MIR level to Codegen to be sure that WasmTlsReg is alive
when we call runtime in div/mod i64 for arm.

Differential Revision: https://phabricator.services.mozilla.com/D88762
2020-09-14 04:00:18 +00:00
Caroline Cullen fe4e12f385 Bug 1662943 - Get happiness for report in C++. r=iain
Differential Revision: https://phabricator.services.mozilla.com/D89640
2020-09-11 16:53:52 +00:00
Caroline Cullen f224548043 Bug 1657206 - Get all scripts in the zone and run RateMyCacheIR on those scripts. r=iain
Differential Revision: https://phabricator.services.mozilla.com/D89178
2020-09-11 16:53:44 +00:00
Tooru Fujisawa cf34620357 Bug 1664293 - Part 2: Replace frontend::CompileLazyFunction with frontend::CompileLazyFunctionToStencil + frontend::InstantiateStencilsForDelazify. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D89900
2020-09-11 16:12:20 +00:00
Tooru Fujisawa 9de1b4c0f5 Bug 1664293 - Part 1: Templatize DelazifyCanonicalScriptedFunction for char unit. r=tcampbell
Depends on D89898

Differential Revision: https://phabricator.services.mozilla.com/D89899
2020-09-11 13:15:50 +00:00
Tooru Fujisawa 632131b7b3 Bug 1664363 - Replace JS::DecodeScript + JS::StartIncrementalEncoding with JS::DecodeScriptAndStartIncrementalEncoding. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D89898
2020-09-11 15:38:35 +00:00
Denis Palmeiro 996cecd73e Bug 1652126: Provide OffThreadToken's immediately and allow cancellation of parse tasks that are not completely finished. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D89464
2020-09-11 15:27:51 +00:00
Iain Ireland 7c91f351df Bug 1663993: Add warm-up data field to SelfHostedLazyScript r=tcampbell
The issue here is that we trial-inline a self-hosted call, trigger relazification, then try to call the trial-inlined function. Unlike other functions, self-hosted lazy functions do not have a BaseScript. Instead, we have a fake `SelfHostedLazyScript` per-runtime that contains a trampoline pointer. In general, this is good enough for jitcode. However, when we call a trial-inlined function, we have to guard that it has a `BaselineScript`, and the first step is to check if it has a `JitScript`.

To make `branchIfScriptHasNoJitScript` work for self-hosted lazy functions, this patch adds a warm-up data field to `SelfHostedLazyScript`.

Differential Revision: https://phabricator.services.mozilla.com/D89848
2020-09-11 13:40:43 +00:00
Dmitry Bezhetskov 9edeed7b15 Bug 1639153 - Part 6.4: Add tls dependency for WasmTruncateToInt64 and Int64ToFloatingPoint for arm. r=lth
In this patch we add a tls dependency for the remaining nodes which use
BuiltinThunk to call c++ runtime. By ABI requirements WasmTlsReg should
be set.

Differential Revision: https://phabricator.services.mozilla.com/D89239
2020-09-11 12:02:42 +00:00
Dmitry Bezhetskov 9c7d569c43 Bug 1639153 - Part 6.5: Add tls dependency for WasmModD. r=lth
We generate builtin call for Mod operation for Double types, so we need
to add a tls dependency. In this patch I've added it.

Differential Revision: https://phabricator.services.mozilla.com/D89243
2020-09-11 11:20:20 +00:00
Jon Coppeard f4aee8119a Bug 1663938 - Assert that the collector doesn't trigger barriers during marking r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D89638
2020-09-11 11:13:36 +00:00
Jan de Mooij 927eea2c81 Bug 1663847 part 2 - Change Debugger.Environment.callee getter to calleeScript getter. r=tcampbell,jdescottes
The callee getter returned |undefined| for certain functions because it's
hard to recover the callee consistently for all environments (and we can't
return the internal canonical function). See also bug 1414684.

This patch fixes that by exposing the script instead of the callee. Devtools is
only interested in the displayName and parameterNames properties and those are
also available on scripts (the previous patch adds Script.parameterNames).

Differential Revision: https://phabricator.services.mozilla.com/D89701
2020-09-11 09:24:34 +00:00
Jan de Mooij 3317e675aa Bug 1663847 part 1 - Add Debugger.Script.parameterNames getter. r=tcampbell
Simplifies the implementation of Debugger.Object.parameterNames (for functions)
and reuses it for scripts. The test is based on the Object-parameterNames.js
test with some minor changes and the documentation is based on the Object docs.

Devtools code will use this in the next patch.

Differential Revision: https://phabricator.services.mozilla.com/D89700
2020-09-11 09:21:46 +00:00
Dmitry Bezhetskov 0aec3be1ea Bug 1639153 - Part 6.2: Establish dependency from tls for x86 callWithABI div/mod i64. r=lth
x86 has few register so to do div/mod for i64 it call the runtime
and clobber almost all gp registers including WasmTlsReg.
To be able to call c++ runtime via Builtin thunk we need to set up WasmTlsReg.
In this patch I create dependencies from MIR level to Codegen to be sure that WasmTlsReg is alive
when we call runtime.

Differential Revision: https://phabricator.services.mozilla.com/D88524
2020-09-11 09:30:56 +00:00
Butkovits Atila f7555416ad Backed out 5 changesets (bug 1639153) for landing the wrong stack of patches. CLOSED TREE
Backed out changeset 62480de389ff (bug 1639153)
Backed out changeset f2e486f1be17 (bug 1639153)
Backed out changeset b79c89e6ac82 (bug 1639153)
Backed out changeset ab5825b43bb5 (bug 1639153)
Backed out changeset 1b94af3458ce (bug 1639153)
2020-09-11 12:23:15 +03:00
Jan de Mooij ea3ab229a3 Bug 1664189 - Share hash computation when looking up atoms. r=djvj
Differential Revision: https://phabricator.services.mozilla.com/D89731
2020-09-11 03:37:15 +00:00
Dmitry Bezhetskov 9acaf6183d Bug 1639153 - Part 5: Remove remaining uses of Frame::tls. r=lth. CLOSED TREE
Here we remove remaining uses of Frame::tls. There are many places where
we use it: in debug frames, in profiling frames, in jit activation, etc.
All these places require short fixes to use our new scheme for getting
tls, so I gathered them together.

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

Depends on D83045
2020-08-27 10:53:04 +00:00
Dmitry Bezhetskov 7b187fd633 Bug 1639153 - Part 4: Untie frame iteration from Frame::tls. r=lth
Here we replace usage of Frame::tls in frame iteration with GetNearestEffectiveTls.
We also maintain current tls for frame iteration object to not to call GetNearestEffectiveTls everytime.

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

Depends on D83044
2020-08-27 10:30:46 +00:00
Dmitry Bezhetskov 74f137f0b0 Bug 1639153 - Part 3: Implement the algorithm for obtaining tls and use it for wasm signal handling. r=lth
This is the third part of series of patches to Frame without tls pointer.
Here we preserve initial tls in all entry stubs and then use it to find a proper tls instance for a given frame.

To find the TlsData* for specific frame we start from a entry stub's tls
and then track tls through all possible cross-instance calls. This logic
is implemented in GetNearestEffectiveTls procedure.

Then, we use this new procedure to make singal handling free from Frame::tls.

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

Depends on D82888
2020-08-27 10:26:17 +00:00
Dmitry Bezhetskov e29b30ffb7 Bug 1639153 - Part 2: Preserve callee and caller tls'es. r=lth
This is a followup patch for removing Frame::tls.
Now, we are preserving caller's and callee's tls'es for all possible cross-instance calls in the previously allocated abi slots.
We also use preserved tls values to restore the caller's tls in Ion. Baseline doesn't need this because it restores the caller tls from its private stack slot after the call.

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

Depends on D82881
2020-08-27 09:02:50 +00:00
Dmitry Bezhetskov d44b24dcc5 Bug 1639153 - Part 1: Reserve two slots after stack arguments for the future tls preservation. r=lth
We are going to remove Frame::tls and support trampolines for indirect calls, so we need to get rid of using Frame::tls.
In this and the followup patches I will iteratively remove all dependencies of Frame::tls and remove it eventually.

In this patch I changed wasm ABI to allocate two stack slots after stack args to preserve caller's and callee's tls'es in the near future.

Differential Revision: https://phabricator.services.mozilla.com/D82881
2020-08-27 08:56:29 +00:00
Butkovits Atila 037f2bed9e Backed out changeset aad37f6cbf03 (bug 1639153) for landing an incomplete stack of patches. 2020-09-11 11:52:12 +03:00
Tarek Ziadé 3021e5b216 Bug 1662706 - add a fuzzy runner r=sparky,necko-reviewers,rstewart
Differential Revision: https://phabricator.services.mozilla.com/D89123
2020-09-11 08:13:27 +00:00
Dmitry Bezhetskov 9575614e33 Bug 1639153 - Part 6.2: Establish dependency from tls for x86 callWithABI div/mod i64. r=lth
x86 has few register so to do div/mod for i64 it call the runtime
and clobber almost all gp registers including WasmTlsReg.
To be able to call c++ runtime via Builtin thunk we need to set up WasmTlsReg.
In this patch I create dependencies from MIR level to Codegen to be sure that WasmTlsReg is alive
when we call runtime.

Differential Revision: https://phabricator.services.mozilla.com/D88524
2020-09-11 08:05:01 +00:00
Bogdan Tara 90230d7759 Backed out 5 changesets (bug 1639153) for bustages complaining about Lowering.cpp CLOSED TREE
Backed out changeset 1e582b17eab7 (bug 1639153)
Backed out changeset a309060018a8 (bug 1639153)
Backed out changeset 69a27bde5003 (bug 1639153)
Backed out changeset 9b42e0b690b6 (bug 1639153)
Backed out changeset fd8adea7aa17 (bug 1639153)
2020-09-11 09:03:13 +03:00