v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::compiler::turboshaft::LabelBase< loop, Ts > Class Template Reference

#include <assembler.h>

Collaboration diagram for v8::internal::compiler::turboshaft::LabelBase< loop, Ts >:

Classes

struct  BlockData
 

Public Types

using values_t = std::tuple<V<Ts>...>
 
using const_or_values_t = std::tuple<maybe_const_or_v_t<Ts>...>
 
using recorded_values_t = std::tuple<base::SmallVector<V<Ts>, 2>...>
 

Public Member Functions

Blockblock ()
 
bool has_incoming_jump () const
 
template<typename A >
void Goto (A &assembler, const values_t &values)
 
template<typename A >
void GotoIf (A &assembler, OpIndex condition, BranchHint hint, const values_t &values)
 
template<typename A >
void GotoIfNot (A &assembler, OpIndex condition, BranchHint hint, const values_t &values)
 
template<typename A >
base::prepend_tuple_type< bool, values_tBind (A &assembler)
 

Static Public Attributes

static constexpr bool is_loop = loop
 

Protected Member Functions

 LabelBase (const LabelBase &)=delete
 
LabelBaseoperator= (const LabelBase &)=delete
 
 LabelBase (Block *block)
 
 LabelBase (LabelBase &&other) V8_NOEXCEPT
 
template<typename A >
values_t MaterializePhis (A &assembler)
 

Static Protected Member Functions

static void RecordValues (Block *source, BlockData &data, const values_t &values)
 
template<size_t... indices>
static void RecordValuesImpl (BlockData &data, Block *source, const values_t &values, std::index_sequence< indices... >)
 
template<typename A , size_t... indices>
static values_t MaterializePhisImpl (A &assembler, BlockData &data, std::index_sequence< indices... >)
 

Protected Attributes

BlockData data_
 
bool has_incoming_jump_ = false
 

Static Protected Attributes

static constexpr size_t size = sizeof...(Ts)
 

Detailed Description

template<bool loop, typename... Ts>
class v8::internal::compiler::turboshaft::LabelBase< loop, Ts >

Definition at line 386 of file assembler.h.

Member Typedef Documentation

◆ const_or_values_t

template<bool loop, typename... Ts>
using v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::const_or_values_t = std::tuple<maybe_const_or_v_t<Ts>...>

Definition at line 396 of file assembler.h.

◆ recorded_values_t

template<bool loop, typename... Ts>
using v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::recorded_values_t = std::tuple<base::SmallVector<V<Ts>, 2>...>

Definition at line 397 of file assembler.h.

◆ values_t

template<bool loop, typename... Ts>
using v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::values_t = std::tuple<V<Ts>...>

Definition at line 395 of file assembler.h.

Constructor & Destructor Documentation

◆ LabelBase() [1/3]

template<bool loop, typename... Ts>
v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::LabelBase ( const LabelBase< loop, Ts > & )
protecteddelete

◆ LabelBase() [2/3]

template<bool loop, typename... Ts>
v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::LabelBase ( Block * block)
inlineexplicitprotected

Definition at line 458 of file assembler.h.

◆ LabelBase() [3/3]

template<bool loop, typename... Ts>
v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::LabelBase ( LabelBase< loop, Ts > && other)
inlineprotected

Definition at line 462 of file assembler.h.

Member Function Documentation

◆ Bind()

template<bool loop, typename... Ts>
template<typename A >
base::prepend_tuple_type< bool, values_t > v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::Bind ( A & assembler)
inline

Definition at line 440 of file assembler.h.

Here is the call graph for this function:

◆ block()

template<bool loop, typename... Ts>
Block * v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::block ( )
inline

Definition at line 399 of file assembler.h.

◆ Goto()

template<bool loop, typename... Ts>
template<typename A >
void v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::Goto ( A & assembler,
const values_t & values )
inline

Definition at line 404 of file assembler.h.

Here is the call graph for this function:

◆ GotoIf()

template<bool loop, typename... Ts>
template<typename A >
void v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::GotoIf ( A & assembler,
OpIndex condition,
BranchHint hint,
const values_t & values )
inline

Definition at line 414 of file assembler.h.

Here is the call graph for this function:

◆ GotoIfNot()

template<bool loop, typename... Ts>
template<typename A >
void v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::GotoIfNot ( A & assembler,
OpIndex condition,
BranchHint hint,
const values_t & values )
inline

Definition at line 427 of file assembler.h.

Here is the call graph for this function:

◆ has_incoming_jump()

template<bool loop, typename... Ts>
bool v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::has_incoming_jump ( ) const
inline

Definition at line 401 of file assembler.h.

Here is the caller graph for this function:

◆ MaterializePhis()

template<bool loop, typename... Ts>
template<typename A >
values_t v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::MaterializePhis ( A & assembler)
inlineprotected

Definition at line 499 of file assembler.h.

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

◆ MaterializePhisImpl()

template<bool loop, typename... Ts>
template<typename A , size_t... indices>
static values_t v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::MaterializePhisImpl ( A & assembler,
BlockData & data,
std::index_sequence< indices... >  )
inlinestaticprotected

Definition at line 505 of file assembler.h.

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

◆ operator=()

template<bool loop, typename... Ts>
LabelBase & v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::operator= ( const LabelBase< loop, Ts > & )
protecteddelete

◆ RecordValues()

template<bool loop, typename... Ts>
static void v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::RecordValues ( Block * source,
BlockData & data,
const values_t & values )
inlinestaticprotected

Definition at line 466 of file assembler.h.

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

◆ RecordValuesImpl()

template<bool loop, typename... Ts>
template<size_t... indices>
static void v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::RecordValuesImpl ( BlockData & data,
Block * source,
const values_t & values,
std::index_sequence< indices... >  )
inlinestaticprotected

Definition at line 478 of file assembler.h.

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

Member Data Documentation

◆ data_

template<bool loop, typename... Ts>
BlockData v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::data_
protected

Definition at line 525 of file assembler.h.

◆ has_incoming_jump_

template<bool loop, typename... Ts>
bool v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::has_incoming_jump_ = false
protected

Definition at line 526 of file assembler.h.

◆ is_loop

template<bool loop, typename... Ts>
bool v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::is_loop = loop
staticconstexpr

Definition at line 394 of file assembler.h.

◆ size

template<bool loop, typename... Ts>
size_t v8::internal::compiler::turboshaft::LabelBase< loop, Ts >::size = sizeof...(Ts)
staticconstexprprotected

Definition at line 388 of file assembler.h.


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