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

78782 Коммитов

Автор SHA1 Сообщение Дата
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
Dmitry Bezhetskov 85697beac0 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-09 08:59:55 +00:00
Dmitry Bezhetskov 614463f652 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-09 06:37:59 +00:00
Dmitry Bezhetskov 4c6f4e6bc3 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-09 10:48:09 +00:00
Dmitry Bezhetskov 36456530e8 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-09 09:50:35 +00:00
Dmitry Bezhetskov cbe5ad5da3 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 05:40:14 +00:00
Cosmin Sabou 914580f435 Backed out changeset 0f6ea0586a34 (bug 1663938) for causing Bug 1664326. 2020-09-11 08:12:30 +03:00
Gerald Squelart a087b2df35 Bug 1663554 - Convert AUTO_PROFILER_TEXT_MARKER_... to new AUTO_PROFILER_MARKER_TEXT - r=gregtatum
The name `AUTO_PROFILER_MARKER_TEXT` is more consistent with the equivalent non-`AUTO` macro, and similarly arguments have been re-ordered to be the same, i.e.: Name, category&options, text.

The different macros with different argument sets can now be collapsed into one macro, and the optional arguments (timing, inner window id, backtrace) can easily be added to the `MarkerOptions` where needed.

As a bonus, a specific start time can optionally be provided at construction time.

Differential Revision: https://phabricator.services.mozilla.com/D89588
2020-09-11 00:42:51 +00:00
Tooru Fujisawa cfd0790e49 Bug 1664281 - Start encoding in GlobalHelperThreadState::finishSingleParseTask with !useOffThreadParseGlobal. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D89815
2020-09-10 19:32:19 +00:00
Jon Coppeard 81469e4b50 Bug 1663938 - Assert that the collector doesn't trigger barriers during marking r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D89638
2020-09-10 18:10:00 +00:00
Csoregi Natalia 67eb265e55 Backed out changeset db6f7a903c64 (bug 1651725) for spidermonkey bustage on /basic.js. CLOSED TREE 2020-09-10 19:43:00 +03:00
Tooru Fujisawa 0a00eddff0 Bug 1664182 - Add JS::SetUseOffThreadParseGlobal and js::UseOffThreadParseGlobal, replacing JS::ContextOptions::setUseOffThreadParseGlobal. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D89784
2020-09-10 16:05:39 +00:00
Tooru Fujisawa f7175553bb Bug 1663962 - Part 2: Add JS::CompileAndStartIncrementalEncoding. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D89690
2020-09-10 16:05:25 +00:00