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

#include <operations.h>

Inherited by v8::internal::compiler::turboshaft::OperationT< AbortCSADcheckOp >, v8::internal::compiler::turboshaft::OperationT< AllocateOp >, v8::internal::compiler::turboshaft::OperationT< ArgumentsLengthOp >, v8::internal::compiler::turboshaft::OperationT< AssumeMapOp >, v8::internal::compiler::turboshaft::OperationT< AtomicRMWOp >, v8::internal::compiler::turboshaft::OperationT< AtomicWord32PairOp >, v8::internal::compiler::turboshaft::OperationT< BigIntBinopOp >, v8::internal::compiler::turboshaft::OperationT< BigIntComparisonOp >, v8::internal::compiler::turboshaft::OperationT< BigIntUnaryOp >, v8::internal::compiler::turboshaft::OperationT< BitcastWord32PairToFloat64Op >, v8::internal::compiler::turboshaft::OperationT< BranchOp >, v8::internal::compiler::turboshaft::OperationT< CallOp >, v8::internal::compiler::turboshaft::OperationT< CatchBlockBeginOp >, v8::internal::compiler::turboshaft::OperationT< ChangeOp >, v8::internal::compiler::turboshaft::OperationT< ChangeOrDeoptOp >, v8::internal::compiler::turboshaft::OperationT< CheckEqualsInternalizedStringOp >, v8::internal::compiler::turboshaft::OperationT< CheckExceptionOp >, v8::internal::compiler::turboshaft::OperationT< CheckMapsOp >, v8::internal::compiler::turboshaft::OperationT< CheckTurboshaftTypeOfOp >, v8::internal::compiler::turboshaft::OperationT< CheckedClosureOp >, v8::internal::compiler::turboshaft::OperationT< CommentOp >, v8::internal::compiler::turboshaft::OperationT< CompareMapsOp >, v8::internal::compiler::turboshaft::OperationT< ComparisonOp >, v8::internal::compiler::turboshaft::OperationT< ConstantOp >, v8::internal::compiler::turboshaft::OperationT< ConvertJSPrimitiveToObjectOp >, v8::internal::compiler::turboshaft::OperationT< ConvertJSPrimitiveToUntaggedOp >, v8::internal::compiler::turboshaft::OperationT< ConvertJSPrimitiveToUntaggedOrDeoptOp >, v8::internal::compiler::turboshaft::OperationT< ConvertOp >, v8::internal::compiler::turboshaft::OperationT< ConvertUntaggedToJSPrimitiveOp >, v8::internal::compiler::turboshaft::OperationT< ConvertUntaggedToJSPrimitiveOrDeoptOp >, v8::internal::compiler::turboshaft::OperationT< DeadOp >, v8::internal::compiler::turboshaft::OperationT< DebugBreakOp >, v8::internal::compiler::turboshaft::OperationT< DebugPrintOp >, v8::internal::compiler::turboshaft::OperationT< DecodeExternalPointerOp >, v8::internal::compiler::turboshaft::OperationT< DeoptimizeIfOp >, v8::internal::compiler::turboshaft::OperationT< DeoptimizeOp >, v8::internal::compiler::turboshaft::OperationT< DidntThrowOp >, v8::internal::compiler::turboshaft::OperationT< DoubleArrayMinMaxOp >, v8::internal::compiler::turboshaft::OperationT< EnsureWritableFastElementsOp >, v8::internal::compiler::turboshaft::OperationT< FastApiCallOp >, v8::internal::compiler::turboshaft::OperationT< FindOrderedHashEntryOp >, v8::internal::compiler::turboshaft::OperationT< Float64IsOp >, v8::internal::compiler::turboshaft::OperationT< Float64SameValueOp >, v8::internal::compiler::turboshaft::OperationT< FloatBinopOp >, v8::internal::compiler::turboshaft::OperationT< FloatUnaryOp >, v8::internal::compiler::turboshaft::OperationT< FrameConstantOp >, v8::internal::compiler::turboshaft::OperationT< FrameStateOp >, v8::internal::compiler::turboshaft::OperationT< GenericBinopOp >, v8::internal::compiler::turboshaft::OperationT< GenericUnopOp >, v8::internal::compiler::turboshaft::OperationT< GotoOp >, v8::internal::compiler::turboshaft::OperationT< JSStackCheckOp >, v8::internal::compiler::turboshaft::OperationT< LoadDataViewElementOp >, v8::internal::compiler::turboshaft::OperationT< LoadFieldByIndexOp >, v8::internal::compiler::turboshaft::OperationT< LoadMessageOp >, v8::internal::compiler::turboshaft::OperationT< LoadOp >, v8::internal::compiler::turboshaft::OperationT< LoadRootRegisterOp >, v8::internal::compiler::turboshaft::OperationT< LoadStackArgumentOp >, v8::internal::compiler::turboshaft::OperationT< LoadTypedElementOp >, v8::internal::compiler::turboshaft::OperationT< MaybeGrowFastElementsOp >, v8::internal::compiler::turboshaft::OperationT< MemoryBarrierOp >, v8::internal::compiler::turboshaft::OperationT< NewArgumentsElementsOp >, v8::internal::compiler::turboshaft::OperationT< NewArrayOp >, v8::internal::compiler::turboshaft::OperationT< NewConsStringOp >, v8::internal::compiler::turboshaft::OperationT< ObjectIsNumericValueOp >, v8::internal::compiler::turboshaft::OperationT< ObjectIsOp >, v8::internal::compiler::turboshaft::OperationT< OsrValueOp >, v8::internal::compiler::turboshaft::OperationT< OverflowCheckedBinopOp >, v8::internal::compiler::turboshaft::OperationT< OverflowCheckedUnaryOp >, v8::internal::compiler::turboshaft::OperationT< ParameterOp >, v8::internal::compiler::turboshaft::OperationT< PendingLoopPhiOp >, v8::internal::compiler::turboshaft::OperationT< PhiOp >, v8::internal::compiler::turboshaft::OperationT< ProjectionOp >, v8::internal::compiler::turboshaft::OperationT< RetainOp >, v8::internal::compiler::turboshaft::OperationT< ReturnOp >, v8::internal::compiler::turboshaft::OperationT< RuntimeAbortOp >, v8::internal::compiler::turboshaft::OperationT< SameValueOp >, v8::internal::compiler::turboshaft::OperationT< SelectOp >, v8::internal::compiler::turboshaft::OperationT< ShiftOp >, v8::internal::compiler::turboshaft::OperationT< StackPointerGreaterThanOp >, v8::internal::compiler::turboshaft::OperationT< StackSlotOp >, v8::internal::compiler::turboshaft::OperationT< StaticAssertOp >, v8::internal::compiler::turboshaft::OperationT< StoreDataViewElementOp >, v8::internal::compiler::turboshaft::OperationT< StoreMessageOp >, v8::internal::compiler::turboshaft::OperationT< StoreOp >, v8::internal::compiler::turboshaft::OperationT< StoreTypedElementOp >, v8::internal::compiler::turboshaft::OperationT< StringAtOp >, v8::internal::compiler::turboshaft::OperationT< StringComparisonOp >, v8::internal::compiler::turboshaft::OperationT< StringConcatOp >, v8::internal::compiler::turboshaft::OperationT< StringFromCodePointAtOp >, v8::internal::compiler::turboshaft::OperationT< StringIndexOfOp >, v8::internal::compiler::turboshaft::OperationT< StringLengthOp >, v8::internal::compiler::turboshaft::OperationT< StringSubstringOp >, v8::internal::compiler::turboshaft::OperationT< SwitchOp >, v8::internal::compiler::turboshaft::OperationT< TaggedBitcastOp >, v8::internal::compiler::turboshaft::OperationT< TailCallOp >, v8::internal::compiler::turboshaft::OperationT< ToNumberOrNumericOp >, v8::internal::compiler::turboshaft::OperationT< TransitionAndStoreArrayElementOp >, v8::internal::compiler::turboshaft::OperationT< TransitionElementsKindOp >, v8::internal::compiler::turboshaft::OperationT< TransitionElementsKindOrCheckMapOp >, v8::internal::compiler::turboshaft::OperationT< TruncateJSPrimitiveToUntaggedOp >, v8::internal::compiler::turboshaft::OperationT< TruncateJSPrimitiveToUntaggedOrDeoptOp >, v8::internal::compiler::turboshaft::OperationT< TryChangeOp >, v8::internal::compiler::turboshaft::OperationT< TupleOp >, v8::internal::compiler::turboshaft::OperationT< TypedArrayLengthOp >, v8::internal::compiler::turboshaft::OperationT< UnreachableOp >, v8::internal::compiler::turboshaft::OperationT< Word32PairBinopOp >, v8::internal::compiler::turboshaft::OperationT< Word32SignHintOp >, v8::internal::compiler::turboshaft::OperationT< WordBinopDeoptOnOverflowOp >, v8::internal::compiler::turboshaft::OperationT< WordBinopOp >, v8::internal::compiler::turboshaft::OperationT< WordUnaryOp >, and v8::internal::compiler::turboshaft::OperationT< Derived >.

Collaboration diagram for v8::internal::compiler::turboshaft::Operation:

Classes

struct  IdentityMapper
 

Public Member Functions

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 size_t StorageSlotCount (Opcode opcode, size_t input_count)
 

Public Attributes

const Opcode opcode
 
SaturatedUint8 saturated_use_count
 
const uint16_t input_count
 

Protected Member Functions

 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

Definition at line 934 of file operations.h.

Constructor & Destructor Documentation

◆ Operation() [1/2]

v8::internal::compiler::turboshaft::Operation::Operation ( Opcode opcode,
size_t input_count )
inlineexplicitprotected

Definition at line 1021 of file operations.h.

◆ Operation() [2/2]

v8::internal::compiler::turboshaft::Operation::Operation ( const Operation & )
protecteddelete

Member Function Documentation

◆ Cast() [1/2]

template<class Op >
underlying_operation_t< Op > & v8::internal::compiler::turboshaft::Operation::Cast ( )
inline

Definition at line 980 of file operations.h.

Here is the caller graph for this function:

◆ Cast() [2/2]

template<class Op >
const underlying_operation_t< Op > & v8::internal::compiler::turboshaft::Operation::Cast ( ) const
inline

Definition at line 985 of file operations.h.

◆ Effects()

OpEffects v8::internal::compiler::turboshaft::Operation::Effects ( ) const
inline

Definition at line 9130 of file operations.h.

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

◆ input()

V8_INLINE OpIndex v8::internal::compiler::turboshaft::Operation::input ( size_t i) const
inline

Definition at line 959 of file operations.h.

Here is the caller graph for this function:

◆ inputs()

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

Definition at line 9121 of file operations.h.

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

◆ inputs_rep()

base::Vector< const MaybeRegisterRepresentation > v8::internal::compiler::turboshaft::Operation::inputs_rep ( ZoneVector< MaybeRegisterRepresentation > & storage) const
inline

Definition at line 9203 of file operations.h.

◆ Is()

template<class Op >
bool v8::internal::compiler::turboshaft::Operation::Is ( ) const
inline

Definition at line 971 of file operations.h.

Here is the caller graph for this function:

◆ IsBlockTerminator()

bool v8::internal::compiler::turboshaft::Operation::IsBlockTerminator ( ) const
inline

Definition at line 1000 of file operations.h.

Here is the caller graph for this function:

◆ IsOnlyUserOf()

bool v8::internal::compiler::turboshaft::Operation::IsOnlyUserOf ( const Operation & value,
const Graph & graph ) const

Definition at line 2150 of file operations.cc.

Here is the call graph for this function:

◆ IsProtectedLoad()

bool v8::internal::compiler::turboshaft::Operation::IsProtectedLoad ( ) const

◆ IsRequiredWhenUnused()

bool v8::internal::compiler::turboshaft::Operation::IsRequiredWhenUnused ( ) const
inline

Definition at line 1003 of file operations.h.

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

◆ operator=()

Operation & v8::internal::compiler::turboshaft::Operation::operator= ( const Operation & )
protecteddelete

◆ outputs_rep()

base::Vector< const RegisterRepresentation > v8::internal::compiler::turboshaft::Operation::outputs_rep ( ) const
inline

Definition at line 9190 of file operations.h.

Here is the caller graph for this function:

◆ Print()

void v8::internal::compiler::turboshaft::Operation::Print ( ) const

Definition at line 41 of file operations.cc.

◆ PrintInputs()

void v8::internal::compiler::turboshaft::Operation::PrintInputs ( std::ostream & os,
const std::string & op_index_prefix ) const

Definition at line 532 of file operations.cc.

Here is the caller graph for this function:

◆ PrintOptions()

void v8::internal::compiler::turboshaft::Operation::PrintOptions ( std::ostream & os) const

Definition at line 544 of file operations.cc.

Here is the caller graph for this function:

◆ StorageSlotCount() [1/2]

size_t v8::internal::compiler::turboshaft::Operation::StorageSlotCount ( ) const
inline

Definition at line 962 of file operations.h.

◆ StorageSlotCount() [2/2]

size_t v8::internal::compiler::turboshaft::Operation::StorageSlotCount ( Opcode opcode,
size_t input_count )
inlinestatic

Definition at line 9179 of file operations.h.

Here is the call graph for this function:

◆ ToString()

std::string v8::internal::compiler::turboshaft::Operation::ToString ( ) const

Definition at line 1965 of file operations.cc.

Here is the caller graph for this function:

◆ TryCast() [1/2]

template<class Op >
underlying_operation_t< Op > * v8::internal::compiler::turboshaft::Operation::TryCast ( )
inline

Definition at line 995 of file operations.h.

◆ TryCast() [2/2]

template<class Op >
const underlying_operation_t< Op > * v8::internal::compiler::turboshaft::Operation::TryCast ( ) const
inline

Definition at line 990 of file operations.h.

Here is the caller graph for this function:

◆ V8_CLANG_NO_SANITIZE()

template<class OpmaskT >
v8::internal::compiler::turboshaft::Operation::V8_CLANG_NO_SANITIZE ( "memory" ) const
inlineprotected

Definition at line 1033 of file operations.h.

Member Data Documentation

◆ input_count

const uint16_t v8::internal::compiler::turboshaft::Operation::input_count

Definition at line 954 of file operations.h.

◆ opcode

const Opcode v8::internal::compiler::turboshaft::Operation::opcode

Definition at line 944 of file operations.h.

◆ saturated_use_count

SaturatedUint8 v8::internal::compiler::turboshaft::Operation::saturated_use_count

Definition at line 952 of file operations.h.


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