• Paolo Severini's avatar
    Revert "Reland "Faster JS-to-Wasm calls"" · 51ecfaec
    Paolo Severini authored
    This reverts commit 6ada6a90.
    
    Reason for revert: Revert for link issue:
    https://bugs.chromium.org/p/v8/issues/detail?id=11335
    
    Original change's description:
    > Reland "Faster JS-to-Wasm calls"
    >
    > This is a reland of 860fcb1b
    >
    > - Disabled the tests for this feature in V8-lite mode (the original
    > change broke V8-lite tests)
    > - Also modified test console-profile-wasm.js that was brittle with this
    > change because it assumed that there was always a JS-to-Wasm wrapper
    > but this is not the case when the TurboFan compilation completes before
    > the Liftoff-compiled code starts to run.
    >
    > More changes in Patchset 8:
    >
    > - Moved inlining of the "JSToWasm Wrapper" away from simplified-lowering,
    > into a new phase, wasm-inlining that reuses the JSInliner reducer.
    > The doc
    > https://docs.google.com/document/d/1mXxYnYN77tK-R1JOVo6tFG3jNpMzfueQN1Zp5h3r9aM/edit#
    > describes the new logic.
    >
    > - Fixed a couple of small issues in wasm_compiler.cc to make sure that
    > the graph "JSToWasm Wrapper" subgraph has a valid Control chain;
    > this should solve the problem we had inlining the calls in functions
    > that can throw exception.
    >
    >
    > Original change's description:
    > > Faster JS-to-Wasm calls
    > >
    > > This replaces https://chromium-review.googlesource.com/c/v8/v8/+/2376165/.
    > >
    > > Currently JS-to-Wasm calls go through a wrapper/trampoline, built on
    > > the basis of the signature of a Wasm function to call, and whose task
    > > is to:
    > > - set "thread_in_wasm_flag" to true
    > > - convert the arguments from tagged types into Wasm native types
    > > - calculate the address of the Wasm function to call and call it
    > > - convert back the result from Wasm native types into tagged types
    > > - reset "thread_in_wasm_flag" to false.
    > >
    > > This CL tries to improve the performance of JS-to-Wasm calls by
    > > inlining the code of the JS-to-Wasm wrappers in the call site.
    > >
    > > It introduces a new IR operand, JSWasmCall, which replaces JSCall for
    > > this kind of calls. A 'JSWasmCall' node is associated to
    > > WasmCallParameters, which contain information about the signature of
    > > the Wasm function to call.
    > >
    > > WasmWrapperGraphBuilder::BuildJSToWasmWrapper is modified to avoid generating code to convert the types for the arguments
    > > of the Wasm function, when the conversion is not necessary.
    > > The actual inlining of the graph generated for this wrapper happens in
    > > the simplified-lowering phase.
    > >
    > > A new builtin, JSToWasmLazyDeoptContinuation, is introduced to manage
    > > lazy deoptimizations that can happen if the Wasm function callee calls
    > > back some JS code that invalidates the compiled JS caller function.
    > >
    > > Bug: v8:11092
    > > Change-Id: I3174c1c1f59b39107b333d1929ecc0584486b8ad
    > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2557538
    > > Reviewed-by: Igor Sheludko <ishell@chromium.org>
    > > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
    > > Reviewed-by: Georg Neis (ooo until January 5) <neis@chromium.org>
    > > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
    > > Reviewed-by: Maya Lekova <mslekova@chromium.org>
    > > Reviewed-by: Andreas Haas <ahaas@chromium.org>
    > > Commit-Queue: Paolo Severini <paolosev@microsoft.com>
    > > Cr-Commit-Position: refs/heads/master@{#71824}
    >
    > Bug: v8:11092
    > Cq-Include-Trybots: luci.v8.try:v8_linux_arm_lite_rel_ng
    > Change-Id: I7d8523fa916bf4029a31f8c7a72bbd93336dc0b9
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2596784
    > Reviewed-by: Georg Neis <neis@chromium.org>
    > Reviewed-by: Andreas Haas <ahaas@chromium.org>
    > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
    > Reviewed-by: Maya Lekova <mslekova@chromium.org>
    > Reviewed-by: Igor Sheludko <ishell@chromium.org>
    > Commit-Queue: Paolo Severini <paolosev@microsoft.com>
    > Cr-Commit-Position: refs/heads/master@{#72147}
    
    Tbr: ahaas@chromium.org, jgruber@chromium.org
    Bug: v8:11092, v8:11335
    Change-Id: Iab2908928dfe7ea353f70cb5d3bf2de4d3074db6
    Cq-Include-Trybots: luci.v8.try:v8_linux_arm_lite_rel_ng
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2644758
    Commit-Queue: Georg Neis <neis@chromium.org>
    Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#72253}
    51ecfaec
Name
Last commit
Last update
..
arm Loading commit data...
arm64 Loading commit data...
ia32 Loading commit data...
mips Loading commit data...
mips64 Loading commit data...
ppc Loading commit data...
s390 Loading commit data...
x64 Loading commit data...
DEPS Loading commit data...
DIR_METADATA Loading commit data...
OWNERS Loading commit data...
aligned-slot-allocator.cc Loading commit data...
aligned-slot-allocator.h Loading commit data...
assembler-arch.h Loading commit data...
assembler-inl.h Loading commit data...
assembler.cc Loading commit data...
assembler.h Loading commit data...
bailout-reason.cc Loading commit data...
bailout-reason.h Loading commit data...
callable.h Loading commit data...
code-comments.cc Loading commit data...
code-comments.h Loading commit data...
code-desc.cc Loading commit data...
code-desc.h Loading commit data...
code-factory.cc Loading commit data...
code-factory.h Loading commit data...
code-reference.cc Loading commit data...
code-reference.h Loading commit data...
code-stub-assembler.cc Loading commit data...
code-stub-assembler.h Loading commit data...
compilation-cache.cc Loading commit data...
compilation-cache.h Loading commit data...
compiler.cc Loading commit data...
compiler.h Loading commit data...
constant-pool.cc Loading commit data...
constant-pool.h Loading commit data...
constants-arch.h Loading commit data...
cpu-features.h Loading commit data...
external-reference-encoder.cc Loading commit data...
external-reference-encoder.h Loading commit data...
external-reference-table.cc Loading commit data...
external-reference-table.h Loading commit data...
external-reference.cc Loading commit data...
external-reference.h Loading commit data...
flush-instruction-cache.cc Loading commit data...
flush-instruction-cache.h Loading commit data...
handler-table.cc Loading commit data...
handler-table.h Loading commit data...
interface-descriptors.cc Loading commit data...
interface-descriptors.h Loading commit data...
label.h Loading commit data...
machine-type.cc Loading commit data...
machine-type.h Loading commit data...
macro-assembler-inl.h Loading commit data...
macro-assembler.h Loading commit data...
optimized-compilation-info.cc Loading commit data...
optimized-compilation-info.h Loading commit data...
pending-optimization-table.cc Loading commit data...
pending-optimization-table.h Loading commit data...
register-arch.h Loading commit data...
register-configuration.cc Loading commit data...
register-configuration.h Loading commit data...
register.cc Loading commit data...
register.h Loading commit data...
reglist.h Loading commit data...
reloc-info.cc Loading commit data...
reloc-info.h Loading commit data...
safepoint-table.cc Loading commit data...
safepoint-table.h Loading commit data...
signature.h Loading commit data...
source-position-table.cc Loading commit data...
source-position-table.h Loading commit data...
source-position.cc Loading commit data...
source-position.h Loading commit data...
string-constants.cc Loading commit data...
string-constants.h Loading commit data...
tick-counter.cc Loading commit data...
tick-counter.h Loading commit data...
tnode.cc Loading commit data...
tnode.h Loading commit data...
turbo-assembler.cc Loading commit data...
turbo-assembler.h Loading commit data...
unoptimized-compilation-info.cc Loading commit data...
unoptimized-compilation-info.h Loading commit data...