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< Smi > SmiConstant (int32_t value)
 
TNode< HeapObject > HeapConstant (Handle< HeapObject > object)
 
TNode< Object > Constant (ObjectRef ref)
 
TNode< Number > NumberConstant (double value)
 
Node * CEntryStubConstant (int result_size)
 
Node * Allocate (AllocationType allocation, Node *size)
 
TNode< Map > LoadMap (TNode< HeapObject > object)
 
Node * LoadField (FieldAccess const &, Node *object)
 
template<typename T >
TNode< T > LoadField (FieldAccess const &access, TNode< HeapObject > object)
 
TNode< Uint32T > LoadElementsKind (TNode< Map > map)
 
Node * LoadElement (ElementAccess const &, Node *object, Node *index)
 
template<typename T >
TNode< T > LoadElement (ElementAccess const &access, TNode< HeapObject > object, TNode< Number > index)
 
Node * StoreField (FieldAccess const &, Node *object, Node *value)
 
Node * StoreElement (ElementAccess const &, Node *object, Node *index, Node *value)
 
Node * ClearPendingMessage ()
 
void TransitionAndStoreElement (MapRef double_map, MapRef fast_map, TNode< HeapObject > object, TNode< Number > index, TNode< Object > value)
 
TNode< Number > StringLength (TNode< String > string)
 
TNode< Boolean > ReferenceEqual (TNode< Object > lhs, TNode< Object > rhs)
 
TNode< Number > PlainPrimitiveToNumber (TNode< Object > value)
 
TNode< Number > NumberMin (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Number > NumberMax (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Boolean > NumberEqual (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Boolean > NumberLessThan (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Boolean > NumberLessThanOrEqual (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Number > NumberAdd (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Number > NumberSubtract (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Number > NumberShiftRightLogical (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Number > NumberBitwiseAnd (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Number > NumberBitwiseOr (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Number > NumberDivide (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Number > NumberFloor (TNode< Number > value)
 
TNode< String > StringSubstring (TNode< String > string, TNode< Number > from, TNode< Number > to)
 
TNode< Boolean > ObjectIsCallable (TNode< Object > value)
 
TNode< Boolean > ObjectIsSmi (TNode< Object > value)
 
TNode< Boolean > ObjectIsUndetectable (TNode< Object > value)
 
Node * BooleanNot (Node *cond)
 
Node * CheckSmi (Node *value, const FeedbackSource &feedback={})
 
Node * CheckNumber (Node *value, const FeedbackSource &feedback={})
 
Node * CheckNumberFitsInt32 (Node *value, const FeedbackSource &feedback={})
 
Node * CheckIf (Node *cond, DeoptimizeReason reason, const FeedbackSource &feedback={})
 
Node * Assert (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< Boolean > NumberIsFloat64Hole (TNode< Number > value)
 
TNode< Boolean > ToBoolean (TNode< Object > value)
 
TNode< Object > ConvertTaggedHoleToUndefined (TNode< Object > value)
 
TNode< FixedArrayBase > MaybeGrowFastElements (ElementsKind kind, const FeedbackSource &feedback, TNode< JSArray > array, TNode< FixedArrayBase > elements, TNode< Number > new_length, TNode< Number > old_length)
 
Node * StringCharCodeAt (TNode< String > string, TNode< Number > position)
 
TNode< String > StringFromSingleCharCode (TNode< Number > code)
 
TNode< Object > DoubleArrayMax (TNode< JSArray > array)
 
TNode< Object > DoubleArrayMin (TNode< JSArray > array)
 
TNode< Number > ArrayBufferViewByteLength (TNode< JSArrayBufferView > array_buffer_view, InstanceType instance_type, std::set< ElementsKind > elements_kinds_candidates, TNode< Context > context)
 
TNode< Word32T > ArrayBufferDetachedBit (TNode< HeapObject > buffer)
 
TNode< Word32T > ArrayBufferViewDetachedBit (TNode< JSArrayBufferView > array_buffer_view)
 
TNode< Number > TypedArrayLength (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< Uint32T > LookupByteShiftForElementsKind (TNode< Uint32T > elements_kind)
 
TNode< Uint32T > LookupByteSizeForElementsKind (TNode< Uint32T > elements_kind)
 
TNode< Object > JSCallRuntime1 (Runtime::FunctionId function_id, TNode< Object > arg0, TNode< Context > context, std::optional< FrameState > frame_state, Operator::Properties properties=Operator::kNoProperties)
 
TNode< Object > JSCallRuntime2 (Runtime::FunctionId function_id, TNode< Object > arg0, TNode< Object > arg1, TNode< Context > context, FrameState frame_state)
 
Node * Chained (const Operator *op, Node *input)
 
JSHeapBroker * broker () const
 
JSGraph * jsgraph () const
 
Isolate * isolate () const
 
SimplifiedOperatorBuilder * simplified () override
 
JSOperatorBuilder * javascript () const
 
template<typename T , typename U >
TNode< T > EnterMachineGraph (TNode< U > input, UseInfo use_info)
 
template<typename T , typename U >
TNode< T > ExitMachineGraph (TNode< U > input, MachineRepresentation output_representation, Type output_type)
 
CatchScope * catch_scope () const
 
Node * outermost_handler () const
 
TNode< Object > MayThrow (const NodeGenerator0 &body)
 
IfBuilder0 If (TNode< Boolean > cond)
 
IfBuilder0 IfNot (TNode< Boolean > cond)
 
template<typename T >
IfBuilder1< T, Boolean > SelectIf (TNode< Boolean > cond)
 
template<typename T >
IfBuilder1< T, Boolean > SelectIfNot (TNode< Boolean > cond)
 
template<typename T >
IfBuilder1< T, Word32T > MachineSelectIf (TNode< Word32T > cond)
 
template<typename T >
TNode< T > MachineSelect (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)
 
Node * IntPtrConstant (intptr_t value)
 
TNode< UintPtrT > UintPtrConstant (uintptr_t value)
 
Node * Int32Constant (int32_t value)
 
TNode< Uint32T > Uint32Constant (uint32_t value)
 
Node * Int64Constant (int64_t value)
 
Node * Uint64Constant (uint64_t value)
 
Node * UniqueIntPtrConstant (intptr_t value)
 
Node * Float64Constant (double value)
 
Node * ExternalConstant (ExternalReference ref)
 
Node * IsolateField (IsolateFieldId id)
 
Node * Projection (int index, Node *value, Node *ctrl=nullptr)
 
Node * Parameter (int index)
 
Node * LoadFramePointer ()
 
Node * LoadRootRegister ()
 
Node * LoadHeapNumberValue (Node *heap_number)
 
TNode< BoolT > UintPtrLessThan (TNode< UintPtrT > left, TNode< UintPtrT > right)
 
TNode< BoolT > UintPtrLessThanOrEqual (TNode< UintPtrT > left, TNode< UintPtrT > right)
 
TNode< UintPtrT > UintPtrAdd (TNode< UintPtrT > left, TNode< UintPtrT > right)
 
TNode< UintPtrT > UintPtrSub (TNode< UintPtrT > left, TNode< UintPtrT > right)
 
TNode< UintPtrT > UintPtrDiv (TNode< UintPtrT > left, TNode< UintPtrT > right)
 
TNode< UintPtrT > ChangeUint32ToUintPtr (SloppyTNode< Uint32T > value)
 
TNode< Map > LoadMap (Node *object)
 
Node * DebugBreak ()
 
Node * Unreachable ()
 
Node * UnreachableWithoutConnectToEnd ()
 
Node * IntPtrEqual (Node *left, Node *right)
 
Node * TaggedEqual (Node *left, Node *right)
 
Node * SmiSub (Node *left, Node *right)
 
Node * SmiLessThan (Node *left, Node *right)
 
Node * Float64RoundDown (Node *value)
 
Node * Float64RoundTruncate (Node *value)
 
Node * TruncateFloat64ToInt64 (Node *value, TruncateKind kind)
 
Node * BitcastWordToTagged (Node *value)
 
Node * BitcastWordToTaggedSigned (Node *value)
 
Node * BitcastTaggedToWord (Node *value)
 
Node * BitcastTaggedToWordForTagAndSmiBits (Node *value)
 
Node * BitcastMaybeObjectToWord (Node *value)
 
Node * TypeGuard (Type type, Node *value)
 
template<typename T >
TNode< T > TypeGuard (Type type, TNode< T > value)
 
Node * Checkpoint (FrameState frame_state)
 
TNode< RawPtrT > StackSlot (int size, int alignment, bool is_tagged=false)
 
Node * AdaptLocalArgument (Node *argument)
 
Node * Store (StoreRepresentation rep, Node *object, Node *offset, Node *value)
 
Node * Store (StoreRepresentation rep, Node *object, int offset, Node *value)
 
Node * Load (MachineType type, Node *object, Node *offset)
 
Node * Load (MachineType type, Node *object, int offset)
 
Node * StoreUnaligned (MachineRepresentation rep, Node *object, Node *offset, Node *value)
 
Node * LoadUnaligned (MachineType type, Node *object, Node *offset)
 
Node * ProtectedStore (MachineRepresentation rep, Node *object, Node *offset, Node *value)
 
Node * ProtectedLoad (MachineType type, Node *object, Node *offset)
 
Node * LoadTrapOnNull (MachineType type, Node *object, Node *offset)
 
Node * StoreTrapOnNull (StoreRepresentation rep, Node *object, Node *offset, Node *value)
 
Node * Retain (Node *buffer)
 
Node * IntPtrAdd (Node *a, Node *b)
 
Node * IntPtrSub (Node *a, Node *b)
 
Node * DeoptimizeIf (DeoptimizeReason reason, FeedbackSource const &feedback, Node *condition, Node *frame_state)
 
Node * DeoptimizeIfNot (DeoptimizeReason reason, FeedbackSource const &feedback, Node *condition, Node *frame_state)
 
TNode< Object > Call (const CallDescriptor *call_descriptor, int inputs_size, Node **inputs)
 
TNode< Object > Call (const Operator *op, int inputs_size, Node **inputs)
 
template<typename... Args>
TNode< Object > Call (const CallDescriptor *call_descriptor, Node *first_arg, Args... args)
 
template<typename... Args>
TNode< Object > Call (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)
 
Node * AddNode (Node *node)
 
template<typename T >
TNode< T > AddNode (Node *node)
 
void ConnectUnreachableToEnd ()
 
void AddInlineReducer (Reducer *reducer)
 
Control control () const
 
Effect effect () const
 
Node * start () 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 Node * AddClonedNode (Node *node)
 
MachineGraph * mcgraph () const
 
TFGraph * graph () const
 
Zone * temp_zone () const
 
CommonOperatorBuilder * common () const
 
MachineOperatorBuilder * machine () const
 

Protected Attributes

CatchScope outermost_catch_scope_
 
Node * outermost_handler_
 
CatchScope * catch_scope_
 

Private Attributes

JSHeapBroker * broker_
 
JSGraph * jsgraph_
 
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: