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

#include <code-assembler.h>

Collaboration diagram for v8::internal::compiler::CodeAssemblerLabel:

Public Types

enum  Type { kDeferred , kNonDeferred }
 

Public Member Functions

 CodeAssemblerLabel (CodeAssembler *assembler, CodeAssemblerLabel::Type type=CodeAssemblerLabel::kNonDeferred)
 
 CodeAssemblerLabel (CodeAssembler *assembler, const CodeAssemblerVariableList &merged_variables, CodeAssemblerLabel::Type type=CodeAssemblerLabel::kNonDeferred)
 
 CodeAssemblerLabel (CodeAssembler *assembler, size_t count, CodeAssemblerVariable *const *vars, CodeAssemblerLabel::Type type=CodeAssemblerLabel::kNonDeferred)
 
 CodeAssemblerLabel (CodeAssembler *assembler, std::initializer_list< CodeAssemblerVariable * > vars, CodeAssemblerLabel::Type type=CodeAssemblerLabel::kNonDeferred)
 
 CodeAssemblerLabel (CodeAssembler *assembler, CodeAssemblerVariable *merged_variable, CodeAssemblerLabel::Type type=CodeAssemblerLabel::kNonDeferred)
 
 ~CodeAssemblerLabel ()
 
 CodeAssemblerLabel (const CodeAssemblerLabel &)=delete
 
CodeAssemblerLabeloperator= (const CodeAssemblerLabel &)=delete
 
bool is_bound () const
 
bool is_used () const
 

Private Member Functions

void Bind ()
 
void UpdateVariablesAfterBind ()
 
void MergeVariables ()
 

Private Attributes

bool bound_
 
size_t merge_count_
 
CodeAssemblerStatestate_
 
RawMachineLabellabel_
 
std::map< CodeAssemblerVariable::Impl *, Node *, CodeAssemblerVariable::ImplComparatorvariable_phis_
 
std::map< CodeAssemblerVariable::Impl *, std::vector< Node * >, CodeAssemblerVariable::ImplComparatorvariable_merges_
 

Friends

class CodeAssembler
 

Detailed Description

Definition at line 1729 of file code-assembler.h.

Member Enumeration Documentation

◆ Type

Enumerator
kDeferred 
kNonDeferred 

Definition at line 1731 of file code-assembler.h.

Constructor & Destructor Documentation

◆ CodeAssemblerLabel() [1/6]

v8::internal::compiler::CodeAssemblerLabel::CodeAssemblerLabel ( CodeAssembler * assembler,
CodeAssemblerLabel::Type type = CodeAssemblerLabel::kNonDeferred )
inlineexplicit

Definition at line 1733 of file code-assembler.h.

◆ CodeAssemblerLabel() [2/6]

v8::internal::compiler::CodeAssemblerLabel::CodeAssemblerLabel ( CodeAssembler * assembler,
const CodeAssemblerVariableList & merged_variables,
CodeAssemblerLabel::Type type = CodeAssemblerLabel::kNonDeferred )
inline

Definition at line 1737 of file code-assembler.h.

◆ CodeAssemblerLabel() [3/6]

v8::internal::compiler::CodeAssemblerLabel::CodeAssemblerLabel ( CodeAssembler * assembler,
size_t count,
CodeAssemblerVariable *const * vars,
CodeAssemblerLabel::Type type = CodeAssemblerLabel::kNonDeferred )

Definition at line 1802 of file code-assembler.cc.

◆ CodeAssemblerLabel() [4/6]

v8::internal::compiler::CodeAssemblerLabel::CodeAssemblerLabel ( CodeAssembler * assembler,
std::initializer_list< CodeAssemblerVariable * > vars,
CodeAssemblerLabel::Type type = CodeAssemblerLabel::kNonDeferred )
inline

Definition at line 1747 of file code-assembler.h.

Here is the call graph for this function:

◆ CodeAssemblerLabel() [5/6]

v8::internal::compiler::CodeAssemblerLabel::CodeAssemblerLabel ( CodeAssembler * assembler,
CodeAssemblerVariable * merged_variable,
CodeAssemblerLabel::Type type = CodeAssemblerLabel::kNonDeferred )
inline

Definition at line 1752 of file code-assembler.h.

◆ ~CodeAssemblerLabel()

v8::internal::compiler::CodeAssemblerLabel::~CodeAssemblerLabel ( )

Definition at line 1818 of file code-assembler.cc.

Here is the call graph for this function:

◆ CodeAssemblerLabel() [6/6]

v8::internal::compiler::CodeAssemblerLabel::CodeAssemblerLabel ( const CodeAssemblerLabel & )
delete

Member Function Documentation

◆ Bind()

void v8::internal::compiler::CodeAssemblerLabel::Bind ( )
private

Definition at line 1897 of file code-assembler.cc.

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

◆ is_bound()

bool v8::internal::compiler::CodeAssemblerLabel::is_bound ( ) const
inline

Definition at line 1763 of file code-assembler.h.

Here is the caller graph for this function:

◆ is_used()

bool v8::internal::compiler::CodeAssemblerLabel::is_used ( ) const
inline

Definition at line 1764 of file code-assembler.h.

Here is the caller graph for this function:

◆ MergeVariables()

void v8::internal::compiler::CodeAssemblerLabel::MergeVariables ( )
private

Definition at line 1820 of file code-assembler.cc.

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

◆ operator=()

CodeAssemblerLabel & v8::internal::compiler::CodeAssemblerLabel::operator= ( const CodeAssemblerLabel & )
delete

◆ UpdateVariablesAfterBind()

void v8::internal::compiler::CodeAssemblerLabel::UpdateVariablesAfterBind ( )
private

Definition at line 1903 of file code-assembler.cc.

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

Friends And Related Symbol Documentation

◆ CodeAssembler

friend class CodeAssembler
friend

Definition at line 1767 of file code-assembler.h.

Member Data Documentation

◆ bound_

bool v8::internal::compiler::CodeAssemblerLabel::bound_
private

Definition at line 1776 of file code-assembler.h.

◆ label_

RawMachineLabel* v8::internal::compiler::CodeAssemblerLabel::label_
private

Definition at line 1779 of file code-assembler.h.

◆ merge_count_

size_t v8::internal::compiler::CodeAssemblerLabel::merge_count_
private

Definition at line 1777 of file code-assembler.h.

◆ state_

CodeAssemblerState* v8::internal::compiler::CodeAssemblerLabel::state_
private

Definition at line 1778 of file code-assembler.h.

◆ variable_merges_

std::map<CodeAssemblerVariable::Impl*, std::vector<Node*>, CodeAssemblerVariable::ImplComparator> v8::internal::compiler::CodeAssemblerLabel::variable_merges_
private

Definition at line 1789 of file code-assembler.h.

◆ variable_phis_

std::map<CodeAssemblerVariable::Impl*, Node*, CodeAssemblerVariable::ImplComparator> v8::internal::compiler::CodeAssemblerLabel::variable_phis_
private

Definition at line 1784 of file code-assembler.h.


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