V8 Project
|
#include <mark-compact.h>
Public Member Functions | |
CodeFlusher (Isolate *isolate) | |
void | AddCandidate (SharedFunctionInfo *shared_info) |
void | AddCandidate (JSFunction *function) |
void | AddOptimizedCodeMap (SharedFunctionInfo *code_map_holder) |
void | EvictOptimizedCodeMap (SharedFunctionInfo *code_map_holder) |
void | EvictCandidate (SharedFunctionInfo *shared_info) |
void | EvictCandidate (JSFunction *function) |
void | ProcessCandidates () |
void | EvictAllCandidates () |
void | IteratePointersToFromSpace (ObjectVisitor *v) |
Private Member Functions | |
void | ProcessOptimizedCodeMaps () |
void | ProcessJSFunctionCandidates () |
void | ProcessSharedFunctionInfoCandidates () |
void | EvictOptimizedCodeMaps () |
void | EvictJSFunctionCandidates () |
void | EvictSharedFunctionInfoCandidates () |
DISALLOW_COPY_AND_ASSIGN (CodeFlusher) | |
Static Private Member Functions | |
static JSFunction ** | GetNextCandidateSlot (JSFunction *candidate) |
static JSFunction * | GetNextCandidate (JSFunction *candidate) |
static void | SetNextCandidate (JSFunction *candidate, JSFunction *next_candidate) |
static void | ClearNextCandidate (JSFunction *candidate, Object *undefined) |
static SharedFunctionInfo * | GetNextCandidate (SharedFunctionInfo *candidate) |
static void | SetNextCandidate (SharedFunctionInfo *candidate, SharedFunctionInfo *next_candidate) |
static void | ClearNextCandidate (SharedFunctionInfo *candidate) |
static SharedFunctionInfo * | GetNextCodeMap (SharedFunctionInfo *holder) |
static void | SetNextCodeMap (SharedFunctionInfo *holder, SharedFunctionInfo *next_holder) |
static void | ClearNextCodeMap (SharedFunctionInfo *holder) |
Private Attributes | |
Isolate * | isolate_ |
JSFunction * | jsfunction_candidates_head_ |
SharedFunctionInfo * | shared_function_info_candidates_head_ |
SharedFunctionInfo * | optimized_code_map_holder_head_ |
Definition at line 376 of file mark-compact.h.
|
inlineexplicit |
Definition at line 378 of file mark-compact.h.
|
inline |
Definition at line 391 of file mark-compact.h.
References DCHECK, GetNextCandidate(), jsfunction_candidates_head_, and SetNextCandidate().
|
inline |
Definition at line 384 of file mark-compact.h.
References GetNextCandidate(), NULL, SetNextCandidate(), and shared_function_info_candidates_head_.
|
inline |
Definition at line 399 of file mark-compact.h.
References GetNextCodeMap(), optimized_code_map_holder_head_, and SetNextCodeMap().
|
inlinestaticprivate |
Definition at line 447 of file mark-compact.h.
References DCHECK, and v8::internal::SKIP_WRITE_BARRIER.
Referenced by EvictCandidate(), ProcessJSFunctionCandidates(), and ProcessSharedFunctionInfoCandidates().
|
inlinestaticprivate |
Definition at line 462 of file mark-compact.h.
References NULL, and v8::internal::SKIP_WRITE_BARRIER.
|
inlinestaticprivate |
Definition at line 478 of file mark-compact.h.
References v8::internal::SharedFunctionInfo::kNextMapIndex, and v8::internal::FixedArray::set_undefined().
Referenced by EvictOptimizedCodeMap(), and ProcessOptimizedCodeMaps().
|
private |
|
inline |
Definition at line 416 of file mark-compact.h.
References EvictJSFunctionCandidates(), EvictOptimizedCodeMaps(), and EvictSharedFunctionInfoCandidates().
Referenced by v8::internal::MarkCompactCollector::EnableCodeFlushing().
void v8::internal::CodeFlusher::EvictCandidate | ( | JSFunction * | function | ) |
Definition at line 1184 of file mark-compact.cc.
References ClearNextCandidate(), DCHECK, GetNextCandidate(), v8::internal::Isolate::heap(), v8::internal::Heap::incremental_marking(), isolate_, jsfunction_candidates_head_, NULL, v8::internal::PrintF(), v8::internal::IncrementalMarking::RecordWrites(), and SetNextCandidate().
void v8::internal::CodeFlusher::EvictCandidate | ( | SharedFunctionInfo * | shared_info | ) |
Definition at line 1151 of file mark-compact.cc.
References ClearNextCandidate(), GetNextCandidate(), v8::internal::Isolate::heap(), v8::internal::Heap::incremental_marking(), isolate_, NULL, v8::internal::PrintF(), v8::internal::IncrementalMarking::RecordWrites(), SetNextCandidate(), shared_function_info_candidates_head_, and v8::internal::Object::ShortPrint().
Referenced by v8::internal::Context::AddOptimizedFunction(), EvictJSFunctionCandidates(), EvictSharedFunctionInfoCandidates(), and v8::internal::SharedFunctionInfo::ReplaceCode().
|
private |
Definition at line 1258 of file mark-compact.cc.
References DCHECK, EvictCandidate(), GetNextCandidate(), jsfunction_candidates_head_, and NULL.
Referenced by EvictAllCandidates().
void v8::internal::CodeFlusher::EvictOptimizedCodeMap | ( | SharedFunctionInfo * | code_map_holder | ) |
Definition at line 1221 of file mark-compact.cc.
References ClearNextCodeMap(), DCHECK, GetNextCodeMap(), v8::internal::Isolate::heap(), v8::internal::Heap::incremental_marking(), isolate_, v8::internal::SharedFunctionInfo::kNextMapIndex, NULL, optimized_code_map_holder_head_, v8::internal::PrintF(), v8::internal::IncrementalMarking::RecordWrites(), SetNextCodeMap(), and v8::internal::Object::ShortPrint().
Referenced by v8::internal::SharedFunctionInfo::ClearOptimizedCodeMap(), and EvictOptimizedCodeMaps().
|
private |
Definition at line 1282 of file mark-compact.cc.
References DCHECK, EvictOptimizedCodeMap(), GetNextCodeMap(), NULL, and optimized_code_map_holder_head_.
Referenced by EvictAllCandidates().
|
private |
Definition at line 1270 of file mark-compact.cc.
References DCHECK, EvictCandidate(), GetNextCandidate(), NULL, and shared_function_info_candidates_head_.
Referenced by EvictAllCandidates().
|
inlinestaticprivate |
Definition at line 437 of file mark-compact.h.
Referenced by AddCandidate(), EvictCandidate(), EvictJSFunctionCandidates(), EvictSharedFunctionInfoCandidates(), IteratePointersToFromSpace(), ProcessJSFunctionCandidates(), and ProcessSharedFunctionInfoCandidates().
|
inlinestaticprivate |
Definition at line 452 of file mark-compact.h.
|
inlinestaticprivate |
Definition at line 432 of file mark-compact.h.
References v8::internal::JSFunction::kNextFunctionLinkOffset, and v8::internal::HeapObject::RawField().
Referenced by IteratePointersToFromSpace().
|
inlinestaticprivate |
Definition at line 466 of file mark-compact.h.
References v8::internal::FixedArray::get(), and v8::internal::SharedFunctionInfo::kNextMapIndex.
Referenced by AddOptimizedCodeMap(), EvictOptimizedCodeMap(), EvictOptimizedCodeMaps(), and ProcessOptimizedCodeMaps().
void v8::internal::CodeFlusher::IteratePointersToFromSpace | ( | ObjectVisitor * | v | ) |
Definition at line 1294 of file mark-compact.cc.
References GetNextCandidate(), GetNextCandidateSlot(), v8::internal::Isolate::heap(), v8::internal::Heap::InFromSpace(), isolate_, jsfunction_candidates_head_, and NULL.
Referenced by v8::internal::Heap::Scavenge().
|
inline |
Definition at line 410 of file mark-compact.h.
References ProcessJSFunctionCandidates(), ProcessOptimizedCodeMaps(), and ProcessSharedFunctionInfoCandidates().
Referenced by v8::internal::MarkCompactCollector::AfterMarking().
|
private |
Definition at line 1026 of file mark-compact.cc.
References v8::internal::HeapObject::address(), v8::internal::Builtins::builtin(), v8::internal::Isolate::builtins(), ClearNextCandidate(), v8::internal::MarkBit::Get(), v8::internal::Code::GetAge(), GetNextCandidate(), v8::internal::Code::GetObjectFromEntryAddress(), v8::internal::Isolate::heap(), v8::internal::SharedFunctionInfo::is_compiled(), isolate_, jsfunction_candidates_head_, v8::internal::JSFunction::kCodeEntryOffset, v8::internal::SharedFunctionInfo::kCodeOffset, v8::internal::Heap::mark_compact_collector(), NULL, v8::internal::PrintF(), v8::internal::HeapObject::RawField(), v8::internal::MarkCompactCollector::RecordCodeEntrySlot(), v8::internal::JSFunction::set_code(), and v8::internal::Object::ShortPrint().
Referenced by ProcessCandidates().
|
private |
Definition at line 1103 of file mark-compact.cc.
References ClearNextCodeMap(), DCHECK, v8::internal::FixedArray::get(), GetNextCodeMap(), v8::internal::Isolate::heap(), isolate_, v8::internal::SharedFunctionInfo::kCachedCodeOffset, v8::internal::SharedFunctionInfo::kEntriesStart, v8::internal::SharedFunctionInfo::kEntryLength, v8::internal::SharedFunctionInfo::kOsrAstIdOffset, v8::internal::FixedArrayBase::length(), v8::internal::Heap::mark_compact_collector(), NULL, optimized_code_map_holder_head_, v8::internal::FixedArray::RawFieldOfElementAt(), v8::internal::FixedArray::set(), v8::internal::STATIC_ASSERT(), and v8::internal::SharedFunctionInfo::TrimOptimizedCodeMap().
Referenced by ProcessCandidates().
|
private |
Definition at line 1071 of file mark-compact.cc.
References v8::internal::Builtins::builtin(), v8::internal::Isolate::builtins(), ClearNextCandidate(), v8::internal::MarkBit::Get(), v8::internal::Code::GetAge(), GetNextCandidate(), v8::internal::Isolate::heap(), v8::internal::SharedFunctionInfo::is_compiled(), isolate_, v8::internal::SharedFunctionInfo::kCodeOffset, v8::internal::Heap::mark_compact_collector(), NULL, v8::internal::PrintF(), v8::internal::HeapObject::RawField(), shared_function_info_candidates_head_, and v8::internal::Object::ShortPrint().
Referenced by ProcessCandidates().
|
inlinestaticprivate |
Definition at line 442 of file mark-compact.h.
Referenced by AddCandidate(), and EvictCandidate().
|
inlinestaticprivate |
Definition at line 457 of file mark-compact.h.
|
inlinestaticprivate |
Definition at line 472 of file mark-compact.h.
References v8::internal::SharedFunctionInfo::kNextMapIndex, and v8::internal::FixedArray::set().
Referenced by AddOptimizedCodeMap(), and EvictOptimizedCodeMap().
|
private |
Definition at line 483 of file mark-compact.h.
Referenced by EvictCandidate(), EvictOptimizedCodeMap(), IteratePointersToFromSpace(), ProcessJSFunctionCandidates(), ProcessOptimizedCodeMaps(), and ProcessSharedFunctionInfoCandidates().
|
private |
Definition at line 484 of file mark-compact.h.
Referenced by AddCandidate(), EvictCandidate(), EvictJSFunctionCandidates(), IteratePointersToFromSpace(), and ProcessJSFunctionCandidates().
|
private |
Definition at line 486 of file mark-compact.h.
Referenced by AddOptimizedCodeMap(), EvictOptimizedCodeMap(), EvictOptimizedCodeMaps(), and ProcessOptimizedCodeMaps().
|
private |
Definition at line 485 of file mark-compact.h.
Referenced by AddCandidate(), EvictCandidate(), EvictSharedFunctionInfoCandidates(), and ProcessSharedFunctionInfoCandidates().