v8/test
Clemens Backes 7e0279fae7 [wasm] Fix performance bottleneck in DisjointAllocationPool
When compiling modules with many functions, the list of regions in the
{DisjointAllocationPool} can become quite large if the functions die in
a random order (which they typically do, since the order of Liftoff
compilation is different than the order to TurboFan compilation; which
work stealing, both are nondeterministic).
Iterating the list of regions in the {DisjointAllocationPool} was thus
linear in the number of regions, which is linear in the number of
functions of the module. Since we insert new regions one by one, overall
runtime was quadratic.

This CL fixes this by switching from a linked list to a std::set.
Merging a new region is thus logarithmic instead of linear, and overall
we are {n*log(n)} instead of {n^2}.

Note: For {AllocateInRegion} we still need to linearly iterate all
regions that overlap the requested region, but this has not shown to be
a problem so far.

R=ahaas@chromium.org

Bug: v8:10432
Change-Id: I193e56c2abab782e386194fbe64dadfa250916f7
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2154797
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Andreas Haas <ahaas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#67303}
2020-04-22 10:00:05 +00:00
..
benchmarks Create master files per benchmark in csuite 2020-02-26 10:37:33 +00:00
cctest [wasm] Set source url when deserializing wasm module 2020-04-22 07:12:18 +00:00
common [wasm-gc] Add a basic test case for structs 2020-04-21 17:32:16 +00:00
debugger [debug] Reenable tests in stress_incremental_marking 2020-04-16 16:31:27 +00:00
debugging Add initial support for Wasm debugging with LLDB: implements a GDB-remote stub 2020-02-20 22:27:58 +00:00
fuzzer Revert "Reland^4 "[parser] Introduce UnoptimizedCompileFlags"" 2020-04-21 12:13:59 +00:00
inspector [inspector] guard against missing CommandLineAPIScope 2020-04-17 13:36:02 +00:00
intl Fix special case timezone RangeError 2020-04-15 18:19:00 +00:00
js-perf-test [cleanup][test] Fix typo in js-perf-test/Scope/with.js 2020-02-12 10:59:54 +00:00
memory [owners] Remove redundant OWNERS files in test/ 2019-06-24 12:44:32 +00:00
message [weakrefs] Port FinalizationRegistry cleanup loop to Torque 2020-04-16 03:31:04 +00:00
mjsunit Revert "[torque] Allow storing to bitfield structs that are stored in Smis" 2020-04-21 19:22:27 +00:00
mkgrokdump [heap] Enable Verify for RO_SPACE when it is shared 2019-11-04 09:55:45 +00:00
mozilla Remove and update some outdated TODO(mstarzinger). 2019-12-13 10:18:04 +00:00
test262 [test262] Un-skip fixed test 2020-04-20 20:04:27 +00:00
torque [torque] support multiline comments 2020-04-07 13:32:16 +00:00
unittests [wasm] Fix performance bottleneck in DisjointAllocationPool 2020-04-22 10:00:05 +00:00
wasm-api-tests [wasm] Clean up WASM_CALL_INDIRECT macros 2019-11-28 14:44:06 +00:00
wasm-js [wasm] Update wasm spec tests 2020-03-26 16:04:53 +00:00
wasm-spec-tests [wasm] Passive element segments don't need a table 2020-03-27 08:38:03 +00:00
webkit [class] Improve error message for calling anonymous class constructors 2019-12-05 21:13:07 +00:00
BUILD.gn [preparser] deprecate stand-alone "preparser" test-suite 2019-11-20 08:52:59 +00:00
OWNERS Use relative paths to OWNERS files 2019-08-12 13:52:52 +00:00