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

#include <maglev-interpreter-frame-state.h>

Collaboration diagram for v8::internal::maglev::MergePointInterpreterFrameState:

Classes

class  Alternatives
 
struct  LoopMetadata
 

Public Types

enum class  BasicBlockType { kDefault , kLoopHeader , kExceptionHandlerStart , kUnusedExceptionHandlerStart }
 

Public Member Functions

void Merge (MaglevGraphBuilder *graph_builder, InterpreterFrameState &unmerged, BasicBlock *predecessor)
 
void Merge (MaglevGraphBuilder *graph_builder, MaglevCompilationUnit &compilation_unit, InterpreterFrameState &unmerged, BasicBlock *predecessor)
 
void InitializeLoop (MaglevGraphBuilder *graph_builder, MaglevCompilationUnit &compilation_unit, InterpreterFrameState &unmerged, BasicBlock *predecessor, bool optimistic_initial_state=false, LoopEffects *loop_effects=nullptr)
 
void InitializeWithBasicBlock (BasicBlock *current_block)
 
void MergeLoop (MaglevGraphBuilder *graph_builder, InterpreterFrameState &loop_end_state, BasicBlock *loop_end_block)
 
void MergeLoop (MaglevGraphBuilder *graph_builder, MaglevCompilationUnit &compilation_unit, InterpreterFrameState &loop_end_state, BasicBlock *loop_end_block)
 
void set_loop_effects (LoopEffects *loop_effects)
 
const LoopEffectsloop_effects ()
 
bool TryMergeLoop (MaglevGraphBuilder *graph_builder, InterpreterFrameState &loop_end_state, const std::function< BasicBlock *()> &FinishBlock)
 
void MergeThrow (MaglevGraphBuilder *handler_builder, const MaglevCompilationUnit *handler_unit, const KnownNodeAspects &known_node_aspects, const VirtualObjectList virtual_objects)
 
void MergeDead (const MaglevCompilationUnit &compilation_unit, unsigned num=1)
 
void clear_is_loop ()
 
void MergeDeadLoop (const MaglevCompilationUnit &compilation_unit)
 
void TurnLoopIntoRegularBlock ()
 
void RemovePredecessorAt (int predecessor_id)
 
KnownNodeAspectsTakeKnownNodeAspects ()
 
KnownNodeAspectsCloneKnownNodeAspects (Zone *zone)
 
const CompactInterpreterFrameStateframe_state () const
 
MergePointRegisterStateregister_state ()
 
bool has_phi () const
 
Phi::Listphis ()
 
uint32_t predecessor_count () const
 
uint32_t predecessors_so_far () const
 
BasicBlockpredecessor_at (int i) const
 
void set_predecessor_at (int i, BasicBlock *val)
 
void set_virtual_objects (const VirtualObjectList &vos)
 
void PrintVirtualObjects (const MaglevCompilationUnit &info, VirtualObjectList from_ifs, const char *prelude=nullptr)
 
bool is_loop () const
 
bool exception_handler_was_used () const
 
bool is_exception_handler () const
 
bool is_unmerged_loop () const
 
bool is_unmerged_unreachable_loop () const
 
bool IsUnreachableByForwardEdge () const
 
BasicBlockType basic_block_type () const
 
bool is_resumable_loop () const
 
bool is_loop_with_peeled_iteration () const
 
int merge_offset () const
 
DeoptFramebackedge_deopt_frame () const
 
const compiler::LoopInfoloop_info () const
 
void ClearLoopInfo ()
 
bool HasLoopInfo () const
 
interpreter::Register catch_block_context_register () const
 

Static Public Member Functions

static MergePointInterpreterFrameStateNew (const MaglevCompilationUnit &info, const InterpreterFrameState &state, int merge_offset, int predecessor_count, BasicBlock *predecessor, const compiler::BytecodeLivenessState *liveness)
 
static MergePointInterpreterFrameStateNewForLoop (const InterpreterFrameState &start_state, const MaglevCompilationUnit &info, int merge_offset, int predecessor_count, const compiler::BytecodeLivenessState *liveness, const compiler::LoopInfo *loop_info, bool has_been_peeled=false)
 
static MergePointInterpreterFrameStateNewForCatchBlock (const MaglevCompilationUnit &unit, const compiler::BytecodeLivenessState *liveness, int handler_offset, bool was_used, interpreter::Register context_register, Graph *graph)
 

Private Types

using kBasicBlockTypeBits = base::BitField<BasicBlockType, 0, 2>
 
using kIsResumableLoopBit = kBasicBlockTypeBits::Next<bool, 1>
 
using kIsLoopWithPeeledIterationBit = kIsResumableLoopBit::Next<bool, 1>
 

Private Member Functions

NodeType AlternativeType (const Alternatives *alt)
 
 MergePointInterpreterFrameState (const MaglevCompilationUnit &info, int merge_offset, int predecessor_count, int predecessors_so_far, BasicBlock **predecessors, BasicBlockType type, const compiler::BytecodeLivenessState *liveness)
 
void MergePhis (MaglevGraphBuilder *builder, MaglevCompilationUnit &compilation_unit, InterpreterFrameState &unmerged, BasicBlock *predecessor, bool optimistic_loop_phis)
 
void MergeVirtualObjects (MaglevGraphBuilder *builder, MaglevCompilationUnit &compilation_unit, InterpreterFrameState &unmerged, BasicBlock *predecessor)
 
ValueNodeMergeValue (const MaglevGraphBuilder *graph_builder, interpreter::Register owner, const KnownNodeAspects &unmerged_aspects, ValueNode *merged, ValueNode *unmerged, Alternatives::List *per_predecessor_alternatives, bool optimistic_loop_phis=false)
 
void ReducePhiPredecessorCount (unsigned num)
 
void MergeVirtualObjects (MaglevGraphBuilder *builder, MaglevCompilationUnit &compilation_unit, const VirtualObjectList unmerged_vos, const KnownNodeAspects &unmerged_aspects)
 
void MergeVirtualObject (MaglevGraphBuilder *builder, const VirtualObjectList unmerged_vos, const KnownNodeAspects &unmerged_aspects, VirtualObject *merged, VirtualObject *unmerged)
 
std::optional< ValueNode * > MergeVirtualObjectValue (const MaglevGraphBuilder *graph_builder, const KnownNodeAspects &unmerged_aspects, ValueNode *merged, ValueNode *unmerged)
 
void MergeLoopValue (MaglevGraphBuilder *graph_builder, interpreter::Register owner, const KnownNodeAspects &unmerged_aspects, ValueNode *merged, ValueNode *unmerged)
 
ValueNodeNewLoopPhi (Zone *zone, interpreter::Register reg)
 
ValueNodeNewExceptionPhi (Zone *zone, interpreter::Register reg)
 

Private Attributes

int merge_offset_
 
uint32_t predecessor_count_
 
uint32_t predecessors_so_far_
 
uint32_t bitfield_
 
BasicBlock ** predecessors_
 
Phi::List phis_
 
CompactInterpreterFrameState frame_state_
 
MergePointRegisterState register_state_
 
KnownNodeAspectsknown_node_aspects_ = nullptr
 
union { 
 
   Alternatives::List *   per_predecessor_alternatives_ 
 
   DeoptFrame *   backedge_deopt_frame_ 
 
   interpreter::Register   catch_block_context_register_ 
 
};  
 
std::optional< LoopMetadataloop_metadata_ = std::nullopt
 

Friends

template<typename T , typename... Args>
TZone::New (Args &&... args)
 

Detailed Description

Definition at line 782 of file maglev-interpreter-frame-state.h.

Member Typedef Documentation

◆ kBasicBlockTypeBits

◆ kIsLoopWithPeeledIterationBit

◆ kIsResumableLoopBit

Member Enumeration Documentation

◆ BasicBlockType

Enumerator
kDefault 
kLoopHeader 
kExceptionHandlerStart 
kUnusedExceptionHandlerStart 

Definition at line 784 of file maglev-interpreter-frame-state.h.

Constructor & Destructor Documentation

◆ MergePointInterpreterFrameState()

v8::internal::maglev::MergePointInterpreterFrameState::MergePointInterpreterFrameState ( const MaglevCompilationUnit & info,
int merge_offset,
int predecessor_count,
int predecessors_so_far,
BasicBlock ** predecessors,
BasicBlockType type,
const compiler::BytecodeLivenessState * liveness )
private

Definition at line 469 of file maglev-interpreter-frame-state.cc.

Member Function Documentation

◆ AlternativeType()

NodeType v8::internal::maglev::MergePointInterpreterFrameState::AlternativeType ( const Alternatives * alt)
private

Definition at line 1059 of file maglev-interpreter-frame-state.cc.

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

◆ backedge_deopt_frame()

DeoptFrame * v8::internal::maglev::MergePointInterpreterFrameState::backedge_deopt_frame ( ) const
inline

Definition at line 979 of file maglev-interpreter-frame-state.h.

◆ basic_block_type()

BasicBlockType v8::internal::maglev::MergePointInterpreterFrameState::basic_block_type ( ) const
inline

Definition at line 965 of file maglev-interpreter-frame-state.h.

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

◆ catch_block_context_register()

interpreter::Register v8::internal::maglev::MergePointInterpreterFrameState::catch_block_context_register ( ) const
inline

Definition at line 991 of file maglev-interpreter-frame-state.h.

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

◆ clear_is_loop()

void v8::internal::maglev::MergePointInterpreterFrameState::clear_is_loop ( )
inline

Definition at line 856 of file maglev-interpreter-frame-state.h.

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

◆ ClearLoopInfo()

void v8::internal::maglev::MergePointInterpreterFrameState::ClearLoopInfo ( )
inline

Definition at line 986 of file maglev-interpreter-frame-state.h.

Here is the caller graph for this function:

◆ CloneKnownNodeAspects()

KnownNodeAspects * v8::internal::maglev::MergePointInterpreterFrameState::CloneKnownNodeAspects ( Zone * zone)
inline

Definition at line 891 of file maglev-interpreter-frame-state.h.

Here is the call graph for this function:

◆ exception_handler_was_used()

bool v8::internal::maglev::MergePointInterpreterFrameState::exception_handler_was_used ( ) const
inline

Definition at line 939 of file maglev-interpreter-frame-state.h.

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

◆ frame_state()

const CompactInterpreterFrameState & v8::internal::maglev::MergePointInterpreterFrameState::frame_state ( ) const
inline

Definition at line 895 of file maglev-interpreter-frame-state.h.

◆ has_phi()

bool v8::internal::maglev::MergePointInterpreterFrameState::has_phi ( ) const
inline

Definition at line 900 of file maglev-interpreter-frame-state.h.

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

◆ HasLoopInfo()

bool v8::internal::maglev::MergePointInterpreterFrameState::HasLoopInfo ( ) const
inline

Definition at line 987 of file maglev-interpreter-frame-state.h.

◆ InitializeLoop()

void v8::internal::maglev::MergePointInterpreterFrameState::InitializeLoop ( MaglevGraphBuilder * graph_builder,
MaglevCompilationUnit & compilation_unit,
InterpreterFrameState & unmerged,
BasicBlock * predecessor,
bool optimistic_initial_state = false,
LoopEffects * loop_effects = nullptr )

Definition at line 658 of file maglev-interpreter-frame-state.cc.

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

◆ InitializeWithBasicBlock()

void v8::internal::maglev::MergePointInterpreterFrameState::InitializeWithBasicBlock ( BasicBlock * current_block)

Definition at line 687 of file maglev-interpreter-frame-state.cc.

Here is the caller graph for this function:

◆ is_exception_handler()

bool v8::internal::maglev::MergePointInterpreterFrameState::is_exception_handler ( ) const
inline

Definition at line 944 of file maglev-interpreter-frame-state.h.

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

◆ is_loop()

bool v8::internal::maglev::MergePointInterpreterFrameState::is_loop ( ) const
inline

Definition at line 935 of file maglev-interpreter-frame-state.h.

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

◆ is_loop_with_peeled_iteration()

bool v8::internal::maglev::MergePointInterpreterFrameState::is_loop_with_peeled_iteration ( ) const
inline

Definition at line 973 of file maglev-interpreter-frame-state.h.

Here is the call graph for this function:

◆ is_resumable_loop()

bool v8::internal::maglev::MergePointInterpreterFrameState::is_resumable_loop ( ) const
inline

Definition at line 968 of file maglev-interpreter-frame-state.h.

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

◆ is_unmerged_loop()

bool v8::internal::maglev::MergePointInterpreterFrameState::is_unmerged_loop ( ) const
inline

Definition at line 949 of file maglev-interpreter-frame-state.h.

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

◆ is_unmerged_unreachable_loop()

bool v8::internal::maglev::MergePointInterpreterFrameState::is_unmerged_unreachable_loop ( ) const
inline

Definition at line 956 of file maglev-interpreter-frame-state.h.

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

◆ IsUnreachableByForwardEdge()

bool v8::internal::maglev::MergePointInterpreterFrameState::IsUnreachableByForwardEdge ( ) const

Definition at line 1392 of file maglev-interpreter-frame-state.cc.

Here is the call graph for this function:

◆ loop_effects()

const LoopEffects * v8::internal::maglev::MergePointInterpreterFrameState::loop_effects ( )

Definition at line 849 of file maglev-interpreter-frame-state.cc.

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

◆ loop_info()

const compiler::LoopInfo * v8::internal::maglev::MergePointInterpreterFrameState::loop_info ( ) const
inline

Definition at line 981 of file maglev-interpreter-frame-state.h.

◆ Merge() [1/2]

void v8::internal::maglev::MergePointInterpreterFrameState::Merge ( MaglevGraphBuilder * graph_builder,
InterpreterFrameState & unmerged,
BasicBlock * predecessor )

Definition at line 536 of file maglev-interpreter-frame-state.cc.

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

◆ Merge() [2/2]

void v8::internal::maglev::MergePointInterpreterFrameState::Merge ( MaglevGraphBuilder * graph_builder,
MaglevCompilationUnit & compilation_unit,
InterpreterFrameState & unmerged,
BasicBlock * predecessor )

Definition at line 694 of file maglev-interpreter-frame-state.cc.

Here is the call graph for this function:

◆ merge_offset()

int v8::internal::maglev::MergePointInterpreterFrameState::merge_offset ( ) const
inline

Definition at line 977 of file maglev-interpreter-frame-state.h.

◆ MergeDead()

void v8::internal::maglev::MergePointInterpreterFrameState::MergeDead ( const MaglevCompilationUnit & compilation_unit,
unsigned num = 1 )
inline

Definition at line 847 of file maglev-interpreter-frame-state.h.

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

◆ MergeDeadLoop()

void v8::internal::maglev::MergePointInterpreterFrameState::MergeDeadLoop ( const MaglevCompilationUnit & compilation_unit)
inline

Definition at line 864 of file maglev-interpreter-frame-state.h.

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

◆ MergeLoop() [1/2]

void v8::internal::maglev::MergePointInterpreterFrameState::MergeLoop ( MaglevGraphBuilder * graph_builder,
InterpreterFrameState & loop_end_state,
BasicBlock * loop_end_block )

Definition at line 718 of file maglev-interpreter-frame-state.cc.

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

◆ MergeLoop() [2/2]

void v8::internal::maglev::MergePointInterpreterFrameState::MergeLoop ( MaglevGraphBuilder * graph_builder,
MaglevCompilationUnit & compilation_unit,
InterpreterFrameState & loop_end_state,
BasicBlock * loop_end_block )

Definition at line 725 of file maglev-interpreter-frame-state.cc.

Here is the call graph for this function:

◆ MergeLoopValue()

void v8::internal::maglev::MergePointInterpreterFrameState::MergeLoopValue ( MaglevGraphBuilder * graph_builder,
interpreter::Register owner,
const KnownNodeAspects & unmerged_aspects,
ValueNode * merged,
ValueNode * unmerged )
private

Definition at line 1332 of file maglev-interpreter-frame-state.cc.

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

◆ MergePhis()

void v8::internal::maglev::MergePointInterpreterFrameState::MergePhis ( MaglevGraphBuilder * builder,
MaglevCompilationUnit & compilation_unit,
InterpreterFrameState & unmerged,
BasicBlock * predecessor,
bool optimistic_loop_phis )
private

Definition at line 542 of file maglev-interpreter-frame-state.cc.

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

◆ MergeThrow()

void v8::internal::maglev::MergePointInterpreterFrameState::MergeThrow ( MaglevGraphBuilder * handler_builder,
const MaglevCompilationUnit * handler_unit,
const KnownNodeAspects & known_node_aspects,
const VirtualObjectList virtual_objects )

Definition at line 855 of file maglev-interpreter-frame-state.cc.

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

◆ MergeValue()

ValueNode * v8::internal::maglev::MergePointInterpreterFrameState::MergeValue ( const MaglevGraphBuilder * graph_builder,
interpreter::Register owner,
const KnownNodeAspects & unmerged_aspects,
ValueNode * merged,
ValueNode * unmerged,
Alternatives::List * per_predecessor_alternatives,
bool optimistic_loop_phis = false )
private

Definition at line 1065 of file maglev-interpreter-frame-state.cc.

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

◆ MergeVirtualObject()

void v8::internal::maglev::MergePointInterpreterFrameState::MergeVirtualObject ( MaglevGraphBuilder * builder,
const VirtualObjectList unmerged_vos,
const KnownNodeAspects & unmerged_aspects,
VirtualObject * merged,
VirtualObject * unmerged )
private

Definition at line 559 of file maglev-interpreter-frame-state.cc.

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

◆ MergeVirtualObjects() [1/2]

void v8::internal::maglev::MergePointInterpreterFrameState::MergeVirtualObjects ( MaglevGraphBuilder * builder,
MaglevCompilationUnit & compilation_unit,
const VirtualObjectList unmerged_vos,
const KnownNodeAspects & unmerged_aspects )
private

Definition at line 594 of file maglev-interpreter-frame-state.cc.

Here is the call graph for this function:

◆ MergeVirtualObjects() [2/2]

void v8::internal::maglev::MergePointInterpreterFrameState::MergeVirtualObjects ( MaglevGraphBuilder * builder,
MaglevCompilationUnit & compilation_unit,
InterpreterFrameState & unmerged,
BasicBlock * predecessor )
private
Here is the caller graph for this function:

◆ MergeVirtualObjectValue()

std::optional< ValueNode * > v8::internal::maglev::MergePointInterpreterFrameState::MergeVirtualObjectValue ( const MaglevGraphBuilder * graph_builder,
const KnownNodeAspects & unmerged_aspects,
ValueNode * merged,
ValueNode * unmerged )
private

Definition at line 1250 of file maglev-interpreter-frame-state.cc.

Here is the call graph for this function:

◆ New()

MergePointInterpreterFrameState * v8::internal::maglev::MergePointInterpreterFrameState::New ( const MaglevCompilationUnit & info,
const InterpreterFrameState & state,
int merge_offset,
int predecessor_count,
BasicBlock * predecessor,
const compiler::BytecodeLivenessState * liveness )
static

Definition at line 355 of file maglev-interpreter-frame-state.cc.

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

◆ NewExceptionPhi()

ValueNode * v8::internal::maglev::MergePointInterpreterFrameState::NewExceptionPhi ( Zone * zone,
interpreter::Register reg )
inlineprivate

Definition at line 1074 of file maglev-interpreter-frame-state.h.

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

◆ NewForCatchBlock()

MergePointInterpreterFrameState * v8::internal::maglev::MergePointInterpreterFrameState::NewForCatchBlock ( const MaglevCompilationUnit & unit,
const compiler::BytecodeLivenessState * liveness,
int handler_offset,
bool was_used,
interpreter::Register context_register,
Graph * graph )
static

Definition at line 442 of file maglev-interpreter-frame-state.cc.

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

◆ NewForLoop()

MergePointInterpreterFrameState * v8::internal::maglev::MergePointInterpreterFrameState::NewForLoop ( const InterpreterFrameState & start_state,
const MaglevCompilationUnit & info,
int merge_offset,
int predecessor_count,
const compiler::BytecodeLivenessState * liveness,
const compiler::LoopInfo * loop_info,
bool has_been_peeled = false )
static

Definition at line 386 of file maglev-interpreter-frame-state.cc.

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

◆ NewLoopPhi()

ValueNode * v8::internal::maglev::MergePointInterpreterFrameState::NewLoopPhi ( Zone * zone,
interpreter::Register reg )
private

Definition at line 1367 of file maglev-interpreter-frame-state.cc.

Here is the call graph for this function:

◆ phis()

Phi::List * v8::internal::maglev::MergePointInterpreterFrameState::phis ( )
inline

Definition at line 901 of file maglev-interpreter-frame-state.h.

Here is the caller graph for this function:

◆ predecessor_at()

BasicBlock * v8::internal::maglev::MergePointInterpreterFrameState::predecessor_at ( int i) const
inline

Definition at line 907 of file maglev-interpreter-frame-state.h.

Here is the caller graph for this function:

◆ predecessor_count()

uint32_t v8::internal::maglev::MergePointInterpreterFrameState::predecessor_count ( ) const
inline

Definition at line 903 of file maglev-interpreter-frame-state.h.

Here is the caller graph for this function:

◆ predecessors_so_far()

uint32_t v8::internal::maglev::MergePointInterpreterFrameState::predecessors_so_far ( ) const
inline

Definition at line 905 of file maglev-interpreter-frame-state.h.

Here is the caller graph for this function:

◆ PrintVirtualObjects()

void v8::internal::maglev::MergePointInterpreterFrameState::PrintVirtualObjects ( const MaglevCompilationUnit & info,
VirtualObjectList from_ifs,
const char * prelude = nullptr )
inline

Definition at line 922 of file maglev-interpreter-frame-state.h.

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

◆ ReducePhiPredecessorCount()

void v8::internal::maglev::MergePointInterpreterFrameState::ReducePhiPredecessorCount ( unsigned num)
private

Definition at line 1382 of file maglev-interpreter-frame-state.cc.

Here is the caller graph for this function:

◆ register_state()

MergePointRegisterState & v8::internal::maglev::MergePointInterpreterFrameState::register_state ( )
inline

Definition at line 898 of file maglev-interpreter-frame-state.h.

Here is the caller graph for this function:

◆ RemovePredecessorAt()

void v8::internal::maglev::MergePointInterpreterFrameState::RemovePredecessorAt ( int predecessor_id)

Definition at line 1410 of file maglev-interpreter-frame-state.cc.

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

◆ set_loop_effects()

void v8::internal::maglev::MergePointInterpreterFrameState::set_loop_effects ( LoopEffects * loop_effects)

Definition at line 842 of file maglev-interpreter-frame-state.cc.

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

◆ set_predecessor_at()

void v8::internal::maglev::MergePointInterpreterFrameState::set_predecessor_at ( int i,
BasicBlock * val )
inline

Definition at line 912 of file maglev-interpreter-frame-state.h.

Here is the caller graph for this function:

◆ set_virtual_objects()

void v8::internal::maglev::MergePointInterpreterFrameState::set_virtual_objects ( const VirtualObjectList & vos)
inline

Definition at line 918 of file maglev-interpreter-frame-state.h.

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

◆ TakeKnownNodeAspects()

KnownNodeAspects * v8::internal::maglev::MergePointInterpreterFrameState::TakeKnownNodeAspects ( )
inline

Definition at line 886 of file maglev-interpreter-frame-state.h.

◆ TryMergeLoop()

bool v8::internal::maglev::MergePointInterpreterFrameState::TryMergeLoop ( MaglevGraphBuilder * graph_builder,
InterpreterFrameState & loop_end_state,
const std::function< BasicBlock *()> & FinishBlock )

Definition at line 767 of file maglev-interpreter-frame-state.cc.

Here is the call graph for this function:

◆ TurnLoopIntoRegularBlock()

void v8::internal::maglev::MergePointInterpreterFrameState::TurnLoopIntoRegularBlock ( )
inline

Definition at line 874 of file maglev-interpreter-frame-state.h.

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

Friends And Related Symbol Documentation

◆ Zone::New

template<typename T , typename... Args>
T * Zone::New ( Args &&... args)
friend

Member Data Documentation

◆ [union]

◆ backedge_deopt_frame_

DeoptFrame* v8::internal::maglev::MergePointInterpreterFrameState::backedge_deopt_frame_

Definition at line 1106 of file maglev-interpreter-frame-state.h.

◆ bitfield_

uint32_t v8::internal::maglev::MergePointInterpreterFrameState::bitfield_
private

Definition at line 1087 of file maglev-interpreter-frame-state.h.

◆ catch_block_context_register_

interpreter::Register v8::internal::maglev::MergePointInterpreterFrameState::catch_block_context_register_

Definition at line 1109 of file maglev-interpreter-frame-state.h.

◆ frame_state_

CompactInterpreterFrameState v8::internal::maglev::MergePointInterpreterFrameState::frame_state_
private

Definition at line 1093 of file maglev-interpreter-frame-state.h.

◆ known_node_aspects_

KnownNodeAspects* v8::internal::maglev::MergePointInterpreterFrameState::known_node_aspects_ = nullptr
private

Definition at line 1095 of file maglev-interpreter-frame-state.h.

◆ loop_metadata_

std::optional<LoopMetadata> v8::internal::maglev::MergePointInterpreterFrameState::loop_metadata_ = std::nullopt
private

Definition at line 1116 of file maglev-interpreter-frame-state.h.

◆ merge_offset_

int v8::internal::maglev::MergePointInterpreterFrameState::merge_offset_
private

Definition at line 1082 of file maglev-interpreter-frame-state.h.

◆ per_predecessor_alternatives_

Alternatives::List* v8::internal::maglev::MergePointInterpreterFrameState::per_predecessor_alternatives_

Definition at line 1100 of file maglev-interpreter-frame-state.h.

◆ phis_

Phi::List v8::internal::maglev::MergePointInterpreterFrameState::phis_
private

Definition at line 1091 of file maglev-interpreter-frame-state.h.

◆ predecessor_count_

uint32_t v8::internal::maglev::MergePointInterpreterFrameState::predecessor_count_
private

Definition at line 1084 of file maglev-interpreter-frame-state.h.

◆ predecessors_

BasicBlock** v8::internal::maglev::MergePointInterpreterFrameState::predecessors_
private

Definition at line 1089 of file maglev-interpreter-frame-state.h.

◆ predecessors_so_far_

uint32_t v8::internal::maglev::MergePointInterpreterFrameState::predecessors_so_far_
private

Definition at line 1085 of file maglev-interpreter-frame-state.h.

◆ register_state_

MergePointRegisterState v8::internal::maglev::MergePointInterpreterFrameState::register_state_
private

Definition at line 1094 of file maglev-interpreter-frame-state.h.


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