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

#include <hydrogen-instructions.h>

Inheritance diagram for HBitwise:
Collaboration diagram for HBitwise:

Public Member Functions

 HBitwise (Token::Value op, HValue *context, HValue *left, HValue *right)
 
Token::Value op () const
 
virtual bool IsCommutative () const
 
virtual HValue * Canonicalize ()
 
virtual void PrintDataTo (StringStream *stream)
 
- Public Member Functions inherited from HBitwiseBinaryOperation
 HBitwiseBinaryOperation (HValue *context, HValue *left, HValue *right)
 
virtual Representation RequiredInputRepresentation (int index)
 
virtual void RepresentationChanged (Representation to)
 
virtual HType CalculateInferredType ()
 
virtual Representation ObservedInputRepresentation (int index)
 
void InitializeObservedInputRepresentation (Representation r)
 
- Public Member Functions inherited from HBinaryOperation
 HBinaryOperation (HValue *context, HValue *left, HValue *right)
 
HValue * context ()
 
HValue * left ()
 
HValue * right ()
 
HValue * LeastConstantOperand ()
 
HValue * MostConstantOperand ()
 
- Public Member Functions inherited from HTemplateInstruction< 3 >
int OperandCount ()
 
HValue * OperandAt (int i)
 
- Public Member Functions inherited from HInstruction
HInstruction * next () const
 
HInstruction * previous () const
 
virtual void PrintTo (StringStream *stream)
 
bool IsLinked () const
 
void Unlink ()
 
void InsertBefore (HInstruction *next)
 
void InsertAfter (HInstruction *previous)
 
int position () const
 
bool has_position () const
 
void set_position (int position)
 
bool CanTruncateToInt32 () const
 
virtual LInstruction * CompileToLithium (LChunkBuilder *builder)=0
 
virtual bool IsCall ()
 
- Public Member Functions inherited from HValue
 STATIC_ASSERT (kLastFlag< kBitsPerInt)
 
virtual Opcode opcode () const =0
 
bool IsPhi () const
 
 HValue ()
 
virtual ~HValue ()
 
HBasicBlock * block () 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 HValue * EnsureAndPropagateNotMinusZero (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
 
Range * range () const
 
bool HasRange () const
 
void AddNewRange (Range *r, Zone *zone)
 
void RemoveLastAddedRange ()
 
void ComputeInitialRange (Zone *zone)
 
virtual Representation InferredRepresentation ()
 
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)
 
- 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 HInstruction * NewHBitwise (Zone *zone, Token::Value op, HValue *context, HValue *left, HValue *right)
 
- Static Public Member Functions inherited from HValue
static GVNFlag ChangesFlagFromInt (int x)
 
static GVNFlag DependsOnFlagFromInt (int x)
 
static GVNFlagSet ConvertChangesToDependsFlags (GVNFlagSet flags)
 
static HValue * cast (HValue *value)
 

Protected Member Functions

virtual bool DataEquals (HValue *other)
 
virtual Range * InferRange (Zone *zone)
 
- Protected Member Functions inherited from HTemplateInstruction< 3 >
void InternalSetOperandAt (int i, HValue *value)
 
- Protected Member Functions inherited from HInstruction
 HInstruction ()
 
virtual void DeleteFromGraph ()
 
- Protected Member Functions inherited from HValue
void clear_block ()
 
void set_representation (Representation r)
 
HUseListNode * RemoveUse (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, kLastFlag = kIsDead
}
 
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
HBasicBlock * block_
 
int id_
 
Representation representation_
 
HType type_
 
HUseListNode * use_list_
 
Range * range_
 
int flags_
 
GVNFlagSet gvn_flags_
 

Detailed Description

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

Constructor & Destructor Documentation

HBitwise ( Token::Value  op,
HValue *  context,
HValue *  left,
HValue *  right 
)
inline

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

References ASSERT.

Referenced by HBitwise::NewHBitwise().

Member Function Documentation

virtual bool DataEquals ( HValue *  other)
inlineprotectedvirtual

Reimplemented from HValue.

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

References HValue::cast().

Range * InferRange ( Zone *  zone)
protectedvirtual
virtual bool IsCommutative ( ) const
inlinevirtual

Reimplemented from HBinaryOperation.

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

HInstruction * NewHBitwise ( Zone *  zone,
Token::Value  op,
HValue *  context,
HValue *  left,
HValue *  right 
)
static
Token::Value op ( ) const
inline

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

Referenced by HBitwise::Canonicalize(), and HBitwise::InferRange().

void PrintDataTo ( StringStream *  stream)
virtual

Reimplemented from HBinaryOperation.

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

References StringStream::Add(), Token::Name(), and HBinaryOperation::PrintDataTo().


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