v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::compiler::JSGraphAssembler Class Reference

#include <graph-assembler.h>

Inheritance diagram for v8::internal::compiler::JSGraphAssembler:
Collaboration diagram for v8::internal::compiler::JSGraphAssembler:

Classes

class  CatchScope
 
class  IfBuilder0
 
class  IfBuilder1
 

Public Types

using NodeGenerator0 = std::function<TNode<Object>()>
 
using VoidGenerator0 = std::function<void()>
 

Public Member Functions

 JSGraphAssembler (JSHeapBroker *broker, JSGraph *jsgraph, Zone *zone, BranchSemantics branch_semantics, std::optional< NodeChangedCallback > node_changed_callback=std::nullopt, bool mark_loop_exits=false)
 
TNode< SmiSmiConstant (int32_t value)
 
TNode< HeapObjectHeapConstant (Handle< HeapObject > object)
 
TNode< ObjectConstant (ObjectRef ref)
 
TNode< NumberNumberConstant (double value)
 
NodeCEntryStubConstant (int result_size)
 
NodeAllocate (AllocationType allocation, Node *size)
 
TNode< MapLoadMap (TNode< HeapObject > object)
 
NodeLoadField (FieldAccess const &, Node *object)
 
template<typename T >
TNode< TLoadField (FieldAccess const &access, TNode< HeapObject > object)
 
TNode< Uint32TLoadElementsKind (TNode< Map > map)
 
NodeLoadElement (ElementAccess const &, Node *object, Node *index)
 
template<typename T >
TNode< TLoadElement (ElementAccess const &access, TNode< HeapObject > object, TNode< Number > index)
 
NodeStoreField (FieldAccess const &, Node *object, Node *value)
 
NodeStoreElement (ElementAccess const &, Node *object, Node *index, Node *value)
 
NodeClearPendingMessage ()
 
void TransitionAndStoreElement (MapRef double_map, MapRef fast_map, TNode< HeapObject > object, TNode< Number > index, TNode< Object > value)
 
TNode< NumberStringLength (TNode< String > string)
 
TNode< BooleanReferenceEqual (TNode< Object > lhs, TNode< Object > rhs)
 
TNode< NumberPlainPrimitiveToNumber (TNode< Object > value)
 
TNode< NumberNumberMin (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< NumberNumberMax (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< BooleanNumberEqual (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< BooleanNumberLessThan (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< BooleanNumberLessThanOrEqual (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< NumberNumberAdd (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< NumberNumberSubtract (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< NumberNumberShiftRightLogical (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< NumberNumberBitwiseAnd (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< NumberNumberBitwiseOr (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< NumberNumberDivide (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< NumberNumberFloor (TNode< Number > value)
 
TNode< StringStringSubstring (TNode< String > string, TNode< Number > from, TNode< Number > to)
 
TNode< BooleanObjectIsCallable (TNode< Object > value)
 
TNode< BooleanObjectIsSmi (TNode< Object > value)
 
TNode< BooleanObjectIsUndetectable (TNode< Object > value)
 
NodeBooleanNot (Node *cond)
 
NodeCheckSmi (Node *value, const FeedbackSource &feedback={})
 
NodeCheckNumber (Node *value, const FeedbackSource &feedback={})
 
NodeCheckNumberFitsInt32 (Node *value, const FeedbackSource &feedback={})
 
NodeCheckIf (Node *cond, DeoptimizeReason reason, const FeedbackSource &feedback={})
 
NodeAssert (Node *cond, const char *condition_string="", const char *file="", int line=-1)
 
void Assert (TNode< Word32T > cond, const char *condition_string="", const char *file="", int line=-1)
 
TNode< BooleanNumberIsFloat64Hole (TNode< Number > value)
 
TNode< BooleanToBoolean (TNode< Object > value)
 
TNode< ObjectConvertTaggedHoleToUndefined (TNode< Object > value)
 
TNode< FixedArrayBaseMaybeGrowFastElements (ElementsKind kind, const FeedbackSource &feedback, TNode< JSArray > array, TNode< FixedArrayBase > elements, TNode< Number > new_length, TNode< Number > old_length)
 
NodeStringCharCodeAt (TNode< String > string, TNode< Number > position)
 
TNode< StringStringFromSingleCharCode (TNode< Number > code)
 
TNode< ObjectDoubleArrayMax (TNode< JSArray > array)
 
TNode< ObjectDoubleArrayMin (TNode< JSArray > array)
 
TNode< NumberArrayBufferViewByteLength (TNode< JSArrayBufferView > array_buffer_view, InstanceType instance_type, std::set< ElementsKind > elements_kinds_candidates, TNode< Context > context)
 
TNode< Word32TArrayBufferDetachedBit (TNode< HeapObject > buffer)
 
TNode< Word32TArrayBufferViewDetachedBit (TNode< JSArrayBufferView > array_buffer_view)
 
TNode< NumberTypedArrayLength (TNode< JSTypedArray > typed_array, std::set< ElementsKind > elements_kinds_candidates, TNode< Context > context)
 
void CheckIfTypedArrayWasDetachedOrOutOfBounds (TNode< JSTypedArray > typed_array, std::set< ElementsKind > elements_kinds_candidates, const FeedbackSource &feedback)
 
TNode< Uint32TLookupByteShiftForElementsKind (TNode< Uint32T > elements_kind)
 
TNode< Uint32TLookupByteSizeForElementsKind (TNode< Uint32T > elements_kind)
 
TNode< ObjectJSCallRuntime1 (Runtime::FunctionId function_id, TNode< Object > arg0, TNode< Context > context, std::optional< FrameState > frame_state, Operator::Properties properties=Operator::kNoProperties)
 
TNode< ObjectJSCallRuntime2 (Runtime::FunctionId function_id, TNode< Object > arg0, TNode< Object > arg1, TNode< Context > context, FrameState frame_state)
 
NodeChained (const Operator *op, Node *input)
 
JSHeapBrokerbroker () const
 
JSGraphjsgraph () const
 
Isolateisolate () const
 
SimplifiedOperatorBuildersimplified () override
 
JSOperatorBuilderjavascript () const
 
template<typename T , typename U >
TNode< TEnterMachineGraph (TNode< U > input, UseInfo use_info)
 
template<typename T , typename U >
TNode< TExitMachineGraph (TNode< U > input, MachineRepresentation output_representation, Type output_type)
 
CatchScopecatch_scope () const
 
Nodeoutermost_handler () const
 
TNode< ObjectMayThrow (const NodeGenerator0 &body)
 
IfBuilder0 If (TNode< Boolean > cond)
 
IfBuilder0 IfNot (TNode< Boolean > cond)
 
template<typename T >
IfBuilder1< T, BooleanSelectIf (TNode< Boolean > cond)
 
template<typename T >
IfBuilder1< T, BooleanSelectIfNot (TNode< Boolean > cond)
 
template<typename T >
IfBuilder1< T, Word32TMachineSelectIf (TNode< Word32T > cond)
 
template<typename T >
TNode< TMachineSelect (TNode< Word32T > cond, TNode< T > true_value, TNode< T > false_value, BranchHint hint=BranchHint::kNone)
 
- Public Member Functions inherited from v8::internal::compiler::GraphAssembler
 GraphAssembler (MachineGraph *jsgraph, Zone *zone, BranchSemantics default_branch_semantics, std::optional< NodeChangedCallback > node_changed_callback=std::nullopt, bool mark_loop_exits=false)
 
virtual ~GraphAssembler ()
 
void Reset ()
 
void InitializeEffectControl (Node *effect, Node *control)
 
template<typename... Reps>
detail::GraphAssemblerLabelForReps< Reps... > MakeLabelFor (GraphAssemblerLabelType type, Reps... reps)
 
GraphAssemblerDynamicLabel MakeLabelFor (GraphAssemblerLabelType type, base::SmallVector< MachineRepresentation, 4 > reps)
 
template<typename... Reps>
detail::GraphAssemblerLabelForReps< Reps... > MakeLabel (Reps... reps)
 
template<typename... Reps>
detail::GraphAssemblerLabelForReps< Reps... > MakeLoopLabel (Reps... reps)
 
template<typename... Reps>
detail::GraphAssemblerLabelForReps< Reps... > MakeDeferredLabel (Reps... reps)
 
NodeIntPtrConstant (intptr_t value)
 
TNode< UintPtrTUintPtrConstant (uintptr_t value)
 
NodeInt32Constant (int32_t value)
 
TNode< Uint32TUint32Constant (uint32_t value)
 
NodeInt64Constant (int64_t value)
 
NodeUint64Constant (uint64_t value)
 
NodeUniqueIntPtrConstant (intptr_t value)
 
NodeFloat64Constant (double value)
 
NodeExternalConstant (ExternalReference ref)
 
NodeIsolateField (IsolateFieldId id)
 
NodeProjection (int index, Node *value, Node *ctrl=nullptr)
 
NodeParameter (int index)
 
NodeLoadFramePointer ()
 
NodeLoadRootRegister ()
 
NodeLoadHeapNumberValue (Node *heap_number)
 
TNode< BoolTUintPtrLessThan (TNode< UintPtrT > left, TNode< UintPtrT > right)
 
TNode< BoolTUintPtrLessThanOrEqual (TNode< UintPtrT > left, TNode< UintPtrT > right)
 
TNode< UintPtrTUintPtrAdd (TNode< UintPtrT > left, TNode< UintPtrT > right)
 
TNode< UintPtrTUintPtrSub (TNode< UintPtrT > left, TNode< UintPtrT > right)
 
TNode< UintPtrTUintPtrDiv (TNode< UintPtrT > left, TNode< UintPtrT > right)
 
TNode< UintPtrTChangeUint32ToUintPtr (SloppyTNode< Uint32T > value)
 
TNode< MapLoadMap (Node *object)
 
NodeDebugBreak ()
 
NodeUnreachable ()
 
NodeUnreachableWithoutConnectToEnd ()
 
NodeIntPtrEqual (Node *left, Node *right)
 
NodeTaggedEqual (Node *left, Node *right)
 
NodeSmiSub (Node *left, Node *right)
 
NodeSmiLessThan (Node *left, Node *right)
 
NodeFloat64RoundDown (Node *value)
 
NodeFloat64RoundTruncate (Node *value)
 
NodeTruncateFloat64ToInt64 (Node *value, TruncateKind kind)
 
NodeBitcastWordToTagged (Node *value)
 
NodeBitcastWordToTaggedSigned (Node *value)
 
NodeBitcastTaggedToWord (Node *value)
 
NodeBitcastTaggedToWordForTagAndSmiBits (Node *value)
 
NodeBitcastMaybeObjectToWord (Node *value)
 
NodeTypeGuard (Type type, Node *value)
 
template<typename T >
TNode< TTypeGuard (Type type, TNode< T > value)
 
NodeCheckpoint (FrameState frame_state)
 
TNode< RawPtrTStackSlot (int size, int alignment, bool is_tagged=false)
 
NodeAdaptLocalArgument (Node *argument)
 
NodeStore (StoreRepresentation rep, Node *object, Node *offset, Node *value)
 
NodeStore (StoreRepresentation rep, Node *object, int offset, Node *value)
 
NodeLoad (MachineType type, Node *object, Node *offset)
 
NodeLoad (MachineType type, Node *object, int offset)
 
NodeStoreUnaligned (MachineRepresentation rep, Node *object, Node *offset, Node *value)
 
NodeLoadUnaligned (MachineType type, Node *object, Node *offset)
 
NodeProtectedStore (MachineRepresentation rep, Node *object, Node *offset, Node *value)
 
NodeProtectedLoad (MachineType type, Node *object, Node *offset)
 
NodeLoadTrapOnNull (MachineType type, Node *object, Node *offset)
 
NodeStoreTrapOnNull (StoreRepresentation rep, Node *object, Node *offset, Node *value)
 
NodeRetain (Node *buffer)
 
NodeIntPtrAdd (Node *a, Node *b)
 
NodeIntPtrSub (Node *a, Node *b)
 
NodeDeoptimizeIf (DeoptimizeReason reason, FeedbackSource const &feedback, Node *condition, Node *frame_state)
 
NodeDeoptimizeIfNot (DeoptimizeReason reason, FeedbackSource const &feedback, Node *condition, Node *frame_state)
 
TNode< ObjectCall (const CallDescriptor *call_descriptor, int inputs_size, Node **inputs)
 
TNode< ObjectCall (const Operator *op, int inputs_size, Node **inputs)
 
template<typename... Args>
TNode< ObjectCall (const CallDescriptor *call_descriptor, Node *first_arg, Args... args)
 
template<typename... Args>
TNode< ObjectCall (const Operator *op, Node *first_arg, Args... args)
 
void TailCall (const CallDescriptor *call_descriptor, int inputs_size, Node **inputs)
 
template<size_t VarCount>
void Bind (GraphAssemblerLabel< VarCount > *label)
 
template<typename... Vars>
void Goto (detail::GraphAssemblerLabelForVars< Vars... > *label, Vars...)
 
void BranchWithCriticalSafetyCheck (Node *condition, GraphAssemblerLabel< 0u > *if_true, GraphAssemblerLabel< 0u > *if_false)
 
template<typename... Vars>
void Branch (Node *condition, detail::GraphAssemblerLabelForVars< Vars... > *if_true, detail::GraphAssemblerLabelForVars< Vars... > *if_false, Vars...)
 
template<typename... Vars>
void BranchWithHint (Node *condition, detail::GraphAssemblerLabelForVars< Vars... > *if_true, detail::GraphAssemblerLabelForVars< Vars... > *if_false, BranchHint hint, Vars...)
 
template<typename... Vars>
void MachineBranch (TNode< Word32T > condition, GraphAssemblerLabel< sizeof...(Vars)> *if_true, GraphAssemblerLabel< sizeof...(Vars)> *if_false, BranchHint hint, Vars...)
 
template<typename... Vars>
void JSBranch (TNode< Boolean > condition, GraphAssemblerLabel< sizeof...(Vars)> *if_true, GraphAssemblerLabel< sizeof...(Vars)> *if_false, BranchHint hint, Vars...)
 
template<typename... Vars>
void GotoIf (Node *condition, detail::GraphAssemblerLabelForVars< Vars... > *label, BranchHint hint, Vars...)
 
template<typename... Vars>
void GotoIfNot (Node *condition, detail::GraphAssemblerLabelForVars< Vars... > *label, BranchHint hint, Vars...)
 
template<typename... Vars>
void GotoIf (Node *condition, detail::GraphAssemblerLabelForVars< Vars... > *label, Vars...)
 
template<typename... Vars>
void GotoIfNot (Node *condition, detail::GraphAssemblerLabelForVars< Vars... > *label, Vars...)
 
void RuntimeAbort (AbortReason reason)
 
bool HasActiveBlock () const
 
V8_INLINE void UpdateEffectControlWith (Node *node)
 
NodeAddNode (Node *node)
 
template<typename T >
TNode< TAddNode (Node *node)
 
void ConnectUnreachableToEnd ()
 
void AddInlineReducer (Reducer *reducer)
 
Control control () const
 
Effect effect () const
 
Nodestart () const
 

Protected Member Functions

Operator const * PlainPrimitiveToNumberOperator ()
 
- Protected Member Functions inherited from v8::internal::compiler::GraphAssembler
constexpr bool Is64 () const
 
template<typename... Vars>
void MergeState (detail::GraphAssemblerLabelForVars< Vars... > *label, Vars... vars)
 
V8_INLINE NodeAddClonedNode (Node *node)
 
MachineGraphmcgraph () const
 
TFGraphgraph () const
 
Zonetemp_zone () const
 
CommonOperatorBuildercommon () const
 
MachineOperatorBuildermachine () const
 

Protected Attributes

CatchScope outermost_catch_scope_
 
Nodeoutermost_handler_
 
CatchScopecatch_scope_
 

Private Attributes

JSHeapBrokerbroker_
 
JSGraphjsgraph_
 
SetOncePointer< Operator const > to_number_operator_
 

Friends

class CatchScope
 

Detailed Description

Definition at line 952 of file graph-assembler.h.

Member Typedef Documentation

◆ NodeGenerator0

Definition at line 1220 of file graph-assembler.h.

◆ VoidGenerator0

Definition at line 1243 of file graph-assembler.h.

Constructor & Destructor Documentation

◆ JSGraphAssembler()

v8::internal::compiler::JSGraphAssembler::JSGraphAssembler ( JSHeapBroker * broker,
JSGraph * jsgraph,
Zone * zone,
BranchSemantics branch_semantics,
std::optional< NodeChangedCallback > node_changed_callback = std::nullopt,
bool mark_loop_exits = false )
inline

Definition at line 956 of file graph-assembler.h.

Member Function Documentation

◆ Allocate()

Node * v8::internal::compiler::JSGraphAssembler::Allocate ( AllocationType allocation,
Node * size )

Definition at line 300 of file graph-assembler.cc.

Here is the call graph for this function:

◆ ArrayBufferDetachedBit()

TNode< Word32T > v8::internal::compiler::JSGraphAssembler::ArrayBufferDetachedBit ( TNode< HeapObject > buffer)

Definition at line 958 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ArrayBufferViewByteLength()

TNode< Number > v8::internal::compiler::JSGraphAssembler::ArrayBufferViewByteLength ( TNode< JSArrayBufferView > array_buffer_view,
InstanceType instance_type,
std::set< ElementsKind > elements_kinds_candidates,
TNode< Context > context )

Definition at line 947 of file graph-assembler.cc.

Here is the call graph for this function:

◆ ArrayBufferViewDetachedBit()

TNode< Word32T > v8::internal::compiler::JSGraphAssembler::ArrayBufferViewDetachedBit ( TNode< JSArrayBufferView > array_buffer_view)

Definition at line 967 of file graph-assembler.cc.

Here is the call graph for this function:

◆ Assert() [1/2]

Node * v8::internal::compiler::JSGraphAssembler::Assert ( Node * cond,
const char * condition_string = "",
const char * file = "",
int line = -1 )

Definition at line 503 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Assert() [2/2]

void v8::internal::compiler::JSGraphAssembler::Assert ( TNode< Word32T > cond,
const char * condition_string = "",
const char * file = "",
int line = -1 )

Definition at line 510 of file graph-assembler.cc.

Here is the call graph for this function:

◆ BooleanNot()

Node * v8::internal::compiler::JSGraphAssembler::BooleanNot ( Node * cond)

Definition at line 476 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ broker()

JSHeapBroker * v8::internal::compiler::JSGraphAssembler::broker ( ) const
inline

Definition at line 1096 of file graph-assembler.h.

Here is the caller graph for this function:

◆ catch_scope()

CatchScope * v8::internal::compiler::JSGraphAssembler::catch_scope ( ) const
inline

Definition at line 1217 of file graph-assembler.h.

Here is the caller graph for this function:

◆ CEntryStubConstant()

Node * v8::internal::compiler::JSGraphAssembler::CEntryStubConstant ( int result_size)

Definition at line 134 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Chained()

Node * v8::internal::compiler::JSGraphAssembler::Chained ( const Operator * op,
Node * input )

Definition at line 1049 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CheckIf()

Node * v8::internal::compiler::JSGraphAssembler::CheckIf ( Node * cond,
DeoptimizeReason reason,
const FeedbackSource & feedback = {} )

Definition at line 497 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CheckIfTypedArrayWasDetachedOrOutOfBounds()

void v8::internal::compiler::JSGraphAssembler::CheckIfTypedArrayWasDetachedOrOutOfBounds ( TNode< JSTypedArray > typed_array,
std::set< ElementsKind > elements_kinds_candidates,
const FeedbackSource & feedback )

Definition at line 984 of file graph-assembler.cc.

Here is the call graph for this function:

◆ CheckNumber()

Node * v8::internal::compiler::JSGraphAssembler::CheckNumber ( Node * value,
const FeedbackSource & feedback = {} )

Definition at line 491 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CheckNumberFitsInt32()

Node * v8::internal::compiler::JSGraphAssembler::CheckNumberFitsInt32 ( Node * value,
const FeedbackSource & feedback = {} )

Definition at line 485 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CheckSmi()

Node * v8::internal::compiler::JSGraphAssembler::CheckSmi ( Node * value,
const FeedbackSource & feedback = {} )

Definition at line 480 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ClearPendingMessage()

Node * v8::internal::compiler::JSGraphAssembler::ClearPendingMessage ( )

Definition at line 338 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Constant()

TNode< Object > v8::internal::compiler::JSGraphAssembler::Constant ( ObjectRef ref)

Definition at line 111 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConvertTaggedHoleToUndefined()

TNode< Object > v8::internal::compiler::JSGraphAssembler::ConvertTaggedHoleToUndefined ( TNode< Object > value)

Definition at line 526 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DoubleArrayMax()

TNode< Object > v8::internal::compiler::JSGraphAssembler::DoubleArrayMax ( TNode< JSArray > array)

Definition at line 544 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DoubleArrayMin()

TNode< Object > v8::internal::compiler::JSGraphAssembler::DoubleArrayMin ( TNode< JSArray > array)

Definition at line 549 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ EnterMachineGraph()

template<typename T , typename U >
TNode< T > v8::internal::compiler::JSGraphAssembler::EnterMachineGraph ( TNode< U > input,
UseInfo use_info )
inline

Definition at line 1105 of file graph-assembler.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExitMachineGraph()

template<typename T , typename U >
TNode< T > v8::internal::compiler::JSGraphAssembler::ExitMachineGraph ( TNode< U > input,
MachineRepresentation output_representation,
Type output_type )
inline

Definition at line 1112 of file graph-assembler.h.

Here is the caller graph for this function:

◆ HeapConstant()

TNode< HeapObject > v8::internal::compiler::JSGraphAssembler::HeapConstant ( Handle< HeapObject > object)

Definition at line 106 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ If()

IfBuilder0 v8::internal::compiler::JSGraphAssembler::If ( TNode< Boolean > cond)
inline

Definition at line 1321 of file graph-assembler.h.

Here is the caller graph for this function:

◆ IfNot()

IfBuilder0 v8::internal::compiler::JSGraphAssembler::IfNot ( TNode< Boolean > cond)
inline

Definition at line 1322 of file graph-assembler.h.

Here is the caller graph for this function:

◆ isolate()

Isolate * v8::internal::compiler::JSGraphAssembler::isolate ( ) const
inline

Definition at line 1098 of file graph-assembler.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ javascript()

JSOperatorBuilder * v8::internal::compiler::JSGraphAssembler::javascript ( ) const
inline

Definition at line 1102 of file graph-assembler.h.

Here is the caller graph for this function:

◆ JSCallRuntime1()

TNode< Object > v8::internal::compiler::JSGraphAssembler::JSCallRuntime1 ( Runtime::FunctionId function_id,
TNode< Object > arg0,
TNode< Context > context,
std::optional< FrameState > frame_state,
Operator::Properties properties = Operator::kNoProperties )

Definition at line 1021 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ JSCallRuntime2()

TNode< Object > v8::internal::compiler::JSGraphAssembler::JSCallRuntime2 ( Runtime::FunctionId function_id,
TNode< Object > arg0,
TNode< Object > arg1,
TNode< Context > context,
FrameState frame_state )

Definition at line 1037 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ jsgraph()

JSGraph * v8::internal::compiler::JSGraphAssembler::jsgraph ( ) const
inline

Definition at line 1097 of file graph-assembler.h.

Here is the caller graph for this function:

◆ LoadElement() [1/2]

Node * v8::internal::compiler::JSGraphAssembler::LoadElement ( ElementAccess const & access,
Node * object,
Node * index )

Definition at line 325 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LoadElement() [2/2]

template<typename T >
TNode< T > v8::internal::compiler::JSGraphAssembler::LoadElement ( ElementAccess const & access,
TNode< HeapObject > object,
TNode< Number > index )
inline

Definition at line 998 of file graph-assembler.h.

◆ LoadElementsKind()

TNode< Uint32T > v8::internal::compiler::JSGraphAssembler::LoadElementsKind ( TNode< Map > map)

Definition at line 316 of file graph-assembler.cc.

Here is the call graph for this function:

◆ LoadField() [1/2]

Node * v8::internal::compiler::JSGraphAssembler::LoadField ( FieldAccess const & access,
Node * object )

Definition at line 310 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LoadField() [2/2]

template<typename T >
TNode< T > v8::internal::compiler::JSGraphAssembler::LoadField ( FieldAccess const & access,
TNode< HeapObject > object )
inline

Definition at line 989 of file graph-assembler.h.

◆ LoadMap()

TNode< Map > v8::internal::compiler::JSGraphAssembler::LoadMap ( TNode< HeapObject > object)

Definition at line 306 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ LookupByteShiftForElementsKind()

TNode< Uint32T > v8::internal::compiler::JSGraphAssembler::LookupByteShiftForElementsKind ( TNode< Uint32T > elements_kind)

Definition at line 999 of file graph-assembler.cc.

Here is the call graph for this function:

◆ LookupByteSizeForElementsKind()

TNode< Uint32T > v8::internal::compiler::JSGraphAssembler::LookupByteSizeForElementsKind ( TNode< Uint32T > elements_kind)

Definition at line 1010 of file graph-assembler.cc.

Here is the call graph for this function:

◆ MachineSelect()

template<typename T >
TNode< T > v8::internal::compiler::JSGraphAssembler::MachineSelect ( TNode< Word32T > cond,
TNode< T > true_value,
TNode< T > false_value,
BranchHint hint = BranchHint::kNone )
inline

Definition at line 1414 of file graph-assembler.h.

◆ MachineSelectIf()

template<typename T >
IfBuilder1< T, Word32T > v8::internal::compiler::JSGraphAssembler::MachineSelectIf ( TNode< Word32T > cond)
inline

Definition at line 1410 of file graph-assembler.h.

◆ MaybeGrowFastElements()

TNode< FixedArrayBase > v8::internal::compiler::JSGraphAssembler::MaybeGrowFastElements ( ElementsKind kind,
const FeedbackSource & feedback,
TNode< JSArray > array,
TNode< FixedArrayBase > elements,
TNode< Number > new_length,
TNode< Number > old_length )

Definition at line 532 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ MayThrow()

TNode< Object > v8::internal::compiler::JSGraphAssembler::MayThrow ( const NodeGenerator0 & body)
inline

Definition at line 1225 of file graph-assembler.h.

Here is the caller graph for this function:

◆ NumberAdd()

TNode< Number > v8::internal::compiler::JSGraphAssembler::NumberAdd ( TNode< Number > lhs,
TNode< Number > rhs )

Definition at line 414 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NumberBitwiseAnd()

TNode< Number > v8::internal::compiler::JSGraphAssembler::NumberBitwiseAnd ( TNode< Number > lhs,
TNode< Number > rhs )

Definition at line 443 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NumberBitwiseOr()

TNode< Number > v8::internal::compiler::JSGraphAssembler::NumberBitwiseOr ( TNode< Number > lhs,
TNode< Number > rhs )

Definition at line 449 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NumberConstant()

TNode< Number > v8::internal::compiler::JSGraphAssembler::NumberConstant ( double value)

Definition at line 116 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NumberDivide()

TNode< Number > v8::internal::compiler::JSGraphAssembler::NumberDivide ( TNode< Number > lhs,
TNode< Number > rhs )

◆ NumberEqual()

TNode< Boolean > v8::internal::compiler::JSGraphAssembler::NumberEqual ( TNode< Number > lhs,
TNode< Number > rhs )

Definition at line 398 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NumberFloor()

TNode< Number > v8::internal::compiler::JSGraphAssembler::NumberFloor ( TNode< Number > value)

◆ NumberIsFloat64Hole()

TNode< Boolean > v8::internal::compiler::JSGraphAssembler::NumberIsFloat64Hole ( TNode< Number > value)

Definition at line 517 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NumberLessThan()

TNode< Boolean > v8::internal::compiler::JSGraphAssembler::NumberLessThan ( TNode< Number > lhs,
TNode< Number > rhs )

Definition at line 425 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NumberLessThanOrEqual()

TNode< Boolean > v8::internal::compiler::JSGraphAssembler::NumberLessThanOrEqual ( TNode< Number > lhs,
TNode< Number > rhs )

Definition at line 431 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NumberMax()

TNode< Number > v8::internal::compiler::JSGraphAssembler::NumberMax ( TNode< Number > lhs,
TNode< Number > rhs )

Definition at line 409 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NumberMin()

TNode< Number > v8::internal::compiler::JSGraphAssembler::NumberMin ( TNode< Number > lhs,
TNode< Number > rhs )

Definition at line 404 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NumberShiftRightLogical()

TNode< Number > v8::internal::compiler::JSGraphAssembler::NumberShiftRightLogical ( TNode< Number > lhs,
TNode< Number > rhs )

Definition at line 437 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NumberSubtract()

TNode< Number > v8::internal::compiler::JSGraphAssembler::NumberSubtract ( TNode< Number > lhs,
TNode< Number > rhs )

Definition at line 419 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ObjectIsCallable()

TNode< Boolean > v8::internal::compiler::JSGraphAssembler::ObjectIsCallable ( TNode< Object > value)

Definition at line 462 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ObjectIsSmi()

TNode< Boolean > v8::internal::compiler::JSGraphAssembler::ObjectIsSmi ( TNode< Object > value)

Definition at line 467 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ObjectIsUndetectable()

TNode< Boolean > v8::internal::compiler::JSGraphAssembler::ObjectIsUndetectable ( TNode< Object > value)

Definition at line 471 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ outermost_handler()

Node * v8::internal::compiler::JSGraphAssembler::outermost_handler ( ) const
inline

Definition at line 1218 of file graph-assembler.h.

Here is the caller graph for this function:

◆ PlainPrimitiveToNumber()

TNode< Number > v8::internal::compiler::JSGraphAssembler::PlainPrimitiveToNumber ( TNode< Object > value)

Definition at line 1182 of file graph-assembler.cc.

Here is the call graph for this function:

◆ PlainPrimitiveToNumberOperator()

Operator const * v8::internal::compiler::JSGraphAssembler::PlainPrimitiveToNumberOperator ( )
protected

Definition at line 1330 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReferenceEqual()

TNode< Boolean > v8::internal::compiler::JSGraphAssembler::ReferenceEqual ( TNode< Object > lhs,
TNode< Object > rhs )

Definition at line 392 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SelectIf()

template<typename T >
IfBuilder1< T, Boolean > v8::internal::compiler::JSGraphAssembler::SelectIf ( TNode< Boolean > cond)
inline

Definition at line 1402 of file graph-assembler.h.

Here is the caller graph for this function:

◆ SelectIfNot()

template<typename T >
IfBuilder1< T, Boolean > v8::internal::compiler::JSGraphAssembler::SelectIfNot ( TNode< Boolean > cond)
inline

Definition at line 1406 of file graph-assembler.h.

◆ simplified()

SimplifiedOperatorBuilder * v8::internal::compiler::JSGraphAssembler::simplified ( )
inlineoverridevirtual

Reimplemented from v8::internal::compiler::GraphAssembler.

Definition at line 1099 of file graph-assembler.h.

Here is the caller graph for this function:

◆ SmiConstant()

TNode< Smi > v8::internal::compiler::JSGraphAssembler::SmiConstant ( int32_t value)

Definition at line 97 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ StoreElement()

Node * v8::internal::compiler::JSGraphAssembler::StoreElement ( ElementAccess const & access,
Node * object,
Node * index,
Node * value )

Definition at line 371 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ StoreField()

Node * v8::internal::compiler::JSGraphAssembler::StoreField ( FieldAccess const & access,
Node * object,
Node * value )

Definition at line 332 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ StringCharCodeAt()

Node * v8::internal::compiler::JSGraphAssembler::StringCharCodeAt ( TNode< String > string,
TNode< Number > position )

Definition at line 554 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ StringFromSingleCharCode()

TNode< String > v8::internal::compiler::JSGraphAssembler::StringFromSingleCharCode ( TNode< Number > code)

Definition at line 560 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ StringLength()

TNode< Number > v8::internal::compiler::JSGraphAssembler::StringLength ( TNode< String > string)

Definition at line 387 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ StringSubstring()

TNode< String > v8::internal::compiler::JSGraphAssembler::StringSubstring ( TNode< String > string,
TNode< Number > from,
TNode< Number > to )

Definition at line 455 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ToBoolean()

TNode< Boolean > v8::internal::compiler::JSGraphAssembler::ToBoolean ( TNode< Object > value)

Definition at line 522 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TransitionAndStoreElement()

void v8::internal::compiler::JSGraphAssembler::TransitionAndStoreElement ( MapRef double_map,
MapRef fast_map,
TNode< HeapObject > object,
TNode< Number > index,
TNode< Object > value )

Definition at line 377 of file graph-assembler.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ TypedArrayLength()

TNode< Number > v8::internal::compiler::JSGraphAssembler::TypedArrayLength ( TNode< JSTypedArray > typed_array,
std::set< ElementsKind > elements_kinds_candidates,
TNode< Context > context )

Definition at line 974 of file graph-assembler.cc.

Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ CatchScope

friend class CatchScope
friend

Definition at line 1435 of file graph-assembler.h.

Member Data Documentation

◆ broker_

JSHeapBroker* v8::internal::compiler::JSGraphAssembler::broker_
private

Definition at line 1427 of file graph-assembler.h.

◆ catch_scope_

CatchScope* v8::internal::compiler::JSGraphAssembler::catch_scope_
protected

Definition at line 1434 of file graph-assembler.h.

◆ jsgraph_

JSGraph* v8::internal::compiler::JSGraphAssembler::jsgraph_
private

Definition at line 1428 of file graph-assembler.h.

◆ outermost_catch_scope_

CatchScope v8::internal::compiler::JSGraphAssembler::outermost_catch_scope_
protected

Definition at line 1432 of file graph-assembler.h.

◆ outermost_handler_

Node* v8::internal::compiler::JSGraphAssembler::outermost_handler_
protected

Definition at line 1433 of file graph-assembler.h.

◆ to_number_operator_

SetOncePointer<Operator const> v8::internal::compiler::JSGraphAssembler::to_number_operator_
private

Definition at line 1429 of file graph-assembler.h.


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