V8 Project
|
#include <hydrogen.h>
Classes | |
class | BASE_EMBEDDED |
class | PropertyAccessInfo |
Public Member Functions | |
HOptimizedGraphBuilder (CompilationInfo *info) | |
virtual bool | BuildGraph () OVERRIDE |
BreakAndContinueScope * | break_scope () const |
void | set_break_scope (BreakAndContinueScope *head) |
HValue * | context () |
HOsrBuilder * | osr () const |
void | Bailout (BailoutReason reason) |
HBasicBlock * | CreateJoin (HBasicBlock *first, HBasicBlock *second, BailoutId join_id) |
FunctionState * | function_state () const |
void | VisitDeclarations (ZoneList< Declaration * > *declarations) |
void * | operator new (size_t size, Zone *zone) |
void | operator delete (void *pointer, Zone *zone) |
void | operator delete (void *pointer) |
DEFINE_AST_VISITOR_SUBCLASS_MEMBERS () | |
![]() | |
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 | |
typedef void(HOptimizedGraphBuilder::* | InlineFunctionGenerator) (CallRuntime *call) |
Static Protected Attributes | |
static const InlineFunctionGenerator | kInlineFunctionGenerators [] |
static const int | kMaxCallPolymorphism = 4 |
static const int | kMaxLoadPolymorphism = 4 |
static const int | kMaxStorePolymorphism = 4 |
static const int | kUnlimitedMaxInlinedSourceSize = 100000 |
static const int | kUnlimitedMaxInlinedNodes = 10000 |
static const int | kUnlimitedMaxInlinedNodesCumulative = 10000 |
static const int | kMaxFastLiteralDepth = 3 |
static const int | kMaxFastLiteralProperties = 8 |
Private Types | |
enum | GlobalPropertyAccess { kUseCell , kUseGeneric } |
enum | ArrayIndexOfMode { kFirstIndexOf , kLastIndexOf } |
enum | ApiCallType { kCallApiFunction , kCallApiMethod , kCallApiGetter , kCallApiSetter } |
enum | PushBeforeSimulateBehavior { PUSH_BEFORE_SIMULATE , NO_PUSH_BEFORE_SIMULATE } |
Private Attributes | |
FunctionState * | function_state_ |
FunctionState | initial_function_state_ |
AstContext * | ast_context_ |
BreakAndContinueScope * | break_scope_ |
int | inlined_count_ |
ZoneList< Handle< Object > > | globals_ |
bool | inline_bailout_ |
HOsrBuilder * | osr_ |
Friends | |
class | FunctionState |
class | AstContext |
class | KeyedLoadFastElementStub |
class | HOsrBuilder |
Additional Inherited Members | |
![]() | |
static const int | kElementLoopUnrollThreshold = 8 |
Definition at line 2045 of file hydrogen.h.
|
protected |
Definition at line 2137 of file hydrogen.h.
|
private |
Enumerator | |
---|---|
kCallApiFunction | |
kCallApiMethod | |
kCallApiGetter | |
kCallApiSetter |
Definition at line 2358 of file hydrogen.h.
Enumerator | |
---|---|
PUSH_BEFORE_SIMULATE | |
NO_PUSH_BEFORE_SIMULATE |
Definition at line 2571 of file hydrogen.h.
|
explicit |
Definition at line 3321 of file hydrogen.cc.
References function_state_, initial_function_state_, v8::internal::HGraphBuilder::SetSourcePosition(), v8::internal::CompilationInfo::shared_info(), and v8::internal::CompilationInfo::zone().
|
private |
Definition at line 5797 of file hydrogen.cc.
References v8::internal::HGraphBuilder::BuildCheckHeapObject(), and map.
Referenced by BuildCompareInstruction(), TryCallApply(), and TryInlineBuiltinMethodCall().
|
private |
Definition at line 7421 of file hydrogen.cc.
References v8::internal::HGraphBuilder::BuildCheckPrototypeMaps(), and v8::internal::Handle< T >::is_null().
Referenced by HandlePolymorphicCallNamed(), and TryInlineApiCall().
|
inlineprivate |
Definition at line 2412 of file hydrogen.h.
References v8::internal::handle(), and v8::internal::HGraphBuilder::isolate().
Referenced by BuildArrayCall(), IsCallArrayInlineable(), TryHandleArrayCall(), and TryHandleArrayCallNew().
|
inlineprotected |
Definition at line 2163 of file hydrogen.h.
References ast_context_.
Referenced by BuildArrayCall(), BuildInlinedCallArray(), BuildLoad(), BuildStore(), HandleCompoundAssignment(), HandleLiteralCompareNil(), HandleLiteralCompareTypeof(), HandlePolymorphicCallNamed(), HandlePolymorphicNamedFieldAccess(), TryArgumentsAccess(), TryCallApply(), TryInline(), TryInlineApiCall(), TryInlineBuiltinFunctionCall(), TryInlineBuiltinMethodCall(), VisitArithmeticExpression(), VisitDelete(), VisitLogicalExpression(), VisitNot(), VisitTypeof(), and VisitVoid().
void v8::internal::HOptimizedGraphBuilder::Bailout | ( | BailoutReason | reason | ) |
Definition at line 4212 of file hydrogen.cc.
References v8::internal::CompilationInfo::AbortOptimization(), and current_info().
Referenced by BuildCompareInstruction(), BuildGraph(), HandleCompoundAssignment(), v8::internal::OptimizedCompileJob::OptimizeGraph(), SetUpScope(), and VisitDelete().
Definition at line 2232 of file hydrogen.h.
References v8::internal::HGraphBuilder::environment().
|
inlineprotected |
Definition at line 2245 of file hydrogen.h.
References v8::internal::HGraphBuilder::environment(), IsEligibleForEnvironmentLivenessAnalysis(), and USE().
Referenced by HandleCompoundAssignment().
|
inline |
|
private |
Definition at line 9489 of file hydrogen.cc.
References v8::internal::HGraphBuilder::AddStoreMapConstant(), v8::internal::HValue::ClearFlag(), v8::internal::HGraphBuilder::isolate(), v8::internal::ExternalArray::kAlignedSize, v8::internal::HValue::kCanOverflow, v8::internal::NOT_TENURED, NULL, and v8::internal::Representation::Smi().
|
private |
Definition at line 9534 of file hydrogen.cc.
References v8::internal::HGraphBuilder::AddStoreMapConstant(), v8::internal::HGraphBuilder::BuildObjectSizeAlignment(), v8::internal::HValue::ClearFlag(), context(), v8::internal::HGraphBuilder::isolate(), v8::internal::HValue::kCanOverflow, v8::internal::FixedArrayBase::kHeaderSize, v8::internal::kObjectAlignment, v8::internal::kObjectAlignmentMask, v8::internal::NOT_TENURED, v8::internal::Representation::Smi(), and v8::internal::STATIC_ASSERT().
|
private |
Definition at line 8781 of file hydrogen.cc.
References array_function(), ast_context(), BuildInlinedCallArray(), Drop(), v8::internal::Expression::id(), IsCallArrayInlineable(), PreProcessCall(), and v8::internal::AstContext::ReturnInstruction().
Referenced by TryHandleArrayCall(), and TryHandleArrayCallNew().
|
private |
Definition at line 8801 of file hydrogen.cc.
References v8::internal::HGraphBuilder::AddLoadArrayLength(), v8::internal::HGraphBuilder::AddLoadElements(), v8::internal::ALLOW_RETURN_HOLE, context(), DCHECK, DCHECK_EQ, v8::internal::Representation::Double(), Drop(), v8::internal::Isolate::factory(), v8::internal::HGraphBuilder::graph(), v8::internal::IsFastDoubleElementsKind(), v8::internal::IsFastElementsKind(), v8::internal::IsFastSmiElementsKind(), v8::internal::HGraphBuilder::isolate(), kFirstIndexOf, kLastIndexOf, mode(), NULL, v8::internal::HGraphBuilder::Pop(), v8::internal::HGraphBuilder::Push(), and v8::internal::Representation::Smi().
Referenced by TryInlineBuiltinMethodCall().
|
private |
Definition at line 10224 of file hydrogen.cc.
References v8::internal::HGraphBuilder::BuildBinaryOperation(), Drop(), v8::internal::HValue::HasObservableSideEffects(), v8::internal::Handle< T >::is_null(), v8::internal::HValue::IsPhi(), v8::internal::HGraphBuilder::Push(), PUSH_BEFORE_SIMULATE, and v8::internal::REMOVABLE_SIMULATE.
Referenced by HandleCompoundAssignment(), and VisitArithmeticExpression().
|
private |
Definition at line 7455 of file hydrogen.cc.
References context(), current_info(), v8::internal::HGraphBuilder::graph(), v8::internal::SharedFunctionInfo::kDontAdaptArgumentsSentinel, NewArgumentAdaptorCall(), NewPlainFunctionCall(), NULL, and UNREACHABLE.
Referenced by BuildMonomorphicAccess(), and HandlePolymorphicCallNamed().
|
private |
Definition at line 10773 of file hydrogen.cc.
References AddCheckMap(), v8::internal::HGraphBuilder::AddSimulate(), v8::internal::TypeImpl< Config >::AsClass(), Bailout(), v8::internal::HValue::block(), v8::internal::HGraphBuilder::BuildCheckHeapObject(), Drop(), v8::internal::Representation::FromType(), v8::internal::HGraphBuilder::graph(), v8::internal::TypeImpl< Config >::Is(), v8::internal::TypeImpl< Config >::IsClass(), v8::internal::Token::IsEqualityOp(), v8::internal::TypeImpl< Config >::IsInhabited(), v8::internal::Representation::IsNone(), v8::internal::Representation::IsTagged(), map, NULL, v8::internal::HGraphBuilder::Push(), PUSH_BEFORE_SIMULATE, v8::internal::REMOVABLE_SIMULATE, v8::internal::HCompareNumericAndBranch::set_observed_input_representation(), v8::internal::HInstruction::set_operand_position(), v8::internal::HCompareNumericAndBranch::SetOperandPositions(), v8::internal::Deoptimizer::SOFT, and v8::internal::HGraphBuilder::zone().
Definition at line 5325 of file hydrogen.cc.
References context(), v8::internal::Scope::ContextChainLength(), DCHECK, v8::internal::HGraphBuilder::environment(), v8::internal::Variable::IsContextSlot(), NULL, v8::internal::Context::PREVIOUS_INDEX, v8::internal::HGraphBuilder::scope(), and v8::internal::Variable::scope().
Referenced by HandleCompoundAssignment().
|
private |
Definition at line 11137 of file hydrogen.cc.
References BuildEmitFixedArray(), BuildEmitFixedDoubleArray(), v8::internal::HGraphBuilder::BuildInitializeElementsHeader(), and UNREACHABLE.
Referenced by BuildFastLiteral().
|
private |
Definition at line 11178 of file hydrogen.cc.
References v8::internal::ALLOW_RETURN_HOLE, BuildFastLiteral(), v8::internal::Handle< T >::cast(), v8::internal::AllocationSiteUsageContext::EnterNewScope(), v8::internal::AllocationSiteUsageContext::ExitScope(), v8::internal::HGraphBuilder::isolate(), and NULL.
Referenced by BuildEmitElements().
|
private |
Definition at line 11159 of file hydrogen.cc.
References v8::internal::ALLOW_RETURN_HOLE, v8::internal::HValue::kAllowUndefinedAsNaN, NULL, and v8::internal::HValue::SetFlag().
Referenced by BuildEmitElements().
|
private |
Definition at line 11055 of file hydrogen.cc.
References v8::internal::HGraphBuilder::AddStoreMapConstant(), BuildFastLiteral(), v8::internal::Handle< T >::cast(), DCHECK, v8::internal::AllocationSiteUsageContext::EnterNewScope(), v8::internal::AllocationSiteUsageContext::ExitScope(), v8::internal::FIELD, v8::internal::HGraphBuilder::graph(), v8::internal::Representation::IsDouble(), v8::internal::HGraphBuilder::isolate(), v8::internal::Representation::IsSmi(), v8::internal::HeapNumber::kSize, v8::internal::MUTABLE_HEAP_NUMBER_TYPE, and name.
Referenced by BuildFastLiteral().
|
private |
Definition at line 11011 of file hydrogen.cc.
References v8::internal::HGraphBuilder::AddStoreMapConstant(), v8::internal::Handle< T >::cast(), DCHECK, and v8::internal::HGraphBuilder::isolate().
Referenced by BuildFastLiteral().
|
private |
Definition at line 10933 of file hydrogen.cc.
References v8::internal::AllocationSite::AddDependentCompilationInfo(), BuildEmitElements(), BuildEmitInObjectProperties(), BuildEmitObjectHeader(), BuildInitElementsInObjectHeader(), v8::internal::AllocationSiteContext::current(), DCHECK, v8::internal::FIXED_ARRAY_TYPE, v8::internal::FIXED_DOUBLE_ARRAY_TYPE, v8::internal::Isolate::heap(), v8::internal::Heap::InNewSpace(), v8::internal::HGraphBuilder::isolate(), v8::internal::JS_ARRAY_TYPE, v8::internal::JS_OBJECT_TYPE, v8::internal::NOT_TENURED, NULL, v8::internal::TENURED, v8::internal::AllocationSite::TENURING, and v8::internal::HGraphBuilder::top_info().
Referenced by BuildEmitFixedArray(), and BuildEmitInObjectProperties().
|
virtual |
Implements v8::internal::HGraphBuilder.
Definition at line 4254 of file hydrogen.cc.
References Bailout(), v8::internal::Scope::calls_eval(), v8::internal::HGraphBuilder::CreateBasicBlock(), v8::internal::HGraphBuilder::current_block(), current_info(), DCHECK, v8::internal::Scope::declarations(), v8::internal::BailoutId::Declarations(), v8::internal::HGraphBuilder::environment(), v8::internal::HOsrBuilder::FinishGraph(), v8::internal::Scope::function(), v8::internal::BailoutId::FunctionEntry(), v8::internal::HGraphBuilder::Goto(), v8::internal::HGraphBuilder::graph(), v8::internal::Scope::HasIllegalRedeclaration(), v8::internal::Scope::is_function_scope(), NULL, osr(), v8::internal::CompilationInfo::scope(), v8::internal::HGraphBuilder::scope(), v8::internal::HGraphBuilder::set_current_block(), SetUpScope(), VisitDeclarations(), and VisitStatements().
|
private |
Definition at line 9924 of file hydrogen.cc.
References v8::internal::HValue::ClearAllSideEffects(), v8::internal::Representation::FromType(), v8::internal::HGraphBuilder::graph(), v8::internal::Representation::IsDouble(), v8::internal::Representation::IsNone(), v8::internal::Representation::IsTagged(), v8::internal::HValue::kCannotBeTagged, v8::internal::HValue::kFlexibleRepresentation, v8::internal::HGraphBuilder::Pop(), v8::internal::HGraphBuilder::Push(), v8::internal::HValue::SetFlag(), v8::internal::Representation::Smi(), and Top().
|
private |
Definition at line 11040 of file hydrogen.cc.
References DCHECK, v8::internal::HGraphBuilder::isolate(), and NULL.
Referenced by BuildFastLiteral().
|
private |
Definition at line 9161 of file hydrogen.cc.
References v8::internal::AllocationSite::AddDependentCompilationInfo(), ast_context(), v8::internal::HGraphBuilder::BuildAllocateArrayFromLength(), DCHECK, v8::internal::DISABLE_ALLOCATION_SITES, Drop(), v8::internal::HGraphBuilder::environment(), v8::internal::GetHoleyElementsKind(), v8::internal::Handle< T >::is_null(), v8::internal::IsHoleyElementsKind(), v8::internal::AstContext::ReturnValue(), Top(), v8::internal::HGraphBuilder::top_info(), and v8::internal::AllocationSite::TRANSITIONS.
Referenced by BuildArrayCall().
|
private |
Definition at line 6847 of file hydrogen.cc.
References function_state(), function_strict_mode(), v8::internal::handle(), v8::internal::HGraphBuilder::isolate(), and v8::internal::LOAD.
Referenced by HandleKeyedElementAccess(), and HandlePolymorphicElementAccess().
|
private |
Definition at line 6869 of file hydrogen.cc.
References v8::internal::ALLOW_RETURN_HOLE, v8::internal::HGraphBuilder::BuildCheckPrototypeMaps(), v8::internal::FAST_HOLEY_DOUBLE_ELEMENTS, v8::internal::HGraphBuilder::graph(), v8::internal::HGraphBuilder::isolate(), map, and v8::internal::NEVER_RETURN_HOLE.
Referenced by BuildMonomorphicElementAccess(), and HandlePolymorphicElementAccess().
|
private |
Definition at line 7337 of file hydrogen.cc.
References v8::internal::HGraphBuilder::AddInstruction(), ast_context(), BuildNamedAccess(), BuildStringCharCodeAt(), Drop(), HandleKeyedElementAccess(), v8::internal::HInstruction::IsLinked(), v8::internal::LOAD, name, NULL, v8::internal::HGraphBuilder::Pop(), v8::internal::HGraphBuilder::Push(), v8::internal::REMOVABLE_SIMULATE, v8::internal::AstContext::ReturnInstruction(), and v8::internal::AstContext::ReturnValue().
Referenced by PushLoad().
|
private |
Definition at line 5804 of file hydrogen.cc.
References v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::access(), v8::internal::HValue::ActualValue(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::field_maps(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::field_type(), v8::internal::JSObject::GetDataProperty(), v8::internal::HGraphBuilder::isolate(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::name(), NULL, v8::internal::Representation::Tagged(), and v8::internal::HGraphBuilder::zone().
Referenced by BuildMonomorphicAccess().
|
protected |
Definition at line 3387 of file hydrogen.cc.
References v8::internal::HGraphBuilder::CreateLoopHeaderBlock(), v8::internal::HGraphBuilder::Goto(), and v8::internal::HGraphBuilder::set_current_block().
Referenced by BuildLoopEntry(), and v8::internal::HOsrBuilder::BuildOsrLoopEntry().
|
protected |
Definition at line 3395 of file hydrogen.cc.
References BuildLoopEntry(), v8::internal::HOsrBuilder::BuildOsrLoopEntry(), v8::internal::HOsrBuilder::HasOsrEntryAt(), and osr().
|
private |
Definition at line 6172 of file hydrogen.cc.
References v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::accessor(), BuildCallConstantFunction(), v8::internal::HGraphBuilder::BuildCheckPrototypeMaps(), BuildLoadNamedField(), BuildStoreNamedField(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::constant(), DCHECK, v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::GetJSObjectFieldAccess(), v8::internal::HGraphBuilder::graph(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::has_holder(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::holder(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::IsAccessor(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::IsConstant(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::IsField(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::IsFound(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::IsLoad(), v8::internal::HGraphBuilder::isolate(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::IsTransition(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::map(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::name(), v8::internal::NeedsWrappingFor(), NULL, v8::internal::HGraphBuilder::Push(), PushArgumentsFromEnvironment(), TryInlineGetter(), TryInlineSetter(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::type(), and v8::internal::WRAP_AND_CALL.
Referenced by BuildNamedAccess(), and HandlePolymorphicNamedFieldAccess().
|
private |
Definition at line 6885 of file hydrogen.cc.
References v8::internal::PrototypeIterator::Advance(), v8::internal::HGraphBuilder::BuildCheckPrototypeMaps(), BuildKeyedHoleMode(), v8::internal::HGraphBuilder::BuildUncheckedMonomorphicElementAccess(), DCHECK, v8::internal::PrototypeIterator::GetCurrent(), v8::internal::handle(), v8::internal::PrototypeIterator::IsAtEnd(), v8::internal::JS_ARRAY_TYPE, map, NULL, and v8::internal::STORE.
Referenced by HandleKeyedElementAccess(), and HandlePolymorphicElementAccess().
|
private |
Definition at line 7288 of file hydrogen.cc.
References v8::internal::AreStringTypes(), v8::internal::HGraphBuilder::BuildCheckHeapObject(), BuildMonomorphicAccess(), BuildNamedGeneric(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::CanAccessAsMonomorphic(), v8::internal::ComputeReceiverTypes(), DCHECK, HandlePolymorphicNamedFieldAccess(), v8::internal::TypeImpl< Config >::Is(), name, NULL, ToType(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::type(), and v8::internal::HGraphBuilder::zone().
Referenced by BuildLoad(), BuildStore(), and HandleKeyedElementAccess().
|
private |
Definition at line 6819 of file hydrogen.cc.
References function_state(), function_strict_mode(), v8::internal::handle(), v8::internal::HGraphBuilder::isolate(), v8::internal::LOAD, name, and v8::internal::Deoptimizer::SOFT.
Referenced by BuildNamedAccess(), HandlePolymorphicCallNamed(), and HandlePolymorphicNamedFieldAccess().
|
private |
Definition at line 6422 of file hydrogen.cc.
References v8::internal::HGraphBuilder::AddInstruction(), ast_context(), BuildNamedAccess(), v8::internal::Handle< T >::cast(), DCHECK, Drop(), v8::internal::HGraphBuilder::environment(), HandleKeyedElementAccess(), v8::internal::HValue::HasObservableSideEffects(), name, NULL, v8::internal::HGraphBuilder::Pop(), v8::internal::HGraphBuilder::Push(), v8::internal::REMOVABLE_SIMULATE, v8::internal::AstContext::ReturnValue(), and v8::internal::STORE.
Referenced by BuildStoreForEffect(), HandleCompoundAssignment(), and HandlePropertyAssignment().
|
private |
Definition at line 9964 of file hydrogen.cc.
References BuildStore(), NULL, and v8::internal::HGraphBuilder::Push().
|
private |
Definition at line 5846 of file hydrogen.cc.
References v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::access(), v8::internal::HValue::ActualValue(), v8::internal::HGraphBuilder::AddStoreMapConstant(), v8::internal::HGraphBuilder::BuildCheckHeapObject(), DCHECK, v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::field_maps(), v8::internal::INITIALIZING_STORE, v8::internal::HGraphBuilder::isolate(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::IsTransition(), v8::internal::HeapNumber::kSize, v8::internal::MUTABLE_HEAP_NUMBER_TYPE, v8::internal::NOT_TENURED, NULL, v8::internal::STORE_TO_INITIALIZED_ENTRY, v8::internal::Representation::Tagged(), and v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::transition().
Referenced by BuildMonomorphicAccess().
|
private |
Definition at line 10091 of file hydrogen.cc.
References v8::internal::HGraphBuilder::AddLoadStringLength(), v8::internal::HGraphBuilder::BuildCheckString(), and v8::base::OS::nan_value().
Referenced by BuildLoad(), and TryInlineBuiltinMethodCall().
|
private |
Definition at line 10921 of file hydrogen.cc.
References function_state(), and NULL.
|
inlineprotected |
Definition at line 2170 of file hydrogen.h.
References function_state().
Referenced by TryInline().
|
inlineprotected |
Definition at line 2179 of file hydrogen.h.
References function_state().
Referenced by TryInline().
|
inlinevirtual |
Implements v8::internal::HGraphBuilder.
Definition at line 2113 of file hydrogen.h.
References v8::internal::HGraphBuilder::environment().
Referenced by BuildAllocateFixedTypedArray(), BuildArrayIndexOf(), BuildCallConstantFunction(), BuildContextChainWalk(), HandleCompoundAssignment(), HandleGlobalVariableAssignment(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::map(), NewArgumentAdaptorCall(), set_ast_context(), SetUpScope(), TryInline(), TryInlineApiCall(), TryInlineBuiltinFunctionCall(), TryInlineBuiltinMethodCall(), VisitLogicalExpression(), and VisitNot().
HBasicBlock * v8::internal::HOptimizedGraphBuilder::CreateJoin | ( | HBasicBlock * | first, |
HBasicBlock * | second, | ||
BailoutId | join_id | ||
) |
Definition at line 3341 of file hydrogen.cc.
References v8::internal::HGraphBuilder::Goto(), v8::internal::HGraphBuilder::graph(), and NULL.
Referenced by VisitLogicalExpression(), and VisitNot().
|
protected |
Definition at line 3370 of file hydrogen.cc.
References v8::internal::BreakableStatement::ExitId(), v8::internal::HGraphBuilder::Goto(), and NULL.
|
inlineprotected |
Definition at line 2167 of file hydrogen.h.
References function_state().
Referenced by Bailout(), BuildCallConstantFunction(), BuildGraph(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::current_info(), HandleCompoundAssignment(), HandleGlobalVariableAssignment(), HandlePolymorphicCallNamed(), v8::internal::HOsrBuilder::HasOsrEntryAt(), InliningAstSize(), IsCallArrayInlineable(), LookupGlobalProperty(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::map(), TryCallApply(), TryInline(), and VisitDeclarations().
v8::internal::HOptimizedGraphBuilder::DEFINE_AST_VISITOR_SUBCLASS_MEMBERS | ( | ) |
|
private |
|
inlineprotected |
Definition at line 2231 of file hydrogen.h.
References v8::internal::HGraphBuilder::environment().
Referenced by BuildArrayCall(), BuildArrayIndexOf(), BuildBinaryOperation(), BuildCompareInstruction(), BuildInlinedCallArray(), BuildLoad(), BuildStore(), HandlePolymorphicCallNamed(), TryArgumentsAccess(), TryCallApply(), TryInlineApiCall(), TryInlineBuiltinFunctionCall(), TryInlineBuiltinMethodCall(), and VisitLogicalExpression().
|
private |
Definition at line 7209 of file hydrogen.cc.
References v8::internal::List< T, AllocationPolicy >::at(), function_state(), v8::internal::HInstruction::InsertAfter(), v8::internal::HValue::kUseGVN, and NULL.
Referenced by TryArgumentsAccess().
|
inlineprotected |
Definition at line 2173 of file hydrogen.h.
References function_state().
Referenced by TryInline().
|
inline |
Definition at line 2123 of file hydrogen.h.
References function_state_.
Referenced by BuildKeyedGeneric(), BuildNamedGeneric(), BuildThisFunction(), call_context(), ClearInlinedTestContext(), current_info(), EnsureArgumentsArePushedForAccess(), function_return(), function_strict_mode(), inlined_test_context(), TryArgumentsAccess(), TryCallApply(), and TryInline().
|
inlineprotected |
Definition at line 2182 of file hydrogen.h.
References function_state().
Referenced by BuildKeyedGeneric(), BuildNamedGeneric(), HandleGlobalVariableAssignment(), and VisitDelete().
|
private |
Definition at line 6530 of file hydrogen.cc.
References ast_context(), Bailout(), BindIfLive(), BuildBinaryOperation(), BuildContextChainWalk(), BuildStore(), CHECK_ALIVE, v8::internal::CONST, v8::internal::CONST_LEGACY, context(), v8::internal::Variable::CONTEXT, current_info(), DCHECK, HandleGlobalVariableAssignment(), v8::internal::Variable::index(), v8::internal::LET, v8::internal::Variable::LOCAL, v8::internal::Variable::location(), v8::internal::Variable::LOOKUP, v8::internal::Variable::mode(), mode(), NULL, v8::internal::Scope::num_parameters(), v8::internal::Variable::PARAMETER, v8::internal::HGraphBuilder::Pop(), v8::internal::HGraphBuilder::Push(), PUSH_BEFORE_SIMULATE, PushLoad(), v8::internal::REMOVABLE_SIMULATE, v8::internal::AstContext::ReturnValue(), v8::internal::CompilationInfo::scope(), v8::internal::HGraphBuilder::scope(), Top(), v8::internal::Variable::UNALLOCATED, UNREACHABLE, and VisitForValue().
|
private |
Definition at line 6479 of file hydrogen.cc.
References context(), current_info(), DCHECK, v8::internal::Deoptimizer::EAGER, v8::internal::EQ, function_strict_mode(), v8::internal::Context::GLOBAL_OBJECT_INDEX, v8::internal::HValue::HasObservableSideEffects(), v8::internal::HGraphBuilder::isolate(), kUseCell, LookupGlobalProperty(), v8::internal::Variable::name(), NULL, v8::internal::REMOVABLE_SIMULATE, v8::internal::STORE, and USE().
Referenced by HandleCompoundAssignment().
|
private |
Definition at line 7125 of file hydrogen.cc.
References v8::internal::HValue::ActualValue(), v8::internal::HGraphBuilder::AddInstruction(), v8::internal::HGraphBuilder::BuildCheckHeapObject(), BuildKeyedGeneric(), BuildMonomorphicElementAccess(), BuildNamedAccess(), v8::internal::ComputeReceiverTypes(), DCHECK, v8::internal::Isolate::factory(), v8::internal::Expression::GetStoreMode(), HandlePolymorphicElementAccess(), v8::internal::HValue::HasObservableSideEffects(), v8::internal::HInstruction::IsLinked(), v8::internal::HGraphBuilder::isolate(), v8::internal::Expression::IsPropertyName(), map, NULL, v8::internal::Deoptimizer::SOFT, v8::internal::STORE, and v8::internal::HGraphBuilder::zone().
Referenced by BuildLoad(), and BuildStore().
|
private |
Definition at line 10893 of file hydrogen.cc.
References ast_context(), v8::internal::HGraphBuilder::BuildCompareNil(), CHECK_ALIVE, v8::internal::HGraphBuilder::current_block(), DCHECK, DCHECK_EQ, v8::internal::EQ, v8::internal::HGraphBuilder::graph(), v8::internal::HValue::id(), v8::internal::TypeImpl< Config >::Is(), v8::internal::kNullValue, v8::None, NULL, v8::internal::HGraphBuilder::Pop(), v8::internal::AstContext::ReturnContinuation(), v8::internal::AstContext::ReturnControl(), v8::internal::HGraphBuilder::SetSourcePosition(), VisitForValue(), and v8::internal::HGraphBuilder::zone().
|
private |
Definition at line 10640 of file hydrogen.cc.
References ast_context(), CHECK_ALIVE, v8::internal::HGraphBuilder::Pop(), v8::internal::AstContext::ReturnControl(), v8::internal::HGraphBuilder::SetSourcePosition(), and VisitForTypeOf().
|
private |
Definition at line 7508 of file hydrogen.cc.
References AddCheckPrototypeMaps(), v8::internal::HGraphBuilder::AddInstruction(), v8::internal::HGraphBuilder::AddSimulate(), ast_context(), BuildCallConstantFunction(), v8::internal::HGraphBuilder::BuildCheckHeapObject(), BuildNamedGeneric(), v8::internal::CALL_AS_METHOD, v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::CanAccessMonomorphic(), v8::internal::Handle< T >::cast(), CHECK_ALIVE, v8::internal::CompilationInfo::closure(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::constant(), v8::internal::HGraphBuilder::current_block(), current_info(), DCHECK, Drop(), v8::internal::HGraphBuilder::environment(), v8::internal::Isolate::factory(), v8::internal::HGraphBuilder::FinishCurrentBlock(), v8::internal::HGraphBuilder::FinishExitWithHardDeoptimization(), v8::internal::anonymous_namespace{flags.cc}::flags, v8::internal::SmartPointerBase< Deallocator, T >::get(), v8::internal::HGraphBuilder::Goto(), v8::internal::HGraphBuilder::GotoNoSimulate(), v8::internal::HGraphBuilder::graph(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::holder(), v8::internal::HValue::id(), v8::internal::FunctionSorter::index(), InliningAstSize(), v8::internal::TypeImpl< Config >::Is(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::IsConstant(), v8::internal::HGraphBuilder::isolate(), kMaxCallPolymorphism, v8::internal::LOAD, map, v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::map(), name, v8::internal::NeedsWrappingFor(), v8::internal::NO_CALL_FUNCTION_FLAGS, NULL, v8::internal::HGraphBuilder::Pop(), v8::internal::PrintF(), v8::internal::HGraphBuilder::Push(), PushArgumentsFromEnvironment(), v8::internal::REMOVABLE_SIMULATE, v8::internal::AstContext::ReturnInstruction(), v8::internal::AstContext::ReturnValue(), v8::internal::HGraphBuilder::set_current_block(), ToType(), TryInlineCall(), v8::internal::HValue::type(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::type(), VisitExpressions(), and v8::internal::WRAP_AND_CALL.
|
private |
Definition at line 6989 of file hydrogen.cc.
References v8::internal::List< T, AllocationPolicy >::Add(), v8::internal::HGraphBuilder::AddInstruction(), v8::internal::List< T, AllocationPolicy >::at(), v8::internal::HGraphBuilder::BuildCheckHeapObject(), BuildKeyedGeneric(), BuildKeyedHoleMode(), BuildMonomorphicElementAccess(), v8::internal::HGraphBuilder::BuildUncheckedMonomorphicElementAccess(), DCHECK, v8::internal::HGraphBuilder::FinishCurrentBlock(), v8::internal::HGraphBuilder::FinishExitWithHardDeoptimization(), v8::internal::GetInitialFastElementsKind(), v8::internal::HGraphBuilder::GotoNoSimulate(), v8::internal::HGraphBuilder::graph(), v8::internal::HValue::HasObservableSideEffects(), v8::internal::Handle< T >::is_null(), v8::internal::IsDictionaryElementsKind(), v8::internal::IsExternalArrayElementsKind(), v8::internal::IsFastElementsKind(), v8::internal::IsFixedTypedArrayElementsKind(), v8::internal::Map::IsValidElementsTransition(), v8::internal::JS_ARRAY_TYPE, v8::internal::HValue::kHasNoObservableSideEffects, v8::internal::LOAD, map, NULL, v8::internal::HGraphBuilder::Pop(), v8::internal::HGraphBuilder::Push(), v8::internal::HGraphBuilder::scope(), v8::internal::HGraphBuilder::set_current_block(), v8::internal::HValue::SetFlag(), v8::internal::SLOPPY_ARGUMENTS_ELEMENTS, v8::internal::STORE, and TryBuildConsolidatedElementLoad().
Referenced by HandleKeyedElementAccess().
|
private |
Definition at line 6250 of file hydrogen.cc.
References v8::internal::HGraphBuilder::AddInstruction(), ast_context(), v8::internal::HGraphBuilder::BuildCheckHeapObject(), BuildMonomorphicAccess(), BuildNamedGeneric(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::CanAccessMonomorphic(), v8::internal::HGraphBuilder::current_block(), DCHECK, v8::internal::Isolate::factory(), v8::internal::HGraphBuilder::FinishCurrentBlock(), v8::internal::HGraphBuilder::FinishExitWithHardDeoptimization(), v8::internal::HGraphBuilder::Goto(), v8::internal::HGraphBuilder::GotoNoSimulate(), v8::internal::HGraphBuilder::graph(), v8::internal::TypeImpl< Config >::Is(), v8::internal::HInstruction::IsLinked(), v8::internal::HGraphBuilder::isolate(), kMaxLoadPolymorphism, kMaxStorePolymorphism, v8::internal::LOAD, v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::map(), name, NULL, v8::internal::HGraphBuilder::Pop(), v8::internal::HGraphBuilder::Push(), v8::internal::REMOVABLE_SIMULATE, v8::internal::AstContext::ReturnValue(), v8::internal::HGraphBuilder::set_current_block(), v8::internal::STATIC_ASSERT(), v8::internal::STORE, ToType(), and v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::type().
Referenced by BuildNamedAccess().
|
private |
Definition at line 6463 of file hydrogen.cc.
References BuildStore(), CHECK_ALIVE, DCHECK, NULL, and VisitForValue().
|
private |
Definition at line 8767 of file hydrogen.cc.
References CHECK, v8::internal::HGraphBuilder::graph(), v8::internal::HGraphBuilder::isolate(), v8::internal::SLOPPY, and v8::internal::SharedFunctionInfo::strict_mode().
|
inlineprotected |
Definition at line 2176 of file hydrogen.h.
References function_state().
Referenced by TryInline().
|
private |
Definition at line 7712 of file hydrogen.cc.
References v8::internal::CompilationInfo::closure(), current_info(), v8::internal::kNotInlinable, kUnlimitedMaxInlinedSourceSize, v8::internal::Min(), and TraceInline().
Referenced by HandlePolymorphicCallNamed(), and TryInline().
|
private |
Definition at line 9217 of file hydrogen.cc.
References array_function(), v8::internal::CompilationInfo::closure(), current_info(), DCHECK, v8::internal::HGraphBuilder::environment(), v8::internal::Handle< T >::is_null(), v8::internal::HGraphBuilder::kElementLoopUnrollThreshold, NULL, Top(), and TraceInline().
Referenced by BuildArrayCall().
|
inlineprotected |
Definition at line 2233 of file hydrogen.h.
References v8::internal::Variable::is_arguments(), and v8::internal::Variable::is_this().
Referenced by BindIfLive(), and LookupAndMakeLive().
|
protected |
Definition at line 3358 of file hydrogen.cc.
References v8::internal::IterationStatement::ContinueId(), v8::internal::HGraphBuilder::Goto(), and NULL.
Definition at line 2259 of file hydrogen.h.
References v8::internal::HGraphBuilder::environment(), IsEligibleForEnvironmentLivenessAnalysis(), and USE().
Referenced by TryCallApply().
|
private |
Definition at line 5301 of file hydrogen.cc.
References v8::internal::ACCESSOR, current_info(), v8::internal::Variable::is_this(), kUseCell, kUseGeneric, v8::internal::STORE, and UNREACHABLE.
Referenced by HandleGlobalVariableAssignment().
|
private |
Definition at line 7437 of file hydrogen.cc.
References v8::internal::Isolate::builtins(), context(), v8::internal::CallInterfaceDescriptor::GetEnvironmentLength(), and v8::internal::HGraphBuilder::isolate().
Referenced by BuildCallConstantFunction().
|
private |
Definition at line 7430 of file hydrogen.cc.
Referenced by BuildCallConstantFunction().
|
inline |
Definition at line 2131 of file hydrogen.h.
|
inline |
Definition at line 2130 of file hydrogen.h.
|
inline |
Definition at line 2127 of file hydrogen.h.
References v8::internal::Zone::New(), size, and v8::internal::HGraphBuilder::zone().
|
inline |
Definition at line 2115 of file hydrogen.h.
References osr_.
Referenced by BuildGraph(), and BuildLoopEntry().
|
protected |
Definition at line 4468 of file hydrogen.cc.
References PushArgumentsFromEnvironment().
Referenced by BuildArrayCall().
|
protected |
|
protected |
Definition at line 4453 of file hydrogen.cc.
References v8::internal::List< T, AllocationPolicy >::Add(), v8::internal::HGraphBuilder::AddInstruction(), v8::internal::HGraphBuilder::Pop(), and v8::internal::HGraphBuilder::zone().
Referenced by BuildMonomorphicAccess(), HandlePolymorphicCallNamed(), PreProcessCall(), TryCallApply(), and TryInlineApiCall().
|
private |
Definition at line 7327 of file hydrogen.cc.
References v8::internal::ARGUMENTS_NOT_ALLOWED, BuildLoad(), NULL, and v8::internal::HGraphBuilder::Push().
Referenced by HandleCompoundAssignment().
|
inlineprotected |
Definition at line 2164 of file hydrogen.h.
References ast_context_, and context().
Referenced by v8::internal::AstContext::AstContext(), and v8::internal::AstContext::~AstContext().
|
inline |
Definition at line 2111 of file hydrogen.h.
References break_scope_.
Referenced by v8::internal::HOptimizedGraphBuilder::BASE_EMBEDDED::BreakAndContinueScope().
|
inlineprotected |
|
protected |
Definition at line 4474 of file hydrogen.cc.
References v8::internal::HGraphBuilder::AddInstruction(), v8::internal::Scope::arguments(), Bailout(), context(), DCHECK_EQ, v8::internal::HGraphBuilder::environment(), v8::internal::HGraphBuilder::graph(), v8::internal::Variable::IsStackAllocated(), NULL, v8::internal::Scope::num_parameters(), v8::internal::HGraphBuilder::scope(), and v8::internal::HGraphBuilder::zone().
Referenced by BuildGraph().
|
inlineprotected |
Definition at line 2230 of file hydrogen.h.
References v8::internal::HGraphBuilder::environment().
Referenced by BuildIncrement(), BuildInlinedCallArray(), HandleCompoundAssignment(), IsCallArrayInlineable(), TryInlineBuiltinMethodCall(), and VisitLogicalExpression().
Definition at line 4513 of file hydrogen.cc.
References map, and v8::internal::HGraphBuilder::zone().
Referenced by BuildNamedAccess(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::CanAccessAsMonomorphic(), HandlePolymorphicCallNamed(), HandlePolymorphicNamedFieldAccess(), v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::LookupInPrototypes(), and v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::ToType().
|
private |
Definition at line 7690 of file hydrogen.cc.
References v8::internal::SmartPointerBase< Deallocator, T >::get(), NULL, and v8::internal::PrintF().
Referenced by InliningAstSize(), IsCallArrayInlineable(), and TryInline().
|
private |
Definition at line 7237 of file hydrogen.cc.
References ast_context(), CHECK_ALIVE_OR_RETURN, Drop(), EnsureArgumentsArePushedForAccess(), v8::internal::HGraphBuilder::environment(), v8::internal::String::Equals(), function_state(), v8::internal::HGraphBuilder::graph(), v8::internal::HValue::id(), v8::internal::HGraphBuilder::isolate(), v8::internal::HValue::kIsArguments, name, NULL, v8::internal::HGraphBuilder::Pop(), v8::internal::HGraphBuilder::Push(), v8::internal::AstContext::ReturnInstruction(), and VisitForValue().
|
private |
Definition at line 6923 of file hydrogen.cc.
References v8::internal::HGraphBuilder::BuildUncheckedMonomorphicElementAccess(), v8::internal::GetHoleyElementsKind(), v8::internal::IsHoleyElementsKind(), v8::internal::IsMoreGeneralElementsKindTransition(), v8::internal::JS_ARRAY_TYPE, v8::internal::LOAD, map, v8::internal::NEVER_RETURN_HOLE, NULL, and v8::internal::STANDARD_STORE.
Referenced by HandlePolymorphicElementAccess().
|
private |
Definition at line 8693 of file hydrogen.cc.
References AddCheckMap(), ast_context(), v8::internal::List< T, AllocationPolicy >::at(), v8::internal::HGraphBuilder::BuildWrapReceiver(), v8::internal::Handle< T >::cast(), CHECK_ALIVE_OR_RETURN, v8::internal::HValue::CheckFlag(), current_info(), DCHECK, DCHECK_EQ, Drop(), v8::internal::HGraphBuilder::environment(), function_state(), v8::internal::handle(), v8::internal::HValue::id(), v8::internal::HGraphBuilder::isolate(), v8::internal::JS_FUNCTION_TYPE, v8::internal::HValue::kIsArguments, LookupAndMakeLive(), NULL, v8::internal::HGraphBuilder::Pop(), v8::internal::HGraphBuilder::Push(), PushArgumentsFromEnvironment(), v8::internal::AstContext::ReturnInstruction(), v8::internal::HGraphBuilder::scope(), TryInlineApply(), and VisitForValue().
|
private |
Definition at line 8952 of file hydrogen.cc.
References array_function(), BuildArrayCall(), and v8::internal::Handle< T >::is_null().
|
private |
Definition at line 8968 of file hydrogen.cc.
References array_function(), and BuildArrayCall().
|
private |
Definition at line 7753 of file hydrogen.cc.
References v8::internal::HGraphBuilder::AddLeaveInlined(), v8::internal::Scope::Analyze(), ast_context(), v8::internal::List< T, AllocationPolicy >::at(), call_context(), ClearInlinedTestContext(), v8::internal::CompilationInfo::closure(), v8::internal::CONSTRUCT_CALL_RETURN, context(), v8::internal::HGraphBuilder::current_block(), current_info(), DCHECK, v8::internal::Scope::declarations(), v8::internal::Compiler::EnsureDeoptimizationSupport(), v8::internal::HGraphBuilder::environment(), v8::internal::CompilationInfo::function(), function_return(), function_state(), FunctionState, v8::internal::HGraphBuilder::Goto(), v8::internal::HGraphBuilder::graph(), v8::internal::Isolate::has_pending_exception(), inlined_count_, inlined_test_context(), InliningAstSize(), v8::internal::CompilationInfo::isolate(), v8::internal::JS_FUNCTION, v8::internal::kNotInlinable, kUnlimitedMaxInlinedNodes, kUnlimitedMaxInlinedNodesCumulative, v8::internal::Min(), v8::internal::BailoutId::None(), NULL, v8::internal::Scope::num_heap_slots(), v8::internal::Parser::Parse(), v8::internal::CompilationInfo::RetryOptimization(), v8::internal::AstTyper::Run(), v8::internal::CompilationInfo::scope(), v8::internal::HGraphBuilder::scope(), v8::internal::HGraphBuilder::set_current_block(), v8::internal::HGraphBuilder::set_scope(), v8::internal::CompilationInfo::SetAstValueFactory(), v8::internal::SETTER_CALL_RETURN, v8::internal::HGraphBuilder::top_info(), TraceInline(), VisitDeclarations(), VisitStatements(), and v8::internal::HGraphBuilder::zone().
Referenced by TryInlineApply(), TryInlineCall(), TryInlineConstruct(), TryInlineGetter(), and TryInlineSetter().
|
private |
Definition at line 8578 of file hydrogen.cc.
References AddCheckPrototypeMaps(), ast_context(), CHECK, context(), DCHECK, DCHECK_EQ, Drop(), v8::internal::CallInterfaceDescriptor::GetEnvironmentLength(), v8::internal::handle(), v8::internal::HGraphBuilder::isolate(), kCallApiFunction, kCallApiGetter, kCallApiMethod, kCallApiSetter, v8::internal::kPointerSize, NULL, v8::internal::HGraphBuilder::Pop(), v8::internal::PrintF(), PushArgumentsFromEnvironment(), v8::internal::AstContext::ReturnInstruction(), UNREACHABLE, and v8::internal::HGraphBuilder::zone().
Referenced by TryInlineApiFunctionCall(), TryInlineApiGetter(), TryInlineApiMethodCall(), and TryInlineApiSetter().
|
private |
Definition at line 8521 of file hydrogen.cc.
References kCallApiFunction, and TryInlineApiCall().
|
private |
Definition at line 8550 of file hydrogen.cc.
References kCallApiGetter, NULL, TryInlineApiCall(), and v8::internal::HGraphBuilder::zone().
Referenced by TryInlineGetter().
|
private |
Definition at line 8535 of file hydrogen.cc.
References kCallApiMethod, and TryInlineApiCall().
|
private |
Definition at line 8564 of file hydrogen.cc.
References kCallApiSetter, NULL, TryInlineApiCall(), and v8::internal::HGraphBuilder::zone().
Referenced by TryInlineSetter().
|
private |
Definition at line 8085 of file hydrogen.cc.
References v8::internal::NORMAL_RETURN, NULL, v8::internal::HGraphBuilder::ScriptPositionToSourcePosition(), and TryInline().
Referenced by TryCallApply().
|
private |
Definition at line 8098 of file hydrogen.cc.
References ast_context(), context(), Drop(), v8::internal::HValue::id(), v8::internal::HGraphBuilder::Pop(), v8::internal::AstContext::ReturnInstruction(), and v8::internal::HGraphBuilder::zone().
|
private |
Definition at line 8138 of file hydrogen.cc.
References AddCheckMap(), v8::internal::HGraphBuilder::AddElementAccess(), v8::internal::HGraphBuilder::AddInstruction(), v8::internal::HGraphBuilder::AddLoadElements(), v8::internal::ALLOW_RETURN_HOLE, ast_context(), BuildArrayIndexOf(), v8::internal::HGraphBuilder::BuildCheckPrototypeMaps(), v8::internal::HGraphBuilder::BuildCopyElementsOnWrite(), BuildStringCharCodeAt(), v8::internal::HGraphBuilder::BuildUncheckedMonomorphicElementAccess(), v8::internal::HValue::ClearFlag(), context(), DCHECK, Drop(), v8::internal::EQ, v8::internal::Isolate::factory(), v8::internal::FAST_HOLEY_ELEMENTS, v8::internal::HGraphBuilder::graph(), v8::internal::handle(), v8::internal::HValue::HasObservableSideEffects(), v8::internal::FixedDoubleArray::hole_nan_as_double(), v8::internal::HValue::id(), v8::internal::INITIALIZING_STORE, v8::internal::Handle< T >::is_null(), v8::internal::AstContext::IsEffect(), v8::internal::IsFastElementsKind(), v8::internal::IsFastSmiOrObjectElementsKind(), v8::internal::HGraphBuilder::isolate(), v8::internal::JSArray::IsReadOnlyLengthDescriptor(), v8::internal::JS_ARRAY_TYPE, v8::internal::HValue::kAllowUndefinedAsNaN, v8::internal::HValue::kCanOverflow, kFirstIndexOf, kLastIndexOf, v8::internal::kMathPowHalf, v8::internal::LOAD, mode(), v8::internal::NEVER_RETURN_HOLE, NULL, v8::internal::HGraphBuilder::Pop(), v8::internal::HGraphBuilder::Push(), v8::internal::REMOVABLE_SIMULATE, v8::internal::AstContext::ReturnInstruction(), v8::internal::AstContext::ReturnValue(), v8::internal::HGraphBuilder::scope(), v8::internal::STORE, v8::internal::STORE_AND_GROW_NO_TRANSITION, v8::internal::STORE_TO_INITIALIZED_ENTRY, Top(), and v8::internal::HGraphBuilder::zone().
|
private |
Definition at line 8032 of file hydrogen.cc.
References v8::internal::NORMAL_RETURN, NULL, v8::internal::HGraphBuilder::ScriptPositionToSourcePosition(), and TryInline().
Referenced by HandlePolymorphicCallNamed().
|
private |
Definition at line 8043 of file hydrogen.cc.
References v8::internal::CONSTRUCT_CALL_RETURN, v8::internal::HValue::id(), v8::internal::HGraphBuilder::ScriptPositionToSourcePosition(), and TryInline().
|
private |
Definition at line 8055 of file hydrogen.cc.
References v8::internal::GETTER_CALL_RETURN, NULL, v8::internal::HGraphBuilder::source_position(), TryInline(), and TryInlineApiGetter().
Referenced by BuildMonomorphicAccess().
|
private |
Definition at line 8070 of file hydrogen.cc.
References v8::internal::SETTER_CALL_RETURN, v8::internal::HGraphBuilder::source_position(), TryInline(), and TryInlineApiSetter().
Referenced by BuildMonomorphicAccess().
|
protected |
Definition at line 10620 of file hydrogen.cc.
References ast_context(), BuildBinaryOperation(), v8::internal::HValue::cast(), CHECK_ALIVE, NO_PUSH_BEFORE_SIMULATE, v8::internal::HGraphBuilder::Pop(), PUSH_BEFORE_SIMULATE, v8::internal::AstContext::ReturnValue(), v8::internal::HGraphBuilder::ScriptPositionToSourcePosition(), v8::internal::HGraphBuilder::SetSourcePosition(), VisitForValue(), and v8::internal::HGraphBuilder::zone().
|
protected |
Definition at line 10509 of file hydrogen.cc.
References CHECK_ALIVE, and VisitForEffect().
void v8::internal::HOptimizedGraphBuilder::VisitDeclarations | ( | ZoneList< Declaration * > * | declarations | ) |
Definition at line 11224 of file hydrogen.cc.
References current_info(), DCHECK, v8::internal::BitFieldBase< T, shift, size, U >::encode(), v8::internal::Isolate::factory(), v8::internal::anonymous_namespace{flags.cc}::flags, globals_, v8::internal::HGraphBuilder::isolate(), and v8::internal::TENURED.
Referenced by BuildGraph(), and TryInline().
|
protected |
Definition at line 9828 of file hydrogen.cc.
References v8::internal::HGraphBuilder::AddLoadJSBuiltin(), ast_context(), Bailout(), CHECK_ALIVE, function_strict_mode(), v8::internal::HGraphBuilder::graph(), v8::internal::HValue::id(), v8::internal::Variable::is_this(), v8::internal::Variable::IsContextSlot(), v8::internal::Variable::IsStackAllocated(), v8::internal::Variable::IsUnallocated(), NULL, v8::internal::HGraphBuilder::Pop(), v8::internal::AstContext::ReturnInstruction(), v8::internal::AstContext::ReturnValue(), VisitForEffect(), and VisitForValue().
|
protected |
Definition at line 4246 of file hydrogen.cc.
References v8::internal::List< T, AllocationPolicy >::at(), CHECK_ALIVE, and VisitForValue().
Referenced by HandlePolymorphicCallNamed().
|
protected |
Definition at line 4238 of file hydrogen.cc.
Referenced by VisitLogicalExpression(), and VisitNot().
|
protected |
Definition at line 4218 of file hydrogen.cc.
Referenced by VisitComma(), VisitDelete(), VisitLogicalExpression(), VisitNot(), and VisitVoid().
|
protected |
Definition at line 4231 of file hydrogen.cc.
References v8::internal::ARGUMENTS_NOT_ALLOWED.
Referenced by HandleLiteralCompareTypeof(), and VisitTypeof().
|
protected |
Definition at line 4224 of file hydrogen.cc.
References v8::internal::flag.
Referenced by HandleCompoundAssignment(), HandleLiteralCompareNil(), HandlePropertyAssignment(), TryArgumentsAccess(), TryCallApply(), VisitArithmeticExpression(), VisitDelete(), VisitExpressions(), and VisitLogicalExpression().
|
protected |
Definition at line 10517 of file hydrogen.cc.
References v8::internal::AND, ast_context(), CHECK_ALIVE, CHECK_BAILOUT, context(), CreateJoin(), v8::internal::HGraphBuilder::current_block(), DCHECK, Drop(), v8::internal::HGraphBuilder::FinishCurrentBlock(), v8::internal::HGraphBuilder::graph(), NULL, v8::internal::HGraphBuilder::Pop(), v8::internal::AstContext::ReturnValue(), v8::internal::HGraphBuilder::set_current_block(), Top(), VisitForControl(), VisitForEffect(), and VisitForValue().
|
protected |
Definition at line 4936 of file hydrogen.cc.
References v8::internal::IterationStatement::body(), CHECK_BAILOUT, DCHECK, and v8::internal::IterationStatement::StackCheckId().
|
protected |
Definition at line 9880 of file hydrogen.cc.
References ast_context(), CHECK_BAILOUT, context(), CreateJoin(), DCHECK, v8::internal::HGraphBuilder::graph(), NULL, v8::internal::HGraphBuilder::Pop(), v8::internal::HGraphBuilder::Push(), v8::internal::AstContext::ReturnValue(), v8::internal::HGraphBuilder::set_current_block(), VisitForControl(), and VisitForEffect().
|
protectedvirtual |
Definition at line 4518 of file hydrogen.cc.
References v8::internal::List< T, AllocationPolicy >::at(), CHECK_ALIVE, and v8::internal::Statement::IsJump().
Referenced by BuildGraph(), and TryInline().
|
protected |
Definition at line 9872 of file hydrogen.cc.
References ast_context(), CHECK_ALIVE, v8::internal::HValue::id(), v8::internal::HGraphBuilder::Pop(), v8::internal::AstContext::ReturnInstruction(), and VisitForTypeOf().
|
protected |
Definition at line 9866 of file hydrogen.cc.
References ast_context(), CHECK_ALIVE, v8::internal::HGraphBuilder::graph(), v8::internal::AstContext::ReturnValue(), and VisitForEffect().
|
friend |
Definition at line 2737 of file hydrogen.h.
|
friend |
Definition at line 2736 of file hydrogen.h.
Referenced by TryInline().
|
friend |
Definition at line 2739 of file hydrogen.h.
|
friend |
Definition at line 2738 of file hydrogen.h.
|
private |
Definition at line 2724 of file hydrogen.h.
Referenced by ast_context(), and set_ast_context().
|
private |
Definition at line 2727 of file hydrogen.h.
Referenced by break_scope(), and set_break_scope().
|
private |
Definition at line 2717 of file hydrogen.h.
Referenced by function_state(), HOptimizedGraphBuilder(), and set_function_state().
Definition at line 2730 of file hydrogen.h.
Referenced by VisitDeclarations().
|
private |
Definition at line 2720 of file hydrogen.h.
Referenced by HOptimizedGraphBuilder().
|
private |
Definition at line 2732 of file hydrogen.h.
|
private |
Definition at line 2729 of file hydrogen.h.
Referenced by TryInline().
|
staticprotected |
Definition at line 2143 of file hydrogen.h.
|
staticprotected |
Definition at line 2145 of file hydrogen.h.
Referenced by HandlePolymorphicCallNamed().
|
staticprotected |
Definition at line 2157 of file hydrogen.h.
|
staticprotected |
Definition at line 2158 of file hydrogen.h.
|
staticprotected |
Definition at line 2146 of file hydrogen.h.
Referenced by v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::CanAccessAsMonomorphic(), and HandlePolymorphicNamedFieldAccess().
|
staticprotected |
Definition at line 2147 of file hydrogen.h.
Referenced by v8::internal::HOptimizedGraphBuilder::PropertyAccessInfo::CanAccessAsMonomorphic(), and HandlePolymorphicNamedFieldAccess().
|
staticprotected |
Definition at line 2152 of file hydrogen.h.
Referenced by TryInline().
|
staticprotected |
Definition at line 2153 of file hydrogen.h.
Referenced by TryInline().
|
staticprotected |
Definition at line 2151 of file hydrogen.h.
Referenced by InliningAstSize().
|
private |
Definition at line 2734 of file hydrogen.h.
Referenced by osr().