v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
index.h File Reference
#include <stdint.h>
#include <cstddef>
#include <optional>
#include <type_traits>
#include "src/base/logging.h"
#include "src/codegen/tnode.h"
#include "src/compiler/turboshaft/fast-hash.h"
#include "src/compiler/turboshaft/representations.h"
#include "src/objects/heap-number.h"
#include "src/objects/js-function.h"
#include "src/objects/oddball.h"
#include "src/objects/string.h"
#include "src/objects/tagged.h"
Include dependency graph for index.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  v8::internal::compiler::turboshaft::OpIndex
 
class  v8::internal::compiler::turboshaft::OptionalOpIndex
 
struct  v8::internal::compiler::turboshaft::nullrep_t
 
struct  v8::internal::compiler::turboshaft::Any
 
struct  v8::internal::compiler::turboshaft::None
 
struct  v8::internal::compiler::turboshaft::WordWithBits< Bits >
 
struct  v8::internal::compiler::turboshaft::FloatWithBits< Bits >
 
struct  v8::internal::compiler::turboshaft::Compressed
 
struct  v8::internal::compiler::turboshaft::InternalTag
 
struct  v8::internal::compiler::turboshaft::FrameState
 
struct  v8::internal::compiler::turboshaft::UntaggedUnion< Ts >
 
struct  v8::internal::compiler::turboshaft::Tuple< Ts >
 
struct  v8::internal::compiler::turboshaft::v_traits< Any >
 
struct  v8::internal::compiler::turboshaft::v_traits< Any >::implicitly_constructible_from
 
struct  v8::internal::compiler::turboshaft::v_traits< None >
 
struct  v8::internal::compiler::turboshaft::v_traits< None >::implicitly_constructible_from
 
struct  v8::internal::compiler::turboshaft::v_traits< Compressed >
 
struct  v8::internal::compiler::turboshaft::v_traits< Compressed >::implicitly_constructible_from
 
struct  v8::internal::compiler::turboshaft::v_traits< Word32 >
 
struct  v8::internal::compiler::turboshaft::v_traits< Word32 >::implicitly_constructible_from
 
struct  v8::internal::compiler::turboshaft::v_traits< Word64 >
 
struct  v8::internal::compiler::turboshaft::v_traits< Word64 >::implicitly_constructible_from
 
struct  v8::internal::compiler::turboshaft::v_traits< Float32 >
 
struct  v8::internal::compiler::turboshaft::v_traits< Float32 >::implicitly_constructible_from
 
struct  v8::internal::compiler::turboshaft::v_traits< Float64 >
 
struct  v8::internal::compiler::turboshaft::v_traits< Float64 >::implicitly_constructible_from
 
struct  v8::internal::compiler::turboshaft::v_traits< Simd128 >
 
struct  v8::internal::compiler::turboshaft::v_traits< Simd128 >::implicitly_constructible_from
 
struct  v8::internal::compiler::turboshaft::v_traits< Simd256 >
 
struct  v8::internal::compiler::turboshaft::v_traits< Simd256 >::implicitly_constructible_from
 
struct  v8::internal::compiler::turboshaft::v_traits< T, std::enable_if_t< is_taggable_v< T > &&!is_union_v< T > > >
 
struct  v8::internal::compiler::turboshaft::v_traits< T, std::enable_if_t< is_taggable_v< T > &&!is_union_v< T > > >::implicitly_constructible_from< U >
 
struct  v8::internal::compiler::turboshaft::v_traits< T, std::enable_if_t< is_taggable_v< T > &&!is_union_v< T > > >::implicitly_constructible_from< UntaggedUnion< Us... > >
 
struct  v8::internal::compiler::turboshaft::v_traits< Union< T, Ts... > >
 
struct  v8::internal::compiler::turboshaft::v_traits< Union< T, Ts... > >::implicitly_constructible_from< U >
 
struct  v8::internal::compiler::turboshaft::v_traits< Union< T, Ts... > >::implicitly_constructible_from< Union< Us... > >
 
struct  v8::internal::compiler::turboshaft::detail::RepresentationForUnionBase< T, SameStaticRep >
 
struct  v8::internal::compiler::turboshaft::detail::RepresentationForUnionBase< T, true >
 
struct  v8::internal::compiler::turboshaft::detail::RepresentationForUnion< T >
 
struct  v8::internal::compiler::turboshaft::detail::RepresentationForUnion< UntaggedUnion< T, Ts... > >
 
struct  v8::internal::compiler::turboshaft::detail::RepresentationForUnion< UntaggedUnion< T, Ts... > >::to_rep_type< U >
 
struct  v8::internal::compiler::turboshaft::v_traits< UntaggedUnion< Ts... > >
 
struct  v8::internal::compiler::turboshaft::v_traits< UntaggedUnion< Ts... > >::implicitly_constructible_from< U >
 
struct  v8::internal::compiler::turboshaft::v_traits< UntaggedUnion< Ts... > >::implicitly_constructible_from< UntaggedUnion< Us... > >
 
struct  v8::internal::compiler::turboshaft::v_traits< T, std::enable_if_t< std::is_base_of_v< InternalTag, T > > >
 
struct  v8::internal::compiler::turboshaft::v_traits< T, std::enable_if_t< std::is_base_of_v< InternalTag, T > > >::implicitly_constructible_from< U >
 
struct  v8::internal::compiler::turboshaft::v_traits< Tuple< Ts... > >
 
struct  v8::internal::compiler::turboshaft::v_traits< Tuple< Ts... > >::implicitly_constructible_from< U >
 
struct  v8::internal::compiler::turboshaft::v_traits< Tuple< Ts... > >::implicitly_constructible_from< Tuple< Us... > >
 
class  v8::internal::compiler::turboshaft::V< T >
 
class  v8::internal::compiler::turboshaft::OptionalV< T >
 
class  v8::internal::compiler::turboshaft::ConstOrV< T, C >
 
struct  v8::internal::compiler::turboshaft::fast_hash< OpIndex >
 
struct  v8::internal::compiler::turboshaft::detail::ConstOrVTypeHelper< T, typename >
 
struct  v8::internal::compiler::turboshaft::detail::ConstOrVTypeHelper< T, std::void_t< ConstOrV< T > > >
 
class  v8::internal::compiler::turboshaft::ShadowyOpIndex
 
class  v8::internal::compiler::turboshaft::ShadowyOpIndexVectorWrapper
 
class  v8::internal::compiler::turboshaft::BlockIndex
 
struct  v8::internal::compiler::turboshaft::fast_hash< BlockIndex >
 
struct  std::hash< v8::internal::compiler::turboshaft::OpIndex >
 

Namespaces

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

Concepts

concept  v8::internal::compiler::turboshaft::IsUntagged
 
concept  v8::internal::compiler::turboshaft::IsTagged
 

Macros

#define TURBOSHAFT_ALLOW_IMPLICIT_OPINDEX_INITIALIZATION_FOR_V   1
 
#define DEFINE_STRONG_ORDERING_COMPARISON(lhs_type, rhs_type, lhs_access, rhs_access)
 

Typedefs

using v8::internal::compiler::turboshaft::OperationStorageSlot = uint64_t
 
using v8::internal::compiler::turboshaft::Word32 = WordWithBits<32>
 
using v8::internal::compiler::turboshaft::Word64 = WordWithBits<64>
 
using v8::internal::compiler::turboshaft::WordPtr = std::conditional_t<Is64(), Word64, Word32>
 
using v8::internal::compiler::turboshaft::Float32 = FloatWithBits<32>
 
using v8::internal::compiler::turboshaft::Float64 = FloatWithBits<64>
 
using v8::internal::compiler::turboshaft::Simd128 = WordWithBits<128>
 
using v8::internal::compiler::turboshaft::Simd256 = WordWithBits<256>
 
using v8::internal::compiler::turboshaft::Word = UntaggedUnion<Word32, Word64>
 
using v8::internal::compiler::turboshaft::Float = UntaggedUnion<Float32, Float64>
 
using v8::internal::compiler::turboshaft::Float64OrWord32 = UntaggedUnion<Float64, Word32>
 
using v8::internal::compiler::turboshaft::Untagged = UntaggedUnion<Word, Float>
 
using v8::internal::compiler::turboshaft::BooleanOrNullOrUndefined = UnionOf<Boolean, Null, Undefined>
 
using v8::internal::compiler::turboshaft::NumberOrString = UnionOf<Number, String>
 
using v8::internal::compiler::turboshaft::PlainPrimitive = UnionOf<NumberOrString, BooleanOrNullOrUndefined>
 
using v8::internal::compiler::turboshaft::StringOrNull = UnionOf<String, Null>
 
using v8::internal::compiler::turboshaft::NumberOrUndefined = UnionOf<Number, Undefined>
 
using v8::internal::compiler::turboshaft::AnyFixedArray = UnionOf<FixedArray, FixedDoubleArray>
 
using v8::internal::compiler::turboshaft::NonBigIntPrimitive = UnionOf<Symbol, PlainPrimitive>
 
using v8::internal::compiler::turboshaft::Primitive = UnionOf<BigInt, NonBigIntPrimitive>
 
using v8::internal::compiler::turboshaft::CallTarget = UntaggedUnion<WordPtr, Code, JSFunction, Word32>
 
using v8::internal::compiler::turboshaft::AnyOrNone = UntaggedUnion<Any, None>
 
using v8::internal::compiler::turboshaft::Word32Pair = Tuple<Word32, Word32>
 
template<typename T >
using v8::internal::compiler::turboshaft::maybe_const_or_v_t = typename detail::ConstOrVTypeHelper<T>::type
 

Functions

V8_EXPORT_PRIVATE std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, OpIndex idx)
 
V8_INLINE std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, OptionalOpIndex idx)
 
constexpr bool v8::internal::compiler::turboshaft::operator== (nullrep_t, nullrep_t)
 
constexpr bool v8::internal::compiler::turboshaft::operator== (nullrep_t, RegisterRepresentation)
 
constexpr bool v8::internal::compiler::turboshaft::operator== (RegisterRepresentation, nullrep_t)
 
constexpr bool v8::internal::compiler::turboshaft::operator!= (nullrep_t, nullrep_t)
 
constexpr bool v8::internal::compiler::turboshaft::operator!= (nullrep_t, RegisterRepresentation)
 
constexpr bool v8::internal::compiler::turboshaft::operator!= (RegisterRepresentation, nullrep_t)
 
template<typename T >
constexpr bool v8::internal::compiler::turboshaft::IsWord ()
 
template<typename T >
constexpr bool v8::internal::compiler::turboshaft::IsValidTypeFor (RegisterRepresentation repr)
 
template<typename T >
 v8::internal::compiler::turboshaft::OptionalV (V< T >) -> OptionalV< T >
 
template<typename T >
 v8::internal::compiler::turboshaft::ConstOrV (V< T >) -> ConstOrV< T >
 
V8_INLINE size_t v8::internal::compiler::turboshaft::hash_value (OpIndex op)
 
V8_INLINE size_t v8::internal::compiler::turboshaft::hash_value (OptionalOpIndex op)
 
V8_INLINE size_t v8::internal::compiler::turboshaft::hash_value (BlockIndex op)
 
V8_EXPORT_PRIVATE std::ostream & v8::internal::compiler::turboshaft::operator<< (std::ostream &os, BlockIndex b)
 
 v8::internal::compiler::turboshaft::DEFINE_STRONG_ORDERING_COMPARISON (OptionalOpIndex, OptionalOpIndex, l.value_or_invalid(), r.value_or_invalid()) DEFINE_STRONG_ORDERING_COMPARISON(OpIndex
 
r v8::internal::compiler::turboshaft::value_or_invalid ()) DEFINE_STRONG_ORDERING_COMPARISON(OptionalOpIndex
 

Variables

constexpr size_t v8::internal::compiler::turboshaft::kSlotsPerId = 2
 
constexpr nullrep_t v8::internal::compiler::turboshaft::nullrep
 
template<typename T >
constexpr bool v8::internal::compiler::turboshaft::const_or_v_exists_v = detail::ConstOrVTypeHelper<T>::exists
 
 v8::internal::compiler::turboshaft::OptionalOpIndex
 
 v8::internal::compiler::turboshaft::l
 
r v8::internal::compiler::turboshaft::OpIndex
 

Macro Definition Documentation

◆ DEFINE_STRONG_ORDERING_COMPARISON

#define DEFINE_STRONG_ORDERING_COMPARISON ( lhs_type,
rhs_type,
lhs_access,
rhs_access )
Value:
V8_INLINE constexpr bool operator==(lhs_type l, rhs_type r) { \
return lhs_access == rhs_access; \
} \
V8_INLINE constexpr bool operator!=(lhs_type l, rhs_type r) { \
return lhs_access != rhs_access; \
} \
V8_INLINE constexpr bool operator<(lhs_type l, rhs_type r) { \
return lhs_access < rhs_access; \
} \
V8_INLINE constexpr bool operator<=(lhs_type l, rhs_type r) { \
return lhs_access <= rhs_access; \
} \
V8_INLINE constexpr bool operator>(lhs_type l, rhs_type r) { \
return lhs_access > rhs_access; \
} \
V8_INLINE constexpr bool operator>=(lhs_type l, rhs_type r) { \
return lhs_access >= rhs_access; \
}
int r
Definition mul-fft.cc:298
V8_INLINE bool operator>(const BasicMember< T1, WeaknessTag1, WriteBarrierPolicy1, CheckingPolicy1, StorageType > &member1, const BasicMember< T2, WeaknessTag2, WriteBarrierPolicy2, CheckingPolicy2, StorageType > &member2)
Definition member.h:525
V8_INLINE bool operator>=(const BasicMember< T1, WeaknessTag1, WriteBarrierPolicy1, CheckingPolicy1, StorageType > &member1, const BasicMember< T2, WeaknessTag2, WriteBarrierPolicy2, CheckingPolicy2, StorageType > &member2)
Definition member.h:540
V8_INLINE bool operator<=(const BasicMember< T1, WeaknessTag1, WriteBarrierPolicy1, CheckingPolicy1, StorageType > &member1, const BasicMember< T2, WeaknessTag2, WriteBarrierPolicy2, CheckingPolicy2, StorageType > &member2)
Definition member.h:510
V8_INLINE constexpr bool operator<(Builtin a, Builtin b)
Definition builtins.h:75
#define V8_INLINE
Definition v8config.h:500

Definition at line 899 of file index.h.

◆ TURBOSHAFT_ALLOW_IMPLICIT_OPINDEX_INITIALIZATION_FOR_V

#define TURBOSHAFT_ALLOW_IMPLICIT_OPINDEX_INITIALIZATION_FOR_V   1

Definition at line 24 of file index.h.