v8  3.14.5(node0.10.28)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HValue Class Referenceabstract

#include <hydrogen-instructions.h>

Inheritance diagram for HValue:
Collaboration diagram for HValue:

Public Types

enum  Flag {
  kFlexibleRepresentation, kUseGVN, kTrackSideEffectDominators, kCanOverflow,
  kBailoutOnMinusZero, kCanBeDivByZero, kDeoptimizeOnUndefined, kIsArguments,
  kTruncatingToInt32, kIsDead, kUint32, kLastFlag = kUint32
}
 
enum  Opcode { kPhi }
 

Public Member Functions

 STATIC_ASSERT (kLastFlag< kBitsPerInt)
 
virtual Opcode opcode () const =0
 
bool IsPhi () const
 
 HValue ()
 
virtual ~HValue ()
 
HBasicBlockblock () const
 
void SetBlock (HBasicBlock *block)
 
int LoopWeight () const
 
int id () const
 
void set_id (int id)
 
HUseIterator uses () const
 
virtual bool EmitAtUses ()
 
Representation representation () const
 
void ChangeRepresentation (Representation r)
 
void AssumeRepresentation (Representation r)
 
virtual bool IsConvertibleToInteger () const
 
HType type () const
 
void set_type (HType new_type)
 
virtual HValueEnsureAndPropagateNotMinusZero (BitVector *visited)
 
bool IsDefinedAfter (HBasicBlock *other) const
 
virtual int OperandCount ()=0
 
virtual HValueOperandAt (int index) const =0
 
void SetOperandAt (int index, HValue *value)
 
void DeleteAndReplaceWith (HValue *other)
 
void ReplaceAllUsesWith (HValue *other)
 
bool HasNoUses () const
 
bool HasMultipleUses () const
 
int UseCount () const
 
void Kill ()
 
int flags () const
 
void SetFlag (Flag f)
 
void ClearFlag (Flag f)
 
bool CheckFlag (Flag f) const
 
bool CheckUsesForFlag (Flag f)
 
GVNFlagSet gvn_flags () const
 
void SetGVNFlag (GVNFlag f)
 
void ClearGVNFlag (GVNFlag f)
 
bool CheckGVNFlag (GVNFlag f) const
 
void SetAllSideEffects ()
 
void ClearAllSideEffects ()
 
bool HasSideEffects () const
 
bool HasObservableSideEffects () const
 
GVNFlagSet DependsOnFlags () const
 
GVNFlagSet SideEffectFlags () const
 
GVNFlagSet ChangesFlags () const
 
GVNFlagSet ObservableChangesFlags () const
 
Rangerange () const
 
bool HasRange () const
 
void AddNewRange (Range *r, Zone *zone)
 
void RemoveLastAddedRange ()
 
void ComputeInitialRange (Zone *zone)
 
virtual Representation RequiredInputRepresentation (int index)=0
 
virtual Representation InferredRepresentation ()
 
virtual Representation ObservedInputRepresentation (int index)
 
virtual HValueCanonicalize ()
 
bool Equals (HValue *other)
 
virtual intptr_t Hashcode ()
 
virtual void PrintTo (StringStream *stream)=0
 
void PrintNameTo (StringStream *stream)
 
void PrintTypeTo (StringStream *stream)
 
void PrintRangeTo (StringStream *stream)
 
void PrintChangesTo (StringStream *stream)
 
const char * Mnemonic () const
 
bool UpdateInferredType ()
 
virtual HType CalculateInferredType ()
 
virtual void SetSideEffectDominator (GVNFlag side_effect, HValue *dominator)
 
bool IsDead () const
 
- Public Member Functions inherited from ZoneObject
 INLINE (void *operator new(size_t size, Zone *zone))
 
void operator delete (void *, size_t)
 
void operator delete (void *pointer, Zone *zone)
 

Static Public Member Functions

static GVNFlag ChangesFlagFromInt (int x)
 
static GVNFlag DependsOnFlagFromInt (int x)
 
static GVNFlagSet ConvertChangesToDependsFlags (GVNFlagSet flags)
 
static HValuecast (HValue *value)
 

Static Public Attributes

static const int kNoNumber = -1
 
static const int kChangesToDependsFlagsLeftShift = 1
 

Protected Member Functions

virtual bool DataEquals (HValue *other)
 
virtual void RepresentationChanged (Representation to)
 
virtual RangeInferRange (Zone *zone)
 
virtual void DeleteFromGraph ()=0
 
virtual void InternalSetOperandAt (int index, HValue *value)=0
 
void clear_block ()
 
void set_representation (Representation r)
 
HUseListNodeRemoveUse (HValue *value, int index)
 
void RegisterUse (int index, HValue *new_value)
 

Static Protected Member Functions

static GVNFlagSet AllDependsOnFlagSet ()
 
static GVNFlagSet AllChangesFlagSet ()
 
static GVNFlagSet AllSideEffectsFlagSet ()
 
static GVNFlagSet AllObservableSideEffectsFlagSet ()
 

Protected Attributes

HBasicBlockblock_
 
int id_
 
Representation representation_
 
HType type_
 
HUseListNodeuse_list_
 
Rangerange_
 
int flags_
 
GVNFlagSet gvn_flags_
 

Detailed Description

Definition at line 545 of file hydrogen-instructions.h.

Member Enumeration Documentation

enum Flag
Enumerator
kFlexibleRepresentation 
kUseGVN 
kTrackSideEffectDominators 
kCanOverflow 
kBailoutOnMinusZero 
kCanBeDivByZero 
kDeoptimizeOnUndefined 
kIsArguments 
kTruncatingToInt32 
kIsDead 
kUint32 
kLastFlag 

Definition at line 549 of file hydrogen-instructions.h.

enum Opcode
Enumerator
kPhi 

Definition at line 593 of file hydrogen-instructions.h.

Constructor & Destructor Documentation

HValue ( )
inline

Definition at line 615 of file hydrogen-instructions.h.

virtual ~HValue ( )
inlinevirtual

Definition at line 621 of file hydrogen-instructions.h.

Member Function Documentation

void AddNewRange ( Range r,
Zone zone 
)
static GVNFlagSet AllDependsOnFlagSet ( )
inlinestaticprotected

Definition at line 811 of file hydrogen-instructions.h.

References ADD_FLAG, GVN_TRACKED_FLAG_LIST, and GVN_UNTRACKED_FLAG_LIST.

Referenced by HValue::DependsOnFlags().

static GVNFlagSet AllObservableSideEffectsFlagSet ( )
inlinestaticprotected
static GVNFlag ChangesFlagFromInt ( int  x)
inlinestatic

Definition at line 581 of file hydrogen-instructions.h.

GVNFlagSet ChangesFlags ( ) const
inline
bool CheckGVNFlag ( GVNFlag  f) const
inline

Definition at line 695 of file hydrogen-instructions.h.

References EnumSet< E, T >::Contains(), and HValue::gvn_flags_.

bool CheckUsesForFlag ( Flag  f)
void clear_block ( )
inlineprotected

Definition at line 800 of file hydrogen-instructions.h.

References ASSERT, HValue::block_, and v8::internal::NULL.

Referenced by HInstruction::Unlink().

void ClearGVNFlag ( GVNFlag  f)
inline
void ComputeInitialRange ( Zone zone)
static GVNFlagSet ConvertChangesToDependsFlags ( GVNFlagSet  flags)
inlinestatic
virtual void DeleteFromGraph ( )
protectedpure virtual

Implemented in HPhi, and HInstruction.

Referenced by HValue::DeleteAndReplaceWith().

static GVNFlag DependsOnFlagFromInt ( int  x)
inlinestatic

Definition at line 584 of file hydrogen-instructions.h.

GVNFlagSet DependsOnFlags ( ) const
inline
virtual bool EmitAtUses ( )
inlinevirtual

Reimplemented in HConstant.

Definition at line 632 of file hydrogen-instructions.h.

virtual HValue* EnsureAndPropagateNotMinusZero ( BitVector visited)
inlinevirtual
int flags ( ) const
inline

Definition at line 684 of file hydrogen-instructions.h.

References HValue::flags_.

Referenced by HValue::Equals().

GVNFlagSet gvn_flags ( ) const
inline

Definition at line 692 of file hydrogen-instructions.h.

References HValue::gvn_flags_.

Referenced by HValueMap::Add(), and HValueMap::Kill().

intptr_t Hashcode ( )
virtual
bool HasMultipleUses ( ) const
inline
bool HasRange ( ) const
inline
bool HasSideEffects ( ) const
inline
virtual Representation InferredRepresentation ( )
inlinevirtual
virtual bool IsConvertibleToInteger ( ) const
inlinevirtual

Reimplemented in HConstant, and HPhi.

Definition at line 643 of file hydrogen-instructions.h.

Referenced by HPhi::AllOperandsConvertibleToInteger().

bool IsDead ( ) const
inline
bool IsDefinedAfter ( HBasicBlock other) const

Definition at line 288 of file hydrogen-instructions.cc.

References HValue::block(), and HBasicBlock::block_id().

int LoopWeight ( ) const

Definition at line 70 of file hydrogen-instructions.cc.

References ARRAY_SIZE, HValue::block(), and v8::internal::Min().

Referenced by HPhi::InitRealUses().

const char * Mnemonic ( ) const
virtual Representation ObservedInputRepresentation ( int  index)
inlinevirtual

Reimplemented in HBitwiseBinaryOperation.

Definition at line 746 of file hydrogen-instructions.h.

References HValue::RequiredInputRepresentation().

Referenced by HPhi::InitRealUses().

virtual Opcode opcode ( ) const
pure virtual
void PrintNameTo ( StringStream stream)

Definition at line 489 of file hydrogen-instructions.cc.

References StringStream::Add(), HValue::id(), Representation::Mnemonic(), and HValue::representation_.

Referenced by HGraph::DeadCodeElimination(), HDeoptimize::PrintDataTo(), HUnaryControlInstruction::PrintDataTo(), HCompareMap::PrintDataTo(), HReturn::PrintDataTo(), HUnaryOperation::PrintDataTo(), HUnaryCall::PrintDataTo(), HBinaryCall::PrintDataTo(), HJSArrayLength::PrintDataTo(), HUnaryMathOperation::PrintDataTo(), HLoadElements::PrintDataTo(), HCheckMaps::PrintDataTo(), HCheckFunction::PrintDataTo(), HBinaryOperation::PrintDataTo(), HAccessArgumentsAt::PrintDataTo(), HBoundsCheck::PrintDataTo(), HCompareIDAndBranch::PrintDataTo(), HCompareObjectEqAndBranch::PrintDataTo(), HIsNilAndBranch::PrintDataTo(), HHasInstanceTypeAndBranch::PrintDataTo(), HClassOfTestAndBranch::PrintDataTo(), HTypeofIsAndBranch::PrintDataTo(), HInstanceOf::PrintDataTo(), HStoreGlobalCell::PrintDataTo(), HStoreGlobalGeneric::PrintDataTo(), HLoadContextSlot::PrintDataTo(), HStoreContextSlot::PrintDataTo(), HLoadNamedField::PrintDataTo(), HLoadNamedFieldPolymorphic::PrintDataTo(), HLoadNamedGeneric::PrintDataTo(), HLoadKeyedFastElement::PrintDataTo(), HLoadKeyedFastDoubleElement::PrintDataTo(), HLoadKeyedSpecializedArrayElement::PrintDataTo(), HLoadKeyedGeneric::PrintDataTo(), HStoreNamedField::PrintDataTo(), HStoreNamedGeneric::PrintDataTo(), HStoreKeyedFastElement::PrintDataTo(), HStoreKeyedFastDoubleElement::PrintDataTo(), HStoreKeyedSpecializedArrayElement::PrintDataTo(), HStoreKeyedGeneric::PrintDataTo(), HTransitionElementsKind::PrintDataTo(), HTypeof::PrintDataTo(), HIn::PrintDataTo(), HCheckMapValue::PrintDataTo(), HForInPrepareMap::PrintDataTo(), HForInCacheArray::PrintDataTo(), HLoadFieldByIndex::PrintDataTo(), HEnvironment::PrintTo(), and HPhi::PrintTo().

void PrintRangeTo ( StringStream stream)

Definition at line 458 of file hydrogen-instructions.cc.

References StringStream::Add(), v8::internal::NULL, and HValue::range().

Referenced by HInstruction::PrintTo().

virtual void PrintTo ( StringStream stream)
pure virtual

Implemented in HPhi, and HInstruction.

void PrintTypeTo ( StringStream stream)
void RegisterUse ( int  index,
HValue new_value 
)
protected
void RemoveLastAddedRange ( )
virtual void RepresentationChanged ( Representation  to)
inlineprotectedvirtual

Reimplemented in HArithmeticBinaryOperation, and HBitwiseBinaryOperation.

Definition at line 796 of file hydrogen-instructions.h.

Referenced by HValue::ChangeRepresentation().

virtual Representation RequiredInputRepresentation ( int  index)
pure virtual

Implemented in HLoadFieldByIndex, HForInCacheArray, HForInPrepareMap, HCheckMapValue, HIn, HDeleteProperty, HDateField, HValueOf, HToFastProperties, HTypeof, HFunctionLiteral, HRegExpLiteral, HObjectLiteral, HArrayLiteral, HFastLiteral, HAllocateObject, HStringLength, HStringCharFromCode, HStringCharCodeAt, HStringAdd, HTransitionElementsKind, HStoreKeyedGeneric, HStoreKeyedSpecializedArrayElement, HStoreKeyedFastDoubleElement, HStoreKeyedFastElement, HStoreNamedGeneric, HStoreNamedField, HLoadKeyedGeneric, HLoadKeyedSpecializedArrayElement, HLoadKeyedFastDoubleElement, HLoadKeyedFastElement, HLoadFunctionPrototype, HLoadNamedGeneric, HLoadNamedFieldPolymorphic, HLoadNamedField, HStoreContextSlot, HLoadContextSlot, HStoreGlobalGeneric, HStoreGlobalCell, HLoadGlobalGeneric, HLoadGlobalCell, HUnknownOSRValue, HCallStub, HParameter, HOsrEntry, HMathMinMax, HRandom, HPower, HInstanceOfKnownGlobal, HInstanceOf, HTypeofIsAndBranch, HClassOfTestAndBranch, HGetCachedArrayIndex, HHasCachedArrayIndexAndBranch, HHasInstanceTypeAndBranch, HIsConstructCallAndBranch, HStringCompareAndBranch, HIsUndetectableAndBranch, HIsSmiAndBranch, HIsStringAndBranch, HIsObjectAndBranch, HIsNilAndBranch, HCompareConstantEqAndBranch, HCompareObjectEqAndBranch, HCompareIDAndBranch, HCompareGeneric, HArithmeticBinaryOperation, HMathFloorOfDiv, HBitwiseBinaryOperation, HBoundsCheck, HAccessArgumentsAt, HArgumentsLength, HArgumentsElements, HApplyArguments, HWrapReceiver, HConstant, HArgumentsObject, HPhi, HCheckSmi, HCheckPrototypeMaps, HCheckNonSmi, HCheckInstanceType, HCheckFunction, HCheckMaps, HLoadExternalArrayPointer, HLoadElements, HUnaryMathOperation, HBitNot, HElementsKind, HMapEnumLength, HFixedArrayBaseLength, HJSArrayLength, HCallRuntime, HCallNew, HCallKnownGlobal, HCallGlobal, HCallFunction, HCallNamed, HCallKeyed, HCallConstantFunction, HInvokeFunction, HBinaryCall, HUnaryCall, HGlobalReceiver, HGlobalObject, HDeclareGlobals, HOuterContext, HContext, HThisFunction, HPushArgument, HLeaveInlined, HEnterInlined, HStackCheck, HSimulate, HClampToUint8, HChange, HForceRepresentation, HUseConst, HThrow, HAbnormalExit, HReturn, HCompareMap, HBranch, HGoto, HDeoptimize, HSoftDeoptimize, and HBlockEntry.

Referenced by HValue::ObservedInputRepresentation().

void set_id ( int  id)
inline

Definition at line 628 of file hydrogen-instructions.h.

References HValue::id(), and HValue::id_.

void set_representation ( Representation  r)
inlineprotected

Definition at line 805 of file hydrogen-instructions.h.

References ASSERT, Representation::IsNone(), and HValue::representation_.

Referenced by HAccessArgumentsAt::HAccessArgumentsAt(), HAllocateObject::HAllocateObject(), HApplyArguments::HApplyArguments(), HArgumentsElements::HArgumentsElements(), HArgumentsLength::HArgumentsLength(), HArgumentsObject::HArgumentsObject(), HArithmeticBinaryOperation::HArithmeticBinaryOperation(), HBitNot::HBitNot(), HBitwiseBinaryOperation::HBitwiseBinaryOperation(), HBoundsCheck::HBoundsCheck(), HCall< 2 >::HCall(), HChange::HChange(), HCheckFunction::HCheckFunction(), HCheckMaps::HCheckMaps(), HCheckMapValue::HCheckMapValue(), HCheckNonSmi::HCheckNonSmi(), HCheckSmi::HCheckSmi(), HClampToUint8::HClampToUint8(), HCompareGeneric::HCompareGeneric(), HConstant::HConstant(), HContext::HContext(), HDateField::HDateField(), HDeclareGlobals::HDeclareGlobals(), HDeleteProperty::HDeleteProperty(), HElementsKind::HElementsKind(), HFixedArrayBaseLength::HFixedArrayBaseLength(), HForceRepresentation::HForceRepresentation(), HForInCacheArray::HForInCacheArray(), HForInPrepareMap::HForInPrepareMap(), HFunctionLiteral::HFunctionLiteral(), HGetCachedArrayIndex::HGetCachedArrayIndex(), HGlobalObject::HGlobalObject(), HGlobalReceiver::HGlobalReceiver(), HIn::HIn(), HInstanceOf::HInstanceOf(), HInstanceOfKnownGlobal::HInstanceOfKnownGlobal(), HJSArrayLength::HJSArrayLength(), HLoadContextSlot::HLoadContextSlot(), HLoadElements::HLoadElements(), HLoadExternalArrayPointer::HLoadExternalArrayPointer(), HLoadFieldByIndex::HLoadFieldByIndex(), HLoadFunctionPrototype::HLoadFunctionPrototype(), HLoadGlobalCell::HLoadGlobalCell(), HLoadGlobalGeneric::HLoadGlobalGeneric(), HLoadKeyedFastDoubleElement::HLoadKeyedFastDoubleElement(), HLoadKeyedFastElement::HLoadKeyedFastElement(), HLoadKeyedGeneric::HLoadKeyedGeneric(), HLoadKeyedSpecializedArrayElement::HLoadKeyedSpecializedArrayElement(), HLoadNamedField::HLoadNamedField(), HLoadNamedFieldPolymorphic::HLoadNamedFieldPolymorphic(), HLoadNamedGeneric::HLoadNamedGeneric(), HMapEnumLength::HMapEnumLength(), HMaterializedLiteral< 1 >::HMaterializedLiteral(), HMathFloorOfDiv::HMathFloorOfDiv(), HOuterContext::HOuterContext(), HParameter::HParameter(), HPhi::HPhi(), HPower::HPower(), HPushArgument::HPushArgument(), HRandom::HRandom(), HStoreGlobalGeneric::HStoreGlobalGeneric(), HStringAdd::HStringAdd(), HStringCharCodeAt::HStringCharCodeAt(), HStringCharFromCode::HStringCharFromCode(), HStringCompareAndBranch::HStringCompareAndBranch(), HStringLength::HStringLength(), HThisFunction::HThisFunction(), HToFastProperties::HToFastProperties(), HTransitionElementsKind::HTransitionElementsKind(), HTypeof::HTypeof(), HUnaryMathOperation::HUnaryMathOperation(), HUnknownOSRValue::HUnknownOSRValue(), HValueOf::HValueOf(), and HWrapReceiver::HWrapReceiver().

void SetFlag ( Flag  f)
inline

Definition at line 685 of file hydrogen-instructions.h.

References HValue::flags_.

Referenced by HPhi::AddInput(), HChange::EnsureAndPropagateNotMinusZero(), HUnaryMathOperation::EnsureAndPropagateNotMinusZero(), HMathFloorOfDiv::EnsureAndPropagateNotMinusZero(), HMul::EnsureAndPropagateNotMinusZero(), HMod::EnsureAndPropagateNotMinusZero(), HDiv::EnsureAndPropagateNotMinusZero(), HAccessArgumentsAt::HAccessArgumentsAt(), HAdd::HAdd(), HArgumentsElements::HArgumentsElements(), HArgumentsLength::HArgumentsLength(), HArgumentsObject::HArgumentsObject(), HArithmeticBinaryOperation::HArithmeticBinaryOperation(), HBitNot::HBitNot(), HBitwiseBinaryOperation::HBitwiseBinaryOperation(), HBoundsCheck::HBoundsCheck(), HChange::HChange(), HCheckFunction::HCheckFunction(), HCheckMaps::HCheckMaps(), HCheckMapValue::HCheckMapValue(), HCheckNonSmi::HCheckNonSmi(), HCheckPrototypeMaps::HCheckPrototypeMaps(), HCheckSmi::HCheckSmi(), HClampToUint8::HClampToUint8(), HConstant::HConstant(), HContext::HContext(), HDiv::HDiv(), HElementsKind::HElementsKind(), HFixedArrayBaseLength::HFixedArrayBaseLength(), HGetCachedArrayIndex::HGetCachedArrayIndex(), HGlobalObject::HGlobalObject(), HGlobalReceiver::HGlobalReceiver(), HJSArrayLength::HJSArrayLength(), HLoadContextSlot::HLoadContextSlot(), HLoadElements::HLoadElements(), HLoadExternalArrayPointer::HLoadExternalArrayPointer(), HLoadFunctionPrototype::HLoadFunctionPrototype(), HLoadGlobalCell::HLoadGlobalCell(), HLoadKeyedFastDoubleElement::HLoadKeyedFastDoubleElement(), HLoadKeyedFastElement::HLoadKeyedFastElement(), HLoadKeyedSpecializedArrayElement::HLoadKeyedSpecializedArrayElement(), HLoadNamedField::HLoadNamedField(), HLoadNamedFieldPolymorphic::HLoadNamedFieldPolymorphic(), HMapEnumLength::HMapEnumLength(), HMathFloorOfDiv::HMathFloorOfDiv(), HMod::HMod(), HMul::HMul(), HOuterContext::HOuterContext(), HPhi::HPhi(), HPower::HPower(), HStoreKeyedFastDoubleElement::HStoreKeyedFastDoubleElement(), HStoreNamedField::HStoreNamedField(), HStringAdd::HStringAdd(), HStringCharCodeAt::HStringCharCodeAt(), HStringCharFromCode::HStringCharFromCode(), HStringLength::HStringLength(), HSub::HSub(), HThisFunction::HThisFunction(), HTransitionElementsKind::HTransitionElementsKind(), HUnaryMathOperation::HUnaryMathOperation(), HDiv::InferRange(), HGraph::InsertRepresentationChanges(), HValue::Kill(), HBitwiseBinaryOperation::RepresentationChanged(), HArithmeticBinaryOperation::RepresentationChanged(), and HCompareIDAndBranch::SetInputRepresentation().

void SetGVNFlag ( GVNFlag  f)
inline

Definition at line 693 of file hydrogen-instructions.h.

References EnumSet< E, T >::Add(), and HValue::gvn_flags_.

Referenced by HAllocateObject::HAllocateObject(), HArrayLiteral::HArrayLiteral(), HChange::HChange(), HCheckMaps::HCheckMaps(), HCheckMapValue::HCheckMapValue(), HCheckPrototypeMaps::HCheckPrototypeMaps(), HElementsKind::HElementsKind(), HFastLiteral::HFastLiteral(), HFixedArrayBaseLength::HFixedArrayBaseLength(), HFunctionLiteral::HFunctionLiteral(), HInstruction::HInstruction(), HJSArrayLength::HJSArrayLength(), HLoadContextSlot::HLoadContextSlot(), HLoadElements::HLoadElements(), HLoadFunctionPrototype::HLoadFunctionPrototype(), HLoadGlobalCell::HLoadGlobalCell(), HLoadKeyedFastDoubleElement::HLoadKeyedFastDoubleElement(), HLoadKeyedFastElement::HLoadKeyedFastElement(), HLoadKeyedSpecializedArrayElement::HLoadKeyedSpecializedArrayElement(), HLoadNamedField::HLoadNamedField(), HLoadNamedFieldPolymorphic::HLoadNamedFieldPolymorphic(), HMapEnumLength::HMapEnumLength(), HObjectLiteral::HObjectLiteral(), HOsrEntry::HOsrEntry(), HPower::HPower(), HStackCheck::HStackCheck(), HStoreContextSlot::HStoreContextSlot(), HStoreGlobalCell::HStoreGlobalCell(), HStoreKeyedFastDoubleElement::HStoreKeyedFastDoubleElement(), HStoreKeyedFastElement::HStoreKeyedFastElement(), HStoreKeyedSpecializedArrayElement::HStoreKeyedSpecializedArrayElement(), HStoreNamedField::HStoreNamedField(), HStringAdd::HStringAdd(), HStringCharCodeAt::HStringCharCodeAt(), HStringCharFromCode::HStringCharFromCode(), HStringLength::HStringLength(), HTransitionElementsKind::HTransitionElementsKind(), and HUnaryMathOperation::HUnaryMathOperation().

void SetOperandAt ( int  index,
HValue value 
)

Definition at line 399 of file hydrogen-instructions.cc.

References HValue::InternalSetOperandAt(), and HValue::RegisterUse().

Referenced by HDeoptimize::AddEnvironmentValue(), HPhi::AddInput(), BoundsCheckBbData::CoverCheck(), HGraph::EliminateRedundantPhis(), HAccessArgumentsAt::HAccessArgumentsAt(), HAllocateObject::HAllocateObject(), HApplyArguments::HApplyArguments(), HArrayLiteral::HArrayLiteral(), HBinaryCall::HBinaryCall(), HBinaryOperation::HBinaryOperation(), HBoundsCheck::HBoundsCheck(), HCallRuntime::HCallRuntime(), HCheckMaps::HCheckMaps(), HCheckMapValue::HCheckMapValue(), HCompareIDAndBranch::HCompareIDAndBranch(), HCompareObjectEqAndBranch::HCompareObjectEqAndBranch(), HFastLiteral::HFastLiteral(), HForceRepresentation::HForceRepresentation(), HForInCacheArray::HForInCacheArray(), HForInPrepareMap::HForInPrepareMap(), HFunctionLiteral::HFunctionLiteral(), HIn::HIn(), HInstanceOfKnownGlobal::HInstanceOfKnownGlobal(), HJSArrayLength::HJSArrayLength(), HLoadElements::HLoadElements(), HLoadFieldByIndex::HLoadFieldByIndex(), HLoadGlobalGeneric::HLoadGlobalGeneric(), HLoadKeyedFastDoubleElement::HLoadKeyedFastDoubleElement(), HLoadKeyedFastElement::HLoadKeyedFastElement(), HLoadKeyedGeneric::HLoadKeyedGeneric(), HLoadKeyedSpecializedArrayElement::HLoadKeyedSpecializedArrayElement(), HLoadNamedFieldPolymorphic::HLoadNamedFieldPolymorphic(), HLoadNamedGeneric::HLoadNamedGeneric(), HObjectLiteral::HObjectLiteral(), HPower::HPower(), HRandom::HRandom(), HRegExpLiteral::HRegExpLiteral(), HReturn::HReturn(), HStackCheck::HStackCheck(), HStoreContextSlot::HStoreContextSlot(), HStoreGlobalGeneric::HStoreGlobalGeneric(), HStoreKeyedFastDoubleElement::HStoreKeyedFastDoubleElement(), HStoreKeyedFastElement::HStoreKeyedFastElement(), HStoreKeyedGeneric::HStoreKeyedGeneric(), HStoreKeyedSpecializedArrayElement::HStoreKeyedSpecializedArrayElement(), HStoreNamedField::HStoreNamedField(), HStoreNamedGeneric::HStoreNamedGeneric(), HStringCharCodeAt::HStringCharCodeAt(), HStringCharFromCode::HStringCharFromCode(), HStringCompareAndBranch::HStringCompareAndBranch(), HThrow::HThrow(), HTransitionElementsKind::HTransitionElementsKind(), HTypeof::HTypeof(), HUnaryCall::HUnaryCall(), HUnaryControlInstruction::HUnaryControlInstruction(), HUnaryMathOperation::HUnaryMathOperation(), HUnaryOperation::HUnaryOperation(), HWrapReceiver::HWrapReceiver(), HLoadKeyedFastElement::SetKey(), HLoadKeyedFastDoubleElement::SetKey(), HLoadKeyedSpecializedArrayElement::SetKey(), HStoreKeyedFastElement::SetKey(), HStoreKeyedFastDoubleElement::SetKey(), and HStoreKeyedSpecializedArrayElement::SetKey().

virtual void SetSideEffectDominator ( GVNFlag  side_effect,
HValue dominator 
)
inlinevirtual

Reimplemented in HStoreNamedField.

Definition at line 777 of file hydrogen-instructions.h.

References UNREACHABLE.

GVNFlagSet SideEffectFlags ( ) const
inline
STATIC_ASSERT ( )
bool UpdateInferredType ( )
int UseCount ( ) const

Definition at line 325 of file hydrogen-instructions.cc.

References HValue::uses().

Referenced by HUnaryMathOperation::Canonicalize(), and HPhi::PrintTo().

Field Documentation

HBasicBlock* block_
protected

Definition at line 855 of file hydrogen-instructions.h.

Referenced by HValue::block(), HValue::clear_block(), and HValue::SetBlock().

int id_
protected

Definition at line 859 of file hydrogen-instructions.h.

Referenced by HValue::id(), HValue::set_id(), and HValue::SetBlock().

const int kChangesToDependsFlagsLeftShift = 1
static

Definition at line 579 of file hydrogen-instructions.h.

Referenced by HValue::ConvertChangesToDependsFlags().

const int kNoNumber = -1
static

Definition at line 547 of file hydrogen-instructions.h.

Referenced by HValue::SetBlock().


The documentation for this class was generated from the following files: