52ff3ae48b
- Implement RunMicrotasks in CSA to prevent a potentially large number of jumps between C++ and JS code while consuming te queue. Appears to provide a ~60% speedup in microtask-heavy code, which from limited testing appears to scale linearly. The code-stub microtask pump bails out to the old C++ microtask pump if it encounters a CallHandlerInfo microtask, and remains in C++ for the remainder of the queue (returning to the JS/stub implementation after the bailed out queue is exhausted). - Add a variation of JSEntryStub which enters the new RunMicrotasks code stub. - Add a new RunMicrotasks helper to Execution, which uses the RunMicrotasks entry stub. Bug: Change-Id: I4667d4dd633d24455ea5d7cef239da0af1a7365e Reviewed-on: https://chromium-review.googlesource.com/650486 Commit-Queue: Caitlin Potter <caitp@igalia.com> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#49842} |
||
---|---|---|
.. | ||
embenchen | ||
adapter-frame.js | ||
add-getters.js | ||
asm-wasm-copy.js | ||
asm-wasm-deopt.js | ||
asm-wasm-exception-in-tonumber.js | ||
asm-wasm-expr.js | ||
asm-wasm-f32.js | ||
asm-wasm-f64.js | ||
asm-wasm-heap.js | ||
asm-wasm-i32.js | ||
asm-wasm-literals.js | ||
asm-wasm-names.js | ||
asm-wasm-stack.js | ||
asm-wasm-stdlib.js | ||
asm-wasm-switch.js | ||
asm-wasm-u32.js | ||
asm-wasm.js | ||
asm-with-wasm-off.js | ||
async-compile.js | ||
atomics.js | ||
bounds-check-64bit.js | ||
calls.js | ||
compilation-limits-asm.js | ||
compilation-limits.js | ||
compiled-module-management.js | ||
compiled-module-serialization.js | ||
data-segments.js | ||
default-liftoff-setting.js | ||
disable-trap-handler.js | ||
disallow-codegen.js | ||
divrem-trap.js | ||
ensure-wasm-binaries-up-to-date.js | ||
errors.js | ||
exceptions.js | ||
export-global.js | ||
export-table.js | ||
expose-wasm.js | ||
ffi-error.js | ||
ffi.js | ||
float-constant-folding.js | ||
function-names.js | ||
function-prototype.js | ||
gc-buffer.js | ||
gc-frame.js | ||
gc-stress.js | ||
globals.js | ||
graceful_shutdown.js | ||
grow-memory-in-branch.js | ||
grow-memory-in-call.js | ||
grow-memory-in-loop.js | ||
grow-memory.js | ||
huge-memory.js | ||
import-memory.js | ||
import-table.js | ||
incrementer.wasm | ||
indirect-calls.js | ||
indirect-sig-mismatch.js | ||
indirect-tables.js | ||
instance-gc.js | ||
instance-memory-gc-stress.js | ||
instantiate-module-basic.js | ||
instantiate-run-basic.js | ||
interpreter-mixed.js | ||
interpreter.js | ||
js-api.js | ||
jsapi-harness.js | ||
large-offset.js | ||
lazy-compilation.js | ||
liftoff.js | ||
many-parameters.js | ||
memory-external-call.js | ||
memory-instance-validation.js | ||
memory-size.js | ||
memory.js | ||
module-memory.js | ||
multi-value.js | ||
names.js | ||
OWNERS | ||
parallel_compilation.js | ||
params.js | ||
receiver.js | ||
shared-memory.js | ||
stack.js | ||
stackwalk.js | ||
start-function.js | ||
streaming-compile.js | ||
streaming-error-position.js | ||
streaming-trap-location.js | ||
table-grow.js | ||
table.js | ||
test-import-export-wrapper.js | ||
test-wasm-module-builder.js | ||
trap-location.js | ||
unicode-validation.js | ||
unicode.js | ||
unreachable-validation.js | ||
unreachable.js | ||
user-properties-common.js | ||
user-properties-constructed.js | ||
user-properties-exported.js | ||
user-properties-module.js | ||
user-properties-reexport.js | ||
verify-module-basic-errors.js | ||
wasm-api-overloading.js | ||
wasm-constants.js | ||
wasm-default.js | ||
wasm-module-builder.js | ||
wasm-object-api.js | ||
worker-memory.js |