V8 Project
|
Public Member Functions | |
CodeStubGraphBuilderBase (Isolate *isolate, HydrogenCodeStub *stub) | |
virtual bool | BuildGraph () |
![]() | |
HGraphBuilder (CompilationInfo *info) | |
virtual | ~HGraphBuilder () |
Scope * | scope () const |
void | set_scope (Scope *scope) |
HBasicBlock * | current_block () const |
void | set_current_block (HBasicBlock *block) |
HEnvironment * | environment () const |
Zone * | zone () const |
HGraph * | graph () const |
Isolate * | isolate () const |
CompilationInfo * | top_info () |
HGraph * | CreateGraph () |
void | Push (HValue *value) |
HValue * | Pop () |
HInstruction * | AddInstruction (HInstruction *instr) |
void | FinishCurrentBlock (HControlInstruction *last) |
void | FinishExitCurrentBlock (HControlInstruction *instruction) |
void | Goto (HBasicBlock *from, HBasicBlock *target, FunctionState *state=NULL, bool add_simulate=true) |
void | Goto (HBasicBlock *target, FunctionState *state=NULL, bool add_simulate=true) |
void | GotoNoSimulate (HBasicBlock *from, HBasicBlock *target) |
void | GotoNoSimulate (HBasicBlock *target) |
void | AddLeaveInlined (HBasicBlock *block, HValue *return_value, FunctionState *state) |
void | AddLeaveInlined (HValue *return_value, FunctionState *state) |
template<class I > | |
HInstruction * | NewUncasted () |
template<class I > | |
I * | New () |
template<class I > | |
HInstruction * | AddUncasted () |
template<class I > | |
I * | Add () |
template<class I , class P1 > | |
HInstruction * | NewUncasted (P1 p1) |
template<class I , class P1 > | |
I * | New (P1 p1) |
template<class I , class P1 > | |
HInstruction * | AddUncasted (P1 p1) |
template<class I , class P1 > | |
I * | Add (P1 p1) |
template<class I , class P1 , class P2 > | |
HInstruction * | NewUncasted (P1 p1, P2 p2) |
template<class I , class P1 , class P2 > | |
I * | New (P1 p1, P2 p2) |
template<class I , class P1 , class P2 > | |
HInstruction * | AddUncasted (P1 p1, P2 p2) |
template<class I , class P1 , class P2 > | |
I * | Add (P1 p1, P2 p2) |
template<class I , class P1 , class P2 , class P3 > | |
HInstruction * | NewUncasted (P1 p1, P2 p2, P3 p3) |
template<class I , class P1 , class P2 , class P3 > | |
I * | New (P1 p1, P2 p2, P3 p3) |
template<class I , class P1 , class P2 , class P3 > | |
HInstruction * | AddUncasted (P1 p1, P2 p2, P3 p3) |
template<class I , class P1 , class P2 , class P3 > | |
I * | Add (P1 p1, P2 p2, P3 p3) |
template<class I , class P1 , class P2 , class P3 , class P4 > | |
HInstruction * | NewUncasted (P1 p1, P2 p2, P3 p3, P4 p4) |
template<class I , class P1 , class P2 , class P3 , class P4 > | |
I * | New (P1 p1, P2 p2, P3 p3, P4 p4) |
template<class I , class P1 , class P2 , class P3 , class P4 > | |
HInstruction * | AddUncasted (P1 p1, P2 p2, P3 p3, P4 p4) |
template<class I , class P1 , class P2 , class P3 , class P4 > | |
I * | Add (P1 p1, P2 p2, P3 p3, P4 p4) |
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 > | |
HInstruction * | NewUncasted (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) |
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 > | |
I * | New (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) |
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 > | |
HInstruction * | AddUncasted (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) |
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 > | |
I * | Add (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5) |
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 > | |
HInstruction * | NewUncasted (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) |
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 > | |
I * | New (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) |
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 > | |
HInstruction * | AddUncasted (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) |
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 > | |
I * | Add (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6) |
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 > | |
HInstruction * | NewUncasted (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7) |
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 > | |
I * | New (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7) |
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 > | |
HInstruction * | AddUncasted (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7) |
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 > | |
I * | Add (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7) |
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 > | |
HInstruction * | NewUncasted (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8) |
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 > | |
I * | New (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8) |
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 > | |
HInstruction * | AddUncasted (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8) |
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 > | |
I * | Add (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8) |
void | AddSimulate (BailoutId id, RemovableSimulate removable=FIXED_SIMULATE) |
template<> | |
HDeoptimize * | Add (const char *reason, Deoptimizer::BailoutType type) |
template<> | |
HInstruction * | AddUncasted (const char *reason, Deoptimizer::BailoutType type) |
template<> | |
HSimulate * | Add (BailoutId id, RemovableSimulate removable) |
template<> | |
HSimulate * | Add (BailoutId id) |
template<> | |
HInstruction * | AddUncasted (BailoutId id) |
template<> | |
HReturn * | Add (HValue *value) |
template<> | |
HReturn * | Add (HConstant *value) |
template<> | |
HInstruction * | AddUncasted (HValue *value) |
template<> | |
HInstruction * | AddUncasted (HConstant *value) |
template<> | |
HCallRuntime * | Add (Handle< String > name, const Runtime::Function *c_function, int argument_count) |
template<> | |
HInstruction * | AddUncasted (Handle< String > name, const Runtime::Function *c_function, int argument_count) |
template<> | |
HContext * | New () |
template<> | |
HInstruction * | NewUncasted () |
Protected Types | |
enum | ArgumentClass { NONE , SINGLE , MULTIPLE } |
Private Member Functions | |
HValue * | BuildArraySingleArgumentConstructor (JSArrayBuilder *builder) |
HValue * | BuildArrayNArgumentsConstructor (JSArrayBuilder *builder, ElementsKind kind) |
Private Attributes | |
SmartArrayPointer< HParameter * > | parameters_ |
HValue * | arguments_length_ |
CompilationInfoWithZone | info_ |
CodeStubDescriptor | descriptor_ |
HContext * | context_ |
Additional Inherited Members | |
![]() | |
static const int | kElementLoopUnrollThreshold = 8 |
Definition at line 35 of file code-stubs-hydrogen.cc.
|
protected |
|
inline |
Definition at line 37 of file code-stubs-hydrogen.cc.
References descriptor_, v8::internal::CodeStubDescriptor::GetEnvironmentParameterCount(), parameters_, and v8::internal::SmartPointerBase< Deallocator, T >::Reset().
|
protected |
Definition at line 808 of file code-stubs-hydrogen.cc.
References BuildArrayNArgumentsConstructor(), BuildArraySingleArgumentConstructor(), GetParameter(), info(), v8::internal::ArrayConstructorStubBase::kAllocationSite, v8::internal::ArrayConstructorStubBase::kConstructor, v8::internal::CompilationInfo::MarkMustNotHaveEagerFrame(), MULTIPLE, NONE, NULL, and SINGLE.
|
private |
Definition at line 875 of file code-stubs-hydrogen.cc.
References context(), DCHECK, GetArgumentsLength(), v8::internal::HGraphBuilder::graph(), v8::internal::IsFastSmiElementsKind(), v8::internal::JSObject::kInitialMaxFastElementArray, and NULL.
Referenced by BuildArrayConstructor(), and BuildInternalArrayConstructor().
|
private |
Definition at line 861 of file code-stubs-hydrogen.cc.
References v8::internal::HGraphBuilder::BuildAllocateArrayFromLength(), and v8::internal::HGraphBuilder::graph().
Referenced by BuildArrayConstructor(), and BuildInternalArrayConstructor().
|
protected |
Definition at line 1297 of file code-stubs-hydrogen.cc.
References v8::internal::HGraphBuilder::AddIncrementCounter(), v8::internal::Isolate::counters(), isolate(), v8::internal::SharedFunctionInfo::kCachedCodeOffset, v8::internal::SharedFunctionInfo::kContextOffset, v8::internal::SharedFunctionInfo::kLiteralsOffset, v8::internal::SharedFunctionInfo::kOsrAstIdOffset, literals(), LoadFromOptimizedCodeMap(), v8::internal::BailoutId::None(), NULL, and v8::internal::Context::OPTIMIZED_FUNCTIONS_LIST.
Referenced by BuildInstallFromOptimizedCodeMap().
|
protectedpure virtual |
Implemented in v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< KeyedLoadGenericStub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, v8::internal::CodeStubGraphBuilder< Stub >, and v8::internal::CodeStubGraphBuilder< Stub >.
Referenced by BuildGraph().
|
virtual |
Implements v8::internal::HGraphBuilder.
Definition at line 114 of file code-stubs-hydrogen.cc.
References arguments_length_, BuildCodeStub(), v8::internal::HValue::ClearFlag(), context_, v8::internal::Isolate::counters(), v8::internal::HGraphBuilder::CreateBasicBlock(), v8::internal::HGraphBuilder::current_block(), DCHECK, descriptor_, v8::internal::HGraphBuilder::FinishCurrentBlock(), v8::internal::CodeStubDescriptor::function_mode(), v8::internal::CodeStubDescriptor::GetEnvironmentParameterCount(), v8::internal::CodeStubDescriptor::GetEnvironmentParameterRepresentation(), v8::internal::Isolate::GetHTracer(), v8::internal::HGraphBuilder::Goto(), v8::internal::HGraphBuilder::graph(), v8::internal::CodeStubDescriptor::hint_stack_parameter_count(), info_, v8::internal::Register::is_valid(), v8::internal::CodeStubDescriptor::IsEnvironmentParameterCountRegister(), isolate(), v8::internal::JS_FUNCTION_STUB_MODE, v8::internal::HValue::kCanOverflow, name, NULL, parameters_, v8::internal::PrintF(), v8::internal::HGraphBuilder::set_current_block(), v8::internal::CodeStubDescriptor::stack_parameter_count(), stub(), and v8::internal::BailoutId::StubEntry().
|
protected |
Definition at line 1345 of file code-stubs-hydrogen.cc.
References v8::internal::HGraphBuilder::graph(), and NULL.
Referenced by BuildInstallFromOptimizedCodeMap().
|
protected |
Definition at line 1374 of file code-stubs-hydrogen.cc.
References v8::internal::HGraphBuilder::AddIncrementCounter(), BuildCheckAndInstallOptimizedCode(), BuildInstallCode(), context(), v8::internal::Isolate::counters(), v8::internal::EQ, isolate(), v8::internal::SharedFunctionInfo::kEntriesStart, v8::internal::SharedFunctionInfo::kEntryLength, and NULL.
|
protected |
Definition at line 836 of file code-stubs-hydrogen.cc.
References BuildArrayNArgumentsConstructor(), BuildArraySingleArgumentConstructor(), GetParameter(), info(), v8::internal::InternalArrayConstructorStubBase::kConstructor, v8::internal::CompilationInfo::MarkMustNotHaveEagerFrame(), MULTIPLE, NONE, NULL, and SINGLE.
|
protected |
Definition at line 557 of file code-stubs-hydrogen.cc.
References v8::internal::Representation::Double(), NULL, and v8::internal::Representation::Tagged().
|
protected |
Definition at line 722 of file code-stubs-hydrogen.cc.
References v8::internal::HGraphBuilder::BuildCheckHeapObject(), DCHECK, v8::internal::INITIALIZING_STORE, v8::internal::Representation::IsDouble(), v8::internal::Representation::IsHeapObject(), NULL, and v8::internal::Representation::Tagged().
|
inlineprotectedvirtual |
Implements v8::internal::HGraphBuilder.
Definition at line 61 of file code-stubs-hydrogen.cc.
References context_.
Referenced by BuildArrayNArgumentsConstructor(), and BuildInstallFromOptimizedCodeMap().
|
inlineprotected |
Definition at line 54 of file code-stubs-hydrogen.cc.
References arguments_length_, DCHECK, and NULL.
Referenced by BuildArrayNArgumentsConstructor().
|
inlineprotected |
Definition at line 50 of file code-stubs-hydrogen.cc.
References DCHECK, descriptor_, v8::internal::CodeStubDescriptor::GetEnvironmentParameterCount(), and parameters_.
Referenced by BuildArrayConstructor(), v8::internal::CodeStubGraphBuilder< KeyedLoadGenericStub >::BuildCodeStub(), and BuildInternalArrayConstructor().
|
inlineprotected |
Definition at line 59 of file code-stubs-hydrogen.cc.
References info_.
Referenced by BuildArrayConstructor(), and BuildInternalArrayConstructor().
|
inlineprotected |
Definition at line 62 of file code-stubs-hydrogen.cc.
References info_, and v8::internal::CompilationInfo::isolate().
Referenced by BuildCheckAndInstallOptimizedCode(), v8::internal::CodeStubGraphBuilder< KeyedLoadGenericStub >::BuildCodeStub(), BuildGraph(), BuildInstallFromOptimizedCodeMap(), and UnmappedCase().
|
protected |
Definition at line 1356 of file code-stubs-hydrogen.cc.
References DCHECK, v8::internal::FAST_ELEMENTS, v8::internal::SharedFunctionInfo::kEntryLength, and NULL.
Referenced by BuildCheckAndInstallOptimizedCode().
|
inlineprotected |
Definition at line 60 of file code-stubs-hydrogen.cc.
References v8::internal::CompilationInfo::code_stub(), and info_.
Referenced by BuildGraph(), v8::internal::CodeStubGraphBuilder< Stub >::casted_stub(), and v8::internal::CodeStubGraphBuilder< KeyedLoadGenericStub >::casted_stub().
|
protected |
Definition at line 606 of file code-stubs-hydrogen.cc.
References v8::internal::ALLOW_RETURN_HOLE, v8::internal::FAST_ELEMENTS, v8::internal::FAST_HOLEY_ELEMENTS, v8::internal::HGraphBuilder::graph(), isolate(), v8::internal::NEVER_RETURN_HOLE, and NULL.
|
private |
Definition at line 107 of file code-stubs-hydrogen.cc.
Referenced by BuildGraph(), and GetArgumentsLength().
|
private |
Definition at line 110 of file code-stubs-hydrogen.cc.
Referenced by BuildGraph(), and context().
|
private |
Definition at line 109 of file code-stubs-hydrogen.cc.
Referenced by BuildGraph(), CodeStubGraphBuilderBase(), and GetParameter().
|
private |
Definition at line 108 of file code-stubs-hydrogen.cc.
Referenced by BuildGraph(), info(), isolate(), and stub().
|
private |
Definition at line 106 of file code-stubs-hydrogen.cc.
Referenced by BuildGraph(), CodeStubGraphBuilderBase(), and GetParameter().