v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
operations.h File Reference
Include dependency graph for operations.h:

Go to the source code of this file.

Classes

struct  v8::internal::compiler::turboshaft::VariableData
 
struct  v8::internal::compiler::turboshaft::detail::operation_to_opcode_map< Op >
 
struct  v8::internal::compiler::turboshaft::operation_to_opcode< Op >
 
struct  v8::internal::compiler::turboshaft::OpMaskT< Op, Mask, Value >
 
class  v8::internal::compiler::turboshaft::InputsRepFactory
 
struct  v8::internal::compiler::turboshaft::EffectDimensions
 
struct  v8::internal::compiler::turboshaft::OpEffects
 
class  v8::internal::compiler::turboshaft::SaturatedUint8
 
struct  v8::internal::compiler::turboshaft::underlying_operation< T >
 
struct  v8::internal::compiler::turboshaft::underlying_operation< OpMaskT< T, M, V > >
 
struct  v8::internal::compiler::turboshaft::Operation
 
struct  v8::internal::compiler::turboshaft::Operation::IdentityMapper
 
struct  v8::internal::compiler::turboshaft::OperationPrintStyle
 
struct  v8::internal::compiler::turboshaft::HasStaticEffects< Op, class >
 
struct  v8::internal::compiler::turboshaft::HasStaticEffects< Op, std::void_t< decltype(Op::effects)> >
 
struct  v8::internal::compiler::turboshaft::OperationT< Derived >
 
struct  v8::internal::compiler::turboshaft::FixedArityOperationT< InputCount, Derived >
 
class  v8::internal::compiler::turboshaft::SupportedOperations
 
struct  v8::internal::compiler::turboshaft::DeadOp
 
struct  v8::internal::compiler::turboshaft::AbortCSADcheckOp
 
struct  v8::internal::compiler::turboshaft::GenericBinopOp
 
struct  v8::internal::compiler::turboshaft::GenericUnopOp
 
struct  v8::internal::compiler::turboshaft::ToNumberOrNumericOp
 
struct  v8::internal::compiler::turboshaft::Word32SignHintOp
 
struct  v8::internal::compiler::turboshaft::WordBinopOp
 
struct  v8::internal::compiler::turboshaft::FloatBinopOp
 
struct  v8::internal::compiler::turboshaft::Word32PairBinopOp
 
struct  v8::internal::compiler::turboshaft::WordBinopDeoptOnOverflowOp
 
struct  v8::internal::compiler::turboshaft::OverflowCheckedBinopOp
 
struct  v8::internal::compiler::turboshaft::WordUnaryOp
 
struct  v8::internal::compiler::turboshaft::OverflowCheckedUnaryOp
 
struct  v8::internal::compiler::turboshaft::FloatUnaryOp
 
struct  v8::internal::compiler::turboshaft::ShiftOp
 
struct  v8::internal::compiler::turboshaft::ComparisonOp
 
struct  v8::internal::compiler::turboshaft::ChangeOp
 
struct  v8::internal::compiler::turboshaft::ChangeOrDeoptOp
 
struct  v8::internal::compiler::turboshaft::TryChangeOp
 
struct  v8::internal::compiler::turboshaft::BitcastWord32PairToFloat64Op
 
struct  v8::internal::compiler::turboshaft::TaggedBitcastOp
 
struct  v8::internal::compiler::turboshaft::SelectOp
 
struct  v8::internal::compiler::turboshaft::PhiOp
 
struct  v8::internal::compiler::turboshaft::PendingLoopPhiOp
 
struct  v8::internal::compiler::turboshaft::ConstantOp
 
union  v8::internal::compiler::turboshaft::ConstantOp::Storage
 
struct  v8::internal::compiler::turboshaft::LoadOp
 
struct  v8::internal::compiler::turboshaft::LoadOp::Kind
 
struct  v8::internal::compiler::turboshaft::AtomicRMWOp
 
struct  v8::internal::compiler::turboshaft::AtomicWord32PairOp
 
struct  v8::internal::compiler::turboshaft::MemoryBarrierOp
 
struct  v8::internal::compiler::turboshaft::StoreOp
 
struct  v8::internal::compiler::turboshaft::AllocateOp
 
struct  v8::internal::compiler::turboshaft::DecodeExternalPointerOp
 
struct  v8::internal::compiler::turboshaft::JSStackCheckOp
 
struct  v8::internal::compiler::turboshaft::RetainOp
 
struct  v8::internal::compiler::turboshaft::StackPointerGreaterThanOp
 
struct  v8::internal::compiler::turboshaft::StackSlotOp
 
struct  v8::internal::compiler::turboshaft::FrameConstantOp
 
struct  v8::internal::compiler::turboshaft::FrameStateOp
 
struct  v8::internal::compiler::turboshaft::DeoptimizeOp
 
struct  v8::internal::compiler::turboshaft::DeoptimizeIfOp
 
struct  v8::internal::compiler::turboshaft::StaticAssertOp
 
struct  v8::internal::compiler::turboshaft::ParameterOp
 
struct  v8::internal::compiler::turboshaft::OsrValueOp
 
struct  v8::internal::compiler::turboshaft::TSCallDescriptor
 
struct  v8::internal::compiler::turboshaft::fast_hash< TSCallDescriptor >
 
struct  v8::internal::compiler::turboshaft::CallOp
 
struct  v8::internal::compiler::turboshaft::CheckExceptionOp
 
struct  v8::internal::compiler::turboshaft::CatchBlockBeginOp
 
struct  v8::internal::compiler::turboshaft::DidntThrowOp
 
struct  v8::internal::compiler::turboshaft::TailCallOp
 
struct  v8::internal::compiler::turboshaft::UnreachableOp
 
struct  v8::internal::compiler::turboshaft::ReturnOp
 
struct  v8::internal::compiler::turboshaft::GotoOp
 
struct  v8::internal::compiler::turboshaft::BranchOp
 
struct  v8::internal::compiler::turboshaft::SwitchOp
 
struct  v8::internal::compiler::turboshaft::SwitchOp::Case
 
struct  v8::internal::compiler::turboshaft::fast_hash< SwitchOp::Case >
 
struct  v8::internal::compiler::turboshaft::TupleOp
 
struct  v8::internal::compiler::turboshaft::ProjectionOp
 
struct  v8::internal::compiler::turboshaft::CheckTurboshaftTypeOfOp
 
struct  v8::internal::compiler::turboshaft::ObjectIsOp
 
struct  v8::internal::compiler::turboshaft::Float64IsOp
 
struct  v8::internal::compiler::turboshaft::ObjectIsNumericValueOp
 
struct  v8::internal::compiler::turboshaft::ConvertOp
 
struct  v8::internal::compiler::turboshaft::ConvertUntaggedToJSPrimitiveOp
 
struct  v8::internal::compiler::turboshaft::ConvertUntaggedToJSPrimitiveOrDeoptOp
 
struct  v8::internal::compiler::turboshaft::ConvertJSPrimitiveToUntaggedOp
 
struct  v8::internal::compiler::turboshaft::ConvertJSPrimitiveToUntaggedOrDeoptOp
 
struct  v8::internal::compiler::turboshaft::TruncateJSPrimitiveToUntaggedOp
 
struct  v8::internal::compiler::turboshaft::TruncateJSPrimitiveToUntaggedOrDeoptOp
 
struct  v8::internal::compiler::turboshaft::ConvertJSPrimitiveToObjectOp
 
struct  v8::internal::compiler::turboshaft::NewConsStringOp
 
struct  v8::internal::compiler::turboshaft::NewArrayOp
 
struct  v8::internal::compiler::turboshaft::DoubleArrayMinMaxOp
 
struct  v8::internal::compiler::turboshaft::LoadFieldByIndexOp
 
struct  v8::internal::compiler::turboshaft::DebugBreakOp
 
struct  v8::internal::compiler::turboshaft::DebugPrintOp
 
struct  v8::internal::compiler::turboshaft::BigIntBinopOp
 
struct  v8::internal::compiler::turboshaft::BigIntComparisonOp
 
struct  v8::internal::compiler::turboshaft::BigIntUnaryOp
 
struct  v8::internal::compiler::turboshaft::LoadRootRegisterOp
 
struct  v8::internal::compiler::turboshaft::StringAtOp
 
struct  v8::internal::compiler::turboshaft::StringLengthOp
 
struct  v8::internal::compiler::turboshaft::TypedArrayLengthOp
 
struct  v8::internal::compiler::turboshaft::StringIndexOfOp
 
struct  v8::internal::compiler::turboshaft::StringFromCodePointAtOp
 
struct  v8::internal::compiler::turboshaft::StringSubstringOp
 
struct  v8::internal::compiler::turboshaft::StringConcatOp
 
struct  v8::internal::compiler::turboshaft::StringComparisonOp
 
struct  v8::internal::compiler::turboshaft::ArgumentsLengthOp
 
struct  v8::internal::compiler::turboshaft::NewArgumentsElementsOp
 
struct  v8::internal::compiler::turboshaft::LoadTypedElementOp
 
struct  v8::internal::compiler::turboshaft::LoadDataViewElementOp
 
struct  v8::internal::compiler::turboshaft::LoadStackArgumentOp
 
struct  v8::internal::compiler::turboshaft::StoreTypedElementOp
 
struct  v8::internal::compiler::turboshaft::StoreDataViewElementOp
 
struct  v8::internal::compiler::turboshaft::TransitionAndStoreArrayElementOp
 
struct  v8::internal::compiler::turboshaft::CompareMapsOp
 
struct  v8::internal::compiler::turboshaft::CheckMapsOp
 
struct  v8::internal::compiler::turboshaft::AssumeMapOp
 
struct  v8::internal::compiler::turboshaft::CheckedClosureOp
 
struct  v8::internal::compiler::turboshaft::CheckEqualsInternalizedStringOp
 
struct  v8::internal::compiler::turboshaft::LoadMessageOp
 
struct  v8::internal::compiler::turboshaft::StoreMessageOp
 
struct  v8::internal::compiler::turboshaft::SameValueOp
 
struct  v8::internal::compiler::turboshaft::Float64SameValueOp
 
struct  v8::internal::compiler::turboshaft::FastApiCallParameters
 
struct  v8::internal::compiler::turboshaft::FastApiCallOp
 
struct  v8::internal::compiler::turboshaft::RuntimeAbortOp
 
struct  v8::internal::compiler::turboshaft::EnsureWritableFastElementsOp
 
struct  v8::internal::compiler::turboshaft::MaybeGrowFastElementsOp
 
struct  v8::internal::compiler::turboshaft::TransitionElementsKindOp
 
struct  v8::internal::compiler::turboshaft::TransitionElementsKindOrCheckMapOp
 
struct  v8::internal::compiler::turboshaft::FindOrderedHashEntryOp
 
struct  v8::internal::compiler::turboshaft::CommentOp
 
struct  v8::internal::compiler::turboshaft::opcode_to_operation_map< opcode >
 
struct  v8::internal::compiler::turboshaft::static_operation_input_count< Op, class >
 
struct  v8::internal::compiler::turboshaft::static_operation_input_count< Op, std::void_t< decltype(Op::inputs)> >
 
struct  v8::internal::compiler::turboshaft::details::TupleHasType< T, std::tuple< Ts... > >
 
struct  v8::internal::compiler::turboshaft::details::ThrowingOpHasProperMembers< Op, typename >
 
struct  v8::internal::compiler::turboshaft::details::ThrowingOpHasProperMembers< Op, std::void_t< std::conjunction< decltype(Op::kOutputRepsStorage), decltype(Op::lazy_deopt_on_throw)> > >
 
struct  v8::internal::compiler::turboshaft::details::ThrowingOpHasLazyDeoptOption< Op, typename >
 
struct  v8::internal::compiler::turboshaft::details::ThrowingOpHasLazyDeoptOption< Op, std::enable_if_t< TupleHasType< LazyDeoptOnThrow, decltype(std::declval< Op >().options())>::value > >
 
struct  v8::internal::compiler::turboshaft::details::ThrowingOpHasLazyDeoptOption< CallOp, void >
 
struct  v8::internal::compiler::turboshaft::details::ThrowingOpHasProperMembers< CallOp, void >
 
struct  v8::internal::compiler::turboshaft::details::ThrowingOpHasProperMembers< FastApiCallOp, void >
 

Namespaces

namespace  v8
 
namespace  v8::internal
 
namespace  v8::internal::compiler
 
namespace  v8::internal::compiler::turboshaft
 
namespace  v8::internal::compiler::turboshaft::detail
 
namespace  v8::internal::compiler::turboshaft::details
 

Macros

#define TURBOSHAFT_INTL_OPERATION_LIST(V)
 
#define TURBOSHAFT_WASM_OPERATION_LIST(V)
 
#define TURBOSHAFT_SIMD_OPERATION_LIST(V)
 
#define TURBOSHAFT_OPERATION_LIST_BLOCK_TERMINATOR(V)
 
#define TURBOSHAFT_CPED_OPERATION_LIST(V)
 
#define TURBOSHAFT_SIMPLIFIED_OPERATION_LIST(V)
 
#define TURBOSHAFT_MACHINE_OPERATION_LIST(V)
 
#define TURBOSHAFT_JS_THROWING_OPERATION_LIST(V)
 
#define TURBOSHAFT_JS_OPERATION_LIST(V)
 
#define TURBOSHAFT_OTHER_OPERATION_LIST(V)
 
#define TURBOSHAFT_OPERATION_LIST_NOT_BLOCK_TERMINATOR(V)
 
#define TURBOSHAFT_OPERATION_LIST(V)
 
#define ENUM_CONSTANT(Name)
 
#define FORWARD_DECLARE(Name)
 
#define OPERATION_OPCODE_MAP_CASE(Name)
 
#define COUNT_OPCODES(Name)
 
#define COUNT_OPCODES(Name)
 
#define TURBOSHAFT_THROWING_STATIC_OUTPUTS_OPERATIONS_LIST(V)
 
#define TURBOSHAFT_THROWING_OPERATIONS_LIST(V)
 
#define CASE(Name)
 
#define THROWING_OP_BOILERPLATE(...)
 
#define SUPPORTED_OPERATIONS_LIST(V)
 
#define DECLARE_FIELD(name, machine_name)
 
#define DECLARE_GETTER(name, machine_name)
 
#define GENERIC_BINOP_LIST(V)
 
#define DEFINE_KIND(Name)
 
#define GENERIC_UNOP_LIST(V)
 
#define DEFINE_KIND(Name)
 
#define NON_TERMINATOR_CASE(op)
 
#define OPERATION_EFFECTS_CASE(Name)
 
#define OPERATION_OPCODE_MAP_CASE(Name)
 
#define OPERATION_SIZE(Name)
 
#define OPERATION_SIZE(Name)
 
#define CASE(type)
 
#define CASE(type)
 
#define CASE(name)
 
#define THROWING_OP_LOOKS_VALID(Name)
 

Typedefs

using v8::internal::compiler::turboshaft::Variable = SnapshotTable<OpIndex, VariableData>::Key
 
template<typename T >
using v8::internal::compiler::turboshaft::underlying_operation_t = typename underlying_operation<T>::type
 

Enumerations

enum class  v8::internal::compiler::turboshaft::HashingStrategy { v8::internal::compiler::turboshaft::kDefault , v8::internal::compiler::turboshaft::kMakeSnapshotStable }
 
enum class  v8::internal::compiler::turboshaft::Opcode : uint8_t { v8::internal::compiler::turboshaft::ENUM_CONSTANT }
 
enum class  v8::internal::compiler::turboshaft::NumericKind : uint8_t {
  v8::internal::compiler::turboshaft::kFloat64Hole , v8::internal::compiler::turboshaft::kFinite , v8::internal::compiler::turboshaft::kInteger , v8::internal::compiler::turboshaft::kSafeInteger ,
  v8::internal::compiler::turboshaft::kInt32 , v8::internal::compiler::turboshaft::kSmi , v8::internal::compiler::turboshaft::kMinusZero , v8::internal::compiler::turboshaft::kNaN
}
 

Functions

std::ostream & v8::internal::operator<< (std::ostream &os, AbortReason reason)
 
const char * v8::internal::compiler::turboshaft::OpcodeName (Opcode opcode)
 
constexpr std::underlying_type_t< Opcodev8::internal::compiler::turboshaft::OpcodeIndex (Opcode x)
 
constexpr bool v8::internal::compiler::turboshaft::IsBlockTerminator (Opcode opcode)
 
constexpr bool v8::internal::compiler::turboshaft::MayThrow (Opcode opcode)
 
template<typename T >
base::Vector< Tv8::internal::compiler::turboshaft::InitVectorOf (ZoneVector< T > &storage, std::initializer_list< RegisterRepresentation > values)
 
V8_INLINE size_t v8::internal::compiler::turboshaft::hash_value (OpEffects effects)
 
bool v8::internal::compiler::turboshaft::CannotSwapOperations (OpEffects first, OpEffects second)
 
bool v8::internal::compiler::turboshaft::CannotSwapProtectedLoads (OpEffects first, OpEffects second)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, OpEffects effects)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, OperationPrintStyle styled_op)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, const Operation &op)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, RootIndex index)
 
Zonev8::internal::compiler::turboshaft::get_zone (Graph *graph)
 
V8_INLINE OperationStorageSlotv8::internal::compiler::turboshaft::AllocateOpStorage (Graph *graph, size_t slot_count)
 
V8_INLINE const Operationv8::internal::compiler::turboshaft::Get (const Graph &graph, OpIndex index)
 
template<RegisterRepresentation::Enum... reps>
base::Vector< const RegisterRepresentationv8::internal::compiler::turboshaft::RepVector ()
 
template<MaybeRegisterRepresentation::Enum... reps>
base::Vector< const MaybeRegisterRepresentationv8::internal::compiler::turboshaft::MaybeRepVector ()
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, GenericBinopOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, GenericUnopOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, Word32SignHintOp::Sign sign)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, WordUnaryOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, OverflowCheckedUnaryOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, FloatUnaryOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, ShiftOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, ComparisonOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, ChangeOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, ChangeOp::Assumption assumption)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, ChangeOrDeoptOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, TryChangeOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, TaggedBitcastOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, SelectOp::Implementation kind)
 
V8_INLINE size_t v8::internal::compiler::turboshaft::hash_value (LoadOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, AtomicRMWOp::BinOp bin_op)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, AtomicWord32PairOp::Kind bin_op)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, FrameConstantOp::Kind kind)
 
std::optional< Builtinv8::internal::compiler::turboshaft::TryGetBuiltinId (const ConstantOp *target, JSHeapBroker *broker)
 
base::SmallVector< Block *, 4 > v8::internal::compiler::turboshaft::SuccessorBlocks (const Operation &op)
 
base::SmallVector< Block *, 4 > v8::internal::compiler::turboshaft::SuccessorBlocks (const Block &block, const Graph &graph)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, ObjectIsOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, ObjectIsOp::InputAssumptions input_assumptions)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, NumericKind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, ConvertOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, ConvertUntaggedToJSPrimitiveOp::JSPrimitiveKind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, ConvertUntaggedToJSPrimitiveOrDeoptOp::JSPrimitiveKind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, ConvertUntaggedToJSPrimitiveOrDeoptOp::InputInterpretation input_interpretation)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, ConvertJSPrimitiveToUntaggedOp::UntaggedKind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, ConvertJSPrimitiveToUntaggedOp::InputAssumptions input_assumptions)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, ConvertJSPrimitiveToUntaggedOrDeoptOp::JSPrimitiveKind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, ConvertJSPrimitiveToUntaggedOrDeoptOp::UntaggedKind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, TruncateJSPrimitiveToUntaggedOp::UntaggedKind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, TruncateJSPrimitiveToUntaggedOp::InputAssumptions input_assumptions)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, TruncateJSPrimitiveToUntaggedOrDeoptOp::UntaggedKind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, NewArrayOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, DoubleArrayMinMaxOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, BigIntBinopOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, BigIntComparisonOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, BigIntUnaryOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, StringAtOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, StringComparisonOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, ArgumentsLengthOp::Kind kind)
 
constexpr RegisterRepresentation v8::internal::compiler::turboshaft::RegisterRepresentationForArrayType (ExternalArrayType array_type)
 
base::Vector< const RegisterRepresentationv8::internal::compiler::turboshaft::VectorForRep (RegisterRepresentation rep)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, TransitionAndStoreArrayElementOp::Kind kind)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, SameValueOp::Mode mode)
 
std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, FindOrderedHashEntryOp::Kind kind)
 
V8_INLINE bool v8::internal::compiler::turboshaft::CanBeUsedAsInput (const Operation &op)
 
bool v8::internal::compiler::turboshaft::IsUnlikelySuccessor (const Block *block, const Block *successor, const Graph &graph)
 
V8_EXPORT_PRIVATE V8_INLINE bool v8::internal::compiler::turboshaft::ShouldSkipOperation (const Operation &op)
 
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count ()
 
template<typename T >
requires (std::is_enum_v<T> || std::is_integral_v<T> || std::is_floating_point_v<T>)
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (T)
 
template<template< typename > typename HandleType, typename T >
requires (std::disjunction_v< std::is_convertible<HandleType<T>, DirectHandle<T>>, std::is_convertible<HandleType<T>, MaybeDirectHandle<T>>>)
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (const HandleType< T >)
 
template<typename T >
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (const base::Flags< T >)
 
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (const Block *)
 
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (const TSCallDescriptor *)
 
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (const char *)
 
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (const DeoptimizeParameters *)
 
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (const FastApiCallParameters *)
 
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (const FrameStateData *)
 
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (const base::Vector< SwitchOp::Case >)
 
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (LoadOp::Kind)
 
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (RegisterRepresentation)
 
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (MemoryRepresentation)
 
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (OpEffects)
 
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (ExternalPointerTagRange)
 
size_t v8::internal::compiler::turboshaft::detail::input_count (const ElementsTransition)
 
size_t v8::internal::compiler::turboshaft::detail::input_count (const ElementsTransitionWithMultipleSources)
 
size_t v8::internal::compiler::turboshaft::detail::input_count (const FeedbackSource)
 
size_t v8::internal::compiler::turboshaft::detail::input_count (const ZoneRefSet< Map >)
 
size_t v8::internal::compiler::turboshaft::detail::input_count (ConstantOp::Storage)
 
size_t v8::internal::compiler::turboshaft::detail::input_count (Type)
 
size_t v8::internal::compiler::turboshaft::detail::input_count (base::Vector< const RegisterRepresentation >)
 
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (OpIndex)
 
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (OptionalOpIndex)
 
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (base::Vector< const OpIndex > inputs)
 
template<typename T >
constexpr size_t v8::internal::compiler::turboshaft::detail::input_count (base::Vector< const V< T > > inputs)
 
template<typename Op , typename... Args>
Op * v8::internal::compiler::turboshaft::CreateOperation (base::SmallVector< OperationStorageSlot, 32 > &storage, Args... args)
 
template<typename F >
auto v8::internal::compiler::turboshaft::VisitOperation (const Operation &op, F &&f)
 

Variables

constexpr char v8::internal::compiler::turboshaft::kCompilationZoneName [] = "compilation-zone"
 
template<typename Op >
constexpr Opcode v8::internal::compiler::turboshaft::operation_to_opcode_v = operation_to_opcode<Op>::value
 
constexpr uint16_t v8::internal::compiler::turboshaft::kNumberOfBlockTerminatorOpcodes
 
constexpr uint16_t v8::internal::compiler::turboshaft::kNumberOfOpcodes
 
static constexpr std::optional< OpEffectsv8::internal::compiler::turboshaft::kOperationEffectsTable [kNumberOfOpcodes]
 
constexpr size_t v8::internal::compiler::turboshaft::kOperationSizeTable [kNumberOfOpcodes]
 
constexpr size_t v8::internal::compiler::turboshaft::kOperationSizeDividedBySizeofOpIndexTable [kNumberOfOpcodes]
 

Macro Definition Documentation

◆ CASE [1/4]

#define CASE ( Name)
Value:
case Opcode::k##Name:

◆ CASE [2/4]

#define CASE ( name)
Value:
case Opcode::k##name: \
return f(op.Cast<name##Op>());
const char * name
Definition builtins.cc:39

◆ CASE [3/4]

#define CASE ( type)
Value:
case Opcode::k##type: { \
const type##Op& op = Cast<type##Op>(); \
return op.outputs_rep(); \
}
wasm::ValueType type

◆ CASE [4/4]

#define CASE ( type)
Value:
case Opcode::k##type: { \
const type##Op& op = Cast<type##Op>(); \
return op.inputs_rep(storage); \
}

◆ COUNT_OPCODES [1/2]

#define COUNT_OPCODES ( Name)
Value:
+1

Definition at line 406 of file operations.h.

◆ COUNT_OPCODES [2/2]

#define COUNT_OPCODES ( Name)
Value:
+1

Definition at line 406 of file operations.h.

◆ DECLARE_FIELD

#define DECLARE_FIELD ( name,
machine_name )
Value:
bool name##_;
#define _

Definition at line 1345 of file operations.h.

◆ DECLARE_GETTER

#define DECLARE_GETTER ( name,
machine_name )
Value:
static bool name() { \
if constexpr (DEBUG_BOOL) { \
base::MutexGuard lock(mutex_.Pointer()); \
DCHECK(initialized_); \
} \
return instance_.name##_; \
}
base::Mutex & mutex_
#define DEBUG_BOOL
Definition globals.h:87

Definition at line 1346 of file operations.h.

◆ DEFINE_KIND [1/2]

#define DEFINE_KIND ( Name)
Value:
k##Name,

Definition at line 1455 of file operations.h.

◆ DEFINE_KIND [2/2]

#define DEFINE_KIND ( Name)
Value:
k##Name,

Definition at line 1455 of file operations.h.

◆ ENUM_CONSTANT

#define ENUM_CONSTANT ( Name)
Value:
k##Name,

Definition at line 367 of file operations.h.

◆ FORWARD_DECLARE

#define FORWARD_DECLARE ( Name)
Value:
struct Name##Op;

Definition at line 377 of file operations.h.

◆ GENERIC_BINOP_LIST

#define GENERIC_BINOP_LIST ( V)
Value:
V(Add) \
V(Multiply) \
V(Subtract) \
V(Divide) \
V(Modulus) \
V(Exponentiate) \
V(BitwiseAnd) \
V(BitwiseOr) \
V(BitwiseXor) \
V(ShiftLeft) \
V(ShiftRight) \
V(ShiftRightLogical) \
V(Equal) \
V(StrictEqual) \
V(LessThan) \
V(LessThanOrEqual) \
V(GreaterThan) \
V(GreaterThanOrEqual)
#define V(Name)

Definition at line 1435 of file operations.h.

◆ GENERIC_UNOP_LIST

#define GENERIC_UNOP_LIST ( V)
Value:
V(BitwiseNot) \
V(Negate) \
V(Increment) \
V(Decrement)

Definition at line 1489 of file operations.h.

◆ NON_TERMINATOR_CASE

#define NON_TERMINATOR_CASE ( op)
Value:
case Opcode::k##op:

◆ OPERATION_EFFECTS_CASE

#define OPERATION_EFFECTS_CASE ( Name)
Value:
Name##Op::EffectsIfStatic(),

Definition at line 9085 of file operations.h.

◆ OPERATION_OPCODE_MAP_CASE [1/2]

#define OPERATION_OPCODE_MAP_CASE ( Name)
Value:
template <> \
struct operation_to_opcode_map<Name##Op> \
: std::integral_constant<Opcode, Opcode::k##Name> {};

Definition at line 385 of file operations.h.

◆ OPERATION_OPCODE_MAP_CASE [2/2]

#define OPERATION_OPCODE_MAP_CASE ( Name)
Value:
template <> \
struct opcode_to_operation_map<Opcode::k##Name> { \
using Op = Name##Op; \
};

Definition at line 385 of file operations.h.

◆ OPERATION_SIZE [1/2]

#define OPERATION_SIZE ( Name)
Value:
sizeof(Name##Op),

◆ OPERATION_SIZE [2/2]

#define OPERATION_SIZE ( Name)
Value:
(sizeof(Name##Op) / sizeof(OpIndex)),

◆ SUPPORTED_OPERATIONS_LIST

#define SUPPORTED_OPERATIONS_LIST ( V)

Definition at line 1310 of file operations.h.

◆ THROWING_OP_BOILERPLATE

#define THROWING_OP_BOILERPLATE ( ...)
Value:
static constexpr RegisterRepresentation kOutputRepsStorage[]{__VA_ARGS__}; \
static constexpr base::Vector<const RegisterRepresentation> kOutReps = \
base::VectorOf(kOutputRepsStorage, arraysize(kOutputRepsStorage)); \
base::Vector<const RegisterRepresentation> outputs_rep() const { \
return {}; \
} \
LazyDeoptOnThrow lazy_deopt_on_throw;
#define arraysize(array)
Definition macros.h:67

Definition at line 459 of file operations.h.

◆ THROWING_OP_LOOKS_VALID

#define THROWING_OP_LOOKS_VALID ( Name)
Value:
static_assert(details::ThrowingOpHasProperMembers<Name##Op>()); \
static_assert(details::ThrowingOpHasLazyDeoptOption<Name##Op>());

Definition at line 9377 of file operations.h.

◆ TURBOSHAFT_CPED_OPERATION_LIST

#define TURBOSHAFT_CPED_OPERATION_LIST ( V)

Definition at line 226 of file operations.h.

◆ TURBOSHAFT_INTL_OPERATION_LIST

#define TURBOSHAFT_INTL_OPERATION_LIST ( V)

Definition at line 120 of file operations.h.

◆ TURBOSHAFT_JS_OPERATION_LIST

#define TURBOSHAFT_JS_OPERATION_LIST ( V)
Value:
#define TURBOSHAFT_JS_THROWING_OPERATION_LIST(V)
Definition operations.h:338

Definition at line 343 of file operations.h.

◆ TURBOSHAFT_JS_THROWING_OPERATION_LIST

#define TURBOSHAFT_JS_THROWING_OPERATION_LIST ( V)
Value:
V(GenericBinop) \
V(GenericUnop) \
V(ToNumberOrNumeric)

Definition at line 338 of file operations.h.

◆ TURBOSHAFT_MACHINE_OPERATION_LIST

#define TURBOSHAFT_MACHINE_OPERATION_LIST ( V)

Definition at line 292 of file operations.h.

◆ TURBOSHAFT_OPERATION_LIST

#define TURBOSHAFT_OPERATION_LIST ( V)
Value:
TURBOSHAFT_OPERATION_LIST_NOT_BLOCK_TERMINATOR(V)
#define TURBOSHAFT_OPERATION_LIST_BLOCK_TERMINATOR(V)
Definition operations.h:211

Definition at line 362 of file operations.h.

◆ TURBOSHAFT_OPERATION_LIST_BLOCK_TERMINATOR

#define TURBOSHAFT_OPERATION_LIST_BLOCK_TERMINATOR ( V)
Value:
V(CheckException) \
V(Goto) \
V(TailCall) \
V(Unreachable) \
V(Return) \
V(Branch) \
V(Switch) \
V(Deoptimize)

Definition at line 211 of file operations.h.

◆ TURBOSHAFT_OPERATION_LIST_NOT_BLOCK_TERMINATOR

#define TURBOSHAFT_OPERATION_LIST_NOT_BLOCK_TERMINATOR ( V)
Value:
TURBOSHAFT_SIMD_OPERATION_LIST(V) \
TURBOSHAFT_MACHINE_OPERATION_LIST(V) \
TURBOSHAFT_SIMPLIFIED_OPERATION_LIST(V) \
TURBOSHAFT_JS_OPERATION_LIST(V) \
TURBOSHAFT_OTHER_OPERATION_LIST(V)
#define TURBOSHAFT_WASM_OPERATION_LIST(V)
Definition operations.h:207

Definition at line 354 of file operations.h.

◆ TURBOSHAFT_OTHER_OPERATION_LIST

#define TURBOSHAFT_OTHER_OPERATION_LIST ( V)
Value:
V(Allocate) \
V(DecodeExternalPointer) \
V(JSStackCheck)

Definition at line 349 of file operations.h.

◆ TURBOSHAFT_SIMD_OPERATION_LIST

#define TURBOSHAFT_SIMD_OPERATION_LIST ( V)

Definition at line 208 of file operations.h.

◆ TURBOSHAFT_SIMPLIFIED_OPERATION_LIST

#define TURBOSHAFT_SIMPLIFIED_OPERATION_LIST ( V)

Definition at line 231 of file operations.h.

◆ TURBOSHAFT_THROWING_OPERATIONS_LIST

#define TURBOSHAFT_THROWING_OPERATIONS_LIST ( V)
Value:
V(Call) \
V(FastApiCall)
#define TURBOSHAFT_THROWING_STATIC_OUTPUTS_OPERATIONS_LIST(V)
Definition operations.h:421

Definition at line 426 of file operations.h.

◆ TURBOSHAFT_THROWING_STATIC_OUTPUTS_OPERATIONS_LIST

#define TURBOSHAFT_THROWING_STATIC_OUTPUTS_OPERATIONS_LIST ( V)
Value:

Definition at line 421 of file operations.h.

◆ TURBOSHAFT_WASM_OPERATION_LIST

#define TURBOSHAFT_WASM_OPERATION_LIST ( V)

Definition at line 207 of file operations.h.