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
 
Zonezone () const
 
HGraph * graph () const
 
Isolateisolate () const
 
CompilationInfotop_info ()
 
HGraph * CreateGraph ()
 
void Push (HValue *value)
 
HValuePop ()
 
virtual HValuecontext ()=0
 
HInstructionAddInstruction (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 >
HInstructionNewUncasted ()
 
template<class I >
INew ()
 
template<class I >
HInstructionAddUncasted ()
 
template<class I >
IAdd ()
 
template<class I , class P1 >
HInstructionNewUncasted (P1 p1)
 
template<class I , class P1 >
INew (P1 p1)
 
template<class I , class P1 >
HInstructionAddUncasted (P1 p1)
 
template<class I , class P1 >
IAdd (P1 p1)
 
template<class I , class P1 , class P2 >
HInstructionNewUncasted (P1 p1, P2 p2)
 
template<class I , class P1 , class P2 >
INew (P1 p1, P2 p2)
 
template<class I , class P1 , class P2 >
HInstructionAddUncasted (P1 p1, P2 p2)
 
template<class I , class P1 , class P2 >
IAdd (P1 p1, P2 p2)
 
template<class I , class P1 , class P2 , class P3 >
HInstructionNewUncasted (P1 p1, P2 p2, P3 p3)
 
template<class I , class P1 , class P2 , class P3 >
INew (P1 p1, P2 p2, P3 p3)
 
template<class I , class P1 , class P2 , class P3 >
HInstructionAddUncasted (P1 p1, P2 p2, P3 p3)
 
template<class I , class P1 , class P2 , class P3 >
IAdd (P1 p1, P2 p2, P3 p3)
 
template<class I , class P1 , class P2 , class P3 , class P4 >
HInstructionNewUncasted (P1 p1, P2 p2, P3 p3, P4 p4)
 
template<class I , class P1 , class P2 , class P3 , class P4 >
INew (P1 p1, P2 p2, P3 p3, P4 p4)
 
template<class I , class P1 , class P2 , class P3 , class P4 >
HInstructionAddUncasted (P1 p1, P2 p2, P3 p3, P4 p4)
 
template<class I , class P1 , class P2 , class P3 , class P4 >
IAdd (P1 p1, P2 p2, P3 p3, P4 p4)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 >
HInstructionNewUncasted (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 >
INew (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 >
HInstructionAddUncasted (P1 p1, P2 p2, P3 p3, P4 p4, P5 p5)
 
template<class I , class P1 , class P2 , class P3 , class P4 , class P5 >
IAdd (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 >
HInstructionNewUncasted (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 >
INew (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 >
HInstructionAddUncasted (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 >
IAdd (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 >
HInstructionNewUncasted (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 >
INew (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 >
HInstructionAddUncasted (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 >
IAdd (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 >
HInstructionNewUncasted (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 >
INew (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 >
HInstructionAddUncasted (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 >
IAdd (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<>
HInstructionAddUncasted (const char *reason, Deoptimizer::BailoutType type)
 
template<>
HSimulate * Add (BailoutId id, RemovableSimulate removable)
 
template<>
HSimulate * Add (BailoutId id)
 
template<>
HInstructionAddUncasted (BailoutId id)
 
template<>
HReturn * Add (HValue *value)
 
template<>
HReturn * Add (HConstant *value)
 
template<>
HInstructionAddUncasted (HValue *value)
 
template<>
HInstructionAddUncasted (HConstant *value)
 
template<>
HCallRuntime * Add (Handle< String > name, const Runtime::Function *c_function, int argument_count)
 
template<>
HInstructionAddUncasted (Handle< String > name, const Runtime::Function *c_function, int argument_count)
 
template<>
HContext * New ()
 
template<>
HInstructionNewUncasted ()
 

Protected Member Functions

virtual bool BuildGraph ()=0
 
HBasicBlock * CreateBasicBlock (HEnvironment *env)
 
HBasicBlock * CreateLoopHeaderBlock ()
 
HValueBuildCheckHeapObject (HValue *object)
 
HValueBuildCheckMap (HValue *obj, Handle< Map > map)
 
HValueBuildCheckString (HValue *string)
 
HValueBuildWrapReceiver (HValue *object, HValue *function)
 
HValueBuildCheckForCapacityGrow (HValue *object, HValue *elements, ElementsKind kind, HValue *length, HValue *key, bool is_js_array, PropertyAccessType access_type)
 
HValueBuildCopyElementsOnWrite (HValue *object, HValue *elements, ElementsKind kind, HValue *length)
 
void BuildTransitionElementsKind (HValue *object, HValue *map, ElementsKind from_kind, ElementsKind to_kind, bool is_jsarray)
 
HValueBuildNumberToString (HValue *object, Type *type)
 
HValueBuildUncheckedDictionaryElementLoad (HValue *receiver, HValue *key)
 
HValueBuildRegExpConstructResult (HValue *length, HValue *index, HValue *input)
 
HAllocate * BuildAllocate (HValue *object_size, HType type, InstanceType instance_type, HAllocationMode allocation_mode)
 
HValueBuildAddStringLengths (HValue *left_length, HValue *right_length)
 
HValueBuildCreateConsString (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)
 
HValueBuildObjectSizeAlignment (HValue *unaligned_size, int header_size)
 
HValueBuildUncheckedStringAdd (HValue *left, HValue *right, HAllocationMode allocation_mode)
 
HValueBuildStringAdd (HValue *left, HValue *right, HAllocationMode allocation_mode)
 
HInstructionBuildUncheckedMonomorphicElementAccess (HValue *checked_object, HValue *key, HValue *val, bool is_js_array, ElementsKind elements_kind, PropertyAccessType access_type, LoadKeyedHoleMode load_mode, KeyedAccessStoreMode store_mode)
 
HInstructionAddElementAccess (HValue *elements, HValue *checked_key, HValue *val, HValue *dependency, ElementsKind elements_kind, PropertyAccessType access_type, LoadKeyedHoleMode load_mode=NEVER_RETURN_HOLE)
 
HInstructionAddLoadStringInstanceType (HValue *string)
 
HInstructionAddLoadStringLength (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)
 
HValueBuildBinaryOperation (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)
 
HValueAddLoadJSBuiltin (Builtins::JavaScript builtin)
 
HValueEnforceNumberType (HValue *number, Type *expected)
 
HValueTruncateToNumber (HValue *value, Type **expected)
 
void FinishExitWithHardDeoptimization (const char *reason)
 
void AddIncrementCounter (StatsCounter *counter)
 
HValueBuildNewElementsCapacity (HValue *old_capacity)
 
void BuildNewSpaceArrayCheck (HValue *length, ElementsKind kind)
 
HValueBuildAllocateArrayFromLength (JSArrayBuilder *array_builder, HValue *length_argument)
 
HValueBuildAllocateElements (ElementsKind kind, HValue *capacity)
 
void BuildInitializeElementsHeader (HValue *elements, ElementsKind kind, HValue *capacity)
 
HValueBuildAllocateElementsAndInitializeElementsHeader (ElementsKind kind, HValue *capacity)
 
HInnerAllocatedObject * BuildJSArrayHeader (HValue *array, HValue *array_map, AllocationSiteMode mode, ElementsKind elements_kind, HValue *allocation_site_payload, HValue *length_field)
 
HValueBuildGrowElementsCapacity (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)
 
HValueBuildCloneShallowArray (HValue *boilerplate, HValue *allocation_site, AllocationSiteMode mode, ElementsKind kind, int length)
 
HValueBuildElementIndexHash (HValue *index)
 
void BuildCompareNil (HValue *value, Type *type, HIfContinuation *continuation)
 
void BuildCreateAllocationMemento (HValue *previous_object, HValue *previous_object_size, HValue *payload)
 
HInstructionBuildConstantMapCheck (Handle< JSObject > constant, CompilationInfo *info)
 
HInstructionBuildCheckPrototypeMaps (Handle< JSObject > prototype, Handle< JSObject > holder)
 
HInstructionBuildGetNativeContext (HValue *closure)
 
HInstructionBuildGetNativeContext ()
 
HInstructionBuildGetArrayFunction ()
 
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: