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
HPhi Class Reference

#include <hydrogen-instructions.h>

Inheritance diagram for HPhi:
Collaboration diagram for HPhi:

Public Member Functions

 HPhi (int merged_index, Zone *zone)
 
virtual Representation InferredRepresentation ()
 
virtual RangeInferRange (Zone *zone)
 
virtual Representation RequiredInputRepresentation (int index)
 
virtual HType CalculateInferredType ()
 
virtual int OperandCount ()
 
virtual HValueOperandAt (int index) const
 
HValueGetRedundantReplacement ()
 
void AddInput (HValue *value)
 
bool HasRealUses ()
 
bool IsReceiver ()
 
int merged_index () const
 
virtual void PrintTo (StringStream *stream)
 
void InitRealUses (int id)
 
void AddNonPhiUsesFrom (HPhi *other)
 
void AddIndirectUsesTo (int *use_count)
 
int tagged_non_phi_uses () const
 
int int32_non_phi_uses () const
 
int double_non_phi_uses () const
 
int tagged_indirect_uses () const
 
int int32_indirect_uses () const
 
int double_indirect_uses () const
 
int phi_id ()
 
bool is_live ()
 
void set_is_live (bool b)
 
virtual Opcode opcode () const
 
virtual bool IsConvertibleToInteger () const
 
void set_is_convertible_to_integer (bool b)
 
bool AllOperandsConvertibleToInteger ()
 
void ResetInteger32Uses ()
 
- Public Member Functions inherited from HValue
 STATIC_ASSERT (kLastFlag< kBitsPerInt)
 
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)
 
HType type () const
 
void set_type (HType new_type)
 
virtual HValueEnsureAndPropagateNotMinusZero (BitVector *visited)
 
bool IsDefinedAfter (HBasicBlock *other) const
 
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 ObservedInputRepresentation (int index)
 
virtual HValueCanonicalize ()
 
bool Equals (HValue *other)
 
virtual intptr_t Hashcode ()
 
void PrintNameTo (StringStream *stream)
 
void PrintTypeTo (StringStream *stream)
 
void PrintRangeTo (StringStream *stream)
 
void PrintChangesTo (StringStream *stream)
 
const char * Mnemonic () const
 
bool UpdateInferredType ()
 
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 HPhicast (HValue *value)
 
- Static Public Member Functions inherited from HValue
static GVNFlag ChangesFlagFromInt (int x)
 
static GVNFlag DependsOnFlagFromInt (int x)
 
static GVNFlagSet ConvertChangesToDependsFlags (GVNFlagSet flags)
 
static HValuecast (HValue *value)
 

Protected Member Functions

virtual void DeleteFromGraph ()
 
virtual void InternalSetOperandAt (int index, HValue *value)
 
- Protected Member Functions inherited from HValue
virtual bool DataEquals (HValue *other)
 
virtual void RepresentationChanged (Representation to)
 
void clear_block ()
 
void set_representation (Representation r)
 
HUseListNodeRemoveUse (HValue *value, int index)
 
void RegisterUse (int index, HValue *new_value)
 

Additional Inherited Members

- Public Types inherited from HValue
enum  Flag {
  kFlexibleRepresentation, kUseGVN, kTrackSideEffectDominators, kCanOverflow,
  kBailoutOnMinusZero, kCanBeDivByZero, kDeoptimizeOnUndefined, kIsArguments,
  kTruncatingToInt32, kIsDead, kUint32, kLastFlag = kUint32
}
 
enum  Opcode { kPhi }
 
- Static Public Attributes inherited from HValue
static const int kNoNumber = -1
 
static const int kChangesToDependsFlagsLeftShift = 1
 
- Static Protected Member Functions inherited from HValue
static GVNFlagSet AllDependsOnFlagSet ()
 
static GVNFlagSet AllChangesFlagSet ()
 
static GVNFlagSet AllSideEffectsFlagSet ()
 
static GVNFlagSet AllObservableSideEffectsFlagSet ()
 
- Protected Attributes inherited from HValue
HBasicBlockblock_
 
int id_
 
Representation representation_
 
HType type_
 
HUseListNodeuse_list_
 
Rangerange_
 
int flags_
 
GVNFlagSet gvn_flags_
 

Detailed Description

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

Constructor & Destructor Documentation

Member Function Documentation

void AddIndirectUsesTo ( int *  use_count)

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

References Representation::kNumRepresentations.

HType CalculateInferredType ( )
virtual
void DeleteFromGraph ( )
protectedvirtual

Implements HValue.

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

References ASSERT, HValue::block(), v8::internal::NULL, and HBasicBlock::RemovePhi().

int double_indirect_uses ( ) const
inline

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

References Representation::kDouble.

Referenced by HPhi::PrintTo().

int double_non_phi_uses ( ) const
inline

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

References Representation::kDouble.

Referenced by HPhi::PrintTo().

HValue * GetRedundantReplacement ( )
bool HasRealUses ( )

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

References HValue::uses().

Referenced by HGraph::EliminateUnreachablePhis().

int int32_indirect_uses ( ) const
inline

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

References Representation::kInteger32.

Referenced by HPhi::PrintTo().

int int32_non_phi_uses ( ) const
inline

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

References Representation::kInteger32.

Referenced by HPhi::PrintTo().

virtual void InternalSetOperandAt ( int  index,
HValue value 
)
inlineprotectedvirtual

Implements HValue.

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

References HUnaryControlInstruction::value().

bool is_live ( )
inline
virtual bool IsConvertibleToInteger ( ) const
inlinevirtual

Reimplemented from HValue.

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

Referenced by HPhi::PrintTo().

bool IsReceiver ( )
inline

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

Referenced by HGraph::EliminateUnreachablePhis().

int merged_index ( ) const
inline
virtual Opcode opcode ( ) const
inlinevirtual

Implements HValue.

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

References HValue::kPhi.

int phi_id ( )
inline

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

Referenced by HPhi::InitRealUses().

virtual Representation RequiredInputRepresentation ( int  index)
inlinevirtual

Implements HValue.

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

References HValue::representation().

void ResetInteger32Uses ( )

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

References Representation::kInteger32.

void set_is_convertible_to_integer ( bool  b)
inline

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

void set_is_live ( bool  b)
inline

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

Referenced by HGraph::EliminateUnreachablePhis().

int tagged_indirect_uses ( ) const
inline

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

References Representation::kTagged.

Referenced by HPhi::PrintTo().

int tagged_non_phi_uses ( ) const
inline

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

References Representation::kTagged.

Referenced by HPhi::PrintTo().


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