V8 Project
|
#include <hydrogen-instructions.h>
Public Types | |
enum | Flag { kFlexibleRepresentation , kCannotBeTagged , kUseGVN , kTrackSideEffectDominators , kCanOverflow , kBailoutOnMinusZero , kCanBeDivByZero , kLeftCanBeMinInt , kLeftCanBeNegative , kLeftCanBePositive , kAllowUndefinedAsNaN , kIsArguments , kTruncatingToInt32 , kAllUsesTruncatingToInt32 , kTruncatingToSmi , kAllUsesTruncatingToSmi , kIsDead , kUint32 , kHasNoObservableSideEffects , kCantBeReplaced , kIsLive , kEndsLiveRange = kIsLive , kLastFlag = kIsLive } |
enum | Opcode { kPhi } |
Static Public Member Functions | |
static HValue * | cast (HValue *value) |
Static Public Attributes | |
static const int | kNoNumber = -1 |
static const int | kNoRedefinedOperand = -1 |
Protected Member Functions | |
virtual bool | DataEquals (HValue *other) |
bool | ToStringOrToNumberCanBeObserved () const |
virtual Representation | RepresentationFromInputs () |
virtual Representation | RepresentationFromUses () |
Representation | RepresentationFromUseRequirements () |
bool | HasNonSmiUse () |
virtual void | UpdateRepresentation (Representation new_rep, HInferRepresentationPhase *h_infer, const char *reason) |
void | AddDependantsToWorklist (HInferRepresentationPhase *h_infer) |
virtual void | RepresentationChanged (Representation to) |
virtual Range * | InferRange (Zone *zone) |
virtual void | DeleteFromGraph ()=0 |
virtual void | InternalSetOperandAt (int index, HValue *value)=0 |
void | clear_block () |
void | set_representation (Representation r) |
HUseListNode * | RemoveUse (HValue *value, int index) |
void | RegisterUse (int index, HValue *new_value) |
Static Protected Member Functions | |
static GVNFlagSet | AllFlagSet () |
static GVNFlagSet | AllSideEffectsFlagSet () |
static GVNFlagSet | AllObservableSideEffectsFlagSet () |
Protected Attributes | |
HBasicBlock * | block_ |
int | id_ |
Representation | representation_ |
HType | type_ |
HUseListNode * | use_list_ |
Range * | range_ |
int | flags_ |
GVNFlagSet | changes_flags_ |
GVNFlagSet | depends_on_flags_ |
Private Member Functions | |
virtual bool | IsDeletable () const |
DISALLOW_COPY_AND_ASSIGN (HValue) | |
Friends | |
OStream & | operator<< (OStream &os, const ChangesOf &v) |
Definition at line 473 of file hydrogen-instructions.h.
Definition at line 477 of file hydrogen-instructions.h.
Enumerator | |
---|---|
kPhi |
Definition at line 530 of file hydrogen-instructions.h.
|
inlineexplicit |
Definition at line 556 of file hydrogen-instructions.h.
|
inlinevirtual |
Definition at line 566 of file hydrogen-instructions.h.
|
inline |
Definition at line 648 of file hydrogen-instructions.h.
References kNoRedefinedOperand, OperandAt(), and RedefinedOperandIndex().
Referenced by v8::internal::HGraphBuilder::BuildCalculateElementsSize(), v8::internal::HOptimizedGraphBuilder::BuildLoadNamedField(), v8::internal::HOptimizedGraphBuilder::BuildStoreNamedField(), v8::internal::HGraphBuilder::BuildUncheckedMonomorphicElementAccess(), v8::internal::HCheckTable::Copy(), v8::internal::DehoistArrayIndex(), v8::internal::HOptimizedGraphBuilder::HandleKeyedElementAccess(), v8::internal::HLoadEliminationTable::KillIfMisaligned(), v8::internal::HLoadEliminationTable::load(), v8::internal::HLoadEliminationTable::Process(), v8::internal::HStoreEliminationPhase::ProcessLoad(), v8::internal::HStoreEliminationPhase::ProcessStore(), v8::internal::HCheckTable::ReduceCheckHeapObject(), v8::internal::HCheckTable::ReduceCheckInstanceType(), v8::internal::HCheckTable::ReduceCheckMaps(), v8::internal::HCheckTable::ReduceCompareObjectEqAndBranch(), v8::internal::HCheckTable::ReduceIsStringAndBranch(), v8::internal::HCheckTable::ReduceLoadNamedField(), v8::internal::HCheckTable::ReduceStoreNamedField(), v8::internal::HCheckTable::ReduceTransitionElementsKind(), and v8::internal::HLoadEliminationTable::store().
|
protected |
Definition at line 121 of file hydrogen-instructions.cc.
References v8::internal::HInferRepresentationPhase::AddToWorklist(), OperandAt(), OperandCount(), and uses().
Referenced by UpdateRepresentation().
void v8::internal::HValue::AddNewRange | ( | Range * | r, |
Zone * | zone | ||
) |
Definition at line 598 of file hydrogen-instructions.cc.
References ComputeInitialRange(), DCHECK, HasRange(), and range_.
Referenced by v8::internal::HRangeAnalysisPhase::AddRange().
|
inlinestaticprotected |
Definition at line 875 of file hydrogen-instructions.h.
References ADD_FLAG, GVN_TRACKED_FLAG_LIST, and GVN_UNTRACKED_FLAG_LIST.
Referenced by AllObservableSideEffectsFlagSet(), and AllSideEffectsFlagSet().
|
inlinestaticprotected |
Definition at line 894 of file hydrogen-instructions.h.
References AllFlagSet(), and v8::internal::EnumSet< E, T >::Remove().
Referenced by HasObservableSideEffects(), and ObservableChangesFlags().
|
inlinestaticprotected |
Definition at line 885 of file hydrogen-instructions.h.
References AllFlagSet(), and v8::internal::EnumSet< E, T >::Remove().
Referenced by ClearAllSideEffects(), HasSideEffects(), SetAllSideEffects(), and SideEffectFlags().
|
inlinevirtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HCall< V >, v8::internal::HCall< 1 >, v8::internal::HCall< 2 >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 639 of file hydrogen-instructions.h.
|
virtual |
Reimplemented in v8::internal::HBinaryOperation.
Definition at line 50 of file hydrogen-instructions.cc.
References ChangeRepresentation(), CheckFlag(), ClearFlag(), and kFlexibleRepresentation.
|
inline |
Definition at line 575 of file hydrogen-instructions.h.
References block_.
Referenced by v8::internal::HEscapeAnalysisPhase::AnalyzeDataFlow(), v8::internal::HOptimizedGraphBuilder::BuildCompareInstruction(), CanReplaceWithDummyUses(), v8::internal::HCheckTable::Copy(), v8::internal::BoundsCheckKey::Create(), v8::internal::HInstruction::Dominates(), v8::internal::HCheckTable::EnsureChecked(), v8::internal::HInstruction::InitializeAsFirst(), v8::internal::HInstruction::InsertAfter(), v8::internal::HInstruction::InsertBefore(), v8::internal::HRepresentationChangesPhase::InsertRepresentationChangeForUse(), IsDefinedAfter(), v8::internal::HInstruction::IsLinked(), isolate(), v8::internal::HControlInstruction::KnownSuccessorBlock(), v8::internal::HLoadEliminationTable::load(), v8::internal::HCheckTable::Merge(), v8::internal::HEscapeAnalysisPhase::NewStateForLoopHeader(), v8::internal::State::Process(), v8::internal::BASE_EMBEDDED< Visitor >::ProcessRelatedChecks(), v8::internal::HCheckTable::ReduceCheckMaps(), v8::internal::HCheckTable::ReduceCompareObjectEqAndBranch(), RegisterUse(), RemoveUse(), ReplaceAllUsesWith(), SetBlock(), v8::internal::HTemplateControlInstruction< S, V >::SetSuccessorAt(), and v8::internal::HInstruction::Unlink().
|
virtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HCall< V >, v8::internal::HCall< 1 >, and v8::internal::HCall< 2 >.
Definition at line 3644 of file hydrogen-instructions.cc.
Referenced by UpdateInferredType().
|
inline |
Definition at line 802 of file hydrogen-instructions.h.
References HasObservableSideEffects(), and IsDeletable().
Referenced by v8::internal::HDeadCodeEliminationPhase::MarkLiveInstructions().
|
inlinevirtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 764 of file hydrogen-instructions.h.
Referenced by v8::internal::HCanonicalizePhase::Run().
bool v8::internal::HValue::CanReplaceWithDummyUses | ( | ) |
Definition at line 451 of file hydrogen-instructions.cc.
References block().
Definition at line 528 of file hydrogen-instructions.h.
Referenced by v8::internal::HGraphBuilder::BuildBinaryOperation(), v8::internal::HCheckTable::Copy(), v8::internal::DehoistArrayIndex(), v8::internal::LControlInstruction< I, T >::hydrogen(), v8::internal::HRepresentationChangesPhase::InsertRepresentationChangeForUse(), v8::internal::BoundsCheckBbData::MoveIndexIfNecessary(), v8::internal::HCheckTable::Process(), v8::internal::HRangeAnalysisPhase::PropagateMinusZeroChecks(), v8::internal::HRangeAnalysisPhase::Run(), and v8::internal::HOptimizedGraphBuilder::VisitArithmeticExpression().
|
inline |
Definition at line 589 of file hydrogen-instructions.h.
References CheckFlag(), ClearFlag(), DCHECK, v8::internal::Representation::IsTagged(), kCannotBeTagged, kFlexibleRepresentation, representation_, and RepresentationChanged().
Referenced by AssumeRepresentation(), v8::internal::HGraphBuilder::BuildUncheckedDictionaryElementLoad(), v8::internal::HInferRepresentationPhase::Run(), and UpdateRepresentation().
|
inline |
Definition at line 698 of file hydrogen-instructions.h.
References changes_flags_.
Referenced by ObservableChangesFlags(), v8::internal::HCheckMapsEffects::Process(), v8::internal::HLoadEliminationEffects::Process(), v8::internal::FINAL< kOperandKind, kNumCachedOperands >::ReuseSideEffectsFromStore(), and SideEffectFlags().
Definition at line 704 of file hydrogen-instructions.h.
References changes_flags_, and v8::internal::EnumSet< E, T >::Contains().
Referenced by v8::internal::HCheckTable::Process(), v8::internal::HLoadEliminationTable::Process(), and v8::internal::HStoreEliminationPhase::ProcessInstr().
Definition at line 707 of file hydrogen-instructions.h.
References v8::internal::EnumSet< E, T >::Contains(), and depends_on_flags_.
Definition at line 685 of file hydrogen-instructions.h.
References flags_.
Referenced by v8::internal::HInferRepresentationPhase::AddToWorklist(), AssumeRepresentation(), v8::internal::HInstruction::CanTruncateToInt32(), v8::internal::HInstruction::CanTruncateToSmi(), ChangeRepresentation(), CopyFlag(), v8::internal::HLoadEliminationTable::Equal(), GetMinusZeroMode(), HasObservableSideEffects(), InferRange(), InferRepresentation(), v8::internal::HRepresentationChangesPhase::InsertRepresentationChangeForUse(), Kill(), v8::internal::HDeadCodeEliminationPhase::MarkLive(), v8::internal::HInstruction::PrintTo(), v8::internal::HMarkDeoptimizeOnUndefinedPhase::ProcessPhi(), v8::internal::HRedundantPhiEliminationPhase::ProcessPhis(), v8::internal::HDeadCodeEliminationPhase::RemoveDeadInstructions(), v8::internal::HInferRepresentationPhase::Run(), v8::internal::HRepresentationChangesPhase::Run(), v8::internal::HStoreEliminationPhase::Run(), v8::internal::HUseListNode::tail(), v8::internal::HOptimizedGraphBuilder::TryCallApply(), and UpdateRepresentation().
Definition at line 330 of file hydrogen-instructions.cc.
References uses().
Definition at line 339 of file hydrogen-instructions.cc.
References uses().
|
inlineprotected |
|
inline |
Definition at line 711 of file hydrogen-instructions.h.
References AllSideEffectsFlagSet(), changes_flags_, and v8::internal::EnumSet< E, T >::Remove().
Referenced by v8::internal::HOptimizedGraphBuilder::BuildIncrement(), v8::internal::HBitwiseBinaryOperation::RepresentationChanged(), and v8::internal::HArithmeticBinaryOperation::RepresentationChanged().
|
inline |
Definition at line 702 of file hydrogen-instructions.h.
References changes_flags_, and v8::internal::EnumSet< E, T >::Remove().
|
inline |
Definition at line 703 of file hydrogen-instructions.h.
References depends_on_flags_, and v8::internal::EnumSet< E, T >::Remove().
Referenced by v8::internal::HGraphBuilder::BuildUncheckedMonomorphicElementAccess().
|
inline |
Definition at line 684 of file hydrogen-instructions.h.
References flags_.
Referenced by v8::internal::HGraphBuilder::AddIncrementCounter(), AssumeRepresentation(), v8::internal::HOptimizedGraphBuilder::BuildAllocateExternalElements(), v8::internal::HOptimizedGraphBuilder::BuildAllocateFixedTypedArray(), v8::internal::HGraphBuilder::BuildCalculateElementsSize(), v8::internal::HGraphBuilder::BuildCheckForCapacityGrow(), v8::internal::CodeStubGraphBuilder< KeyedLoadGenericStub >::BuildCodeStub(), v8::internal::HGraphBuilder::BuildCopyElements(), v8::internal::HGraphBuilder::BuildCreateAllocationMemento(), v8::internal::HGraphBuilder::BuildElementIndexHash(), v8::internal::HGraphBuilder::BuildFillElementsWithValue(), v8::internal::CodeStubGraphBuilderBase::BuildGraph(), v8::internal::HGraphBuilder::BuildNewElementsCapacity(), v8::internal::HGraphBuilder::BuildUncheckedDictionaryElementLoad(), ChangeRepresentation(), v8::internal::HMarkDeoptimizeOnUndefinedPhase::ProcessPhi(), v8::internal::HDeadCodeEliminationPhase::RemoveDeadInstructions(), v8::internal::HBitwiseBinaryOperation::RepresentationChanged(), v8::internal::HArithmeticBinaryOperation::RepresentationChanged(), v8::internal::HRepresentationChangesPhase::Run(), and v8::internal::HOptimizedGraphBuilder::TryInlineBuiltinMethodCall().
void v8::internal::HValue::ComputeInitialRange | ( | Zone * | zone | ) |
Definition at line 614 of file hydrogen-instructions.cc.
References DCHECK, HasRange(), InferRange(), and range_.
Referenced by AddNewRange(), and v8::internal::HRangeAnalysisPhase::InferRange().
Definition at line 686 of file hydrogen-instructions.h.
References CheckFlag(), and SetFlag().
Referenced by v8::internal::HGraphBuilder::BuildBinaryOperation().
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 838 of file hydrogen-instructions.h.
References UNREACHABLE.
Referenced by Equals().
void v8::internal::HValue::DeleteAndReplaceWith | ( | HValue * | other | ) |
Definition at line 485 of file hydrogen-instructions.cc.
References DeleteFromGraph(), Kill(), NULL, and ReplaceAllUsesWith().
Referenced by v8::internal::HEscapeAnalysisPhase::AnalyzeDataFlow(), v8::internal::DehoistArrayIndex(), v8::internal::HRepresentationChangesPhase::InsertRepresentationChangesForValue(), v8::internal::HLoadEliminationTable::Process(), v8::internal::HCheckTable::ReduceCheckHeapObject(), v8::internal::HDeadCodeEliminationPhase::RemoveDeadInstructions(), and v8::internal::HCanonicalizePhase::Run().
|
protectedpure virtual |
Implemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::HInstruction.
Referenced by DeleteAndReplaceWith().
|
inline |
Definition at line 699 of file hydrogen-instructions.h.
References depends_on_flags_.
Referenced by v8::internal::HStoreEliminationPhase::ProcessInstr().
|
private |
|
inlinevirtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 586 of file hydrogen-instructions.h.
Definition at line 415 of file hydrogen-instructions.cc.
References DataEquals(), DCHECK, v8::internal::Representation::Equals(), flags(), Hashcode(), id(), opcode(), OperandAt(), OperandCount(), representation(), and type_.
Referenced by v8::internal::HGraphBuilder::BuildCopyElements(), v8::internal::HLoadEliminationTable::Equal(), and v8::internal::HAliasAnalyzer::Query().
bool v8::internal::HValue::EqualsInteger32Constant | ( | int32_t | value | ) |
Definition at line 474 of file hydrogen-instructions.cc.
References GetInteger32Constant(), and IsInteger32Constant().
Referenced by v8::internal::HGraphBuilder::BuildBinaryOperation(), v8::internal::IsIdentityOperation(), and v8::internal::MatchLeftIsOnes().
|
inlinevirtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 770 of file hydrogen-instructions.h.
|
inline |
Definition at line 682 of file hydrogen-instructions.h.
References flags_.
Referenced by Equals().
int32_t v8::internal::HValue::GetInteger32Constant | ( | ) |
Definition at line 469 of file hydrogen-instructions.cc.
Referenced by v8::internal::HGraphBuilder::BuildFillElementsWithValue(), EqualsInteger32Constant(), v8::internal::IsUint32Operation(), v8::internal::BASE_EMBEDDED< Visitor >::ProcessRelatedChecks(), and v8::internal::HBinaryOperation::RightIsPowerOf2().
|
inline |
Definition at line 830 of file hydrogen-instructions.h.
References CheckFlag(), v8::internal::FAIL_ON_MINUS_ZERO, kBailoutOnMinusZero, and v8::internal::TREAT_MINUS_ZERO_AS_ZERO.
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 783 of file hydrogen-instructions.h.
Referenced by v8::internal::ComputeReceiverTypes(), and HasMonomorphicJSObjectType().
|
inlinevirtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 795 of file hydrogen-instructions.h.
References UNREACHABLE.
Definition at line 351 of file hydrogen-instructions.cc.
References uses().
Referenced by v8::internal::HCanonicalizePhase::Run().
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::HDematerializedObject.
Definition at line 750 of file hydrogen-instructions.h.
|
virtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 430 of file hydrogen-instructions.cc.
References id(), opcode(), OperandAt(), and OperandCount().
Referenced by Equals(), and v8::internal::BoundsCheckKey::Hash().
bool v8::internal::HValue::HasMonomorphicJSObjectType | ( | ) |
Definition at line 564 of file hydrogen-instructions.cc.
References GetMonomorphicJSObjectMap(), and v8::internal::Handle< T >::is_null().
Referenced by v8::internal::ComputeReceiverTypes().
|
inline |
Definition at line 674 of file hydrogen-instructions.h.
References NULL, v8::internal::HUseListNode::tail(), and use_list_.
|
protected |
Definition at line 4522 of file hydrogen-instructions.cc.
References v8::internal::Representation::IsNone(), v8::internal::Representation::IsSmi(), and v8::internal::Representation::IsTagged().
Referenced by InferRepresentation().
|
inline |
Definition at line 670 of file hydrogen-instructions.h.
References NULL, and use_list_.
Referenced by v8::internal::HEscapeAnalysisPhase::AnalyzeDataFlow(), v8::internal::DehoistArrayIndex(), v8::internal::HRepresentationChangesPhase::InsertRepresentationChangesForValue(), and RepresentationFromUses().
|
inline |
Definition at line 717 of file hydrogen-instructions.h.
References AllObservableSideEffectsFlagSet(), changes_flags_, CheckFlag(), v8::internal::EnumSet< E, T >::ContainsAnyOf(), and kHasNoObservableSideEffects.
Referenced by v8::internal::HOptimizedGraphBuilder::BuildBinaryOperation(), v8::internal::HOptimizedGraphBuilder::BuildStore(), CannotBeEliminated(), v8::internal::HOptimizedGraphBuilder::HandleGlobalVariableAssignment(), v8::internal::HOptimizedGraphBuilder::HandleKeyedElementAccess(), v8::internal::HOptimizedGraphBuilder::HandlePolymorphicElementAccess(), v8::internal::HInstruction::InsertAfter(), v8::internal::FINAL< kOperandKind, kNumCachedOperands >::ReuseSideEffectsFromStore(), and v8::internal::HOptimizedGraphBuilder::TryInlineBuiltinMethodCall().
|
inline |
Definition at line 671 of file hydrogen-instructions.h.
References NULL, v8::internal::HUseListNode::tail(), and use_list_.
Referenced by v8::internal::HBinaryOperation::AreOperandsBetterSwitched().
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 751 of file hydrogen-instructions.h.
|
inline |
Definition at line 738 of file hydrogen-instructions.h.
References DCHECK, NULL, and range_.
Referenced by AddNewRange(), ComputeInitialRange(), v8::internal::HRangeAnalysisPhase::InferRange(), v8::internal::HRangeAnalysisPhase::PoisonRanges(), and RemoveLastAddedRange().
|
inline |
Definition at line 714 of file hydrogen-instructions.h.
References AllSideEffectsFlagSet(), changes_flags_, and v8::internal::EnumSet< E, T >::ContainsAnyOf().
|
inline |
Definition at line 581 of file hydrogen-instructions.h.
References id_.
Referenced by v8::internal::HRangeAnalysisPhase::AddRange(), v8::internal::HInferRepresentationPhase::AddToWorklist(), v8::internal::HRangeAnalysisPhase::AddToWorklist(), v8::internal::HEscapeAnalysisPhase::AnalyzeDataFlow(), v8::internal::HEscapeAnalysisPhase::CollectCapturedValues(), Equals(), v8::internal::LCodeGen::GenerateDeferredCode(), v8::internal::HOptimizedGraphBuilder::HandleLiteralCompareNil(), v8::internal::HOptimizedGraphBuilder::HandlePolymorphicCallNamed(), Hashcode(), v8::internal::HEscapeAnalysisPhase::HasNoEscapingUses(), v8::internal::HRangeAnalysisPhase::InferRange(), v8::internal::HInferTypesPhase::InferTypes(), v8::internal::FINAL< kOperandKind, kNumCachedOperands >::IsDehoistedKey(), v8::internal::operator<<(), v8::internal::HCheckTable::Print(), v8::internal::HLoadEliminationTable::Process(), v8::internal::State::Process(), v8::internal::HStoreEliminationPhase::ProcessInstr(), v8::internal::HCheckTable::ReduceCheckMaps(), v8::internal::HCheckTable::ReduceCompareObjectEqAndBranch(), v8::internal::HInferRepresentationPhase::Run(), v8::internal::HRepresentationChangesPhase::Run(), set_id(), v8::internal::HOptimizedGraphBuilder::TryArgumentsAccess(), v8::internal::HOptimizedGraphBuilder::TryCallApply(), v8::internal::HOptimizedGraphBuilder::TryInlineBuiltinFunctionCall(), v8::internal::HOptimizedGraphBuilder::TryInlineBuiltinMethodCall(), v8::internal::HOptimizedGraphBuilder::TryInlineConstruct(), v8::internal::HRangeAnalysisPhase::UpdateControlFlowRange(), v8::internal::HOptimizedGraphBuilder::VisitDelete(), and v8::internal::HOptimizedGraphBuilder::VisitTypeof().
|
protectedvirtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 1730 of file hydrogen-instructions.cc.
References CheckFlag(), kAllUsesTruncatingToInt32, v8::internal::Smi::kMaxValue, v8::internal::Smi::kMinValue, representation(), and type().
Referenced by ComputeInitialRange().
|
virtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HCompareNumericAndBranch, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HBinaryOperation, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 60 of file hydrogen-instructions.cc.
References CheckFlag(), DCHECK, HasNonSmiUse(), v8::internal::Representation::Integer32(), kFlexibleRepresentation, representation(), RepresentationFromInputs(), RepresentationFromUses(), and UpdateRepresentation().
Referenced by v8::internal::HInferRepresentationPhase::Run().
|
protectedpure virtual |
Implemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HDematerializedObject, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HTemplateControlInstruction< S, V >, v8::internal::HTemplateControlInstruction< 2, 3 >, v8::internal::HTemplateControlInstruction< 2, 2 >, v8::internal::HTemplateControlInstruction< 0, 3 >, v8::internal::HTemplateControlInstruction< 2, 1 >, v8::internal::HTemplateControlInstruction< 2, 0 >, v8::internal::HTemplateControlInstruction< 1, 0 >, v8::internal::HTemplateControlInstruction< 0, 0 >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HTemplateInstruction< V >, v8::internal::HTemplateInstruction< 0 >, v8::internal::HTemplateInstruction< 1 >, v8::internal::HTemplateInstruction< 2 >, v8::internal::HTemplateInstruction< 3 >, and v8::internal::HTemplateInstruction< 4 >.
Referenced by ReplaceAllUsesWith(), and SetOperandAt().
|
inline |
Definition at line 552 of file hydrogen-instructions.h.
bool v8::internal::HValue::IsDefinedAfter | ( | HBasicBlock * | other | ) | const |
Definition at line 316 of file hydrogen-instructions.cc.
References block().
|
inlineprivatevirtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HArithmeticBinaryOperation, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HBitwiseBinaryOperation, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HMaterializedLiteral< V >, v8::internal::HMaterializedLiteral< 1 >, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 927 of file hydrogen-instructions.h.
Referenced by CannotBeEliminated().
|
inline |
Definition at line 629 of file hydrogen-instructions.h.
References kNoRedefinedOperand, and RedefinedOperandIndex().
bool v8::internal::HValue::IsInteger32Constant | ( | ) |
Definition at line 464 of file hydrogen-instructions.cc.
Referenced by v8::internal::HGraphBuilder::BuildFillElementsWithValue(), EqualsInteger32Constant(), v8::internal::IsUint32Operation(), v8::internal::BASE_EMBEDDED< Visitor >::ProcessRelatedChecks(), and v8::internal::HBinaryOperation::RightIsPowerOf2().
Isolate * v8::internal::HValue::isolate | ( | ) | const |
|
inline |
Definition at line 544 of file hydrogen-instructions.h.
References kPhi, and opcode().
Referenced by v8::internal::HEscapeAnalysisPhase::AnalyzeDataFlow(), v8::internal::HOptimizedGraphBuilder::BuildBinaryOperation(), v8::internal::FINAL< kOperandKind, kNumCachedOperands >::cast(), v8::internal::HRepresentationChangesPhase::InsertRepresentationChangeForUse(), v8::internal::HCheckTable::Merge(), v8::internal::HCheckTable::Print(), v8::internal::HMarkDeoptimizeOnUndefinedPhase::ProcessPhi(), v8::internal::HRedundantPhiEliminationPhase::ProcessPhis(), v8::internal::HRangeAnalysisPhase::PropagateMinusZeroChecks(), RepresentationFromUses(), and v8::internal::HRepresentationChangesPhase::Run().
|
inlinevirtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 644 of file hydrogen-instructions.h.
void v8::internal::HValue::Kill | ( | ) |
Definition at line 506 of file hydrogen-instructions.cc.
References CheckFlag(), kIsDead, NULL, OperandAt(), OperandCount(), SetFlag(), v8::internal::HUseListNode::tail(), use_list_, and v8::internal::HUseListNode::value().
Referenced by DeleteAndReplaceWith().
|
inlinevirtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 601 of file hydrogen-instructions.h.
References v8::internal::Representation::Double(), v8::internal::Representation::IsTagged(), v8::internal::Representation::None(), representation(), v8::internal::Representation::Smi(), and type().
const char * v8::internal::HValue::Mnemonic | ( | ) | const |
Definition at line 440 of file hydrogen-instructions.cc.
References HYDROGEN_CONCRETE_INSTRUCTION_LIST, kPhi, MAKE_CASE, and opcode().
Referenced by v8::internal::HEscapeAnalysisPhase::AnalyzeDataFlow(), v8::internal::HEscapeAnalysisPhase::CollectCapturedValues(), v8::internal::HEscapeAnalysisPhase::HasNoEscapingUses(), v8::internal::HRangeAnalysisPhase::InferRange(), v8::internal::HInstruction::PrintTo(), v8::internal::State::Process(), v8::internal::HStoreEliminationPhase::ProcessInstr(), RepresentationFromUses(), v8::internal::HRepresentationChangesPhase::Run(), and UpdateRepresentation().
|
inline |
Definition at line 728 of file hydrogen-instructions.h.
References AllObservableSideEffectsFlagSet(), ChangesFlags(), and v8::internal::EnumSet< E, T >::Intersect().
|
inlinevirtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HCompareObjectEqAndBranch, v8::internal::HCompareNumericAndBranch, v8::internal::HBitwiseBinaryOperation, v8::internal::HBinaryOperation, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 754 of file hydrogen-instructions.h.
References v8::internal::Representation::None().
|
pure virtual |
Implemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Referenced by v8::internal::HEscapeAnalysisPhase::AnalyzeDataFlow(), v8::internal::HInstruction::CanDeoptimize(), Equals(), Hashcode(), IsPhi(), Mnemonic(), v8::internal::HCheckTable::Process(), v8::internal::HCheckMapsEffects::Process(), v8::internal::HLoadEliminationTable::Process(), v8::internal::HStoreEliminationPhase::Run(), and v8::internal::HEnvironmentLivenessAnalysisPhase::UpdateLivenessAtInstruction().
|
inlinevirtual |
Reimplemented in v8::internal::HInstruction.
Definition at line 571 of file hydrogen-instructions.h.
References position().
Referenced by v8::internal::HRepresentationChangesPhase::InsertRepresentationChangeForUse().
Implemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HDematerializedObject, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HTemplateControlInstruction< S, V >, v8::internal::HTemplateControlInstruction< 2, 3 >, v8::internal::HTemplateControlInstruction< 2, 2 >, v8::internal::HTemplateControlInstruction< 0, 3 >, v8::internal::HTemplateControlInstruction< 2, 1 >, v8::internal::HTemplateControlInstruction< 2, 0 >, v8::internal::HTemplateControlInstruction< 1, 0 >, v8::internal::HTemplateControlInstruction< 0, 0 >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HTemplateInstruction< V >, v8::internal::HTemplateInstruction< 0 >, v8::internal::HTemplateInstruction< 1 >, v8::internal::HTemplateInstruction< 2 >, v8::internal::HTemplateInstruction< 3 >, and v8::internal::HTemplateInstruction< 4 >.
Referenced by ActualValue(), AddDependantsToWorklist(), v8::internal::HEscapeAnalysisPhase::AnalyzeDataFlow(), v8::internal::HCheckTable::Copy(), Equals(), Hashcode(), Kill(), v8::internal::HDeadCodeEliminationPhase::MarkLive(), v8::internal::HCheckTable::Merge(), v8::internal::HEscapeAnalysisPhase::NewStateCopy(), v8::internal::HEscapeAnalysisPhase::NewStateForLoopHeader(), v8::internal::HInstruction::PrintDataTo(), v8::internal::HMarkDeoptimizeOnUndefinedPhase::ProcessPhi(), RedefinedOperand(), RegisterUse(), and v8::internal::HRepresentationChangesPhase::Run().
|
pure virtual |
Implemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HTemplateControlInstruction< S, V >, v8::internal::HTemplateControlInstruction< 2, 3 >, v8::internal::HTemplateControlInstruction< 2, 2 >, v8::internal::HTemplateControlInstruction< 0, 3 >, v8::internal::HTemplateControlInstruction< 2, 1 >, v8::internal::HTemplateControlInstruction< 2, 0 >, v8::internal::HTemplateControlInstruction< 1, 0 >, v8::internal::HTemplateControlInstruction< 0, 0 >, v8::internal::HDematerializedObject, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HTemplateInstruction< V >, v8::internal::HTemplateInstruction< 0 >, v8::internal::HTemplateInstruction< 1 >, v8::internal::HTemplateInstruction< 2 >, v8::internal::HTemplateInstruction< 3 >, and v8::internal::HTemplateInstruction< 4 >.
Referenced by AddDependantsToWorklist(), v8::internal::HEscapeAnalysisPhase::AnalyzeDataFlow(), Equals(), Hashcode(), Kill(), v8::internal::HDeadCodeEliminationPhase::MarkLive(), v8::internal::HInstruction::PrintDataTo(), and v8::internal::HInstruction::set_operand_position().
|
inlinevirtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::HInstruction.
Definition at line 568 of file hydrogen-instructions.h.
References v8::internal::HSourcePosition::Unknown().
Referenced by v8::internal::LCodeGen::DeoptimizeBranch(), v8::internal::LCodeGen::DeoptimizeIf(), v8::internal::LCodeGen::GenerateDeferredCode(), and operand_position().
Implemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::HInstruction.
Referenced by v8::internal::operator<<().
|
inline |
Definition at line 734 of file hydrogen-instructions.h.
References DCHECK, and range_.
Referenced by v8::internal::HRangeAnalysisPhase::AddRange(), v8::internal::HRangeAnalysisPhase::InferRange(), v8::internal::HRangeAnalysisPhase::PropagateMinusZeroChecks(), and v8::internal::HRangeAnalysisPhase::UpdateControlFlowRange().
|
inline |
Definition at line 632 of file hydrogen-instructions.h.
References kNoRedefinedOperand, NULL, OperandAt(), and RedefinedOperandIndex().
Referenced by TryDecompose().
|
inlinevirtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 628 of file hydrogen-instructions.h.
References kNoRedefinedOperand.
Referenced by ActualValue(), IsInformativeDefinition(), and RedefinedOperand().
Definition at line 577 of file hydrogen-instructions.cc.
References block(), NULL, OperandAt(), RemoveUse(), v8::internal::HUseListNode::set_tail(), and use_list_.
Referenced by SetOperandAt().
void v8::internal::HValue::RemoveLastAddedRange | ( | ) |
|
protected |
Definition at line 384 of file hydrogen-instructions.cc.
References block(), v8::internal::HUseListNode::index(), NULL, v8::internal::HUseListNode::set_tail(), v8::internal::HUseListNode::tail(), use_list_, and v8::internal::HUseListNode::value().
Referenced by RegisterUse().
void v8::internal::HValue::ReplaceAllUsesWith | ( | HValue * | other | ) |
Definition at line 493 of file hydrogen-instructions.cc.
References block(), DCHECK, v8::internal::HUseListNode::index(), InternalSetOperandAt(), NULL, v8::internal::HUseListNode::set_tail(), v8::internal::HUseListNode::tail(), use_list_, and v8::internal::HUseListNode::value().
Referenced by DeleteAndReplaceWith().
|
inline |
Definition at line 588 of file hydrogen-instructions.h.
References representation_.
Referenced by v8::internal::HInferRepresentationPhase::AddToWorklist(), v8::internal::FINAL< kOperandKind, kNumCachedOperands >::CanBeReplacedWith(), v8::internal::DehoistArrayIndex(), Equals(), v8::internal::FINAL< kOperandKind, kNumCachedOperands >::HBitwise(), v8::internal::FINAL< kOperandKind, kNumCachedOperands >::HChange(), v8::internal::HRangeAnalysisPhase::InferControlFlowRange(), v8::internal::HRangeAnalysisPhase::InferRange(), InferRange(), InferRepresentation(), v8::internal::HRepresentationChangesPhase::InsertRepresentationChangesForValue(), v8::internal::IsIdentityOperation(), KnownOptimalRepresentation(), v8::internal::operator<<(), v8::internal::BASE_EMBEDDED< Visitor >::ProcessRelatedChecks(), RepresentationFromInputs(), v8::internal::HBinaryOperation::RequiredInputRepresentation(), v8::internal::HCompareNumericAndBranch::RequiredInputRepresentation(), v8::internal::HCanonicalizePhase::Run(), v8::internal::HInferRepresentationPhase::Run(), v8::internal::HRepresentationChangesPhase::Run(), v8::internal::HUint32AnalysisPhase::Run(), ToStringOrToNumberCanBeObserved(), and UpdateRepresentation().
|
inlineprotectedvirtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HArithmeticBinaryOperation, and v8::internal::HBitwiseBinaryOperation.
Definition at line 860 of file hydrogen-instructions.h.
Referenced by ChangeRepresentation().
|
inlineprotectedvirtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HBinaryOperation, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 849 of file hydrogen-instructions.h.
References representation().
Referenced by InferRepresentation().
|
protected |
Definition at line 4498 of file hydrogen-instructions.cc.
References v8::internal::Representation::Equals(), v8::internal::Representation::generalize(), v8::internal::Representation::IsInteger32(), v8::internal::Representation::IsNone(), and v8::None.
|
protectedvirtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 73 of file hydrogen-instructions.cc.
References v8::internal::Representation::Double(), HasNoUses(), v8::internal::Representation::Integer32(), v8::internal::Representation::IsNone(), IsPhi(), v8::internal::Representation::kDouble, v8::internal::Representation::kind(), v8::internal::Representation::kInteger32, v8::internal::Representation::kNumRepresentations, v8::internal::Representation::kSmi, v8::internal::Representation::kTagged, kTruncatingToInt32, Mnemonic(), v8::internal::Representation::Mnemonic(), v8::internal::Representation::None(), v8::internal::PrintF(), v8::internal::Representation::Smi(), v8::internal::Representation::Tagged(), use(), and uses().
Referenced by InferRepresentation().
|
pure virtual |
Implemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HIsConstructCallAndBranch, v8::internal::HStringCompareAndBranch, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HCompareObjectEqAndBranch, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HCompareNumericAndBranch, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HBinaryOperation, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HDematerializedObject, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HBinaryCall, v8::internal::HUnaryCall, v8::internal::HAllocateBlockContext, v8::internal::HStoreFrameContext, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Referenced by v8::internal::HRepresentationChangesPhase::InsertRepresentationChangesForValue().
|
inline |
|
inlineprotected |
Definition at line 870 of file hydrogen-instructions.h.
References DCHECK, v8::internal::Representation::IsNone(), and representation_.
Referenced by v8::internal::HAllocateBlockContext::HAllocateBlockContext(), v8::internal::HStoreFrameContext::HStoreFrameContext(), and v8::internal::HStringCompareAndBranch::HStringCompareAndBranch().
|
inline |
Definition at line 614 of file hydrogen-instructions.h.
Referenced by v8::internal::HGraphBuilder::BuildNumberToString(), and v8::internal::HGraphBuilder::BuildUncheckedMonomorphicElementAccess().
|
inline |
Definition at line 710 of file hydrogen-instructions.h.
References v8::internal::EnumSet< E, T >::Add(), AllSideEffectsFlagSet(), and changes_flags_.
Referenced by v8::internal::HArithmeticBinaryOperation::HArithmeticBinaryOperation(), v8::internal::HBitwiseBinaryOperation::HBitwiseBinaryOperation(), v8::internal::HBitwiseBinaryOperation::RepresentationChanged(), and v8::internal::HArithmeticBinaryOperation::RepresentationChanged().
void v8::internal::HValue::SetBlock | ( | HBasicBlock * | block | ) |
Definition at line 522 of file hydrogen-instructions.cc.
References block(), block_, DCHECK, id_, kNoNumber, and NULL.
Referenced by v8::internal::HInstruction::InitializeAsFirst(), v8::internal::HInstruction::InsertAfter(), and v8::internal::HInstruction::InsertBefore().
|
inline |
Definition at line 700 of file hydrogen-instructions.h.
References v8::internal::EnumSet< E, T >::Add(), and changes_flags_.
Referenced by v8::internal::HStoreFrameContext::HStoreFrameContext(), v8::internal::HStringCompareAndBranch::HStringCompareAndBranch(), v8::internal::HBitwiseBinaryOperation::RepresentationChanged(), and v8::internal::HArithmeticBinaryOperation::RepresentationChanged().
|
inline |
Definition at line 701 of file hydrogen-instructions.h.
References v8::internal::EnumSet< E, T >::Add(), and depends_on_flags_.
Referenced by v8::internal::HInstruction::HInstruction().
|
inline |
Definition at line 683 of file hydrogen-instructions.h.
References flags_.
Referenced by v8::internal::HGraphBuilder::AddInstruction(), v8::internal::HGraphBuilder::BuildBinaryOperation(), v8::internal::HGraphBuilder::BuildCloneShallowArrayNonEmpty(), v8::internal::HOptimizedGraphBuilder::BuildEmitFixedDoubleArray(), v8::internal::HOptimizedGraphBuilder::BuildIncrement(), CopyFlag(), v8::internal::HOptimizedGraphBuilder::HandlePolymorphicElementAccess(), v8::internal::HArithmeticBinaryOperation::HArithmeticBinaryOperation(), v8::internal::HBitwiseBinaryOperation::HBitwiseBinaryOperation(), v8::internal::HCompareNumericAndBranch::HCompareNumericAndBranch(), Kill(), v8::internal::HDeadCodeEliminationPhase::MarkLive(), v8::internal::HRedundantPhiEliminationPhase::ProcessPhis(), v8::internal::HRangeAnalysisPhase::PropagateMinusZeroChecks(), v8::internal::HBitwiseBinaryOperation::RepresentationChanged(), v8::internal::HArithmeticBinaryOperation::RepresentationChanged(), v8::internal::HCanonicalizePhase::Run(), v8::internal::HComputeChangeUndefinedToNaN::Run(), and v8::internal::HUint32AnalysisPhase::Run().
Definition at line 479 of file hydrogen-instructions.cc.
References InternalSetOperandAt(), and RegisterUse().
Referenced by v8::internal::HEscapeAnalysisPhase::AnalyzeDataFlow(), v8::internal::HAllocateBlockContext::HAllocateBlockContext(), v8::internal::HBinaryCall::HBinaryCall(), v8::internal::HBinaryOperation::HBinaryOperation(), v8::internal::HCompareNumericAndBranch::HCompareNumericAndBranch(), v8::internal::HCompareObjectEqAndBranch::HCompareObjectEqAndBranch(), v8::internal::HStringCompareAndBranch::HStringCompareAndBranch(), v8::internal::HUnaryCall::HUnaryCall(), v8::internal::HUnaryControlInstruction::HUnaryControlInstruction(), v8::internal::HUnaryOperation::HUnaryOperation(), v8::internal::HRepresentationChangesPhase::InsertRepresentationChangeForUse(), v8::internal::HRepresentationChangesPhase::InsertRepresentationChangesForValue(), v8::internal::HEscapeAnalysisPhase::NewStateCopy(), and v8::internal::HRedundantPhiEliminationPhase::ProcessPhis().
|
inline |
Definition at line 722 of file hydrogen-instructions.h.
References AllSideEffectsFlagSet(), ChangesFlags(), and v8::internal::EnumSet< E, T >::Intersect().
v8::internal::HValue::STATIC_ASSERT | ( | ) |
|
inline |
Definition at line 826 of file hydrogen-instructions.h.
References ToStringOrToNumberCanBeObserved().
Referenced by v8::internal::HBitwiseBinaryOperation::RepresentationChanged(), and v8::internal::HArithmeticBinaryOperation::RepresentationChanged().
|
inline |
Definition at line 820 of file hydrogen-instructions.h.
References ToStringOrToNumberCanBeObserved().
|
inlineprotected |
Definition at line 843 of file hydrogen-instructions.h.
References v8::internal::Representation::IsDouble(), v8::internal::Representation::IsSmiOrInteger32(), representation(), and type().
Referenced by ToNumberCanBeObserved(), and ToStringCanBeObserved().
|
inlinevirtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, and v8::internal::FINAL< kOperandKind, kNumCachedOperands >.
Definition at line 810 of file hydrogen-instructions.h.
References NULL, RedefinedOperand(), and TryDecompose().
Referenced by TryDecompose().
|
inline |
Definition at line 613 of file hydrogen-instructions.h.
References type_.
Referenced by v8::internal::HGraphBuilder::BuildCheckHeapObject(), v8::internal::HGraphBuilder::BuildCheckString(), v8::internal::HGraphBuilder::BuildUncheckedMonomorphicElementAccess(), v8::internal::HGraphBuilder::BuildWrapReceiver(), v8::internal::FINAL< kOperandKind, kNumCachedOperands >::CanBeReplacedWith(), v8::internal::HOptimizedGraphBuilder::HandlePolymorphicCallNamed(), v8::internal::FINAL< kOperandKind, kNumCachedOperands >::HChange(), InferRange(), KnownOptimalRepresentation(), v8::internal::operator<<(), v8::internal::StoringValueNeedsWriteBarrier(), ToStringOrToNumberCanBeObserved(), and UpdateInferredType().
bool v8::internal::HValue::UpdateInferredType | ( | ) |
Definition at line 569 of file hydrogen-instructions.cc.
References CalculateInferredType(), type(), and type_.
Referenced by v8::internal::HInferTypesPhase::InferTypes().
|
protectedvirtual |
Reimplemented in v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::FINAL< kOperandKind, kNumCachedOperands >, v8::internal::HBitwiseBinaryOperation, and v8::internal::HBinaryOperation.
Definition at line 105 of file hydrogen-instructions.cc.
References AddDependantsToWorklist(), ChangeRepresentation(), CheckFlag(), v8::internal::Representation::is_more_general_than(), v8::internal::Representation::IsTagged(), kCannotBeTagged, Mnemonic(), v8::internal::Representation::Mnemonic(), v8::internal::PrintF(), and representation().
Referenced by InferRepresentation(), and v8::internal::HBinaryOperation::UpdateRepresentation().
int v8::internal::HValue::UseCount | ( | ) | const |
Definition at line 377 of file hydrogen-instructions.cc.
References uses().
|
inline |
Definition at line 584 of file hydrogen-instructions.h.
References use_list_.
Referenced by AddDependantsToWorklist(), CheckUsesForFlag(), HasAtLeastOneUseWithFlagAndNoneWithout(), v8::internal::HEscapeAnalysisPhase::HasNoEscapingUses(), v8::internal::HInferTypesPhase::InferTypes(), v8::internal::HRepresentationChangesPhase::InsertRepresentationChangesForValue(), RepresentationFromUses(), and UseCount().
Definition at line 542 of file hydrogen-instructions.cc.
|
protected |
Definition at line 909 of file hydrogen-instructions.h.
Referenced by block(), clear_block(), and SetBlock().
|
protected |
Definition at line 923 of file hydrogen-instructions.h.
Referenced by ChangesFlags(), CheckChangesFlag(), ClearAllSideEffects(), ClearChangesFlag(), HasObservableSideEffects(), HasSideEffects(), SetAllSideEffects(), and SetChangesFlag().
|
protected |
Definition at line 924 of file hydrogen-instructions.h.
Referenced by CheckDependsOnFlag(), ClearDependsOnFlag(), DependsOnFlags(), and SetDependsOnFlag().
|
protected |
Definition at line 922 of file hydrogen-instructions.h.
Referenced by CheckFlag(), ClearFlag(), flags(), and SetFlag().
|
protected |
Definition at line 913 of file hydrogen-instructions.h.
Referenced by id(), set_id(), and SetBlock().
|
static |
Definition at line 475 of file hydrogen-instructions.h.
Referenced by SetBlock().
|
static |
Definition at line 627 of file hydrogen-instructions.h.
Referenced by ActualValue(), IsInformativeDefinition(), RedefinedOperand(), and RedefinedOperandIndex().
|
protected |
Definition at line 918 of file hydrogen-instructions.h.
Referenced by AddNewRange(), ComputeInitialRange(), HasRange(), range(), and RemoveLastAddedRange().
|
protected |
Definition at line 915 of file hydrogen-instructions.h.
Referenced by ChangeRepresentation(), representation(), and set_representation().
|
protected |
Definition at line 916 of file hydrogen-instructions.h.
Referenced by Equals(), set_type(), type(), and UpdateInferredType().
|
protected |
Definition at line 917 of file hydrogen-instructions.h.
Referenced by HasMultipleUses(), HasNoUses(), HasOneUse(), Kill(), RegisterUse(), RemoveUse(), ReplaceAllUsesWith(), and uses().