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

#include <maglev-ir.h>

Collaboration diagram for v8::internal::maglev::OpProperties:

Public Member Functions

constexpr bool is_call () const
 
constexpr bool is_any_call () const
 
constexpr bool can_eager_deopt () const
 
constexpr bool can_lazy_deopt () const
 
constexpr bool is_deopt_checkpoint () const
 
constexpr bool can_deopt () const
 
constexpr bool can_throw () const
 
constexpr bool can_read () const
 
constexpr bool can_write () const
 
constexpr bool can_allocate () const
 
constexpr bool not_idempotent () const
 
constexpr ValueRepresentation value_representation () const
 
constexpr bool is_tagged () const
 
constexpr bool is_conversion () const
 
constexpr bool needs_register_snapshot () const
 
constexpr bool is_pure () const
 
constexpr bool is_required_when_unused () const
 
constexpr bool can_participate_in_cse () const
 
constexpr OpProperties operator| (const OpProperties &that)
 
constexpr OpProperties (uint32_t bitfield)
 
 operator uint32_t () const
 
OpProperties WithNewValueRepresentation (ValueRepresentation new_repr) const
 
OpProperties WithoutDeopt () const
 
constexpr bool is_deferred_call () const
 

Static Public Member Functions

static constexpr OpProperties Pure ()
 
static constexpr OpProperties Call ()
 
static constexpr OpProperties EagerDeopt ()
 
static constexpr OpProperties LazyDeopt ()
 
static constexpr OpProperties DeoptCheckpoint ()
 
static constexpr OpProperties CanThrow ()
 
static constexpr OpProperties CanRead ()
 
static constexpr OpProperties CanWrite ()
 
static constexpr OpProperties CanAllocate ()
 
static constexpr OpProperties NotIdempotent ()
 
static constexpr OpProperties TaggedValue ()
 
static constexpr OpProperties ExternalReference ()
 
static constexpr OpProperties Int32 ()
 
static constexpr OpProperties Uint32 ()
 
static constexpr OpProperties Float64 ()
 
static constexpr OpProperties HoleyFloat64 ()
 
static constexpr OpProperties IntPtr ()
 
static constexpr OpProperties TrustedPointer ()
 
static constexpr OpProperties ForValueRepresentation (ValueRepresentation repr)
 
static constexpr OpProperties ConversionNode ()
 
static constexpr OpProperties CanCallUserCode ()
 
static constexpr OpProperties GenericRuntimeOrBuiltinCall ()
 
static constexpr OpProperties JSCall ()
 
static constexpr OpProperties AnySideEffects ()
 
static constexpr OpProperties DeferredCall ()
 

Static Public Attributes

static const size_t kSize = kNeedsRegisterSnapshotBit::kLastUsedBit + 1
 

Private Types

enum class  AttachedDeoptInfo { kNone , kEager , kLazy , kCheckpoint }
 
using kIsCallBit = base::BitField<bool, 0, 1>
 
using kAttachedDeoptInfoBits = kIsCallBit::Next<AttachedDeoptInfo, 2>
 
using kCanThrowBit = kAttachedDeoptInfoBits::Next<bool, 1>
 
using kCanReadBit = kCanThrowBit::Next<bool, 1>
 
using kCanWriteBit = kCanReadBit::Next<bool, 1>
 
using kCanAllocateBit = kCanWriteBit::Next<bool, 1>
 
using kNotIdempotentBit = kCanAllocateBit::Next<bool, 1>
 
using kValueRepresentationBits
 
using kIsConversionBit = kValueRepresentationBits::Next<bool, 1>
 
using kNeedsRegisterSnapshotBit = kIsConversionBit::Next<bool, 1>
 

Static Private Member Functions

static constexpr OpProperties NeedsRegisterSnapshot ()
 

Private Attributes

const uint32_t bitfield_
 

Static Private Attributes

static const uint32_t kPureMask
 
static const uint32_t kPureValue
 

Detailed Description

Definition at line 1010 of file maglev-ir.h.

Member Typedef Documentation

◆ kAttachedDeoptInfoBits

◆ kCanAllocateBit

◆ kCanReadBit

◆ kCanThrowBit

◆ kCanWriteBit

◆ kIsCallBit

Definition at line 1189 of file maglev-ir.h.

◆ kIsConversionBit

◆ kNeedsRegisterSnapshotBit

◆ kNotIdempotentBit

◆ kValueRepresentationBits

Initial value:
BitField< T2, kShift+kSize, size2, U > Next
Definition bit-field.h:47

Definition at line 1196 of file maglev-ir.h.

Member Enumeration Documentation

◆ AttachedDeoptInfo

Enumerator
kNone 
kEager 
kLazy 
kCheckpoint 

Definition at line 1188 of file maglev-ir.h.

Constructor & Destructor Documentation

◆ OpProperties()

v8::internal::maglev::OpProperties::OpProperties ( uint32_t bitfield)
inlineexplicitconstexpr

Definition at line 1175 of file maglev-ir.h.

Here is the caller graph for this function:

Member Function Documentation

◆ AnySideEffects()

static constexpr OpProperties v8::internal::maglev::OpProperties::AnySideEffects ( )
inlinestaticconstexpr

Definition at line 1165 of file maglev-ir.h.

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

◆ Call()

static constexpr OpProperties v8::internal::maglev::OpProperties::Call ( )
inlinestaticconstexpr

Definition at line 1084 of file maglev-ir.h.

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

◆ can_allocate()

bool v8::internal::maglev::OpProperties::can_allocate ( ) const
inlineconstexpr

Definition at line 1040 of file maglev-ir.h.

Here is the call graph for this function:

◆ can_deopt()

bool v8::internal::maglev::OpProperties::can_deopt ( ) const
inlineconstexpr

Definition at line 1030 of file maglev-ir.h.

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

◆ can_eager_deopt()

bool v8::internal::maglev::OpProperties::can_eager_deopt ( ) const
inlineconstexpr

Definition at line 1018 of file maglev-ir.h.

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

◆ can_lazy_deopt()

bool v8::internal::maglev::OpProperties::can_lazy_deopt ( ) const
inlineconstexpr

Definition at line 1022 of file maglev-ir.h.

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

◆ can_participate_in_cse()

bool v8::internal::maglev::OpProperties::can_participate_in_cse ( ) const
inlineconstexpr

Definition at line 1075 of file maglev-ir.h.

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

◆ can_read()

bool v8::internal::maglev::OpProperties::can_read ( ) const
inlineconstexpr

Definition at line 1038 of file maglev-ir.h.

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

◆ can_throw()

bool v8::internal::maglev::OpProperties::can_throw ( ) const
inlineconstexpr

Definition at line 1033 of file maglev-ir.h.

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

◆ can_write()

bool v8::internal::maglev::OpProperties::can_write ( ) const
inlineconstexpr

Definition at line 1039 of file maglev-ir.h.

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

◆ CanAllocate()

static constexpr OpProperties v8::internal::maglev::OpProperties::CanAllocate ( )
inlinestaticconstexpr

Definition at line 1108 of file maglev-ir.h.

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

◆ CanCallUserCode()

static constexpr OpProperties v8::internal::maglev::OpProperties::CanCallUserCode ( )
inlinestaticconstexpr

Definition at line 1153 of file maglev-ir.h.

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

◆ CanRead()

static constexpr OpProperties v8::internal::maglev::OpProperties::CanRead ( )
inlinestaticconstexpr

Definition at line 1102 of file maglev-ir.h.

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

◆ CanThrow()

static constexpr OpProperties v8::internal::maglev::OpProperties::CanThrow ( )
inlinestaticconstexpr

Definition at line 1099 of file maglev-ir.h.

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

◆ CanWrite()

UINT32_ELEMENTS v8::internal::maglev::OpProperties::CanWrite ( )
inlinestaticconstexpr

Definition at line 1105 of file maglev-ir.h.

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

◆ ConversionNode()

static constexpr OpProperties v8::internal::maglev::OpProperties::ConversionNode ( )
inlinestaticconstexpr

Definition at line 1150 of file maglev-ir.h.

Here is the call graph for this function:

◆ DeferredCall()

static constexpr OpProperties v8::internal::maglev::OpProperties::DeferredCall ( )
inlinestaticconstexpr

Definition at line 1168 of file maglev-ir.h.

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

◆ DeoptCheckpoint()

static constexpr OpProperties v8::internal::maglev::OpProperties::DeoptCheckpoint ( )
inlinestaticconstexpr

Definition at line 1095 of file maglev-ir.h.

Here is the call graph for this function:

◆ EagerDeopt()

static constexpr OpProperties v8::internal::maglev::OpProperties::EagerDeopt ( )
inlinestaticconstexpr

Definition at line 1087 of file maglev-ir.h.

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

◆ ExternalReference()

static constexpr OpProperties v8::internal::maglev::OpProperties::ExternalReference ( )
inlinestaticconstexpr

Definition at line 1118 of file maglev-ir.h.

Here is the call graph for this function:

◆ Float64()

static constexpr OpProperties v8::internal::maglev::OpProperties::Float64 ( )
inlinestaticconstexpr

Definition at line 1130 of file maglev-ir.h.

Here is the call graph for this function:

◆ ForValueRepresentation()

static constexpr OpProperties v8::internal::maglev::OpProperties::ForValueRepresentation ( ValueRepresentation repr)
inlinestaticconstexpr

Definition at line 1146 of file maglev-ir.h.

Here is the call graph for this function:

◆ GenericRuntimeOrBuiltinCall()

static constexpr OpProperties v8::internal::maglev::OpProperties::GenericRuntimeOrBuiltinCall ( )
inlinestaticconstexpr

Definition at line 1161 of file maglev-ir.h.

Here is the call graph for this function:

◆ HoleyFloat64()

static constexpr OpProperties v8::internal::maglev::OpProperties::HoleyFloat64 ( )
inlinestaticconstexpr

Definition at line 1134 of file maglev-ir.h.

Here is the call graph for this function:

◆ Int32()

v8::internal::maglev::OpProperties::Int32 ( )
inlinestaticconstexpr

Definition at line 1122 of file maglev-ir.h.

Here is the call graph for this function:

◆ IntPtr()

static constexpr OpProperties v8::internal::maglev::OpProperties::IntPtr ( )
inlinestaticconstexpr

Definition at line 1138 of file maglev-ir.h.

Here is the call graph for this function:

◆ is_any_call()

bool v8::internal::maglev::OpProperties::is_any_call ( ) const
inlineconstexpr

Definition at line 1017 of file maglev-ir.h.

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

◆ is_call()

bool v8::internal::maglev::OpProperties::is_call ( ) const
inlineconstexpr

Definition at line 1012 of file maglev-ir.h.

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

◆ is_conversion()

bool v8::internal::maglev::OpProperties::is_conversion ( ) const
inlineconstexpr

Definition at line 1056 of file maglev-ir.h.

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

◆ is_deferred_call()

bool v8::internal::maglev::OpProperties::is_deferred_call ( ) const
inlineconstexpr

Definition at line 1220 of file maglev-ir.h.

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

◆ is_deopt_checkpoint()

bool v8::internal::maglev::OpProperties::is_deopt_checkpoint ( ) const
inlineconstexpr

Definition at line 1026 of file maglev-ir.h.

Here is the call graph for this function:

◆ is_pure()

bool v8::internal::maglev::OpProperties::is_pure ( ) const
inlineconstexpr

Definition at line 1062 of file maglev-ir.h.

◆ is_required_when_unused()

bool v8::internal::maglev::OpProperties::is_required_when_unused ( ) const
inlineconstexpr

Definition at line 1065 of file maglev-ir.h.

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

◆ is_tagged()

bool v8::internal::maglev::OpProperties::is_tagged ( ) const
inlineconstexpr

Definition at line 1053 of file maglev-ir.h.

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

◆ JSCall()

static constexpr OpProperties v8::internal::maglev::OpProperties::JSCall ( )
inlinestaticconstexpr

Definition at line 1164 of file maglev-ir.h.

Here is the call graph for this function:

◆ LazyDeopt()

static constexpr OpProperties v8::internal::maglev::OpProperties::LazyDeopt ( )
inlinestaticconstexpr

Definition at line 1091 of file maglev-ir.h.

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

◆ needs_register_snapshot()

bool v8::internal::maglev::OpProperties::needs_register_snapshot ( ) const
inlineconstexpr

Definition at line 1059 of file maglev-ir.h.

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

◆ NeedsRegisterSnapshot()

static constexpr OpProperties v8::internal::maglev::OpProperties::NeedsRegisterSnapshot ( )
inlinestaticconstexprprivate

Definition at line 1211 of file maglev-ir.h.

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

◆ not_idempotent()

bool v8::internal::maglev::OpProperties::not_idempotent ( ) const
inlineconstexpr

Definition at line 1047 of file maglev-ir.h.

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

◆ NotIdempotent()

static constexpr OpProperties v8::internal::maglev::OpProperties::NotIdempotent ( )
inlinestaticconstexpr

Definition at line 1111 of file maglev-ir.h.

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

◆ operator uint32_t()

v8::internal::maglev::OpProperties::operator uint32_t ( ) const
inline

Definition at line 1176 of file maglev-ir.h.

◆ operator|()

OpProperties v8::internal::maglev::OpProperties::operator| ( const OpProperties & that)
inlineconstexpr

Definition at line 1079 of file maglev-ir.h.

Here is the call graph for this function:

◆ Pure()

static constexpr OpProperties v8::internal::maglev::OpProperties::Pure ( )
inlinestaticconstexpr

Definition at line 1083 of file maglev-ir.h.

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

◆ TaggedValue()

static constexpr OpProperties v8::internal::maglev::OpProperties::TaggedValue ( )
inlinestaticconstexpr

Definition at line 1114 of file maglev-ir.h.

Here is the call graph for this function:

◆ TrustedPointer()

static constexpr OpProperties v8::internal::maglev::OpProperties::TrustedPointer ( )
inlinestaticconstexpr

Definition at line 1142 of file maglev-ir.h.

Here is the call graph for this function:

◆ Uint32()

v8::internal::maglev::OpProperties::Uint32 ( )
inlinestaticconstexpr

Definition at line 1126 of file maglev-ir.h.

Here is the call graph for this function:

◆ value_representation()

ValueRepresentation v8::internal::maglev::OpProperties::value_representation ( ) const
inlineconstexpr

Definition at line 1050 of file maglev-ir.h.

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

◆ WithNewValueRepresentation()

OpProperties v8::internal::maglev::OpProperties::WithNewValueRepresentation ( ValueRepresentation new_repr) const
inline

Definition at line 1178 of file maglev-ir.h.

Here is the call graph for this function:

◆ WithoutDeopt()

OpProperties v8::internal::maglev::OpProperties::WithoutDeopt ( ) const
inline

Definition at line 1182 of file maglev-ir.h.

Here is the call graph for this function:

Member Data Documentation

◆ bitfield_

const uint32_t v8::internal::maglev::OpProperties::bitfield_
private

Definition at line 1215 of file maglev-ir.h.

◆ kPureMask

const uint32_t v8::internal::maglev::OpProperties::kPureMask
staticprivate
Initial value:

Definition at line 1201 of file maglev-ir.h.

◆ kPureValue

const uint32_t v8::internal::maglev::OpProperties::kPureValue
staticprivate
Initial value:
static constexpr U encode(T value)
Definition bit-field.h:55

Definition at line 1203 of file maglev-ir.h.

◆ kSize

const size_t v8::internal::maglev::OpProperties::kSize = kNeedsRegisterSnapshotBit::kLastUsedBit + 1
static

Definition at line 1218 of file maglev-ir.h.


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