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

#include <hydrogen-instructions.h>

Inheritance diagram for HControlInstruction:
Collaboration diagram for HControlInstruction:

Public Member Functions

virtual HBasicBlockSuccessorAt (int i)=0
 
virtual int SuccessorCount ()=0
 
virtual void SetSuccessorAt (int i, HBasicBlock *block)=0
 
virtual void PrintDataTo (StringStream *stream) V8_OVERRIDE
 
virtual bool KnownSuccessorBlock (HBasicBlock **block)
 
HBasicBlockFirstSuccessor ()
 
HBasicBlockSecondSuccessor ()
 
void Not ()
 
- Public Member Functions inherited from HInstruction
HInstructionnext () const
 
HInstructionprevious () const
 
virtual void PrintTo (StringStream *stream) V8_OVERRIDE
 
bool IsLinked () const
 
void Unlink ()
 
void InsertBefore (HInstruction *next)
 
template<class T >
TPrepend (T *instr)
 
void InsertAfter (HInstruction *previous)
 
template<class T >
TAppend (T *instr)
 
virtual HSourcePosition position () const V8_OVERRIDE
 
bool has_position () const
 
void set_position (HSourcePosition position)
 
virtual HSourcePosition operand_position (int index) const V8_OVERRIDE
 
void set_operand_position (Zone *zone, int index, HSourcePosition pos)
 
bool CanTruncateToInt32 () const
 
virtual LInstructionCompileToLithium (LChunkBuilder *builder)=0
 
bool CanDeoptimize ()
 
virtual bool HasStackCheck ()
 
- Public Member Functions inherited from HValue
 STATIC_ASSERT (kLastFlag< kBitsPerInt)
 
virtual Opcode opcode () const =0
 
bool IsPhi () const
 
 HValue (HType type=HType::Tagged())
 
virtual ~HValue ()
 
HBasicBlock * block () const
 
void SetBlock (HBasicBlock *block)
 
Isolateisolate () const
 
int id () const
 
void set_id (int id)
 
HUseIterator uses () const
 
virtual bool EmitAtUses ()
 
Representation representation () const
 
void ChangeRepresentation (Representation r)
 
virtual void AssumeRepresentation (Representation r)
 
virtual Representation KnownOptimalRepresentation ()
 
HType type () const
 
void set_type (HType new_type)
 
bool IsHeapObject ()
 
virtual int RedefinedOperandIndex ()
 
bool IsInformativeDefinition ()
 
HValueRedefinedOperand ()
 
bool CanReplaceWithDummyUses ()
 
virtual int argument_delta () const
 
virtual bool IsPurelyInformativeDefinition ()
 
HValueActualValue ()
 
bool IsInteger32Constant ()
 
int32_t GetInteger32Constant ()
 
bool EqualsInteger32Constant (int32_t value)
 
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
 
void CopyFlag (Flag f, HValue *other)
 
bool CheckUsesForFlag (Flag f) const
 
bool CheckUsesForFlag (Flag f, HValue **value) const
 
bool HasAtLeastOneUseWithFlagAndNoneWithout (Flag f) const
 
GVNFlagSet ChangesFlags () const
 
GVNFlagSet DependsOnFlags () const
 
void SetChangesFlag (GVNFlag f)
 
void SetDependsOnFlag (GVNFlag f)
 
void ClearChangesFlag (GVNFlag f)
 
void ClearDependsOnFlag (GVNFlag f)
 
bool CheckChangesFlag (GVNFlag f) const
 
bool CheckDependsOnFlag (GVNFlag f) const
 
void SetAllSideEffects ()
 
void ClearAllSideEffects ()
 
bool HasSideEffects () const
 
bool HasObservableSideEffects () const
 
GVNFlagSet SideEffectFlags () const
 
GVNFlagSet ObservableChangesFlags () const
 
Range * range () const
 
bool HasRange () const
 
void AddNewRange (Range *r, Zone *zone)
 
void RemoveLastAddedRange ()
 
void ComputeInitialRange (Zone *zone)
 
virtual bool HasEscapingOperandAt (int index)
 
virtual bool HasOutOfBoundsAccess (int size)
 
virtual Representation observed_input_representation (int index)
 
virtual Representation RequiredInputRepresentation (int index)=0
 
virtual void InferRepresentation (HInferRepresentationPhase *h_infer)
 
virtual HValueCanonicalize ()
 
bool Equals (HValue *other)
 
virtual intptr_t Hashcode ()
 
virtual void FinalizeUniqueness ()
 
void PrintNameTo (StringStream *stream)
 
void PrintTypeTo (StringStream *stream)
 
void PrintRangeTo (StringStream *stream)
 
void PrintChangesTo (StringStream *stream)
 
const char * Mnemonic () const
 
bool HasMonomorphicJSObjectType ()
 
virtual Handle< MapGetMonomorphicJSObjectMap ()
 
bool UpdateInferredType ()
 
virtual HType CalculateInferredType ()
 
virtual bool HandleSideEffectDominator (GVNFlag side_effect, HValue *dominator)
 
bool CannotBeEliminated () const
 
virtual bool TryDecompose (DecompositionResult *decomposition)
 
bool ToStringCanBeObserved () const
 
bool ToNumberCanBeObserved () const
 
MinusZeroMode GetMinusZeroMode ()
 
- 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)
 

Additional Inherited Members

- Public Types inherited from HValue
enum  Flag {
  kFlexibleRepresentation, kCannotBeTagged, kUseGVN, kTrackSideEffectDominators,
  kCanOverflow, kBailoutOnMinusZero, kCanBeDivByZero, kLeftCanBeMinInt,
  kLeftCanBeNegative, kLeftCanBePositive, kAllowUndefinedAsNaN, kIsArguments,
  kTruncatingToInt32, kAllUsesTruncatingToInt32, kTruncatingToSmi, kAllUsesTruncatingToSmi,
  kIsDead, kUint32, kHasNoObservableSideEffects, kIsLive,
  kEndsLiveRange = kIsLive, kLastFlag = kIsLive
}
 
enum  Opcode { kPhi }
 
- Static Public Member Functions inherited from HValue
static HValuecast (HValue *value)
 
- Static Public Attributes inherited from HValue
static const int kNoNumber = -1
 
static const int kNoRedefinedOperand = -1
 
- Protected Member Functions inherited from HInstruction
 HInstruction (HType type=HType::Tagged())
 
virtual void DeleteFromGraph () V8_OVERRIDE
 
- Protected Member Functions inherited from HValue
virtual bool DataEquals (HValue *other)
 
virtual Representation RepresentationFromInputs ()
 
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 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 inherited from HValue
static GVNFlagSet AllFlagSet ()
 
static GVNFlagSet AllSideEffectsFlagSet ()
 
static GVNFlagSet AllObservableSideEffectsFlagSet ()
 
- Protected Attributes inherited from HValue
HBasicBlock * block_
 
int id_
 
Representation representation_
 
HType type_
 
HUseListNodeuse_list_
 
Range * range_
 
int flags_
 
GVNFlagSet changes_flags_
 
GVNFlagSet depends_on_flags_
 

Detailed Description

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

Member Function Documentation

void PrintDataTo ( StringStream stream)
virtual

Reimplemented from HInstruction.

Reimplemented in V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, HStringCompareAndBranch, HCompareObjectEqAndBranch, HCompareNumericAndBranch, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, HUnaryControlInstruction, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, V8_FINAL< kOperandKind, kNumCachedOperands >, and V8_FINAL< kOperandKind, kNumCachedOperands >.

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

References StringStream::Add().

Referenced by HUnaryControlInstruction::PrintDataTo(), HCompareNumericAndBranch::PrintDataTo(), HCompareObjectEqAndBranch::PrintDataTo(), and HStringCompareAndBranch::PrintDataTo().


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