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

#include <operations.h>

Inheritance diagram for v8::internal::compiler::turboshaft::ChangeOp:
Collaboration diagram for v8::internal::compiler::turboshaft::ChangeOp:

Public Types

enum class  Kind : uint8_t {
  kFloatConversion , kSignedFloatTruncateOverflowToMin , kUnsignedFloatTruncateOverflowToMin , kJSFloatTruncate ,
  kJSFloat16TruncateWithBitcast , kJSFloat16ChangeWithBitcast , kSignedToFloat , kUnsignedToFloat ,
  kExtractHighHalf , kExtractLowHalf , kZeroExtend , kSignExtend ,
  kTruncate , kBitcast
}
 
enum class  Assumption : uint8_t { kNoAssumption , kNoOverflow , kReversible }
 
- Public Types inherited from v8::internal::compiler::turboshaft::FixedArityOperationT< 1, ChangeOp >
using Base
 
- Public Types inherited from v8::internal::compiler::turboshaft::OperationT< ChangeOp >
using Base
 

Public Member Functions

bool IsReversibleBy (Kind reverse_kind, bool signalling_nan_possible) const
 
base::Vector< const RegisterRepresentationoutputs_rep () const
 
base::Vector< const MaybeRegisterRepresentationinputs_rep (ZoneVector< MaybeRegisterRepresentation > &storage) const
 
template<typename Type = Untagged>
requires IsUntagged<Type>
V< Typeinput () const
 
 ChangeOp (V< Untagged > input, Kind kind, Assumption assumption, RegisterRepresentation from, RegisterRepresentation to)
 
void Validate (const Graph &graph) const
 
auto options () const
 
- Public Member Functions inherited from v8::internal::compiler::turboshaft::FixedArityOperationT< 1, ChangeOp >
 FixedArityOperationT (Args... args)
 
V8_INLINE auto ExplodeImpl (Fn fn, Mapper &mapper, std::index_sequence< InputI... >, std::index_sequence< OptionI... >) const
 
V8_INLINE auto Explode (Fn fn, Mapper &mapper) const
 
- Public Member Functions inherited from v8::internal::compiler::turboshaft::OperationT< ChangeOp >
bool IsRequiredWhenUnused () const
 
ChangeOpderived_this ()
 
const ChangeOpderived_this () const
 
base::Vector< OpIndexinputs ()
 
base::Vector< const OpIndexinputs () const
 
V8_INLINE OpIndexinput (size_t i)
 
V8_INLINE V< Anyinput (size_t i) const
 
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
 
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 bool IsReversible (Kind kind, Assumption assumption, RegisterRepresentation from, RegisterRepresentation to, Kind reverse_kind, bool signalling_nan_possible)
 
- Static Public Member Functions inherited from v8::internal::compiler::turboshaft::FixedArityOperationT< 1, ChangeOp >
static ChangeOpNew (Graph *graph, Args... args)
 
- Static Public Member Functions inherited from v8::internal::compiler::turboshaft::OperationT< ChangeOp >
static constexpr OpEffects Effects ()
 
static constexpr bool IsBlockTerminator ()
 
static constexpr std::optional< OpEffectsEffectsIfStatic ()
 
static size_t StorageSlotCount (size_t input_count)
 
static ChangeOpNew (Graph *graph, size_t input_count, Args... args)
 
static ChangeOpNew (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)
 

Public Attributes

Kind kind
 
Assumption assumption
 
RegisterRepresentation from
 
RegisterRepresentation to
 
- Public Attributes inherited from v8::internal::compiler::turboshaft::Operation
const Opcode opcode
 
SaturatedUint8 saturated_use_count
 
const uint16_t input_count
 

Static Public Attributes

static constexpr OpEffects effects = OpEffects()
 
- Static Public Attributes inherited from v8::internal::compiler::turboshaft::FixedArityOperationT< 1, ChangeOp >
static constexpr uint16_t input_count
 
- Static Public Attributes inherited from v8::internal::compiler::turboshaft::OperationT< ChangeOp >
static const Opcode opcode
 

Additional Inherited Members

- 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

Definition at line 2152 of file operations.h.

Member Enumeration Documentation

◆ Assumption

Enumerator
kNoAssumption 
kNoOverflow 
kReversible 

Definition at line 2185 of file operations.h.

◆ Kind

Enumerator
kFloatConversion 
kSignedFloatTruncateOverflowToMin 
kUnsignedFloatTruncateOverflowToMin 
kJSFloatTruncate 
kJSFloat16TruncateWithBitcast 
kJSFloat16ChangeWithBitcast 
kSignedToFloat 
kUnsignedToFloat 
kExtractHighHalf 
kExtractLowHalf 
kZeroExtend 
kSignExtend 
kTruncate 
kBitcast 

Definition at line 2153 of file operations.h.

Constructor & Destructor Documentation

◆ ChangeOp()

v8::internal::compiler::turboshaft::ChangeOp::ChangeOp ( V< Untagged > input,
Kind kind,
Assumption assumption,
RegisterRepresentation from,
RegisterRepresentation to )
inline

Definition at line 2285 of file operations.h.

Member Function Documentation

◆ input()

template<typename Type = Untagged>
requires IsUntagged<Type>
V< Type > v8::internal::compiler::turboshaft::ChangeOp::input ( ) const
inline

Definition at line 2280 of file operations.h.

Here is the caller graph for this function:

◆ inputs_rep()

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

Definition at line 2273 of file operations.h.

◆ IsReversible()

static bool v8::internal::compiler::turboshaft::ChangeOp::IsReversible ( Kind kind,
Assumption assumption,
RegisterRepresentation from,
RegisterRepresentation to,
Kind reverse_kind,
bool signalling_nan_possible )
inlinestatic

Definition at line 2205 of file operations.h.

◆ IsReversibleBy()

bool v8::internal::compiler::turboshaft::ChangeOp::IsReversibleBy ( Kind reverse_kind,
bool signalling_nan_possible ) const
inline

Definition at line 2263 of file operations.h.

◆ options()

auto v8::internal::compiler::turboshaft::ChangeOp::options ( ) const
inline

Definition at line 2296 of file operations.h.

◆ outputs_rep()

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

Definition at line 2269 of file operations.h.

◆ Validate()

void v8::internal::compiler::turboshaft::ChangeOp::Validate ( const Graph & graph) const
inline

Definition at line 2289 of file operations.h.

Member Data Documentation

◆ assumption

Assumption v8::internal::compiler::turboshaft::ChangeOp::assumption

Definition at line 2197 of file operations.h.

◆ effects

OpEffects v8::internal::compiler::turboshaft::ChangeOp::effects = OpEffects()
staticconstexpr

Definition at line 2268 of file operations.h.

◆ from

RegisterRepresentation v8::internal::compiler::turboshaft::ChangeOp::from

Definition at line 2198 of file operations.h.

◆ kind

Kind v8::internal::compiler::turboshaft::ChangeOp::kind

Definition at line 2194 of file operations.h.

◆ to

RegisterRepresentation v8::internal::compiler::turboshaft::ChangeOp::to

Definition at line 2199 of file operations.h.


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