![]() |
v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
|
#include <operator.h>
Public Types | |
enum | Property { kNoProperties = 0 , kCommutative = 1 << 0 , kAssociative = 1 << 1 , kIdempotent = 1 << 2 , kNoRead = 1 << 3 , kNoWrite = 1 << 4 , kNoThrow = 1 << 5 , kNoDeopt = 1 << 6 , kFoldable = kNoRead | kNoWrite , kEliminatable = kNoDeopt | kNoWrite | kNoThrow , kKontrol = kNoDeopt | kFoldable | kNoThrow , kPure = kKontrol | kIdempotent } |
enum class | PrintVerbosity { kVerbose , kSilent } |
using | Opcode = uint16_t |
using | Properties = base::Flags<Property, uint8_t> |
Public Member Functions | |
Operator (Opcode opcode, Properties properties, const char *mnemonic, size_t value_in, size_t effect_in, size_t control_in, size_t value_out, size_t effect_out, size_t control_out) | |
Operator (const Operator &)=delete | |
Operator & | operator= (const Operator &)=delete |
virtual | ~Operator ()=default |
constexpr Opcode | opcode () const |
const char * | mnemonic () const |
virtual bool | Equals (const Operator *that) const |
virtual size_t | HashCode () const |
bool | HasProperty (Property property) const |
Properties | properties () const |
int | ValueInputCount () const |
int | EffectInputCount () const |
int | ControlInputCount () const |
int | ValueOutputCount () const |
int | EffectOutputCount () const |
int | ControlOutputCount () const |
void | PrintTo (std::ostream &os, PrintVerbosity verbose=PrintVerbosity::kVerbose) const |
void | PrintPropsTo (std::ostream &os) const |
Static Public Member Functions | |
static size_t | ZeroIfEliminatable (Properties properties) |
static size_t | ZeroIfNoThrow (Properties properties) |
static size_t | ZeroIfPure (Properties properties) |
Protected Member Functions | |
virtual void | PrintToImpl (std::ostream &os, PrintVerbosity verbose) const |
Private Attributes | |
const char * | mnemonic_ |
Opcode | opcode_ |
Properties | properties_ |
uint32_t | value_in_ |
uint32_t | effect_in_ |
uint32_t | control_in_ |
uint32_t | value_out_ |
uint8_t | effect_out_ |
uint32_t | control_out_ |
Definition at line 33 of file operator.h.
using v8::internal::compiler::Operator::Opcode = uint16_t |
Definition at line 35 of file operator.h.
using v8::internal::compiler::Operator::Properties = base::Flags<Property, uint8_t> |
Definition at line 60 of file operator.h.
|
strong |
Enumerator | |
---|---|
kVerbose | |
kSilent |
Definition at line 61 of file operator.h.
Enumerator | |
---|---|
kNoProperties | |
kCommutative | |
kAssociative | |
kIdempotent | |
kNoRead | |
kNoWrite | |
kNoThrow | |
kNoDeopt | |
kFoldable | |
kEliminatable | |
kKontrol | |
kPure |
Definition at line 39 of file operator.h.
v8::internal::compiler::Operator::Operator | ( | Opcode | opcode, |
Properties | properties, | ||
const char * | mnemonic, | ||
size_t | value_in, | ||
size_t | effect_in, | ||
size_t | control_in, | ||
size_t | value_out, | ||
size_t | effect_out, | ||
size_t | control_out ) |
Definition at line 27 of file operator.cc.
|
delete |
|
virtualdefault |
|
inline |
|
inline |
|
inline |
|
inline |
Reimplemented in v8::internal::compiler::Operator1< T, Pred, Hash >, v8::internal::compiler::Operator1< AtomicMemoryOrder >, v8::internal::compiler::Operator1< BigIntOperationParameters >, v8::internal::compiler::Operator1< BranchParameters >, v8::internal::compiler::Operator1< CheckFloat64HoleParameters >, v8::internal::compiler::Operator1< CheckForMinusZeroMode >, v8::internal::compiler::Operator1< CheckIfParameters >, v8::internal::compiler::Operator1< CheckMinusZeroParameters >, v8::internal::compiler::Operator1< CheckTaggedInputParameters >, v8::internal::compiler::Operator1< const char * >, v8::internal::compiler::Operator1< ConvertReceiverMode >, v8::internal::compiler::Operator1< DeoptimizeParameters >, v8::internal::compiler::Operator1< GrowFastElementsParameters >, v8::internal::compiler::Operator1< MachineRepresentation >, v8::internal::compiler::Operator1< NumberOperationParameters >, v8::internal::compiler::Operator1< ParameterInfo >, v8::internal::compiler::Operator1< RegionObservability >, v8::internal::compiler::Operator1< ShiftKind >, v8::internal::compiler::Operator1< size_t >, v8::internal::compiler::Operator1< SparseInputMask >, v8::internal::compiler::Operator1< StackCheckKind >, v8::internal::compiler::Operator1< StackSlotRepresentation >, v8::internal::compiler::Operator1< StoreRepresentation >, and v8::internal::compiler::Operator1< TruncateKind >.
Definition at line 84 of file operator.h.
|
inlinevirtual |
Reimplemented in v8::internal::compiler::Operator1< T, Pred, Hash >, v8::internal::compiler::Operator1< AtomicMemoryOrder >, v8::internal::compiler::Operator1< BigIntOperationParameters >, v8::internal::compiler::Operator1< BranchParameters >, v8::internal::compiler::Operator1< CheckFloat64HoleParameters >, v8::internal::compiler::Operator1< CheckForMinusZeroMode >, v8::internal::compiler::Operator1< CheckIfParameters >, v8::internal::compiler::Operator1< CheckMinusZeroParameters >, v8::internal::compiler::Operator1< CheckTaggedInputParameters >, v8::internal::compiler::Operator1< const char * >, v8::internal::compiler::Operator1< ConvertReceiverMode >, v8::internal::compiler::Operator1< DeoptimizeParameters >, v8::internal::compiler::Operator1< GrowFastElementsParameters >, v8::internal::compiler::Operator1< MachineRepresentation >, v8::internal::compiler::Operator1< NumberOperationParameters >, v8::internal::compiler::Operator1< ParameterInfo >, v8::internal::compiler::Operator1< RegionObservability >, v8::internal::compiler::Operator1< ShiftKind >, v8::internal::compiler::Operator1< size_t >, v8::internal::compiler::Operator1< SparseInputMask >, v8::internal::compiler::Operator1< StackCheckKind >, v8::internal::compiler::Operator1< StackSlotRepresentation >, v8::internal::compiler::Operator1< StoreRepresentation >, and v8::internal::compiler::Operator1< TruncateKind >.
Definition at line 91 of file operator.h.
|
inline |
|
inlineconstexpr |
Definition at line 75 of file operator.h.
void v8::internal::compiler::Operator::PrintPropsTo | ( | std::ostream & | os | ) | const |
Definition at line 49 of file operator.cc.
|
inline |
|
protectedvirtual |
Reimplemented in v8::internal::compiler::Operator1< T, Pred, Hash >, v8::internal::compiler::Operator1< AtomicMemoryOrder >, v8::internal::compiler::Operator1< BigIntOperationParameters >, v8::internal::compiler::Operator1< BranchParameters >, v8::internal::compiler::Operator1< CheckFloat64HoleParameters >, v8::internal::compiler::Operator1< CheckForMinusZeroMode >, v8::internal::compiler::Operator1< CheckIfParameters >, v8::internal::compiler::Operator1< CheckMinusZeroParameters >, v8::internal::compiler::Operator1< CheckTaggedInputParameters >, v8::internal::compiler::Operator1< const char * >, v8::internal::compiler::Operator1< ConvertReceiverMode >, v8::internal::compiler::Operator1< DeoptimizeParameters >, v8::internal::compiler::Operator1< GrowFastElementsParameters >, v8::internal::compiler::Operator1< MachineRepresentation >, v8::internal::compiler::Operator1< NumberOperationParameters >, v8::internal::compiler::Operator1< ParameterInfo >, v8::internal::compiler::Operator1< RegionObservability >, v8::internal::compiler::Operator1< ShiftKind >, v8::internal::compiler::Operator1< size_t >, v8::internal::compiler::Operator1< SparseInputMask >, v8::internal::compiler::Operator1< StackCheckKind >, v8::internal::compiler::Operator1< StackSlotRepresentation >, v8::internal::compiler::Operator1< StoreRepresentation >, and v8::internal::compiler::Operator1< TruncateKind >.
Definition at line 45 of file operator.cc.
|
inline |
|
inline |
|
inline |
|
inlinestatic |
Definition at line 109 of file operator.h.
|
inlinestatic |
Definition at line 113 of file operator.h.
|
inlinestatic |
Definition at line 117 of file operator.h.
|
private |
Definition at line 143 of file operator.h.
|
private |
Definition at line 146 of file operator.h.
|
private |
Definition at line 142 of file operator.h.
|
private |
Definition at line 145 of file operator.h.
|
private |
Definition at line 138 of file operator.h.
|
private |
Definition at line 139 of file operator.h.
|
private |
Definition at line 140 of file operator.h.
|
private |
Definition at line 141 of file operator.h.
|
private |
Definition at line 144 of file operator.h.