![]() |
v8
3.11.10(node0.8.26)
V8 is Google's open source JavaScript engine
|
#include <deoptimizer.h>
Data Structures | |
class | BASE_EMBEDDED |
class | TableEntryGenerator |
Public Types | |
enum | BailoutType { EAGER, LAZY, OSR, DEBUGGER } |
Public Member Functions | |
int | output_count () const |
int | jsframe_count () const |
~Deoptimizer () | |
void | MaterializeHeapNumbers () |
int | ConvertJSFrameIndexToFrameIndex (int jsframe_index) |
![]() | |
void * | operator new (size_t size) |
void | operator delete (void *p) |
Static Public Member Functions | |
static Deoptimizer * | New (JSFunction *function, BailoutType type, unsigned bailout_id, Address from, int fp_to_sp_delta, Isolate *isolate) |
static Deoptimizer * | Grab (Isolate *isolate) |
static void | EnsureRelocSpaceForLazyDeoptimization (Handle< Code > code) |
static void | DeoptimizeFunction (JSFunction *function) |
static void | DeoptimizeAll () |
static void | DeoptimizeGlobalObject (JSObject *object) |
static void | VisitAllOptimizedFunctionsForContext (Context *context, OptimizedFunctionVisitor *visitor) |
static void | VisitAllOptimizedFunctionsForGlobalObject (JSObject *object, OptimizedFunctionVisitor *visitor) |
static void | VisitAllOptimizedFunctions (OptimizedFunctionVisitor *visitor) |
static int | patch_size () |
static void | PatchStackCheckCode (Code *unoptimized_code, Code *check_code, Code *replacement_code) |
static void | PatchStackCheckCodeAt (Code *unoptimized_code, Address pc_after, Code *check_code, Code *replacement_code) |
static void | RevertStackCheckCode (Code *unoptimized_code, Code *check_code, Code *replacement_code) |
static void | RevertStackCheckCodeAt (Code *unoptimized_code, Address pc_after, Code *check_code, Code *replacement_code) |
static void | ComputeOutputFrames (Deoptimizer *deoptimizer) |
static Address | GetDeoptimizationEntry (int id, BailoutType type) |
static int | GetDeoptimizationId (Address addr, BailoutType type) |
static int | GetOutputInfo (DeoptimizationOutputData *data, unsigned node_id, SharedFunctionInfo *shared) |
static int | input_offset () |
static int | output_count_offset () |
static int | output_offset () |
static int | has_alignment_padding_offset () |
static int | GetDeoptimizedCodeCount (Isolate *isolate) |
![]() | |
static void | FatalProcessOutOfMemory () |
static void * | New (size_t size) |
static void | Delete (void *p) |
Static Public Attributes | |
static const int | kNotDeoptimizationEntry = -1 |
Friends | |
class | FrameDescription |
class | DeoptimizingCodeListNode |
class | DeoptimizedFrameInfo |
Definition at line 109 of file deoptimizer.h.
enum BailoutType |
Enumerator | |
---|---|
EAGER | |
LAZY | |
OSR | |
DEBUGGER |
Definition at line 111 of file deoptimizer.h.
~Deoptimizer | ( | ) |
Definition at line 428 of file deoptimizer.cc.
References ASSERT, and v8::internal::NULL.
|
static |
Definition at line 339 of file deoptimizer.cc.
int ConvertJSFrameIndexToFrameIndex | ( | int | jsframe_index | ) |
Definition at line 108 of file deoptimizer.cc.
References FrameDescription::GetFrameType().
|
static |
Definition at line 249 of file deoptimizer.cc.
References v8::internal::PrintF(), and Deoptimizer::VisitAllOptimizedFunctions().
Referenced by Testing::DeoptimizeAll(), and Object::ForceDelete().
|
static |
Definition at line 47 of file deoptimizer-arm.cc.
References ASSERT, MacroAssembler::Call(), MacroAssembler::CallSize(), DeoptimizationInputData::cast(), DeoptimizationInputData::DeoptCount(), Isolate::deoptimizer_data(), Deoptimizer::DeoptimizingCodeListNode, Deoptimizer::GetDeoptimizationEntry(), HeapObject::GetIsolate(), Isolate::heap(), Code::instruction_end(), Code::instruction_start(), MarkCompactCollector::InvalidateCode(), Code::InvalidateRelocation(), Assembler::kInstrSize, Deoptimizer::LAZY, Heap::mark_compact_collector(), CodePatcher::masm(), NONE, v8::internal::NULL, Deoptimizer::patch_size(), v8::internal::PrintF(), and DeoptimizingCodeListNode::set_next().
Referenced by v8::internal::RUNTIME_FUNCTION(), and DeoptimizingVisitor::VisitFunction().
|
static |
Definition at line 261 of file deoptimizer.cc.
References Deoptimizer::VisitAllOptimizedFunctionsForGlobalObject().
Referenced by Object::TurnOnAccessCheck().
|
static |
Definition at line 445 of file deoptimizer.cc.
References MemoryChunk::area_start(), ASSERT, Deoptimizer::EAGER, and v8::internal::NULL.
Referenced by Deoptimizer::DeoptimizeFunction().
|
static |
Definition at line 466 of file deoptimizer.cc.
References MemoryChunk::area_start(), ASSERT_EQ, Deoptimizer::EAGER, Deoptimizer::kNotDeoptimizationEntry, and v8::internal::NULL.
|
static |
Definition at line 512 of file deoptimizer.cc.
References Isolate::deoptimizer_data(), DeoptimizingCodeListNode::next(), and v8::internal::NULL.
|
static |
Definition at line 486 of file deoptimizer.cc.
References DeoptimizationOutputData::AstId(), SharedFunctionInfo::DebugName(), DeoptimizationOutputData::DeoptPoints(), Smi::FromInt(), DeoptimizationOutputData::PcAndState(), v8::internal::PrintF(), SharedFunctionInfo::SourceCodePrint(), StringStream::ToCString(), String::ToCString(), UNREACHABLE, and Smi::value().
Referenced by OptimizedFrame::Summarize(), and SharedFunctionInfo::VerifyBailoutId().
|
static |
Definition at line 98 of file deoptimizer.cc.
References ASSERT, Isolate::deoptimizer_data(), and v8::internal::NULL.
Referenced by v8::internal::RUNTIME_FUNCTION().
|
inlinestatic |
Definition at line 224 of file deoptimizer.h.
References OFFSET_OF.
|
inlinestatic |
Definition at line 218 of file deoptimizer.h.
References OFFSET_OF.
|
inline |
Definition at line 123 of file deoptimizer.h.
Referenced by v8::internal::RUNTIME_FUNCTION().
void MaterializeHeapNumbers | ( | ) |
Definition at line 611 of file deoptimizer.cc.
References ASSERT_NE, Deoptimizer::DEBUGGER, Isolate::factory(), Factory::NewNumber(), Memory::Object_at(), and v8::internal::PrintF().
Referenced by v8::internal::RUNTIME_FUNCTION().
|
static |
Definition at line 78 of file deoptimizer.cc.
References ASSERT, Isolate::deoptimizer_data(), and v8::internal::NULL.
|
inline |
Definition at line 120 of file deoptimizer.h.
|
inlinestatic |
Definition at line 219 of file deoptimizer.h.
References OFFSET_OF.
|
inlinestatic |
Definition at line 222 of file deoptimizer.h.
References OFFSET_OF.
|
static |
Definition at line 41 of file deoptimizer-arm.cc.
References Assembler::kInstrSize.
Referenced by Deoptimizer::DeoptimizeFunction().
|
static |
Definition at line 1046 of file deoptimizer.cc.
References ASSERT, Code::FUNCTION, Code::instruction_start(), Code::kind(), v8::internal::kIntSize, Deoptimizer::PatchStackCheckCodeAt(), Code::stack_check_table_offset(), and Memory::uint32_at().
Referenced by RuntimeProfiler::AttemptOnStackReplacement().
|
static |
Definition at line 115 of file deoptimizer-arm.cc.
References ASSERT, ASSERT_EQ, Code::entry(), HeapObject::GetHeap(), Heap::incremental_marking(), Assembler::instr_at(), Memory::int32_at(), Assembler::IsLdrPcImmediateOffset(), v8::internal::kBlxIp, Assembler::kInstrSize, CodePatcher::masm(), Assembler::nop(), IncrementalMarking::RecordCodeTargetPatch(), Memory::uint16_at(), and Memory::uint32_at().
Referenced by Deoptimizer::PatchStackCheckCode().
|
static |
Definition at line 1068 of file deoptimizer.cc.
References ASSERT, Code::FUNCTION, Code::instruction_start(), Code::kind(), v8::internal::kIntSize, Deoptimizer::RevertStackCheckCodeAt(), Code::stack_check_table_offset(), and Memory::uint32_at().
Referenced by v8::internal::RUNTIME_FUNCTION().
|
static |
Definition at line 163 of file deoptimizer-arm.cc.
References ASSERT, ASSERT_EQ, Assembler::b(), v8::internal::cs, Code::entry(), HeapObject::GetHeap(), Heap::incremental_marking(), Assembler::instr_at(), Memory::int32_at(), Assembler::IsLdrPcImmediateOffset(), v8::internal::kBlxIp, Assembler::kInstrSize, CodePatcher::masm(), v8::internal::pl, IncrementalMarking::RecordCodeTargetPatch(), Memory::uint16_at(), and Memory::uint32_at().
Referenced by Deoptimizer::RevertStackCheckCode().
|
static |
Definition at line 305 of file deoptimizer.cc.
References Context::cast(), JSObject::cast(), FixedArray::get(), Context::GLOBAL_INDEX, Context::NEXT_CONTEXT_LINK, and Deoptimizer::VisitAllOptimizedFunctionsForGlobalObject().
Referenced by Deoptimizer::DeoptimizeAll().
|
static |
Definition at line 269 of file deoptimizer.cc.
References ASSERT, JSFunction::cast(), and Context::OptimizedFunctionsListHead().
Referenced by Deoptimizer::VisitAllOptimizedFunctionsForGlobalObject().
|
static |
Definition at line 289 of file deoptimizer.cc.
References ASSERT, GlobalObject::cast(), Object::GetPrototype(), and Deoptimizer::VisitAllOptimizedFunctionsForContext().
Referenced by Deoptimizer::DeoptimizeGlobalObject(), and Deoptimizer::VisitAllOptimizedFunctions().
|
friend |
Definition at line 346 of file deoptimizer.h.
|
friend |
Definition at line 345 of file deoptimizer.h.
Referenced by Deoptimizer::DeoptimizeFunction().
|
friend |
Definition at line 344 of file deoptimizer.h.
|
static |
Definition at line 230 of file deoptimizer.h.
Referenced by Deoptimizer::GetDeoptimizationId().