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

78768 Коммитов

Автор SHA1 Сообщение Дата
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
Tooru Fujisawa 035fcb1074 Bug 1663962 - Part 1: Add JS::FinishOffThreadScriptAndStartIncrementalEncoding. r=tcampbell
Depends on D89688

Differential Revision: https://phabricator.services.mozilla.com/D89689
2020-09-10 15:17:03 +00:00
Tooru Fujisawa 68d7cb31bf Bug 1663889 - Remove JS::CompileForNonSyntacticScope and set CompileOptions in caller. r=tcampbell
Differential Revision: https://phabricator.services.mozilla.com/D89688
2020-09-10 15:00:36 +00:00
Iain Ireland 54a1cf8201 Bug 1662146: Support bailing out from inlined funcall with no arguments r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D89525
2020-09-10 02:18:16 +00:00
Iain Ireland 966b1d38ac Bug 1662915: Part 15: Update comments r=jandem
I was thinking about writing an [SMDOC] comment until I realized we already had one. I settled for a few updates to that comment and some annotations on the ASCII diagrams.

Differential Revision: https://phabricator.services.mozilla.com/D89524
2020-09-10 02:17:48 +00:00
Iain Ireland 6d2a67211e Bug 1662915: Part 14: Change InitFromBailout to BaselineStackBuilder::buildOneFrame r=jandem
Tying everything together.

Differential Revision: https://phabricator.services.mozilla.com/D89523
2020-09-10 02:17:25 +00:00
Iain Ireland 2b07e70594 Bug 1662915: Part 13: Split up BaselineStackBuilder::prepareForNextFrame r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D89522
2020-09-10 02:16:42 +00:00
Iain Ireland c01a6dff60 Bug 1662915: Part 12: Add BaselineStackBuilder::prepareForNextFrame r=jandem
This patch hoists the stub frame / rectifier frame code into its own function. The next patch splits that function up.

Differential Revision: https://phabricator.services.mozilla.com/D89521
2020-09-10 02:16:39 +00:00
Iain Ireland ebc73e51d1 Bug 1662915: Part 11: Move script, function, and exception info logic inside BaselineStackBuilder r=jandem
In preparation for the next patch, get rid of the out-parameters in `InitFromBailout` and clean a few things up.

Differential Revision: https://phabricator.services.mozilla.com/D89520
2020-09-10 02:16:37 +00:00
Iain Ireland 702eb2bcd4 Bug 1662915: Part 10: Add BaselineStackBuilder::finishLastFrame r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D89519
2020-09-10 02:15:16 +00:00
Iain Ireland 8ed88f1285 Bug 1662915: Part 9: Add BaselineStackBuilder::validateFrame r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D89518
2020-09-10 02:14:57 +00:00
Iain Ireland bc76396190 Bug 1662915: Part 8: Add BaselineStackBuilder::buildExpressionStack r=jandem
The `invalidate` argument to `BailoutIonToBaseline` and `InitFromBailout` was only used for a single assertion in the IonReturnOverride case, which could be more directly asserted in `jit::Bailout`.

Differential Revision: https://phabricator.services.mozilla.com/D89517
2020-09-10 02:14:34 +00:00
Iain Ireland ee407a0f05 Bug 1662915: Part 7: Add BaselineStackBuilder::fixUpCallerArgs r=jandem
To simplify things, I changed FunCall so that the arguments are pushed during fixup, instead of using the main expression stack slot loop (https://searchfox.org/mozilla-central/rev/84922363f4014eae684aabc4f1d06380066494c5/js/src/jit/BaselineBailouts.cpp#981-1019). This is safe because the special cases in that loop only trigger on the final frame (`!iter.hasMoreFrames()`), and FunCall fixup only happens when we are *not* building the final frame.

Differential Revision: https://phabricator.services.mozilla.com/D89516
2020-09-10 02:13:46 +00:00
Iain Ireland 8c58dd0547 Bug 1662915: Part 6: Add BaselineStackBuilder::buildFixedSlots r=jandem
Differential Revision: https://phabricator.services.mozilla.com/D89515
2020-09-10 02:13:23 +00:00
Iain Ireland 1a5ccc2fe4 Bug 1662915: Part 5: Add BaselineStackBuilder::buildArguments r=jandem
I would like to add a comment here explaining *why* we have to overwrite the arguments in the caller, but I'm not confident I understand myself.

Similarly, I tried rewriting the comment about not updating when the arguments object aliases the formals ("In such cases, the list of arguments reported by the snapshot are only aliases of argument object slots..."), but I wasn't sure I understood.

Differential Revision: https://phabricator.services.mozilla.com/D89514
2020-09-10 02:36:30 +00:00