#include <maglev-interpreter-frame-state.h>
|
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 LoopEffects * | loop_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) |
|
KnownNodeAspects * | TakeKnownNodeAspects () |
|
KnownNodeAspects * | CloneKnownNodeAspects (Zone *zone) |
|
const CompactInterpreterFrameState & | frame_state () const |
|
MergePointRegisterState & | register_state () |
|
bool | has_phi () const |
|
Phi::List * | phis () |
|
uint32_t | predecessor_count () const |
|
uint32_t | predecessors_so_far () const |
|
BasicBlock * | predecessor_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 |
|
DeoptFrame * | backedge_deopt_frame () const |
|
const compiler::LoopInfo * | loop_info () const |
|
void | ClearLoopInfo () |
|
bool | HasLoopInfo () const |
|
interpreter::Register | catch_block_context_register () const |
|
|
static MergePointInterpreterFrameState * | New (const MaglevCompilationUnit &info, const InterpreterFrameState &state, int merge_offset, int predecessor_count, BasicBlock *predecessor, const compiler::BytecodeLivenessState *liveness) |
|
static 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 MergePointInterpreterFrameState * | NewForCatchBlock (const MaglevCompilationUnit &unit, const compiler::BytecodeLivenessState *liveness, int handler_offset, bool was_used, interpreter::Register context_register, Graph *graph) |
|
|
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) |
|
ValueNode * | 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) |
|
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) |
|
ValueNode * | NewLoopPhi (Zone *zone, interpreter::Register reg) |
|
ValueNode * | NewExceptionPhi (Zone *zone, interpreter::Register reg) |
|
◆ kBasicBlockTypeBits
◆ kIsLoopWithPeeledIterationBit
◆ kIsResumableLoopBit
◆ BasicBlockType
◆ MergePointInterpreterFrameState()
◆ AlternativeType()
NodeType v8::internal::maglev::MergePointInterpreterFrameState::AlternativeType |
( |
const Alternatives * | alt | ) |
|
|
private |
◆ backedge_deopt_frame()
DeoptFrame * v8::internal::maglev::MergePointInterpreterFrameState::backedge_deopt_frame |
( |
| ) |
const |
|
inline |
◆ basic_block_type()
BasicBlockType v8::internal::maglev::MergePointInterpreterFrameState::basic_block_type |
( |
| ) |
const |
|
inline |
◆ catch_block_context_register()
interpreter::Register v8::internal::maglev::MergePointInterpreterFrameState::catch_block_context_register |
( |
| ) |
const |
|
inline |
◆ clear_is_loop()
void v8::internal::maglev::MergePointInterpreterFrameState::clear_is_loop |
( |
| ) |
|
|
inline |
◆ ClearLoopInfo()
void v8::internal::maglev::MergePointInterpreterFrameState::ClearLoopInfo |
( |
| ) |
|
|
inline |
◆ CloneKnownNodeAspects()
KnownNodeAspects * v8::internal::maglev::MergePointInterpreterFrameState::CloneKnownNodeAspects |
( |
Zone * | zone | ) |
|
|
inline |
◆ exception_handler_was_used()
bool v8::internal::maglev::MergePointInterpreterFrameState::exception_handler_was_used |
( |
| ) |
const |
|
inline |
◆ frame_state()
◆ has_phi()
bool v8::internal::maglev::MergePointInterpreterFrameState::has_phi |
( |
| ) |
const |
|
inline |
◆ HasLoopInfo()
bool v8::internal::maglev::MergePointInterpreterFrameState::HasLoopInfo |
( |
| ) |
const |
|
inline |
◆ InitializeLoop()
◆ InitializeWithBasicBlock()
void v8::internal::maglev::MergePointInterpreterFrameState::InitializeWithBasicBlock |
( |
BasicBlock * | current_block | ) |
|
◆ is_exception_handler()
bool v8::internal::maglev::MergePointInterpreterFrameState::is_exception_handler |
( |
| ) |
const |
|
inline |
◆ is_loop()
bool v8::internal::maglev::MergePointInterpreterFrameState::is_loop |
( |
| ) |
const |
|
inline |
◆ is_loop_with_peeled_iteration()
bool v8::internal::maglev::MergePointInterpreterFrameState::is_loop_with_peeled_iteration |
( |
| ) |
const |
|
inline |
◆ is_resumable_loop()
bool v8::internal::maglev::MergePointInterpreterFrameState::is_resumable_loop |
( |
| ) |
const |
|
inline |
◆ is_unmerged_loop()
bool v8::internal::maglev::MergePointInterpreterFrameState::is_unmerged_loop |
( |
| ) |
const |
|
inline |
◆ is_unmerged_unreachable_loop()
bool v8::internal::maglev::MergePointInterpreterFrameState::is_unmerged_unreachable_loop |
( |
| ) |
const |
|
inline |
◆ IsUnreachableByForwardEdge()
bool v8::internal::maglev::MergePointInterpreterFrameState::IsUnreachableByForwardEdge |
( |
| ) |
const |
◆ loop_effects()
const LoopEffects * v8::internal::maglev::MergePointInterpreterFrameState::loop_effects |
( |
| ) |
|
◆ loop_info()
const compiler::LoopInfo * v8::internal::maglev::MergePointInterpreterFrameState::loop_info |
( |
| ) |
const |
|
inline |
◆ Merge() [1/2]
◆ Merge() [2/2]
◆ merge_offset()
int v8::internal::maglev::MergePointInterpreterFrameState::merge_offset |
( |
| ) |
const |
|
inline |
◆ MergeDead()
void v8::internal::maglev::MergePointInterpreterFrameState::MergeDead |
( |
const MaglevCompilationUnit & | compilation_unit, |
|
|
unsigned | num = 1 ) |
|
inline |
◆ MergeDeadLoop()
void v8::internal::maglev::MergePointInterpreterFrameState::MergeDeadLoop |
( |
const MaglevCompilationUnit & | compilation_unit | ) |
|
|
inline |
◆ MergeLoop() [1/2]
◆ MergeLoop() [2/2]
◆ MergeLoopValue()
◆ MergePhis()
◆ MergeThrow()
◆ MergeValue()
◆ MergeVirtualObject()
◆ MergeVirtualObjects() [1/2]
◆ MergeVirtualObjects() [2/2]
◆ MergeVirtualObjectValue()
◆ New()
◆ NewExceptionPhi()
◆ NewForCatchBlock()
◆ NewForLoop()
◆ NewLoopPhi()
◆ phis()
Phi::List * v8::internal::maglev::MergePointInterpreterFrameState::phis |
( |
| ) |
|
|
inline |
◆ predecessor_at()
BasicBlock * v8::internal::maglev::MergePointInterpreterFrameState::predecessor_at |
( |
int | i | ) |
const |
|
inline |
◆ predecessor_count()
uint32_t v8::internal::maglev::MergePointInterpreterFrameState::predecessor_count |
( |
| ) |
const |
|
inline |
◆ predecessors_so_far()
uint32_t v8::internal::maglev::MergePointInterpreterFrameState::predecessors_so_far |
( |
| ) |
const |
|
inline |
◆ PrintVirtualObjects()
◆ ReducePhiPredecessorCount()
void v8::internal::maglev::MergePointInterpreterFrameState::ReducePhiPredecessorCount |
( |
unsigned | num | ) |
|
|
private |
◆ register_state()
◆ RemovePredecessorAt()
void v8::internal::maglev::MergePointInterpreterFrameState::RemovePredecessorAt |
( |
int | predecessor_id | ) |
|
◆ set_loop_effects()
void v8::internal::maglev::MergePointInterpreterFrameState::set_loop_effects |
( |
LoopEffects * | loop_effects | ) |
|
◆ set_predecessor_at()
void v8::internal::maglev::MergePointInterpreterFrameState::set_predecessor_at |
( |
int | i, |
|
|
BasicBlock * | val ) |
|
inline |
◆ set_virtual_objects()
void v8::internal::maglev::MergePointInterpreterFrameState::set_virtual_objects |
( |
const VirtualObjectList & | vos | ) |
|
|
inline |
◆ TakeKnownNodeAspects()
KnownNodeAspects * v8::internal::maglev::MergePointInterpreterFrameState::TakeKnownNodeAspects |
( |
| ) |
|
|
inline |
◆ TryMergeLoop()
◆ TurnLoopIntoRegularBlock()
void v8::internal::maglev::MergePointInterpreterFrameState::TurnLoopIntoRegularBlock |
( |
| ) |
|
|
inline |
◆ Zone::New
template<typename
T , typename... Args>
◆ [union]
◆ backedge_deopt_frame_
DeoptFrame* v8::internal::maglev::MergePointInterpreterFrameState::backedge_deopt_frame_ |
◆ bitfield_
uint32_t v8::internal::maglev::MergePointInterpreterFrameState::bitfield_ |
|
private |
◆ catch_block_context_register_
interpreter::Register v8::internal::maglev::MergePointInterpreterFrameState::catch_block_context_register_ |
◆ frame_state_
◆ known_node_aspects_
KnownNodeAspects* v8::internal::maglev::MergePointInterpreterFrameState::known_node_aspects_ = nullptr |
|
private |
◆ loop_metadata_
std::optional<LoopMetadata> v8::internal::maglev::MergePointInterpreterFrameState::loop_metadata_ = std::nullopt |
|
private |
◆ merge_offset_
int v8::internal::maglev::MergePointInterpreterFrameState::merge_offset_ |
|
private |
◆ per_predecessor_alternatives_
Alternatives::List* v8::internal::maglev::MergePointInterpreterFrameState::per_predecessor_alternatives_ |
◆ phis_
Phi::List v8::internal::maglev::MergePointInterpreterFrameState::phis_ |
|
private |
◆ predecessor_count_
uint32_t v8::internal::maglev::MergePointInterpreterFrameState::predecessor_count_ |
|
private |
◆ predecessors_
BasicBlock** v8::internal::maglev::MergePointInterpreterFrameState::predecessors_ |
|
private |
◆ predecessors_so_far_
uint32_t v8::internal::maglev::MergePointInterpreterFrameState::predecessors_so_far_ |
|
private |
◆ register_state_
The documentation for this class was generated from the following files: