v8  3.11.10(node0.8.26)
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, kLastFlag = kIsDead
}
 
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)=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)
 
- 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 530 of file hydrogen-instructions.h.

Member Enumeration Documentation

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

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

enum Opcode
Enumerator
kPhi 

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

Constructor & Destructor Documentation

HValue ( )
inline

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

virtual ~HValue ( )
inlinevirtual

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

Member Function Documentation

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

Definition at line 785 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 559 of file hydrogen-instructions.h.

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

Definition at line 673 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 774 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 562 of file hydrogen-instructions.h.

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

Reimplemented in HConstant.

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

virtual HValue* EnsureAndPropagateNotMinusZero ( BitVector visited)
inlinevirtual

Reimplemented in HDiv, HMod, HMul, HSub, HAdd, HUnaryMathOperation, HChange, and HForceRepresentation.

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

References BitVector::Add(), and v8::internal::NULL.

int flags ( ) const
inline

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

References HValue::flags_.

Referenced by HValue::Equals().

GVNFlagSet gvn_flags ( ) const
inline

Definition at line 670 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 621 of file hydrogen-instructions.h.

Referenced by HPhi::AllOperandsConvertibleToInteger().

bool IsDefinedAfter ( HBasicBlock other) const

Definition at line 274 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 724 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 475 of file hydrogen-instructions.cc.

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

Referenced by HDeoptimize::PrintDataTo(), HUnaryControlInstruction::PrintDataTo(), HCompareMap::PrintDataTo(), HReturn::PrintDataTo(), HUnaryOperation::PrintDataTo(), HUnaryCall::PrintDataTo(), HBinaryCall::PrintDataTo(), HJSArrayLength::PrintDataTo(), HUnaryMathOperation::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 444 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 770 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, 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, 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 606 of file hydrogen-instructions.h.

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

void set_representation ( Representation  r)
inlineprotected

Definition at line 779 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(), 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 663 of file hydrogen-instructions.h.

References HValue::flags_.

Referenced by HPhi::AddInput(), HChange::EnsureAndPropagateNotMinusZero(), HUnaryMathOperation::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(), HMathFloorOfDiv::HMathFloorOfDiv(), HMod::HMod(), HMul::HMul(), HOuterContext::HOuterContext(), HPhi::HPhi(), HPower::HPower(), 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 671 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(), 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 385 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(), 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 755 of file hydrogen-instructions.h.

References UNREACHABLE.

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

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

References HValue::uses().

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

Field Documentation

HBasicBlock* block_
protected

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

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

int id_
protected

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

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

const int kChangesToDependsFlagsLeftShift = 1
static

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

Referenced by HValue::ConvertChangesToDependsFlags().

const int kNoNumber = -1
static

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

Referenced by HValue::SetBlock().


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