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
HGraphBuilder Class Referenceabstract

#include <hydrogen.h>

Inheritance diagram for HGraphBuilder:

Data Structures

class  V8_FINAL
 

Public Member Functions

 HGraphBuilder (CompilationInfo *info)
 
virtual ~HGraphBuilder ()
 
HBasicBlock * current_block () const
 
void set_current_block (HBasicBlock *block)
 
HEnvironment * environment () const
 
Zone * zone () const
 
HGraph * graph () const
 
Isolate * isolate () const
 
CompilationInfo * top_info ()
 
HGraph * CreateGraph ()
 
void Push (HValue *value)
 
HValue * Pop ()
 
virtual HValue * context ()=0
 
HInstruction * AddInstruction (HInstruction *instr)
 
void FinishCurrentBlock (HControlInstruction *last)
 
void FinishExitCurrentBlock (HControlInstruction *instruction)
 
void Goto (HBasicBlock *from, HBasicBlock *target, FunctionState *state=NULL, bool add_simulate=true)
 
void Goto (HBasicBlock *target, FunctionState *state=NULL, bool add_simulate=true)
 
void GotoNoSimulate (HBasicBlock *from, HBasicBlock *target)
 
void GotoNoSimulate (HBasicBlock *target)
 
void AddLeaveInlined (HBasicBlock *block, HValue *return_value, FunctionState *state)
 
void AddLeaveInlined (HValue *return_value, FunctionState *state)
 
template<class I >
HInstruction * NewUncasted ()
 
template<class I >
I * New ()
 
template<class I >
HInstruction * AddUncasted ()
 
template<class I >
I * Add ()
 
template<class I , class P1 >
HInstruction * NewUncasted (P1 p1)
 
template<class I , class P1 >
I * New (P1 p1)
 
template<class I , class P1 >
HInstruction * AddUncasted (P1 p1)
 
template<class I , class P1 >
I * Add (P1 p1)
 
template<class I , class P1 , class P2 >
HInstruction * NewUncasted (P1 p1, P2 p2)
 
template<class I , class P1 , class P2 >
I * New (P1 p1, P2 p2)
 
template<class I , class P1 , class P2 >
HInstruction * AddUncasted (P1 p1, P2 p2)
 
template<class I , class P1 , class P2 >
I * Add (P1 p1, P2 p2)
 
template<class I , class P1 , class P2 , class P3 >
HInstruction * NewUncasted (P1 p1, P2 p2, P3 p3)
 
template<class I , class P1 , class P2 , class P3 >
I * New (P1 p1, P2 p2, P3 p3)
 
template<class I , class P1 , class P2 , class P3 >
HInstruction * AddUncasted (P1 p1, P2 p2, P3 p3)
 
template<class I , class P1 , class P2 , class P3 >
I * Add (P1 p1, P2 p2, P3 p3)
 
template<class I , class P1 , class P2 , class P3 , class P4 >
HInstruction * NewUncasted (P1 p1, P2 p2, P3 p3, P4 p4)
 
template<class I , class P1 , class P2 , class P3 , class P4 >
I * New (P1 p1, P2 p2, P3 p3, P4 p4)
 
template<class I , class P1 , class P2 , class P3 , class P4 >
HInstruction * AddUncasted (P1 p1, P2 p2, P3 p3, P4 p4)
 
template<class I , class P1 , class P2 , class P3 , class P4 >
I * Add (P1 p1, P2 p2, P3 p3, P4 p4)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 >
HInstruction * NewUncasted (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 >
I * New (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 >
HInstruction * AddUncasted (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 >
I * Add (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
HInstruction * NewUncasted (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
I * New (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
HInstruction * AddUncasted (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 >
I * Add (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 >
HInstruction * NewUncasted (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 >
I * New (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 >
HInstruction * AddUncasted (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 >
I * Add (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 >
HInstruction * NewUncasted (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 >
I * New (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 >
HInstruction * AddUncasted (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 , class P6 , class P7 , class P8 >
I * Add (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7, P8 p8)
 
void AddSimulate (BailoutId id, RemovableSimulate removable=FIXED_SIMULATE)
 
template<>
HDeoptimize * Add (const char *reason, Deoptimizer::BailoutType type)
 
template<>
HInstruction * AddUncasted (const char *reason, Deoptimizer::BailoutType type)
 
template<>
HSimulate * Add (BailoutId id, RemovableSimulate removable)
 
template<>
HSimulate * Add (BailoutId id)
 
template<>
HInstruction * AddUncasted (BailoutId id)
 
template<>
HReturn * Add (HValue *value)
 
template<>
HReturn * Add (HConstant *value)
 
template<>
HInstruction * AddUncasted (HValue *value)
 
template<>
HInstruction * AddUncasted (HConstant *value)
 
template<>
HCallRuntime * Add (Handle< String > name, const Runtime::Function *c_function, int argument_count)
 
template<>
HInstruction * AddUncasted (Handle< String > name, const Runtime::Function *c_function, int argument_count)
 
template<>
HContext * New ()
 
template<>
HInstruction * NewUncasted ()
 

Protected Member Functions

virtual bool BuildGraph ()=0
 
HBasicBlock * CreateBasicBlock (HEnvironment *env)
 
HBasicBlock * CreateLoopHeaderBlock ()
 
HValue * BuildCheckHeapObject (HValue *object)
 
HValue * BuildCheckMap (HValue *obj, Handle< Map > map)
 
HValue * BuildCheckString (HValue *string)
 
HValue * BuildWrapReceiver (HValue *object, HValue *function)
 
HValue * BuildCheckForCapacityGrow (HValue *object, HValue *elements, ElementsKind kind, HValue *length, HValue *key, bool is_js_array, PropertyAccessType access_type)
 
HValue * BuildCopyElementsOnWrite (HValue *object, HValue *elements, ElementsKind kind, HValue *length)
 
void BuildTransitionElementsKind (HValue *object, HValue *map, ElementsKind from_kind, ElementsKind to_kind, bool is_jsarray)
 
HValue * BuildNumberToString (HValue *object, Type *type)
 
HValue * BuildUncheckedDictionaryElementLoad (HValue *receiver, HValue *key)
 
HValue * BuildRegExpConstructResult (HValue *length, HValue *index, HValue *input)
 
HAllocate * BuildAllocate (HValue *object_size, HType type, InstanceType instance_type, HAllocationMode allocation_mode)
 
HValue * BuildAddStringLengths (HValue *left_length, HValue *right_length)
 
HValue * BuildCreateConsString (HValue *length, HValue *left, HValue *right, HAllocationMode allocation_mode)
 
void BuildCopySeqStringChars (HValue *src, HValue *src_offset, String::Encoding src_encoding, HValue *dst, HValue *dst_offset, String::Encoding dst_encoding, HValue *length)
 
HValue * BuildObjectSizeAlignment (HValue *unaligned_size, int header_size)
 
HValue * BuildUncheckedStringAdd (HValue *left, HValue *right, HAllocationMode allocation_mode)
 
HValue * BuildStringAdd (HValue *left, HValue *right, HAllocationMode allocation_mode)
 
HInstruction * BuildUncheckedMonomorphicElementAccess (HValue *checked_object, HValue *key, HValue *val, bool is_js_array, ElementsKind elements_kind, PropertyAccessType access_type, LoadKeyedHoleMode load_mode, KeyedAccessStoreMode store_mode)
 
HInstruction * AddElementAccess (HValue *elements, HValue *checked_key, HValue *val, HValue *dependency, ElementsKind elements_kind, PropertyAccessType access_type, LoadKeyedHoleMode load_mode=NEVER_RETURN_HOLE)
 
HInstruction * AddLoadStringInstanceType (HValue *string)
 
HInstruction * AddLoadStringLength (HValue *string)
 
HStoreNamedField * AddStoreMapNoWriteBarrier (HValue *object, HValue *map)
 
HStoreNamedField * AddStoreMapConstant (HValue *object, Handle< Map > map)
 
HStoreNamedField * AddStoreMapConstantNoWriteBarrier (HValue *object, Handle< Map > map)
 
HLoadNamedField * AddLoadElements (HValue *object)
 
bool MatchRotateRight (HValue *left, HValue *right, HValue **operand, HValue **shift_amount)
 
HValue * BuildBinaryOperation (Token::Value op, HValue *left, HValue *right, Type *left_type, Type *right_type, Type *result_type, Maybe< int > fixed_right_arg, HAllocationMode allocation_mode)
 
HLoadNamedField * AddLoadFixedArrayLength (HValue *object)
 
HValue * AddLoadJSBuiltin (Builtins::JavaScript builtin)
 
HValue * EnforceNumberType (HValue *number, Type *expected)
 
HValue * TruncateToNumber (HValue *value, Type **expected)
 
void FinishExitWithHardDeoptimization (const char *reason)
 
void AddIncrementCounter (StatsCounter *counter)
 
HValue * BuildNewElementsCapacity (HValue *old_capacity)
 
void BuildNewSpaceArrayCheck (HValue *length, ElementsKind kind)
 
HValue * BuildAllocateArrayFromLength (JSArrayBuilder *array_builder, HValue *length_argument)
 
HValue * BuildAllocateElements (ElementsKind kind, HValue *capacity)
 
void BuildInitializeElementsHeader (HValue *elements, ElementsKind kind, HValue *capacity)
 
HValue * BuildAllocateElementsAndInitializeElementsHeader (ElementsKind kind, HValue *capacity)
 
HInnerAllocatedObject * BuildJSArrayHeader (HValue *array, HValue *array_map, AllocationSiteMode mode, ElementsKind elements_kind, HValue *allocation_site_payload, HValue *length_field)
 
HValue * BuildGrowElementsCapacity (HValue *object, HValue *elements, ElementsKind kind, ElementsKind new_kind, HValue *length, HValue *new_capacity)
 
void BuildFillElementsWithHole (HValue *elements, ElementsKind elements_kind, HValue *from, HValue *to)
 
void BuildCopyElements (HValue *from_elements, ElementsKind from_elements_kind, HValue *to_elements, ElementsKind to_elements_kind, HValue *length, HValue *capacity)
 
HValue * BuildCloneShallowArray (HValue *boilerplate, HValue *allocation_site, AllocationSiteMode mode, ElementsKind kind, int length)
 
HValue * BuildElementIndexHash (HValue *index)
 
void BuildCompareNil (HValue *value, Type *type, HIfContinuation *continuation)
 
void BuildCreateAllocationMemento (HValue *previous_object, HValue *previous_object_size, HValue *payload)
 
HInstruction * BuildConstantMapCheck (Handle< JSObject > constant, CompilationInfo *info)
 
HInstruction * BuildCheckPrototypeMaps (Handle< JSObject > prototype, Handle< JSObject > holder)
 
HInstruction * BuildGetNativeContext (HValue *closure)
 
HInstruction * BuildGetNativeContext ()
 
HInstruction * BuildGetArrayFunction ()
 
void SetSourcePosition (int position)
 
void EnterInlinedSource (int start_position, int id)
 
HSourcePosition ScriptPositionToSourcePosition (int position)
 
HSourcePosition source_position ()
 
void set_source_position (HSourcePosition position)
 
template<typename ViewClass >
void BuildArrayBufferViewInitialization (HValue *obj, HValue *buffer, HValue *byte_offset, HValue *byte_length)
 

Detailed Description

Definition at line 1056 of file hydrogen.h.

Constructor & Destructor Documentation

HGraphBuilder ( CompilationInfo *  info)
inlineexplicit

Definition at line 1058 of file hydrogen.h.

virtual ~HGraphBuilder ( )
inlinevirtual

Definition at line 1064 of file hydrogen.h.

Member Function Documentation

I* Add ( )
inline

Definition at line 1125 of file hydrogen.h.

Referenced by HOsrBuilder::BuildOsrLoopEntry().

I* Add ( P1  p1)
inline

Definition at line 1146 of file hydrogen.h.

References ASSERT, and v8::internal::I.

I* Add ( P1  p1,
P2  p2 
)
inline

Definition at line 1175 of file hydrogen.h.

References ASSERT, and v8::internal::I.

I* Add ( P1  p1,
P2  p2,
P3  p3 
)
inline

Definition at line 1199 of file hydrogen.h.

I* Add ( P1  p1,
P2  p2,
P3  p3,
P4  p4 
)
inline

Definition at line 1219 of file hydrogen.h.

I* Add ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5 
)
inline

Definition at line 1239 of file hydrogen.h.

I* Add ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6 
)
inline

Definition at line 1259 of file hydrogen.h.

I* Add ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6,
P7  p7 
)
inline

Definition at line 1283 of file hydrogen.h.

I* Add ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6,
P7  p7,
P8  p8 
)
inline

Definition at line 1309 of file hydrogen.h.

HDeoptimize* Add ( const char *  reason,
Deoptimizer::BailoutType  type 
)
inline

Definition at line 1871 of file hydrogen.h.

References v8::internal::NULL, and Deoptimizer::SOFT.

HSimulate* Add ( BailoutId  id,
RemovableSimulate  removable 
)
inline

Definition at line 1898 of file hydrogen.h.

HSimulate* Add ( BailoutId  id)
inline

Definition at line 1908 of file hydrogen.h.

References v8::internal::FIXED_SIMULATE.

HReturn* Add ( HValue *  value)
inline

Definition at line 1921 of file hydrogen.h.

HReturn* Add ( HConstant *  value)
inline

Definition at line 1931 of file hydrogen.h.

HCallRuntime* Add ( Handle< String >  name,
const Runtime::Function *  c_function,
int  argument_count 
)
inline

Definition at line 1948 of file hydrogen.h.

References v8::internal::kSaveFPRegs, and v8::internal::name.

void AddLeaveInlined ( HBasicBlock *  block,
HValue *  return_value,
FunctionState *  state 
)
inline

Definition at line 1106 of file hydrogen.h.

References HGraphBuilder::source_position().

Referenced by HGraphBuilder::AddLeaveInlined().

void AddLeaveInlined ( HValue *  return_value,
FunctionState *  state 
)
inline
HLoadNamedField * AddLoadElements ( HValue *  object)
protected

Definition at line 2419 of file hydrogen.cc.

References NULL.

HLoadNamedField * AddLoadFixedArrayLength ( HValue *  object)
protected

Definition at line 2425 of file hydrogen.cc.

References NULL.

HInstruction * AddLoadStringInstanceType ( HValue *  string)
protected

Definition at line 6205 of file hydrogen.cc.

References v8::internal::NULL.

HInstruction * AddLoadStringLength ( HValue *  string)
protected

Definition at line 6219 of file hydrogen.cc.

References v8::internal::NULL.

void AddSimulate ( BailoutId  id,
RemovableSimulate  removable = FIXED_SIMULATE 
)

Definition at line 1227 of file hydrogen.cc.

References ASSERT, and NULL.

HStoreNamedField * AddStoreMapConstant ( HValue *  object,
Handle< Map >  map 
)
protected

Definition at line 2958 of file hydrogen.cc.

References v8::internal::map.

Referenced by HGraphBuilder::AddStoreMapConstantNoWriteBarrier().

HStoreNamedField* AddStoreMapConstantNoWriteBarrier ( HValue *  object,
Handle< Map >  map 
)
inlineprotected

Definition at line 1416 of file hydrogen.h.

References HGraphBuilder::AddStoreMapConstant().

HStoreNamedField* AddStoreMapNoWriteBarrier ( HValue *  object,
HValue *  map 
)
inlineprotected

Definition at line 1409 of file hydrogen.h.

References v8::internal::map.

HInstruction* AddUncasted ( )
inline

Definition at line 1122 of file hydrogen.h.

References HGraphBuilder::AddInstruction().

HInstruction* AddUncasted ( P1  p1)
inline

Definition at line 1136 of file hydrogen.h.

References HGraphBuilder::AddInstruction(), and ASSERT.

HInstruction* AddUncasted ( P1  p1,
P2  p2 
)
inline

Definition at line 1166 of file hydrogen.h.

References HGraphBuilder::AddInstruction(), and ASSERT.

HInstruction* AddUncasted ( P1  p1,
P2  p2,
P3  p3 
)
inline

Definition at line 1194 of file hydrogen.h.

References HGraphBuilder::AddInstruction().

HInstruction* AddUncasted ( P1  p1,
P2  p2,
P3  p3,
P4  p4 
)
inline

Definition at line 1214 of file hydrogen.h.

References HGraphBuilder::AddInstruction().

HInstruction* AddUncasted ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5 
)
inline

Definition at line 1234 of file hydrogen.h.

References HGraphBuilder::AddInstruction().

HInstruction* AddUncasted ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6 
)
inline

Definition at line 1254 of file hydrogen.h.

References HGraphBuilder::AddInstruction().

HInstruction* AddUncasted ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6,
P7  p7 
)
inline

Definition at line 1277 of file hydrogen.h.

References HGraphBuilder::AddInstruction().

HInstruction* AddUncasted ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6,
P7  p7,
P8  p8 
)
inline

Definition at line 1302 of file hydrogen.h.

References HGraphBuilder::AddInstruction().

HInstruction* AddUncasted ( const char *  reason,
Deoptimizer::BailoutType  type 
)
inline

Definition at line 1891 of file hydrogen.h.

HInstruction* AddUncasted ( BailoutId  id)
inline

Definition at line 1915 of file hydrogen.h.

References v8::internal::FIXED_SIMULATE.

HInstruction* AddUncasted ( HValue *  value)
inline

Definition at line 1936 of file hydrogen.h.

HInstruction* AddUncasted ( HConstant *  value)
inline

Definition at line 1942 of file hydrogen.h.

HInstruction* AddUncasted ( Handle< String >  name,
const Runtime::Function *  c_function,
int  argument_count 
)
inline

Definition at line 1965 of file hydrogen.h.

References v8::internal::name.

HValue * BuildAddStringLengths ( HValue *  left_length,
HValue *  right_length 
)
protected

Definition at line 1793 of file hydrogen.cc.

HAllocate * BuildAllocate ( HValue *  object_size,
HType  type,
InstanceType  instance_type,
HAllocationMode  allocation_mode 
)
protected

Definition at line 1766 of file hydrogen.cc.

References size.

HValue * BuildAllocateArrayFromLength ( JSArrayBuilder *  array_builder,
HValue *  length_argument 
)
protected

Definition at line 2255 of file hydrogen.cc.

References v8::internal::EQ, and v8::internal::IsFastPackedElementsKind().

HValue * BuildAllocateElementsAndInitializeElementsHeader ( ElementsKind  kind,
HValue *  capacity 
)
protected

Definition at line 2340 of file hydrogen.cc.

void BuildArrayBufferViewInitialization ( HValue *  obj,
HValue *  buffer,
HValue *  byte_offset,
HValue *  byte_length 
)
protected
HValue * BuildCheckForCapacityGrow ( HValue *  object,
HValue *  elements,
ElementsKind  kind,
HValue *  length,
HValue *  key,
bool  is_js_array,
PropertyAccessType  access_type 
)
protected
HValue * BuildCheckHeapObject ( HValue *  object)
protected

Definition at line 1251 of file hydrogen.cc.

References obj, and HValue::type().

HValue * BuildCheckMap ( HValue *  obj,
Handle< Map >  map 
)
protected

Definition at line 1263 of file hydrogen.cc.

References map, and obj.

HValue * BuildCheckString ( HValue *  string)
protected

Definition at line 1268 of file hydrogen.cc.

References ASSERT, and HValue::type().

Referenced by HGraphBuilder::BuildBinaryOperation().

void BuildCompareNil ( HValue *  value,
Type *  type,
HIfContinuation *  continuation 
)
protected
HInstruction * BuildConstantMapCheck ( Handle< JSObject >  constant,
CompilationInfo *  info 
)
protected
void BuildCopyElements ( HValue *  from_elements,
ElementsKind  from_elements_kind,
HValue *  to_elements,
ElementsKind  to_elements_kind,
HValue *  length,
HValue *  capacity 
)
protected
HValue * BuildCopyElementsOnWrite ( HValue *  object,
HValue *  elements,
ElementsKind  kind,
HValue *  length 
)
protected

Definition at line 1359 of file hydrogen.cc.

void BuildCopySeqStringChars ( HValue *  src,
HValue *  src_offset,
String::Encoding  src_encoding,
HValue *  dst,
HValue *  dst_offset,
String::Encoding  dst_encoding,
HValue *  length 
)
protected

Definition at line 1885 of file hydrogen.cc.

References ASSERT.

void BuildCreateAllocationMemento ( HValue *  previous_object,
HValue *  previous_object_size,
HValue *  payload 
)
protected

Definition at line 2713 of file hydrogen.cc.

References ASSERT, HValue::ClearFlag(), and NULL.

HValue * BuildElementIndexHash ( HValue *  index)
protected

Definition at line 1506 of file hydrogen.cc.

void BuildFillElementsWithHole ( HValue *  elements,
ElementsKind  elements_kind,
HValue *  from,
HValue *  to 
)
protected
HInstruction * BuildGetArrayFunction ( )
protected

Definition at line 2772 of file hydrogen.cc.

References v8::internal::FAST_ELEMENTS, and NULL.

HInstruction * BuildGetNativeContext ( HValue *  closure)
protected

Definition at line 2745 of file hydrogen.cc.

References NULL.

HInstruction * BuildGetNativeContext ( )
protected

Definition at line 2760 of file hydrogen.cc.

References NULL.

virtual bool BuildGraph ( )
protectedpure virtual
HValue * BuildGrowElementsCapacity ( HValue *  object,
HValue *  elements,
ElementsKind  kind,
ElementsKind  new_kind,
HValue *  length,
HValue *  new_capacity 
)
protected

Definition at line 2457 of file hydrogen.cc.

void BuildInitializeElementsHeader ( HValue *  elements,
ElementsKind  kind,
HValue *  capacity 
)
protected

Definition at line 2326 of file hydrogen.cc.

References v8::internal::IsFastDoubleElementsKind(), and map.

HInnerAllocatedObject * BuildJSArrayHeader ( HValue *  array,
HValue *  array_map,
AllocationSiteMode  mode,
ElementsKind  elements_kind,
HValue *  allocation_site_payload,
HValue *  length_field 
)
protected

Definition at line 2352 of file hydrogen.cc.

References v8::internal::TRACK_ALLOCATION_SITE.

HValue * BuildNewElementsCapacity ( HValue *  old_capacity)
protected

Definition at line 2431 of file hydrogen.cc.

References HValue::ClearFlag().

void BuildNewSpaceArrayCheck ( HValue *  length,
ElementsKind  kind 
)
protected
HValue * BuildNumberToString ( HValue *  object,
Type *  type 
)
protected
HValue * BuildObjectSizeAlignment ( HValue *  unaligned_size,
int  header_size 
)
protected

Definition at line 1907 of file hydrogen.cc.

References ASSERT, HValue::ClearFlag(), v8::internal::kObjectAlignmentMask, and size.

HValue * BuildRegExpConstructResult ( HValue *  length,
HValue *  index,
HValue *  input 
)
protected
HValue * BuildStringAdd ( HValue *  left,
HValue *  right,
HAllocationMode  allocation_mode 
)
protected

Definition at line 2092 of file hydrogen.cc.

References v8::internal::EQ.

Referenced by HGraphBuilder::BuildBinaryOperation().

void BuildTransitionElementsKind ( HValue *  object,
HValue *  map,
ElementsKind  from_kind,
ElementsKind  to_kind,
bool  is_jsarray 
)
protected
HValue * BuildUncheckedDictionaryElementLoad ( HValue *  receiver,
HValue *  key 
)
protected

Definition at line 1539 of file hydrogen.cc.

References HValue::ChangeRepresentation(), v8::internal::FAST_ELEMENTS, and NULL.

HValue * BuildWrapReceiver ( HValue *  object,
HValue *  function 
)
protected
HBasicBlock * CreateBasicBlock ( HEnvironment *  env)
protected
HGraph * CreateGraph ( )

Definition at line 1169 of file hydrogen.cc.

References NULL.

Referenced by OptimizedCompileJob::CreateGraph().

HBasicBlock * CreateLoopHeaderBlock ( )
protected

Definition at line 1242 of file hydrogen.cc.

Referenced by HOptimizedGraphBuilder::BuildLoopEntry().

HValue * EnforceNumberType ( HValue *  number,
Type *  expected 
)
protected
void EnterInlinedSource ( int  start_position,
int  id 
)
inlineprotected

Definition at line 1820 of file hydrogen.h.

References HSourcePosition::set_inlining_id().

void FinishCurrentBlock ( HControlInstruction *  last)
void FinishExitCurrentBlock ( HControlInstruction *  instruction)

Definition at line 1204 of file hydrogen.cc.

References ASSERT, and NULL.

void FinishExitWithHardDeoptimization ( const char *  reason)
protected

Definition at line 1257 of file hydrogen.cc.

void Goto ( HBasicBlock *  target,
FunctionState *  state = NULL,
bool  add_simulate = true 
)
inline

Definition at line 1095 of file hydrogen.h.

References HGraphBuilder::current_block(), and HGraphBuilder::Goto().

void GotoNoSimulate ( HBasicBlock *  from,
HBasicBlock *  target 
)
inline

Definition at line 1100 of file hydrogen.h.

References HGraphBuilder::Goto(), and v8::internal::NULL.

void GotoNoSimulate ( HBasicBlock *  target)
inline

Definition at line 1103 of file hydrogen.h.

References HGraphBuilder::Goto(), and v8::internal::NULL.

Isolate* isolate ( ) const
inline

Definition at line 1073 of file hydrogen.h.

Referenced by HOptimizedGraphBuilder::VisitDeclarations().

bool MatchRotateRight ( HValue *  left,
HValue *  right,
HValue **  operand,
HValue **  shift_amount 
)
protected

Definition at line 9087 of file hydrogen.cc.

Referenced by HGraphBuilder::BuildBinaryOperation().

I* New ( )
inline
I* New ( P1  p1)
inline

Definition at line 1133 of file hydrogen.h.

References HGraphBuilder::context(), and HGraphBuilder::zone().

I* New ( P1  p1,
P2  p2 
)
inline

Definition at line 1161 of file hydrogen.h.

References HGraphBuilder::context(), and HGraphBuilder::zone().

I* New ( P1  p1,
P2  p2,
P3  p3 
)
inline

Definition at line 1189 of file hydrogen.h.

References HGraphBuilder::context(), and HGraphBuilder::zone().

I* New ( P1  p1,
P2  p2,
P3  p3,
P4  p4 
)
inline

Definition at line 1209 of file hydrogen.h.

References HGraphBuilder::context(), and HGraphBuilder::zone().

I* New ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5 
)
inline

Definition at line 1229 of file hydrogen.h.

References HGraphBuilder::context(), and HGraphBuilder::zone().

I* New ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6 
)
inline

Definition at line 1249 of file hydrogen.h.

References HGraphBuilder::context(), and HGraphBuilder::zone().

I* New ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6,
P7  p7 
)
inline

Definition at line 1271 of file hydrogen.h.

References HGraphBuilder::context(), and HGraphBuilder::zone().

I* New ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6,
P7  p7,
P8  p8 
)
inline

Definition at line 1296 of file hydrogen.h.

References HGraphBuilder::context(), and HGraphBuilder::zone().

HContext* New ( )
inline

Definition at line 1974 of file hydrogen.h.

HInstruction* NewUncasted ( )
inline

Definition at line 1116 of file hydrogen.h.

References HGraphBuilder::context(), and HGraphBuilder::zone().

HInstruction* NewUncasted ( P1  p1)
inline

Definition at line 1128 of file hydrogen.h.

References HGraphBuilder::context(), and HGraphBuilder::zone().

HInstruction* NewUncasted ( P1  p1,
P2  p2 
)
inline

Definition at line 1156 of file hydrogen.h.

References HGraphBuilder::context(), and HGraphBuilder::zone().

HInstruction* NewUncasted ( P1  p1,
P2  p2,
P3  p3 
)
inline

Definition at line 1184 of file hydrogen.h.

References HGraphBuilder::context(), and HGraphBuilder::zone().

HInstruction* NewUncasted ( P1  p1,
P2  p2,
P3  p3,
P4  p4 
)
inline

Definition at line 1204 of file hydrogen.h.

References HGraphBuilder::context(), and HGraphBuilder::zone().

HInstruction* NewUncasted ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5 
)
inline

Definition at line 1224 of file hydrogen.h.

References HGraphBuilder::context(), and HGraphBuilder::zone().

HInstruction* NewUncasted ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6 
)
inline

Definition at line 1244 of file hydrogen.h.

References HGraphBuilder::context(), and HGraphBuilder::zone().

HInstruction* NewUncasted ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6,
P7  p7 
)
inline

Definition at line 1265 of file hydrogen.h.

References HGraphBuilder::context(), and HGraphBuilder::zone().

HInstruction* NewUncasted ( P1  p1,
P2  p2,
P3  p3,
P4  p4,
P5  p5,
P6  p6,
P7  p7,
P8  p8 
)
inline

Definition at line 1289 of file hydrogen.h.

References HGraphBuilder::context(), and HGraphBuilder::zone().

HInstruction* NewUncasted ( )
inline

Definition at line 1980 of file hydrogen.h.

void Push ( HValue *  value)
inline

Definition at line 1079 of file hydrogen.h.

References HGraphBuilder::environment().

Referenced by HOptimizedGraphBuilder::VisitNot().

HSourcePosition ScriptPositionToSourcePosition ( int  position)
inlineprotected
void set_source_position ( HSourcePosition  position)
inlineprotected

Definition at line 1837 of file hydrogen.h.

void SetSourcePosition ( int  position)
inlineprotected
HSourcePosition source_position ( )
inlineprotected

Definition at line 1836 of file hydrogen.h.

Referenced by HGraphBuilder::AddLeaveInlined(), and HGraphBuilder::Goto().

CompilationInfo* top_info ( )
inline

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