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

#include <instruction-selector-adapter.h>

Inheritance diagram for v8::internal::compiler::TurboshaftAdapter:
Collaboration diagram for v8::internal::compiler::TurboshaftAdapter:

Classes

class  LoadView
 
class  StoreView
 

Public Member Functions

 TurboshaftAdapter (turboshaft::Graph *graph)
 
bool is_load (turboshaft::OpIndex node) const
 
bool is_load_root_register (turboshaft::OpIndex node) const
 
LoadView load_view (turboshaft::OpIndex node)
 
StoreView store_view (turboshaft::OpIndex node)
 
turboshaft::Graphturboshaft_graph () const
 
turboshaft::Blockblock (turboshaft::Graph *schedule, turboshaft::OpIndex node) const
 
RpoNumber rpo_number (const turboshaft::Block *block) const
 
const ZoneVector< turboshaft::Block * > & rpo_order (turboshaft::Graph *schedule)
 
bool IsLoopHeader (const turboshaft::Block *block) const
 
size_t PredecessorCount (const turboshaft::Block *block) const
 
turboshaft::BlockPredecessorAt (const turboshaft::Block *block, size_t index) const
 
base::iterator_range< turboshaft::Graph::OpIndexIteratornodes (const turboshaft::Block *block)
 
bool IsRetain (turboshaft::OpIndex node) const
 
bool IsHeapConstant (turboshaft::OpIndex node) const
 
bool IsExternalConstant (turboshaft::OpIndex node) const
 
bool IsRelocatableWasmConstant (turboshaft::OpIndex node) const
 
bool IsLoadOrLoadImmutable (turboshaft::OpIndex node) const
 
bool IsProtectedLoad (turboshaft::OpIndex node) const
 
int value_input_count (turboshaft::OpIndex node) const
 
turboshaft::OpIndex input_at (turboshaft::OpIndex node, size_t index) const
 
base::Vector< const turboshaft::OpIndexinputs (turboshaft::OpIndex node) const
 
turboshaft::Opcode opcode (turboshaft::OpIndex node) const
 
uint32_t id (turboshaft::OpIndex node) const
 
- Public Member Functions inherited from v8::internal::compiler::turboshaft::OperationMatcher
 OperationMatcher (const Graph &graph)
 
template<class Op >
bool Is (V< AnyOrNone > op_idx) const
 
template<class Op >
const underlying_operation_t< Op > * TryCast (V< AnyOrNone > op_idx) const
 
template<class Op >
const underlying_operation_t< Op > & Cast (V< AnyOrNone > op_idx) const
 
const OperationGet (V< AnyOrNone > op_idx) const
 
V< AnyOrNoneIndex (const Operation &op) const
 
bool MatchZero (V< Any > matched) const
 
bool MatchIntegralZero (V< Any > matched) const
 
bool MatchSmiZero (V< Any > matched) const
 
bool MatchFloat32Constant (V< Any > matched, float *constant) const
 
bool MatchFloat32Constant (V< Any > matched, i::Float32 *constant) const
 
bool MatchFloat64Constant (V< Any > matched, double *constant) const
 
bool MatchFloat64Constant (V< Any > matched, i::Float64 *constant) const
 
bool MatchFloat (V< Any > matched, double *value) const
 
bool MatchFloat (V< Any > matched, double value) const
 
bool MatchNaN (V< Float > matched) const
 
bool MatchHeapConstant (V< Any > matched, Handle< HeapObject > *tagged=nullptr) const
 
bool MatchIntegralWordConstant (V< Any > matched, WordRepresentation rep, uint64_t *unsigned_constant, int64_t *signed_constant=nullptr) const
 
bool MatchIntegralWordConstant (V< Any > matched, WordRepresentation rep, int64_t *signed_constant) const
 
bool MatchIntegralWord32Constant (V< Any > matched, uint32_t *constant) const
 
bool MatchIntegralWord64Constant (V< Any > matched, uint64_t *constant) const
 
bool MatchIntegralWord32Constant (V< Any > matched, uint32_t constant) const
 
bool MatchIntegralWord64Constant (V< Any > matched, int64_t *constant) const
 
bool MatchIntegralWord32Constant (V< Any > matched, int32_t *constant) const
 
template<typename T = intptr_t>
bool MatchIntegralWordPtrConstant (V< Any > matched, T *constant) const
 
bool MatchSignedIntegralConstant (V< Any > matched, int64_t *constant) const
 
bool MatchUnsignedIntegralConstant (V< Any > matched, uint64_t *constant) const
 
bool MatchExternalConstant (V< Any > matched, ExternalReference *reference) const
 
bool MatchWasmStubCallConstant (V< Any > matched, uint64_t *stub_id) const
 
template<typename T >
bool MatchChange (V< Any > matched, VMatch< T > input, OMatch< ChangeOp::Kind > kind={}, OMatch< ChangeOp::Assumption > assumption={}, OMatch< RegisterRepresentation > from={}, OMatch< RegisterRepresentation > to={}) const
 
bool MatchTruncateWord64ToWord32 (V< Any > matched, VMatch< Word64 > input) const
 
template<typename T >
requires (IsWord<T>())
bool MatchWordBinop (V< Any > matched, VMatch< T > left, VMatch< T > right, OMatch< WordBinopOp::Kind > kind={}, OMatch< WordRepresentation > rep={}) const
 
template<class T >
requires (IsWord<T>())
bool MatchWordAdd (V< Any > matched, V< T > *left, V< T > *right, WordRepresentation rep) const
 
template<class T >
requires (IsWord<T>())
bool MatchWordSub (V< Any > matched, V< T > *left, V< T > *right, WordRepresentation rep) const
 
template<class T >
requires (IsWord<T>())
bool MatchWordMul (V< Any > matched, V< T > *left, V< T > *right, WordRepresentation rep) const
 
template<class T >
requires (IsWord<T>())
bool MatchBitwiseAnd (V< Any > matched, V< T > *left, V< T > *right, WordRepresentation rep) const
 
template<class T >
requires (IsWord<T>())
bool MatchBitwiseAndWithConstant (V< Any > matched, V< T > *value, uint64_t *constant, WordRepresentation rep) const
 
template<typename T >
bool MatchEqual (V< Any > matched, V< T > *left, V< T > *right) const
 
bool MatchFloatUnary (V< Any > matched, V< Float > *input, FloatUnaryOp::Kind kind, FloatRepresentation rep) const
 
bool MatchFloatRoundDown (V< Any > matched, V< Float > *input, FloatRepresentation rep) const
 
bool MatchFloatBinary (V< Any > matched, V< Float > *left, V< Float > *right, FloatBinopOp::Kind kind, FloatRepresentation rep) const
 
bool MatchFloatSub (V< Any > matched, V< Float > *left, V< Float > *right, FloatRepresentation rep) const
 
template<class T >
requires (IsWord<T>())
bool MatchConstantShift (V< Any > matched, V< T > *input, ShiftOp::Kind *kind, WordRepresentation *rep, int *amount) const
 
template<class T >
requires (IsWord<T>())
bool MatchConstantShift (V< Any > matched, V< T > *input, ShiftOp::Kind kind, WordRepresentation rep, int *amount) const
 
template<class T >
requires (IsWord<T>())
bool MatchConstantRightShift (V< Any > matched, V< T > *input, WordRepresentation rep, int *amount) const
 
template<class T >
requires (IsWord<T>())
bool MatchConstantLeftShift (V< Any > matched, V< T > *input, WordRepresentation rep, int *amount) const
 
template<class T >
requires (IsWord<T>())
bool MatchConstantShiftRightArithmeticShiftOutZeros (V< Any > matched, V< T > *input, WordRepresentation rep, uint16_t *amount) const
 
bool MatchPhi (V< Any > matched, std::optional< int > input_count=std::nullopt) const
 
bool MatchPowerOfTwoWordConstant (V< Any > matched, int64_t *ret_cst, WordRepresentation rep) const
 
bool MatchPowerOfTwoWord32Constant (V< Any > matched, int32_t *divisor) const
 

Static Public Member Functions

static turboshaft::OpIndex value (turboshaft::OptionalOpIndex node)
 

Static Public Attributes

static constexpr bool IsTurbofan = false
 
static constexpr bool IsTurboshaft = true
 
static constexpr bool AllowsImplicitWord64ToWord32Truncation = true
 

Private Attributes

turboshaft::Graphgraph_
 

Additional Inherited Members

- Public Types inherited from v8::internal::compiler::turboshaft::OperationMatcher
template<typename T >
using VMatch = detail::ValueMatch<T, const_or_v_exists_v<T>>
 
template<typename T >
using OMatch = detail::OptionMatch<T>
 

Detailed Description

Definition at line 21 of file instruction-selector-adapter.h.

Constructor & Destructor Documentation

◆ TurboshaftAdapter()

v8::internal::compiler::TurboshaftAdapter::TurboshaftAdapter ( turboshaft::Graph * graph)
inlineexplicit

Definition at line 26 of file instruction-selector-adapter.h.

Member Function Documentation

◆ block()

turboshaft::Block * v8::internal::compiler::TurboshaftAdapter::block ( turboshaft::Graph * schedule,
turboshaft::OpIndex node ) const
inline

Definition at line 303 of file instruction-selector-adapter.h.

◆ id()

uint32_t v8::internal::compiler::TurboshaftAdapter::id ( turboshaft::OpIndex node) const
inline

Definition at line 396 of file instruction-selector-adapter.h.

Here is the caller graph for this function:

◆ input_at()

turboshaft::OpIndex v8::internal::compiler::TurboshaftAdapter::input_at ( turboshaft::OpIndex node,
size_t index ) const
inline

Definition at line 384 of file instruction-selector-adapter.h.

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

◆ inputs()

base::Vector< const turboshaft::OpIndex > v8::internal::compiler::TurboshaftAdapter::inputs ( turboshaft::OpIndex node) const
inline

Definition at line 387 of file instruction-selector-adapter.h.

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

◆ is_load()

bool v8::internal::compiler::TurboshaftAdapter::is_load ( turboshaft::OpIndex node) const
inline

Definition at line 274 of file instruction-selector-adapter.h.

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

◆ is_load_root_register()

bool v8::internal::compiler::TurboshaftAdapter::is_load_root_register ( turboshaft::OpIndex node) const
inline

Definition at line 284 of file instruction-selector-adapter.h.

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

◆ IsExternalConstant()

bool v8::internal::compiler::TurboshaftAdapter::IsExternalConstant ( turboshaft::OpIndex node) const
inline

Definition at line 344 of file instruction-selector-adapter.h.

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

◆ IsHeapConstant()

bool v8::internal::compiler::TurboshaftAdapter::IsHeapConstant ( turboshaft::OpIndex node) const
inline

Definition at line 338 of file instruction-selector-adapter.h.

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

◆ IsLoadOrLoadImmutable()

bool v8::internal::compiler::TurboshaftAdapter::IsLoadOrLoadImmutable ( turboshaft::OpIndex node) const
inline

Definition at line 359 of file instruction-selector-adapter.h.

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

◆ IsLoopHeader()

bool v8::internal::compiler::TurboshaftAdapter::IsLoopHeader ( const turboshaft::Block * block) const
inline

Definition at line 318 of file instruction-selector-adapter.h.

Here is the caller graph for this function:

◆ IsProtectedLoad()

bool v8::internal::compiler::TurboshaftAdapter::IsProtectedLoad ( turboshaft::OpIndex node) const
inline

Definition at line 362 of file instruction-selector-adapter.h.

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

◆ IsRelocatableWasmConstant()

bool v8::internal::compiler::TurboshaftAdapter::IsRelocatableWasmConstant ( turboshaft::OpIndex node) const
inline

Definition at line 350 of file instruction-selector-adapter.h.

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

◆ IsRetain()

bool v8::internal::compiler::TurboshaftAdapter::IsRetain ( turboshaft::OpIndex node) const
inline

Definition at line 335 of file instruction-selector-adapter.h.

Here is the call graph for this function:

◆ load_view()

LoadView v8::internal::compiler::TurboshaftAdapter::load_view ( turboshaft::OpIndex node)
inline

Definition at line 287 of file instruction-selector-adapter.h.

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

◆ nodes()

base::iterator_range< turboshaft::Graph::OpIndexIterator > v8::internal::compiler::TurboshaftAdapter::nodes ( const turboshaft::Block * block)
inline

Definition at line 330 of file instruction-selector-adapter.h.

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

◆ opcode()

turboshaft::Opcode v8::internal::compiler::TurboshaftAdapter::opcode ( turboshaft::OpIndex node) const
inline

Definition at line 391 of file instruction-selector-adapter.h.

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

◆ PredecessorAt()

turboshaft::Block * v8::internal::compiler::TurboshaftAdapter::PredecessorAt ( const turboshaft::Block * block,
size_t index ) const
inline

Definition at line 325 of file instruction-selector-adapter.h.

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

◆ PredecessorCount()

size_t v8::internal::compiler::TurboshaftAdapter::PredecessorCount ( const turboshaft::Block * block) const
inline

Definition at line 322 of file instruction-selector-adapter.h.

Here is the caller graph for this function:

◆ rpo_number()

RpoNumber v8::internal::compiler::TurboshaftAdapter::rpo_number ( const turboshaft::Block * block) const
inline

Definition at line 310 of file instruction-selector-adapter.h.

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

◆ rpo_order()

const ZoneVector< turboshaft::Block * > & v8::internal::compiler::TurboshaftAdapter::rpo_order ( turboshaft::Graph * schedule)
inline

Definition at line 314 of file instruction-selector-adapter.h.

Here is the caller graph for this function:

◆ store_view()

StoreView v8::internal::compiler::TurboshaftAdapter::store_view ( turboshaft::OpIndex node)
inline

Definition at line 291 of file instruction-selector-adapter.h.

Here is the caller graph for this function:

◆ turboshaft_graph()

turboshaft::Graph * v8::internal::compiler::TurboshaftAdapter::turboshaft_graph ( ) const
inline

Definition at line 301 of file instruction-selector-adapter.h.

Here is the caller graph for this function:

◆ value()

static turboshaft::OpIndex v8::internal::compiler::TurboshaftAdapter::value ( turboshaft::OptionalOpIndex node)
inlinestatic

Definition at line 397 of file instruction-selector-adapter.h.

Here is the caller graph for this function:

◆ value_input_count()

int v8::internal::compiler::TurboshaftAdapter::value_input_count ( turboshaft::OpIndex node) const
inline

Definition at line 381 of file instruction-selector-adapter.h.

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

Member Data Documentation

◆ AllowsImplicitWord64ToWord32Truncation

bool v8::internal::compiler::TurboshaftAdapter::AllowsImplicitWord64ToWord32Truncation = true
staticconstexpr

Definition at line 24 of file instruction-selector-adapter.h.

◆ graph_

turboshaft::Graph* v8::internal::compiler::TurboshaftAdapter::graph_
private

Definition at line 403 of file instruction-selector-adapter.h.

◆ IsTurbofan

bool v8::internal::compiler::TurboshaftAdapter::IsTurbofan = false
staticconstexpr

Definition at line 22 of file instruction-selector-adapter.h.

◆ IsTurboshaft

bool v8::internal::compiler::TurboshaftAdapter::IsTurboshaft = true
staticconstexpr

Definition at line 23 of file instruction-selector-adapter.h.


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