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

#include <graph-assembler.h>

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

Classes

class  BlockInlineReduction
 
class  LoopScope
 
class  RestoreEffectControlScope
 

Public Member Functions

 GraphAssembler (MachineGraph *jsgraph, Zone *zone, BranchSemantics default_branch_semantics, std::optional< NodeChangedCallback > node_changed_callback=std::nullopt, bool mark_loop_exits=false)
 
virtual ~GraphAssembler ()
 
virtual SimplifiedOperatorBuildersimplified ()
 
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

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
 

Private Member Functions

template<typename... Vars>
void BranchImpl (BranchSemantics semantics, Node *condition, GraphAssemblerLabel< sizeof...(Vars)> *if_true, GraphAssemblerLabel< sizeof...(Vars)> *if_false, BranchHint hint, Vars...)
 

Private Attributes

Zonetemp_zone_
 
MachineGraphmcgraph_
 
BranchSemantics default_branch_semantics_
 
Nodeeffect_
 
Nodecontrol_
 
std::optional< NodeChangedCallbacknode_changed_callback_
 
ZoneVector< Reducer * > inline_reducers_
 
bool inline_reductions_blocked_
 
int loop_nesting_level_ = 0
 
ZoneVector< Node ** > loop_headers_
 
const bool mark_loop_exits_
 

Detailed Description

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

Constructor & Destructor Documentation

◆ GraphAssembler()

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 )

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

◆ ~GraphAssembler()

v8::internal::compiler::GraphAssembler::~GraphAssembler ( )
virtual

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

Member Function Documentation

◆ AdaptLocalArgument()

Node * v8::internal::compiler::GraphAssembler::AdaptLocalArgument ( Node * argument)

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

Here is the call graph for this function:

◆ AddClonedNode()

Node * v8::internal::compiler::GraphAssembler::AddClonedNode ( Node * node)
protected

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

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

◆ AddInlineReducer()

void v8::internal::compiler::GraphAssembler::AddInlineReducer ( Reducer * reducer)
inline

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

◆ AddNode() [1/2]

Node * v8::internal::compiler::GraphAssembler::AddNode ( Node * node)

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

Here is the call graph for this function:

◆ AddNode() [2/2]

template<typename T >
TNode< T > v8::internal::compiler::GraphAssembler::AddNode ( Node * node)
inline

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

◆ Bind()

template<size_t VarCount>
void v8::internal::compiler::GraphAssembler::Bind ( GraphAssemblerLabel< VarCount > * label)

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

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

◆ BitcastMaybeObjectToWord()

Node * v8::internal::compiler::GraphAssembler::BitcastMaybeObjectToWord ( Node * value)

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

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

◆ BitcastTaggedToWord()

Node * v8::internal::compiler::GraphAssembler::BitcastTaggedToWord ( Node * value)

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

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

◆ BitcastTaggedToWordForTagAndSmiBits()

Node * v8::internal::compiler::GraphAssembler::BitcastTaggedToWordForTagAndSmiBits ( Node * value)

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

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

◆ BitcastWordToTagged()

Node * v8::internal::compiler::GraphAssembler::BitcastWordToTagged ( Node * value)

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

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

◆ BitcastWordToTaggedSigned()

Node * v8::internal::compiler::GraphAssembler::BitcastWordToTaggedSigned ( Node * value)

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

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

◆ Branch()

template<typename... Vars>
void v8::internal::compiler::GraphAssembler::Branch ( Node * condition,
detail::GraphAssemblerLabelForVars< Vars... > * if_true,
detail::GraphAssemblerLabelForVars< Vars... > * if_false,
Vars... vars )

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

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

◆ BranchImpl()

template<typename... Vars>
void v8::internal::compiler::GraphAssembler::BranchImpl ( BranchSemantics semantics,
Node * condition,
GraphAssemblerLabel< sizeof...(Vars)> * if_true,
GraphAssemblerLabel< sizeof...(Vars)> * if_false,
BranchHint hint,
Vars... vars )
private

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

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

◆ BranchWithCriticalSafetyCheck()

void v8::internal::compiler::GraphAssembler::BranchWithCriticalSafetyCheck ( Node * condition,
GraphAssemblerLabel< 0u > * if_true,
GraphAssemblerLabel< 0u > * if_false )

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

Here is the call graph for this function:

◆ BranchWithHint()

template<typename... Vars>
void v8::internal::compiler::GraphAssembler::BranchWithHint ( Node * condition,
detail::GraphAssemblerLabelForVars< Vars... > * if_true,
detail::GraphAssemblerLabelForVars< Vars... > * if_false,
BranchHint hint,
Vars... vars )

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

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

◆ Call() [1/4]

TNode< Object > v8::internal::compiler::GraphAssembler::Call ( const CallDescriptor * call_descriptor,
int inputs_size,
Node ** inputs )

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

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

◆ Call() [2/4]

template<typename... Args>
TNode< Object > v8::internal::compiler::GraphAssembler::Call ( const CallDescriptor * call_descriptor,
Node * first_arg,
Args... args )

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

Here is the call graph for this function:

◆ Call() [3/4]

TNode< Object > v8::internal::compiler::GraphAssembler::Call ( const Operator * op,
int inputs_size,
Node ** inputs )

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

Here is the call graph for this function:

◆ Call() [4/4]

template<typename... Args>
TNode< Object > v8::internal::compiler::GraphAssembler::Call ( const Operator * op,
Node * first_arg,
Args... args )

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

Here is the call graph for this function:

◆ ChangeUint32ToUintPtr()

TNode< UintPtrT > v8::internal::compiler::GraphAssembler::ChangeUint32ToUintPtr ( SloppyTNode< Uint32T > value)

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

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

◆ Checkpoint()

Node * v8::internal::compiler::GraphAssembler::Checkpoint ( FrameState frame_state)

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

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

◆ common()

CommonOperatorBuilder * v8::internal::compiler::GraphAssembler::common ( ) const
inlineprotected

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

Here is the caller graph for this function:

◆ ConnectUnreachableToEnd()

void v8::internal::compiler::GraphAssembler::ConnectUnreachableToEnd ( )

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

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

◆ control()

Control v8::internal::compiler::GraphAssembler::control ( ) const
inline

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

◆ DebugBreak()

Node * v8::internal::compiler::GraphAssembler::DebugBreak ( )

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

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

◆ DeoptimizeIf()

Node * v8::internal::compiler::GraphAssembler::DeoptimizeIf ( DeoptimizeReason reason,
FeedbackSource const & feedback,
Node * condition,
Node * frame_state )

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

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

◆ DeoptimizeIfNot()

Node * v8::internal::compiler::GraphAssembler::DeoptimizeIfNot ( DeoptimizeReason reason,
FeedbackSource const & feedback,
Node * condition,
Node * frame_state )

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

Here is the call graph for this function:

◆ effect()

Effect v8::internal::compiler::GraphAssembler::effect ( ) const
inline

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

◆ ExternalConstant()

Node * v8::internal::compiler::GraphAssembler::ExternalConstant ( ExternalReference ref)

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

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

◆ Float64Constant()

Node * v8::internal::compiler::GraphAssembler::Float64Constant ( double value)

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

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

◆ Float64RoundDown()

Node * v8::internal::compiler::GraphAssembler::Float64RoundDown ( Node * value)

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

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

◆ Float64RoundTruncate()

Node * v8::internal::compiler::GraphAssembler::Float64RoundTruncate ( Node * value)

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

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

◆ Goto()

template<typename... Vars>
void v8::internal::compiler::GraphAssembler::Goto ( detail::GraphAssemblerLabelForVars< Vars... > * label,
Vars... vars )

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

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

◆ GotoIf() [1/2]

template<typename... Vars>
void v8::internal::compiler::GraphAssembler::GotoIf ( Node * condition,
detail::GraphAssemblerLabelForVars< Vars... > * label,
BranchHint hint,
Vars... vars )

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

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

◆ GotoIf() [2/2]

template<typename... Vars>
void v8::internal::compiler::GraphAssembler::GotoIf ( Node * condition,
detail::GraphAssemblerLabelForVars< Vars... > * label,
Vars... vars )

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

Here is the call graph for this function:

◆ GotoIfNot() [1/2]

template<typename... Vars>
void v8::internal::compiler::GraphAssembler::GotoIfNot ( Node * condition,
detail::GraphAssemblerLabelForVars< Vars... > * label,
BranchHint hint,
Vars... vars )

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

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

◆ GotoIfNot() [2/2]

template<typename... Vars>
void v8::internal::compiler::GraphAssembler::GotoIfNot ( Node * condition,
detail::GraphAssemblerLabelForVars< Vars... > * label,
Vars... vars )

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

Here is the call graph for this function:

◆ graph()

TFGraph * v8::internal::compiler::GraphAssembler::graph ( ) const
inlineprotected

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

◆ HasActiveBlock()

bool v8::internal::compiler::GraphAssembler::HasActiveBlock ( ) const
inline

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

◆ InitializeEffectControl()

void v8::internal::compiler::GraphAssembler::InitializeEffectControl ( Node * effect,
Node * control )

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

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

◆ Int32Constant()

Node * v8::internal::compiler::GraphAssembler::Int32Constant ( int32_t value)

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

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

◆ Int64Constant()

Node * v8::internal::compiler::GraphAssembler::Int64Constant ( int64_t value)

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

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

◆ IntPtrAdd()

Node * v8::internal::compiler::GraphAssembler::IntPtrAdd ( Node * a,
Node * b )

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

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

◆ IntPtrConstant()

Node * v8::internal::compiler::GraphAssembler::IntPtrConstant ( intptr_t value)

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

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

◆ IntPtrEqual()

Node * v8::internal::compiler::GraphAssembler::IntPtrEqual ( Node * left,
Node * right )

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

◆ IntPtrSub()

Node * v8::internal::compiler::GraphAssembler::IntPtrSub ( Node * a,
Node * b )

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

Here is the call graph for this function:

◆ Is64()

bool v8::internal::compiler::GraphAssembler::Is64 ( ) const
inlineconstexprprotected

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

Here is the caller graph for this function:

◆ IsolateField()

Node * v8::internal::compiler::GraphAssembler::IsolateField ( IsolateFieldId id)

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

Here is the call graph for this function:

◆ JSBranch()

template<typename... Vars>
void v8::internal::compiler::GraphAssembler::JSBranch ( TNode< Boolean > condition,
GraphAssemblerLabel< sizeof...(Vars)> * if_true,
GraphAssemblerLabel< sizeof...(Vars)> * if_false,
BranchHint hint,
Vars... vars )

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

Here is the call graph for this function:

◆ Load() [1/2]

Node * v8::internal::compiler::GraphAssembler::Load ( MachineType type,
Node * object,
int offset )

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

Here is the call graph for this function:

◆ Load() [2/2]

Node * v8::internal::compiler::GraphAssembler::Load ( MachineType type,
Node * object,
Node * offset )

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

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

◆ LoadFramePointer()

Node * v8::internal::compiler::GraphAssembler::LoadFramePointer ( )

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

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

◆ LoadHeapNumberValue()

Node * v8::internal::compiler::GraphAssembler::LoadHeapNumberValue ( Node * heap_number)

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

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

◆ LoadMap()

TNode< Map > v8::internal::compiler::GraphAssembler::LoadMap ( Node * object)

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

Here is the call graph for this function:

◆ LoadRootRegister()

Node * v8::internal::compiler::GraphAssembler::LoadRootRegister ( )

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

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

◆ LoadTrapOnNull()

Node * v8::internal::compiler::GraphAssembler::LoadTrapOnNull ( MachineType type,
Node * object,
Node * offset )

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

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

◆ LoadUnaligned()

Node * v8::internal::compiler::GraphAssembler::LoadUnaligned ( MachineType type,
Node * object,
Node * offset )

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

Here is the call graph for this function:

◆ machine()

MachineOperatorBuilder * v8::internal::compiler::GraphAssembler::machine ( ) const
inlineprotected

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

Here is the caller graph for this function:

◆ MachineBranch()

template<typename... Vars>
void v8::internal::compiler::GraphAssembler::MachineBranch ( TNode< Word32T > condition,
GraphAssemblerLabel< sizeof...(Vars)> * if_true,
GraphAssemblerLabel< sizeof...(Vars)> * if_false,
BranchHint hint,
Vars... vars )

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

Here is the call graph for this function:

◆ MakeDeferredLabel()

template<typename... Reps>
detail::GraphAssemblerLabelForReps< Reps... > v8::internal::compiler::GraphAssembler::MakeDeferredLabel ( Reps... reps)
inline

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

Here is the caller graph for this function:

◆ MakeLabel()

template<typename... Reps>
detail::GraphAssemblerLabelForReps< Reps... > v8::internal::compiler::GraphAssembler::MakeLabel ( Reps... reps)
inline

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

Here is the caller graph for this function:

◆ MakeLabelFor() [1/2]

GraphAssemblerDynamicLabel v8::internal::compiler::GraphAssembler::MakeLabelFor ( GraphAssemblerLabelType type,
base::SmallVector< MachineRepresentation, 4 > reps )
inline

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

◆ MakeLabelFor() [2/2]

template<typename... Reps>
detail::GraphAssemblerLabelForReps< Reps... > v8::internal::compiler::GraphAssembler::MakeLabelFor ( GraphAssemblerLabelType type,
Reps... reps )
inline

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

◆ MakeLoopLabel()

template<typename... Reps>
detail::GraphAssemblerLabelForReps< Reps... > v8::internal::compiler::GraphAssembler::MakeLoopLabel ( Reps... reps)
inline

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

Here is the caller graph for this function:

◆ mcgraph()

MachineGraph * v8::internal::compiler::GraphAssembler::mcgraph ( ) const
inlineprotected

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

Here is the caller graph for this function:

◆ MergeState()

template<typename... Vars>
void v8::internal::compiler::GraphAssembler::MergeState ( detail::GraphAssemblerLabelForVars< Vars... > * label,
Vars... vars )
protected

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

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

◆ Parameter()

Node * v8::internal::compiler::GraphAssembler::Parameter ( int index)

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

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

◆ Projection()

Node * v8::internal::compiler::GraphAssembler::Projection ( int index,
Node * value,
Node * ctrl = nullptr )

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

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

◆ ProtectedLoad()

Node * v8::internal::compiler::GraphAssembler::ProtectedLoad ( MachineType type,
Node * object,
Node * offset )

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

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

◆ ProtectedStore()

Node * v8::internal::compiler::GraphAssembler::ProtectedStore ( MachineRepresentation rep,
Node * object,
Node * offset,
Node * value )

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

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

◆ Reset()

void v8::internal::compiler::GraphAssembler::Reset ( )

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

Here is the caller graph for this function:

◆ Retain()

Node * v8::internal::compiler::GraphAssembler::Retain ( Node * buffer)

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

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

◆ RuntimeAbort()

void v8::internal::compiler::GraphAssembler::RuntimeAbort ( AbortReason reason)

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

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

◆ simplified()

virtual SimplifiedOperatorBuilder * v8::internal::compiler::GraphAssembler::simplified ( )
inlinevirtual

Reimplemented in v8::internal::compiler::JSGraphAssembler, and v8::internal::compiler::WasmGraphAssembler.

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

Here is the caller graph for this function:

◆ SmiLessThan()

Node * v8::internal::compiler::GraphAssembler::SmiLessThan ( Node * left,
Node * right )

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

◆ SmiSub()

Node * v8::internal::compiler::GraphAssembler::SmiSub ( Node * left,
Node * right )

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

◆ StackSlot()

TNode< RawPtrT > v8::internal::compiler::GraphAssembler::StackSlot ( int size,
int alignment,
bool is_tagged = false )

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

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

◆ start()

Node * v8::internal::compiler::GraphAssembler::start ( ) const
inline

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

Here is the caller graph for this function:

◆ Store() [1/2]

Node * v8::internal::compiler::GraphAssembler::Store ( StoreRepresentation rep,
Node * object,
int offset,
Node * value )

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

Here is the call graph for this function:

◆ Store() [2/2]

Node * v8::internal::compiler::GraphAssembler::Store ( StoreRepresentation rep,
Node * object,
Node * offset,
Node * value )

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

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

◆ StoreTrapOnNull()

Node * v8::internal::compiler::GraphAssembler::StoreTrapOnNull ( StoreRepresentation rep,
Node * object,
Node * offset,
Node * value )

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

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

◆ StoreUnaligned()

Node * v8::internal::compiler::GraphAssembler::StoreUnaligned ( MachineRepresentation rep,
Node * object,
Node * offset,
Node * value )

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

Here is the call graph for this function:

◆ TaggedEqual()

Node * v8::internal::compiler::GraphAssembler::TaggedEqual ( Node * left,
Node * right )

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

Here is the caller graph for this function:

◆ TailCall()

void v8::internal::compiler::GraphAssembler::TailCall ( const CallDescriptor * call_descriptor,
int inputs_size,
Node ** inputs )

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

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

◆ temp_zone()

Zone * v8::internal::compiler::GraphAssembler::temp_zone ( ) const
inlineprotected

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

Here is the caller graph for this function:

◆ TruncateFloat64ToInt64()

Node * v8::internal::compiler::GraphAssembler::TruncateFloat64ToInt64 ( Node * value,
TruncateKind kind )

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

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

◆ TypeGuard() [1/2]

Node * v8::internal::compiler::GraphAssembler::TypeGuard ( Type type,
Node * value )

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

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

◆ TypeGuard() [2/2]

template<typename T >
TNode< T > v8::internal::compiler::GraphAssembler::TypeGuard ( Type type,
TNode< T > value )
inline

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

◆ Uint32Constant()

TNode< Uint32T > v8::internal::compiler::GraphAssembler::Uint32Constant ( uint32_t value)

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

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

◆ Uint64Constant()

Node * v8::internal::compiler::GraphAssembler::Uint64Constant ( uint64_t value)

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

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

◆ UintPtrAdd()

TNode< UintPtrT > v8::internal::compiler::GraphAssembler::UintPtrAdd ( TNode< UintPtrT > left,
TNode< UintPtrT > right )

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

Here is the call graph for this function:

◆ UintPtrConstant()

TNode< UintPtrT > v8::internal::compiler::GraphAssembler::UintPtrConstant ( uintptr_t value)

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

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

◆ UintPtrDiv()

TNode< UintPtrT > v8::internal::compiler::GraphAssembler::UintPtrDiv ( TNode< UintPtrT > left,
TNode< UintPtrT > right )

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

Here is the call graph for this function:

◆ UintPtrLessThan()

TNode< BoolT > v8::internal::compiler::GraphAssembler::UintPtrLessThan ( TNode< UintPtrT > left,
TNode< UintPtrT > right )

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

◆ UintPtrLessThanOrEqual()

TNode< BoolT > v8::internal::compiler::GraphAssembler::UintPtrLessThanOrEqual ( TNode< UintPtrT > left,
TNode< UintPtrT > right )

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

◆ UintPtrSub()

TNode< UintPtrT > v8::internal::compiler::GraphAssembler::UintPtrSub ( TNode< UintPtrT > left,
TNode< UintPtrT > right )

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

Here is the call graph for this function:

◆ UniqueIntPtrConstant()

Node * v8::internal::compiler::GraphAssembler::UniqueIntPtrConstant ( intptr_t value)

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

Here is the call graph for this function:

◆ Unreachable()

Node * v8::internal::compiler::GraphAssembler::Unreachable ( )

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

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

◆ UnreachableWithoutConnectToEnd()

Node * v8::internal::compiler::GraphAssembler::UnreachableWithoutConnectToEnd ( )

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

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

◆ UpdateEffectControlWith()

V8_INLINE void v8::internal::compiler::GraphAssembler::UpdateEffectControlWith ( Node * node)
inline

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

Here is the caller graph for this function:

Member Data Documentation

◆ control_

Node* v8::internal::compiler::GraphAssembler::control_
private

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

◆ default_branch_semantics_

BranchSemantics v8::internal::compiler::GraphAssembler::default_branch_semantics_
private

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

◆ effect_

Node* v8::internal::compiler::GraphAssembler::effect_
private

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

◆ inline_reducers_

ZoneVector<Reducer*> v8::internal::compiler::GraphAssembler::inline_reducers_
private

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

◆ inline_reductions_blocked_

bool v8::internal::compiler::GraphAssembler::inline_reductions_blocked_
private

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

◆ loop_headers_

ZoneVector<Node**> v8::internal::compiler::GraphAssembler::loop_headers_
private

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

◆ loop_nesting_level_

int v8::internal::compiler::GraphAssembler::loop_nesting_level_ = 0
private

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

◆ mark_loop_exits_

const bool v8::internal::compiler::GraphAssembler::mark_loop_exits_
private

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

◆ mcgraph_

MachineGraph* v8::internal::compiler::GraphAssembler::mcgraph_
private

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

◆ node_changed_callback_

std::optional<NodeChangedCallback> v8::internal::compiler::GraphAssembler::node_changed_callback_
private

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

◆ temp_zone_

Zone* v8::internal::compiler::GraphAssembler::temp_zone_
private

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


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