v8/test/cctest/compiler
Clemens Hammacher 3cb376dc83 Make CallInterfaceDescriptor isolate-independent
Currently each isolate stores its own array of
{CallInterfaceDescriptorData}. This array has size 173, and each entry
has 40 bytes. That's already 7kB per isolate.
Additionally, each {CallInterfaceDescriptorData} allocates two
heap-allocated arrays, which probably add up to more than the static
size of the {CallInterfaceDescriptorData}. Note that all the
{CallInterfaceDescriptorData} instances are initialized eagerly on
isolate creation.

Since {CallInterfaceDescriptor} is totally isolate independent itself,
this CL refactors the current design to avoid a copy of them per
isolate, and instead shares them process-wide. Still, we need to free
the allocated heap arrays when the last isolate dies to avoid leaks.
This can probably be refactored later by statically initializing more
and avoiding the heap allocations all together.

This refactoring will also allow us to use {CallInterfaceDescriptor}s
from wasm background compilation threads, which are not bound to any
isolate.

R=mstarzinger@chromium.org, titzer@chromium.org

Bug: v8:6600
Change-Id: If8625b89951eec8fa8986b49a5c166e874a72494
Reviewed-on: https://chromium-review.googlesource.com/1100879
Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Igor Sheludko <ishell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53803}
2018-06-18 15:55:53 +00:00
..
c-signature.h [test] Fix usages of std::array initializer lists. 2018-01-16 17:14:29 +00:00
call-tester.h [ubsan] Change Address typedef to uintptr_t 2018-04-14 01:25:28 +00:00
code-assembler-tester.h Make CallInterfaceDescriptor isolate-independent 2018-06-18 15:55:53 +00:00
codegen-tester.cc Enable clang's -Wunreachable-code warning. 2017-12-04 13:09:25 +00:00
codegen-tester.h [turbofan] Stop mis-using Type* to represent integers. 2018-04-28 06:38:46 +00:00
function-tester.cc [GetIsolate] Remove GetIsolate in simple cases 2018-06-11 11:02:59 +00:00
function-tester.h [cleanup] Add templatized FunctionTester::CallChecked(...) helpers 2017-07-18 14:25:21 +00:00
graph-builder-tester.h Reland "Introduce StdoutStream which prints to Android log or stdout" 2018-06-14 13:29:01 +00:00
test-basic-block-profiler.cc [iwyu] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-23 12:10:21 +00:00
test-branch-combine.cc [iwyu] Pre-work for removing unallowed include macro-assembler.h -> assembler-inl.h 2017-02-23 12:10:21 +00:00
test-code-assembler.cc [ubsan] Fix many static_cast<int32_t> with undefined behavior 2018-04-17 02:02:18 +00:00
test-code-generator.cc [cctest] Disable --enable-slow-asserts for FuzzAssemble* tests. 2018-06-18 09:00:29 +00:00
test-gap-resolver.cc Add bound checking to RegisterConfiguration accessors function. 2017-08-18 09:24:31 +00:00
test-graph-visualizer.cc Reland "Introduce StdoutStream which prints to Android log or stdout" 2018-06-14 13:29:01 +00:00
test-instruction-scheduler.cc Replace array index masking with the poisoning approach. 2018-04-30 13:22:44 +00:00
test-instruction.cc [turbofan] Change handling of empty basic blocks 2018-06-12 15:10:26 +00:00
test-js-constant-cache.cc Reland: [refactoring] Remove the isolate from signatures of ExternalReferences 2018-04-25 09:47:30 +00:00
test-js-context-specialization.cc [turbofan] Use the heap broker in JSContextSpecialization. 2018-06-15 12:00:26 +00:00
test-js-typed-lowering.cc [turbofan] Introduce JS heap broker. 2018-06-07 07:45:16 +00:00
test-jump-threading.cc [turbofan] Change handling of empty basic blocks 2018-06-12 15:10:26 +00:00
test-linkage.cc Make CallInterfaceDescriptor isolate-independent 2018-06-18 15:55:53 +00:00
test-loop-analysis.cc Reland "Introduce StdoutStream which prints to Android log or stdout" 2018-06-14 13:29:01 +00:00
test-machine-operator-reducer.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-multiple-return.cc Reland "Introduce StdoutStream which prints to Android log or stdout" 2018-06-14 13:29:01 +00:00
test-node.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
test-operator.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-representation-change.cc [turbofan] Remove the hacky Type::operator-> overload 2018-04-30 09:39:12 +00:00
test-run-bytecode-graph-builder.cc [GetIsolate] Remove GetIsolate in simple cases 2018-06-11 11:02:59 +00:00
test-run-calls-to-external-references.cc Reland: [refactoring] Remove the isolate from signatures of ExternalReferences 2018-04-25 09:47:30 +00:00
test-run-deopt.cc [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
test-run-intrinsics.cc [Compiler] Split up Unoptimized/Optimized CompilationInfo and CompilationJobs 2018-04-04 21:09:01 +00:00
test-run-jsbranches.cc [turbofan] Remove for-in support from the AstGraphBuilder. 2017-02-08 06:41:42 +00:00
test-run-jscalls.cc include fixing: api.h shouldn't include objects-inl.h 2017-01-09 13:43:28 +00:00
test-run-jsexceptions.cc [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
test-run-jsobjects.cc Reland: [cleanup] Refactor the Factory 2018-04-09 19:52:22 +00:00
test-run-jsops.cc Normalize casing of hexadecimal digits 2017-12-02 01:24:40 +00:00
test-run-load-store.cc [turbofan] Remove CheckedLoad operation 2018-01-02 08:47:01 +00:00
test-run-machops.cc Reland "[turbofan][x64] Reduce compare-zero followed by flags-setting binop" 2018-05-15 06:40:13 +00:00
test-run-native-calls.cc Reland "Introduce StdoutStream which prints to Android log or stdout" 2018-06-14 13:29:01 +00:00
test-run-retpoline.cc Normalize names of call descriptor local variables 2018-02-09 22:09:07 +00:00
test-run-stackcheck.cc [fullcodegen] Remove --stress-fullcodegen flag. 2017-08-10 09:52:49 +00:00
test-run-stubs.cc Make CallInterfaceDescriptor isolate-independent 2018-06-18 15:55:53 +00:00
test-run-tail-calls.cc Normalize names of call descriptor local variables 2018-02-09 22:09:07 +00:00
test-run-unwinding-info.cc [turbofan] Replace uninitialized JSCall nodes with SOFT deopt. 2017-06-27 03:57:13 +00:00
test-run-variables.cc Use nullptr instead of NULL where possible 2017-10-13 17:21:49 +00:00
value-helper.cc Reland "[test] Avoid unnecessary std::vector allocations" 2017-10-19 08:47:31 +00:00
value-helper.h [test] Fix CHECK_DOUBLE_EQ and CHECK_FLOAT_EQ 2018-04-27 08:34:16 +00:00