v8
3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
|
#include <deoptimizer.h>
Data Structures | |
class | BASE_EMBEDDED |
struct | JumpTableEntry |
class | TableEntryGenerator |
Public Types | |
enum | BailoutType { EAGER, LAZY, SOFT, DEBUGGER } |
enum | GetEntryMode { CALCULATE_ENTRY_ADDRESS, ENSURE_ENTRY_CODE } |
Public Member Functions | |
int | output_count () const |
Handle< JSFunction > | function () const |
Handle< Code > | compiled_code () const |
BailoutType | bailout_type () const |
int | jsframe_count () const |
~Deoptimizer () | |
void | MaterializeHeapObjects (JavaScriptFrameIterator *it) |
int | ConvertJSFrameIndexToFrameIndex (int jsframe_index) |
Isolate * | isolate () const |
Public Member Functions inherited from Malloced | |
void * | operator new (size_t size) |
void | operator delete (void *p) |
Static Public Attributes | |
static const int | kBailoutTypesWithCodeEntry = SOFT + 1 |
static const int | kNotDeoptimizationEntry = -1 |
Friends | |
class | FrameDescription |
class | DeoptimizedFrameInfo |
Definition at line 124 of file deoptimizer.h.
enum BailoutType |
Enumerator | |
---|---|
EAGER | |
LAZY | |
SOFT | |
DEBUGGER |
Definition at line 126 of file deoptimizer.h.
enum GetEntryMode |
Enumerator | |
---|---|
CALCULATE_ENTRY_ADDRESS | |
ENSURE_ENTRY_CODE |
Definition at line 227 of file deoptimizer.h.
~Deoptimizer | ( | ) |
Definition at line 659 of file deoptimizer.cc.
References ASSERT, and v8::internal::NULL.
|
inline |
Definition at line 159 of file deoptimizer.h.
Referenced by v8::internal::RUNTIME_FUNCTION().
Definition at line 158 of file deoptimizer.h.
Referenced by v8::internal::RUNTIME_FUNCTION().
|
static |
Definition at line 526 of file deoptimizer.cc.
int ConvertJSFrameIndexToFrameIndex | ( | int | jsframe_index | ) |
Definition at line 147 of file deoptimizer.cc.
References FrameDescription::GetFrameType().
|
static |
Definition at line 450 of file deoptimizer.cc.
References Context::cast(), FixedArray::get(), Isolate::GetCodeTracer(), Isolate::heap(), Heap::native_contexts_list(), Context::NEXT_CONTEXT_LINK, and v8::internal::PrintF().
Referenced by Testing::DeoptimizeAll(), Object::ForceDelete(), and Execution::HandleStackGuardInterrupt().
|
static |
Definition at line 514 of file deoptimizer.cc.
References Deoptimizer::function(), Code::kind(), and Code::set_marked_for_deoptimization().
Referenced by v8::internal::RUNTIME_FUNCTION().
|
static |
Definition at line 483 of file deoptimizer.cc.
References ASSERT, GlobalObject::cast(), Isolate::GetCodeTracer(), HeapObject::GetHeap(), Object::GetPrototype(), Heap::isolate(), v8::internal::PrintF(), and V8PRIxPTR.
Referenced by Object::TurnOnAccessCheck().
|
static |
Definition at line 467 of file deoptimizer.cc.
References Context::cast(), FixedArray::get(), Isolate::GetCodeTracer(), Isolate::heap(), Heap::native_contexts_list(), Context::NEXT_CONTEXT_LINK, and v8::internal::PrintF().
Referenced by DependentCode::DeoptimizeDependentCodeGroup(), and Heap::DeoptMarkedAllocationSites().
|
static |
Definition at line 2716 of file deoptimizer.cc.
References MemoryChunk::area_start(), ASSERT, CodeDesc::buffer, MemoryChunk::CommitArea(), v8::internal::CopyBytes(), Isolate::deoptimizer_data(), Deoptimizer::EAGER, Assembler::GetCode(), Deoptimizer::GetMaxDeoptTableSize(), CodeDesc::instr_size, v8::internal::KB, Deoptimizer::LAZY, v8::internal::Max(), v8::internal::NULL, AssemblerBase::set_emit_debug_code(), and Deoptimizer::SOFT.
Referenced by Deoptimizer::GetDeoptimizationEntry().
|
inline |
Definition at line 157 of file deoptimizer.h.
Referenced by Deoptimizer::DeoptimizeFunction(), and v8::internal::RUNTIME_FUNCTION().
|
static |
Definition at line 683 of file deoptimizer.cc.
References MemoryChunk::area_start(), ASSERT, Deoptimizer::CALCULATE_ENTRY_ADDRESS, Isolate::deoptimizer_data(), Deoptimizer::ENSURE_ENTRY_CODE, Deoptimizer::EnsureCodeForDeoptimizationEntry(), Deoptimizer::kBailoutTypesWithCodeEntry, and v8::internal::NULL.
|
static |
Definition at line 701 of file deoptimizer.cc.
References MemoryChunk::area_start(), ASSERT_EQ, Isolate::deoptimizer_data(), Deoptimizer::kNotDeoptimizationEntry, and v8::internal::NULL.
Referenced by Code::PrintDeoptLocation().
|
static |
Definition at line 743 of file deoptimizer.cc.
References ASSERT, Context::cast(), Code::cast(), Context::DeoptimizedCodeListHead(), FixedArray::get(), Isolate::heap(), Code::kind(), Heap::native_contexts_list(), and Context::NEXT_CONTEXT_LINK.
|
static |
Definition at line 128 of file deoptimizer.cc.
References OS::CommitPageSize().
Referenced by Deoptimizer::EnsureCodeForDeoptimizationEntry().
|
static |
Definition at line 718 of file deoptimizer.cc.
References DeoptimizationOutputData::AstId(), SharedFunctionInfo::DebugName(), DeoptimizationOutputData::DeoptPoints(), FATAL, SmartPointerBase< Deallocator, T >::get(), DeoptimizationOutputData::PcAndState(), v8::internal::PrintF(), SharedFunctionInfo::SourceCodePrint(), StringStream::ToCString(), String::ToCString(), and Smi::value().
Referenced by OptimizedFrame::Summarize(), and SharedFunctionInfo::VerifyBailoutId().
|
static |
Definition at line 138 of file deoptimizer.cc.
References ASSERT, Isolate::deoptimizer_data(), and v8::internal::NULL.
Referenced by v8::internal::RUNTIME_FUNCTION().
|
inlinestatic |
Definition at line 252 of file deoptimizer.h.
References OFFSET_OF.
|
inlinestatic |
Definition at line 246 of file deoptimizer.h.
References OFFSET_OF.
|
inline |
Definition at line 303 of file deoptimizer.h.
|
inline |
Definition at line 162 of file deoptimizer.h.
Referenced by Deoptimizer::MaterializeHeapObjects().
void MaterializeHeapObjects | ( | JavaScriptFrameIterator * | it | ) |
Definition at line 1915 of file deoptimizer.cc.
References List< T, P >::Add(), ASSERT, ASSERT_NE, List< T, P >::at(), Handle< T >::cast(), Deoptimizer::DEBUGGER, Isolate::factory(), JavaScriptFrame::function(), MaterializedObjectStore::Get(), v8::internal::handle(), JavaScriptFrame::has_adapted_arguments(), Deoptimizer::jsframe_count(), Isolate::materialized_object_store(), Factory::NewNumber(), v8::internal::NULL, Memory::Object_at(), v8::internal::PrintF(), and MaterializedObjectStore::Remove().
Referenced by v8::internal::RUNTIME_FUNCTION().
|
static |
Definition at line 547 of file deoptimizer.cc.
References Deoptimizer::DEBUGGER, Deoptimizer::EAGER, Deoptimizer::LAZY, v8::internal::NULL, Deoptimizer::SOFT, and UNREACHABLE.
|
static |
Definition at line 105 of file deoptimizer.cc.
References ASSERT, Isolate::deoptimizer_data(), and v8::internal::NULL.
|
inline |
Definition at line 155 of file deoptimizer.h.
|
inlinestatic |
Definition at line 247 of file deoptimizer.h.
References OFFSET_OF.
|
inlinestatic |
Definition at line 250 of file deoptimizer.h.
References OFFSET_OF.
|
static |
Definition at line 41 of file deoptimizer-arm.cc.
References Assembler::kInstrSize.
|
static |
Definition at line 531 of file deoptimizer.cc.
References Deoptimizer::DEBUGGER, Deoptimizer::EAGER, Deoptimizer::LAZY, Deoptimizer::SOFT, v8::internal::STUB, and UNREACHABLE.
|
static |
Definition at line 312 of file deoptimizer.cc.
References Context::cast(), FixedArray::get(), Isolate::heap(), Heap::native_contexts_list(), and Context::NEXT_CONTEXT_LINK.
|
friend |
Definition at line 462 of file deoptimizer.h.
|
friend |
Definition at line 461 of file deoptimizer.h.
|
static |
Definition at line 135 of file deoptimizer.h.
Referenced by DeoptimizerData::DeoptimizerData(), Deoptimizer::GetDeoptimizationEntry(), and DeoptimizerData::~DeoptimizerData().
|
static |
Definition at line 258 of file deoptimizer.h.
Referenced by Deoptimizer::GetDeoptimizationId().