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

#include <operations.h>

Inheritance diagram for v8::internal::compiler::turboshaft::OperationT< Derived >:
Collaboration diagram for v8::internal::compiler::turboshaft::OperationT< Derived >:

Public Types

using Base = OperationT
 

Public Member Functions

bool IsRequiredWhenUnused () const
 
Derived & derived_this ()
 
const Derived & derived_this () const
 
base::Vector< OpIndexinputs ()
 
base::Vector< const OpIndexinputs () const
 
V8_INLINE OpIndexinput (size_t i)
 
V8_INLINE V< Anyinput (size_t i) const
 
template<typename T >
V8_INLINE V< Tinput (size_t i) const
 
size_t StorageSlotCount () const
 
 OperationT (size_t input_count)
 
 OperationT (ShadowyOpIndexVectorWrapper inputs)
 
bool EqualsForGVN (const Base &other) const
 
bool operator== (const Base &other) const
 
template<typename... Args>
size_t HashWithOptions (const Args &... args) const
 
size_t hash_value (HashingStrategy strategy=HashingStrategy::kDefault) const
 
void PrintInputs (std::ostream &os, const std::string &op_index_prefix) const
 
void PrintOptions (std::ostream &os) const
 
void Validate (const Graph &graph) const
 
- Public Member Functions inherited from v8::internal::compiler::turboshaft::Operation
base::Vector< const OpIndexinputs () const
 
V8_INLINE OpIndex input (size_t i) const
 
size_t StorageSlotCount () const
 
base::Vector< const RegisterRepresentationoutputs_rep () const
 
base::Vector< const MaybeRegisterRepresentationinputs_rep (ZoneVector< MaybeRegisterRepresentation > &storage) const
 
template<class Op >
bool Is () const
 
template<class Op >
underlying_operation_t< Op > & Cast ()
 
template<class Op >
const underlying_operation_t< Op > & Cast () const
 
template<class Op >
const underlying_operation_t< Op > * TryCast () const
 
template<class Op >
underlying_operation_t< Op > * TryCast ()
 
OpEffects Effects () const
 
bool IsBlockTerminator () const
 
bool IsRequiredWhenUnused () const
 
bool IsProtectedLoad () const
 
std::string ToString () const
 
void PrintInputs (std::ostream &os, const std::string &op_index_prefix) const
 
void PrintOptions (std::ostream &os) const
 
bool IsOnlyUserOf (const Operation &value, const Graph &graph) const
 
void Print () const
 

Static Public Member Functions

static constexpr OpEffects Effects ()
 
static constexpr bool IsBlockTerminator ()
 
static constexpr std::optional< OpEffectsEffectsIfStatic ()
 
static size_t StorageSlotCount (size_t input_count)
 
template<class... Args>
static Derived & New (Graph *graph, size_t input_count, Args... args)
 
template<class... Args>
static Derived & New (Graph *graph, ShadowyOpIndexVectorWrapper inputs, Args... args)
 
- Static Public Member Functions inherited from v8::internal::compiler::turboshaft::Operation
static size_t StorageSlotCount (Opcode opcode, size_t input_count)
 

Static Public Attributes

static const Opcode opcode = operation_to_opcode<Op>::value
 

Private Member Functions

base::Vector< const RegisterRepresentationoutputs_rep () const
 
base::Vector< const MaybeRegisterRepresentationinputs_rep (ZoneVector< MaybeRegisterRepresentation > &storage) const
 

Static Private Member Functions

template<class... T, size_t... I>
static void PrintOptionsHelper (std::ostream &os, const std::tuple< T... > &options, std::index_sequence< I... >)
 

Additional Inherited Members

- Public Attributes inherited from v8::internal::compiler::turboshaft::Operation
const Opcode opcode
 
SaturatedUint8 saturated_use_count
 
const uint16_t input_count
 
- Protected Member Functions inherited from v8::internal::compiler::turboshaft::Operation
 Operation (Opcode opcode, size_t input_count)
 
template<class OpmaskT >
 V8_CLANG_NO_SANITIZE ("memory") bool IsOpmask() const
 
 Operation (const Operation &)=delete
 
Operationoperator= (const Operation &)=delete
 

Detailed Description

template<class Derived>
struct v8::internal::compiler::turboshaft::OperationT< Derived >

Definition at line 1080 of file operations.h.

Member Typedef Documentation

◆ Base

template<class Derived >
using v8::internal::compiler::turboshaft::OperationT< Derived >::Base = OperationT

Definition at line 1082 of file operations.h.

Constructor & Destructor Documentation

◆ OperationT() [1/2]

template<class Derived >
v8::internal::compiler::turboshaft::OperationT< Derived >::OperationT ( size_t input_count)
inlineexplicit

Definition at line 1174 of file operations.h.

◆ OperationT() [2/2]

template<class Derived >
v8::internal::compiler::turboshaft::OperationT< Derived >::OperationT ( ShadowyOpIndexVectorWrapper inputs)
inlineexplicit

Definition at line 1181 of file operations.h.

Member Function Documentation

◆ derived_this() [1/2]

template<class Derived >
Derived & v8::internal::compiler::turboshaft::OperationT< Derived >::derived_this ( )
inline

Definition at line 1102 of file operations.h.

◆ derived_this() [2/2]

template<class Derived >
const Derived & v8::internal::compiler::turboshaft::OperationT< Derived >::derived_this ( ) const
inline

Definition at line 1103 of file operations.h.

◆ Effects()

template<class Derived >
static constexpr OpEffects v8::internal::compiler::turboshaft::OperationT< Derived >::Effects ( )
inlinestaticconstexpr

Definition at line 1086 of file operations.h.

◆ EffectsIfStatic()

template<class Derived >
static constexpr std::optional< OpEffects > v8::internal::compiler::turboshaft::OperationT< Derived >::EffectsIfStatic ( )
inlinestaticconstexpr

Definition at line 1095 of file operations.h.

◆ EqualsForGVN()

template<class Derived >
bool v8::internal::compiler::turboshaft::OperationT< Derived >::EqualsForGVN ( const Base & other) const
inline

Definition at line 1187 of file operations.h.

◆ hash_value()

template<class Derived >
size_t v8::internal::compiler::turboshaft::OperationT< Derived >::hash_value ( HashingStrategy strategy = HashingStrategy::kDefault) const
inline

Definition at line 1204 of file operations.h.

Here is the caller graph for this function:

◆ HashWithOptions()

template<class Derived >
template<typename... Args>
size_t v8::internal::compiler::turboshaft::OperationT< Derived >::HashWithOptions ( const Args &... args) const
inline

Definition at line 1201 of file operations.h.

Here is the call graph for this function:

◆ input() [1/3]

template<class Derived >
V8_INLINE OpIndex & v8::internal::compiler::turboshaft::OperationT< Derived >::input ( size_t i)
inline

Definition at line 1119 of file operations.h.

Here is the caller graph for this function:

◆ input() [2/3]

template<class Derived >
V8_INLINE V< Any > v8::internal::compiler::turboshaft::OperationT< Derived >::input ( size_t i) const
inline

Definition at line 1122 of file operations.h.

◆ input() [3/3]

template<class Derived >
template<typename T >
V8_INLINE V< T > v8::internal::compiler::turboshaft::OperationT< Derived >::input ( size_t i) const
inline

Definition at line 1124 of file operations.h.

◆ inputs() [1/2]

template<class Derived >
base::Vector< OpIndex > v8::internal::compiler::turboshaft::OperationT< Derived >::inputs ( )
inline

Definition at line 1108 of file operations.h.

Here is the caller graph for this function:

◆ inputs() [2/2]

template<class Derived >
base::Vector< const OpIndex > v8::internal::compiler::turboshaft::OperationT< Derived >::inputs ( ) const
inline

Definition at line 1113 of file operations.h.

◆ inputs_rep()

template<class Derived >
base::Vector< const MaybeRegisterRepresentation > v8::internal::compiler::turboshaft::OperationT< Derived >::inputs_rep ( ZoneVector< MaybeRegisterRepresentation > & storage) const
private

◆ IsBlockTerminator()

template<class Derived >
static constexpr bool v8::internal::compiler::turboshaft::OperationT< Derived >::IsBlockTerminator ( )
inlinestaticconstexpr

Definition at line 1087 of file operations.h.

◆ IsRequiredWhenUnused()

template<class Derived >
bool v8::internal::compiler::turboshaft::OperationT< Derived >::IsRequiredWhenUnused ( ) const
inline

Definition at line 1090 of file operations.h.

Here is the call graph for this function:

◆ New() [1/2]

template<class Derived >
template<class... Args>
static Derived & v8::internal::compiler::turboshaft::OperationT< Derived >::New ( Graph * graph,
ShadowyOpIndexVectorWrapper inputs,
Args... args )
inlinestatic

Definition at line 1169 of file operations.h.

Here is the call graph for this function:

◆ New() [2/2]

template<class Derived >
template<class... Args>
static Derived & v8::internal::compiler::turboshaft::OperationT< Derived >::New ( Graph * graph,
size_t input_count,
Args... args )
inlinestatic

Definition at line 1144 of file operations.h.

Here is the call graph for this function:

◆ operator==()

template<class Derived >
bool v8::internal::compiler::turboshaft::OperationT< Derived >::operator== ( const Base & other) const
inline

Definition at line 1196 of file operations.h.

◆ outputs_rep()

template<class Derived >
base::Vector< const RegisterRepresentation > v8::internal::compiler::turboshaft::OperationT< Derived >::outputs_rep ( ) const
private

◆ PrintInputs()

template<class Derived >
void v8::internal::compiler::turboshaft::OperationT< Derived >::PrintInputs ( std::ostream & os,
const std::string & op_index_prefix ) const
inline

Definition at line 1209 of file operations.h.

◆ PrintOptions()

template<class Derived >
void v8::internal::compiler::turboshaft::OperationT< Derived >::PrintOptions ( std::ostream & os) const
inline

Definition at line 1220 of file operations.h.

◆ PrintOptionsHelper()

template<class Derived >
template<class... T, size_t... I>
static void v8::internal::compiler::turboshaft::OperationT< Derived >::PrintOptionsHelper ( std::ostream & os,
const std::tuple< T... > & options,
std::index_sequence< I... >  )
inlinestaticprivate

Definition at line 1237 of file operations.h.

◆ StorageSlotCount() [1/2]

template<class Derived >
size_t v8::internal::compiler::turboshaft::OperationT< Derived >::StorageSlotCount ( ) const
inline

Definition at line 1141 of file operations.h.

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

◆ StorageSlotCount() [2/2]

template<class Derived >
static size_t v8::internal::compiler::turboshaft::OperationT< Derived >::StorageSlotCount ( size_t input_count)
inlinestatic

Definition at line 1128 of file operations.h.

◆ Validate()

template<class Derived >
void v8::internal::compiler::turboshaft::OperationT< Derived >::Validate ( const Graph & graph) const
inline

Definition at line 1233 of file operations.h.

Member Data Documentation

◆ opcode

template<class Op >
const Opcode v8::internal::compiler::turboshaft::OperationT< Op >::opcode = operation_to_opcode<Op>::value
static

Definition at line 1084 of file operations.h.


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