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

#include <maglev-pre-regalloc-codegen-processors.h>

Collaboration diagram for v8::internal::maglev::LiveRangeAndNextUseProcessor:

Classes

struct  LoopUsedNodes
 
struct  NodeUse
 

Public Member Functions

 LiveRangeAndNextUseProcessor (MaglevCompilationInfo *compilation_info, Graph *graph, RegallocInfo *regalloc_info)
 
void PreProcessGraph (Graph *graph)
 
void PostProcessGraph (Graph *graph)
 
void PostProcessBasicBlock (BasicBlock *block)
 
BlockProcessResult PreProcessBasicBlock (BasicBlock *block)
 
void PostPhiProcessing ()
 
template<typename NodeT >
ProcessResult Process (NodeT *node, const ProcessingState &state)
 
template<typename NodeT >
void MarkInputUses (NodeT *node, const ProcessingState &state)
 
void MarkInputUses (Phi *node, const ProcessingState &state)
 
void MarkInputUses (JumpLoop *node, const ProcessingState &state)
 
void MarkInputUses (Jump *node, const ProcessingState &state)
 
void MarkInputUses (CheckpointedJump *node, const ProcessingState &state)
 
void MarkJumpInputUses (uint32_t use, BasicBlock *target, const ProcessingState &state)
 

Private Member Functions

LoopUsedNodesGetCurrentLoopUsedNodes ()
 
void MarkUse (ValueNode *node, uint32_t use_id, InputLocation *input, LoopUsedNodes *loop_used_nodes)
 
template<typename DeoptInfoT >
void MarkCheckpointNodes (NodeBase *node, DeoptInfoT *deopt_info, LoopUsedNodes *loop_used_nodes, const ProcessingState &state)
 

Private Attributes

MaglevCompilationInfocompilation_info_
 
RegallocInforegalloc_info_
 
std::vector< LoopUsedNodesloop_used_nodes_
 
uint32_t next_node_id_ = kFirstValidNodeId
 

Detailed Description

Definition at line 147 of file maglev-pre-regalloc-codegen-processors.h.

Constructor & Destructor Documentation

◆ LiveRangeAndNextUseProcessor()

v8::internal::maglev::LiveRangeAndNextUseProcessor::LiveRangeAndNextUseProcessor ( MaglevCompilationInfo * compilation_info,
Graph * graph,
RegallocInfo * regalloc_info )
inlineexplicit

Definition at line 149 of file maglev-pre-regalloc-codegen-processors.h.

Member Function Documentation

◆ GetCurrentLoopUsedNodes()

LoopUsedNodes * v8::internal::maglev::LiveRangeAndNextUseProcessor::GetCurrentLoopUsedNodes ( )
inlineprivate

Definition at line 312 of file maglev-pre-regalloc-codegen-processors.h.

Here is the caller graph for this function:

◆ MarkCheckpointNodes()

template<typename DeoptInfoT >
void v8::internal::maglev::LiveRangeAndNextUseProcessor::MarkCheckpointNodes ( NodeBase * node,
DeoptInfoT * deopt_info,
LoopUsedNodes * loop_used_nodes,
const ProcessingState & state )
inlineprivate

Definition at line 350 of file maglev-pre-regalloc-codegen-processors.h.

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

◆ MarkInputUses() [1/5]

void v8::internal::maglev::LiveRangeAndNextUseProcessor::MarkInputUses ( CheckpointedJump * node,
const ProcessingState & state )
inline

Definition at line 273 of file maglev-pre-regalloc-codegen-processors.h.

Here is the call graph for this function:

◆ MarkInputUses() [2/5]

void v8::internal::maglev::LiveRangeAndNextUseProcessor::MarkInputUses ( Jump * node,
const ProcessingState & state )
inline

Definition at line 270 of file maglev-pre-regalloc-codegen-processors.h.

Here is the call graph for this function:

◆ MarkInputUses() [3/5]

void v8::internal::maglev::LiveRangeAndNextUseProcessor::MarkInputUses ( JumpLoop * node,
const ProcessingState & state )
inline

Definition at line 209 of file maglev-pre-regalloc-codegen-processors.h.

Here is the call graph for this function:

◆ MarkInputUses() [4/5]

template<typename NodeT >
void v8::internal::maglev::LiveRangeAndNextUseProcessor::MarkInputUses ( NodeT * node,
const ProcessingState & state )
inline

Definition at line 183 of file maglev-pre-regalloc-codegen-processors.h.

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

◆ MarkInputUses() [5/5]

void v8::internal::maglev::LiveRangeAndNextUseProcessor::MarkInputUses ( Phi * node,
const ProcessingState & state )
inline

Definition at line 201 of file maglev-pre-regalloc-codegen-processors.h.

◆ MarkJumpInputUses()

void v8::internal::maglev::LiveRangeAndNextUseProcessor::MarkJumpInputUses ( uint32_t use,
BasicBlock * target,
const ProcessingState & state )
inline

Definition at line 276 of file maglev-pre-regalloc-codegen-processors.h.

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

◆ MarkUse()

void v8::internal::maglev::LiveRangeAndNextUseProcessor::MarkUse ( ValueNode * node,
uint32_t use_id,
InputLocation * input,
LoopUsedNodes * loop_used_nodes )
inlineprivate

Definition at line 317 of file maglev-pre-regalloc-codegen-processors.h.

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

◆ PostPhiProcessing()

void v8::internal::maglev::LiveRangeAndNextUseProcessor::PostPhiProcessing ( )
inline

Definition at line 165 of file maglev-pre-regalloc-codegen-processors.h.

◆ PostProcessBasicBlock()

void v8::internal::maglev::LiveRangeAndNextUseProcessor::PostProcessBasicBlock ( BasicBlock * block)
inline

Definition at line 156 of file maglev-pre-regalloc-codegen-processors.h.

◆ PostProcessGraph()

void v8::internal::maglev::LiveRangeAndNextUseProcessor::PostProcessGraph ( Graph * graph)
inline

Definition at line 155 of file maglev-pre-regalloc-codegen-processors.h.

◆ PreProcessBasicBlock()

BlockProcessResult v8::internal::maglev::LiveRangeAndNextUseProcessor::PreProcessBasicBlock ( BasicBlock * block)
inline

Definition at line 157 of file maglev-pre-regalloc-codegen-processors.h.

◆ PreProcessGraph()

void v8::internal::maglev::LiveRangeAndNextUseProcessor::PreProcessGraph ( Graph * graph)
inline

Definition at line 154 of file maglev-pre-regalloc-codegen-processors.h.

◆ Process()

template<typename NodeT >
ProcessResult v8::internal::maglev::LiveRangeAndNextUseProcessor::Process ( NodeT * node,
const ProcessingState & state )
inline

Definition at line 168 of file maglev-pre-regalloc-codegen-processors.h.

Here is the call graph for this function:

Member Data Documentation

◆ compilation_info_

MaglevCompilationInfo* v8::internal::maglev::LiveRangeAndNextUseProcessor::compilation_info_
private

Definition at line 366 of file maglev-pre-regalloc-codegen-processors.h.

◆ loop_used_nodes_

std::vector<LoopUsedNodes> v8::internal::maglev::LiveRangeAndNextUseProcessor::loop_used_nodes_
private

Definition at line 368 of file maglev-pre-regalloc-codegen-processors.h.

◆ next_node_id_

uint32_t v8::internal::maglev::LiveRangeAndNextUseProcessor::next_node_id_ = kFirstValidNodeId
private

Definition at line 369 of file maglev-pre-regalloc-codegen-processors.h.

◆ regalloc_info_

RegallocInfo* v8::internal::maglev::LiveRangeAndNextUseProcessor::regalloc_info_
private

Definition at line 367 of file maglev-pre-regalloc-codegen-processors.h.


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