v8/test/cctest/heap
Ross McIlroy a55803a15d [SFI] Add support for flushing old Bytecode from SharedFunctionInfos.
This change makes the SFI to bytecode link pseudo-weak. The marking visitors
check whether the bytecode is old, and if so, don't mark it and instead
push the SFI onto a bytecode_flushing_candidates worklist. Once marking
is complete, this list is walked, and for any of the candidates who's bytecode
has not been marked (i.e., is only referenced by the shared function info),
the bytecode is flushed and the SFI has the function data replaced with
an UncompiledData (which overwrites the flushed bytecode array).

Since we don't track JSFunctions, these can still think the underlying
function is compiled, and so calling them will invoke
InterpreterEntryTrampoline. As such, logic is added to
InterpreterEntryTrampoline to detect flushed functions, and enter
CompileLazy instead.

BUG=v8:8395

Change-Id: I4afba79f814ca9a92dec45d59485935845a6669d
Reviewed-on: https://chromium-review.googlesource.com/c/1348433
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#58158}
2018-12-11 14:50:07 +00:00
..
heap-tester.h [ubsan] Port ByteArray and subclasses to the new design 2018-11-24 09:29:14 +00:00
heap-utils.cc Reland "[heap] Clean-up MemoryChunk allocation area constants." 2018-10-24 13:27:41 +00:00
heap-utils.h [heap] Exclude the owner of the linear allocation area from evacuation. 2016-11-03 12:13:23 +00:00
test-alloc.cc Prepare bottleneck for setting instance descriptors. 2018-11-29 12:50:53 +00:00
test-array-buffer-tracker.cc [ubsan] Port JSReceiver and subclasses to the new design 2018-12-08 04:05:50 +00:00
test-compaction.cc Reland "[heap] Clean-up MemoryChunk allocation area constants." 2018-10-24 13:27:41 +00:00
test-concurrent-marking.cc [heap] Concurrently process wrapper objects 2018-09-19 14:14:06 +00:00
test-embedder-tracing.cc [api] Remove deprecated EmbedderHeapTracer APIs 2018-10-15 16:37:49 +00:00
test-external-string-tracker.cc [cleanup] Mark heap/ methods in subclasses with override. 2018-09-17 15:32:31 +00:00
test-heap.cc [SFI] Add support for flushing old Bytecode from SharedFunctionInfos. 2018-12-11 14:50:07 +00:00
test-incremental-marking.cc [cleanup] Use the new taskrunner API in the gc 2018-10-04 11:18:32 +00:00
test-invalidated-slots.cc [ubsan] Port JSReceiver and subclasses to the new design 2018-12-08 04:05:50 +00:00
test-lab.cc [ptr-compr] Move Heap::root() to Isolate 2018-10-11 08:59:50 +00:00
test-mark-compact.cc [ubsan] Port JSReceiver and subclasses to the new design 2018-12-08 04:05:50 +00:00
test-page-promotion.cc Reland "[heap] Clean-up MemoryChunk allocation area constants." 2018-10-24 13:27:41 +00:00
test-spaces.cc [heap] Introduce a large object space for code objects. 2018-11-22 08:23:09 +00:00
test-unmapper.cc [cleanup] Mark heap/ methods in subclasses with override. 2018-09-17 15:32:31 +00:00
test-weak-references.cc [ubsan] Port WeakArrayList to the new design 2018-12-03 23:35:12 +00:00