v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
maglev-ir.h File Reference
Include dependency graph for maglev-ir.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  v8::internal::maglev::BasicBlockRef
 
class  v8::internal::maglev::OpProperties
 
class  v8::internal::maglev::ValueLocation
 
class  v8::internal::maglev::InputLocation
 
class  v8::internal::maglev::Input
 
class  v8::internal::maglev::DeoptFrame
 
struct  v8::internal::maglev::DeoptFrame::InterpretedFrameData
 
struct  v8::internal::maglev::DeoptFrame::InlinedArgumentsFrameData
 
struct  v8::internal::maglev::DeoptFrame::ConstructInvokeStubFrameData
 
struct  v8::internal::maglev::DeoptFrame::BuiltinContinuationFrameData
 
class  v8::internal::maglev::InterpretedDeoptFrame
 
class  v8::internal::maglev::InlinedArgumentsDeoptFrame
 
class  v8::internal::maglev::ConstructInvokeStubDeoptFrame
 
class  v8::internal::maglev::BuiltinContinuationDeoptFrame
 
class  v8::internal::maglev::DeoptInfo
 
struct  v8::internal::maglev::RegisterSnapshot
 
class  v8::internal::maglev::EagerDeoptInfo
 
class  v8::internal::maglev::LazyDeoptInfo
 
class  v8::internal::maglev::ExceptionHandlerInfo
 
struct  v8::internal::maglev::NodeWithInlineInputs
 
class  v8::internal::maglev::NodeBase
 
struct  v8::internal::maglev::NodeBase::OwnerOrTemporaries
 
struct  v8::internal::maglev::NodeBase::OwnerOrTemporaries::Regs
 
union  v8::internal::maglev::NodeBase::OwnerOrTemporaries::Store
 
class  v8::internal::maglev::Node
 
class  v8::internal::maglev::ValueNode
 
struct  v8::internal::maglev::ValueNode::LiveRange
 
class  v8::internal::maglev::NodeTMixin< Base, Derived >
 
class  v8::internal::maglev::detail::ArrayWrapper< Size >
 
struct  v8::internal::maglev::detail::YouNeedToDefineAnInputTypesArrayInYourDerivedClass
 
class  v8::internal::maglev::FixedInputNodeTMixin< InputCount, Base, Derived >
 
struct  v8::internal::maglev::IsFixedInputNode< T, class >
 
struct  v8::internal::maglev::IsFixedInputNode< T, std::void_t< decltype(T::kInputCount)> >
 
class  v8::internal::maglev::Identity
 
class  v8::internal::maglev::UnaryWithFeedbackNode< Derived, kOperation >
 
class  v8::internal::maglev::BinaryWithFeedbackNode< Derived, kOperation >
 
class  v8::internal::maglev::Int32BinaryWithOverflowNode< Derived, kOperation >
 
class  v8::internal::maglev::Int32BinaryNode< Derived, kOperation >
 
class  v8::internal::maglev::Int32BitwiseNot
 
class  v8::internal::maglev::Int32UnaryWithOverflowNode< Derived, kOperation >
 
class  v8::internal::maglev::Int32ShiftRightLogical
 
class  v8::internal::maglev::Int32Compare
 
class  v8::internal::maglev::Int32ToBoolean
 
class  v8::internal::maglev::IntPtrToBoolean
 
class  v8::internal::maglev::CheckedSmiIncrement
 
class  v8::internal::maglev::CheckedSmiDecrement
 
class  v8::internal::maglev::Float64BinaryNode< Derived, kOperation >
 
class  v8::internal::maglev::Float64BinaryNodeWithCall< Derived, kOperation >
 
class  v8::internal::maglev::Float64Compare
 
class  v8::internal::maglev::Float64ToBoolean
 
class  v8::internal::maglev::Float64Negate
 
class  v8::internal::maglev::Float64Ieee754Unary
 
class  v8::internal::maglev::CheckInt32IsSmi
 
class  v8::internal::maglev::CheckUint32IsSmi
 
class  v8::internal::maglev::CheckIntPtrIsSmi
 
class  v8::internal::maglev::CheckHoleyFloat64IsSmi
 
class  v8::internal::maglev::CheckedSmiTagInt32
 
class  v8::internal::maglev::CheckedSmiSizedInt32
 
class  v8::internal::maglev::CheckedSmiTagUint32
 
class  v8::internal::maglev::CheckedSmiTagIntPtr
 
class  v8::internal::maglev::UnsafeSmiTagInt32
 
class  v8::internal::maglev::UnsafeSmiTagUint32
 
class  v8::internal::maglev::UnsafeSmiTagIntPtr
 
class  v8::internal::maglev::CheckedSmiUntag
 
class  v8::internal::maglev::UnsafeSmiUntag
 
class  v8::internal::maglev::Int32Constant
 
class  v8::internal::maglev::Uint32Constant
 
class  v8::internal::maglev::Float64Constant
 
class  v8::internal::maglev::Int32ToUint8Clamped
 
class  v8::internal::maglev::Uint32ToUint8Clamped
 
class  v8::internal::maglev::Float64ToUint8Clamped
 
class  v8::internal::maglev::CheckedNumberToUint8Clamped
 
class  v8::internal::maglev::Int32ToNumber
 
class  v8::internal::maglev::Uint32ToNumber
 
class  v8::internal::maglev::IntPtrToNumber
 
class  v8::internal::maglev::Float64ToTagged
 
class  v8::internal::maglev::Float64ToHeapNumberForField
 
class  v8::internal::maglev::HoleyFloat64ToTagged
 
class  v8::internal::maglev::CheckedSmiTagFloat64
 
class  v8::internal::maglev::CheckedInt32ToUint32
 
class  v8::internal::maglev::CheckedIntPtrToUint32
 
class  v8::internal::maglev::UnsafeInt32ToUint32
 
class  v8::internal::maglev::CheckedUint32ToInt32
 
class  v8::internal::maglev::CheckedIntPtrToInt32
 
class  v8::internal::maglev::ChangeInt32ToFloat64
 
class  v8::internal::maglev::ChangeUint32ToFloat64
 
class  v8::internal::maglev::ChangeIntPtrToFloat64
 
class  v8::internal::maglev::CheckedTruncateFloat64ToInt32
 
class  v8::internal::maglev::Int32AbsWithOverflow
 
class  v8::internal::maglev::Float64Abs
 
class  v8::internal::maglev::Float64Round
 
class  v8::internal::maglev::CheckedTruncateFloat64ToUint32
 
class  v8::internal::maglev::CheckedNumberOrOddballToFloat64OrHoleyFloat64
 
class  v8::internal::maglev::CheckedNumberOrOddballToFloat64
 
class  v8::internal::maglev::CheckedNumberOrOddballToHoleyFloat64
 
class  v8::internal::maglev::CheckedNumberToInt32
 
class  v8::internal::maglev::UncheckedNumberOrOddballToFloat64
 
class  v8::internal::maglev::CheckedHoleyFloat64ToFloat64
 
class  v8::internal::maglev::HoleyFloat64ToMaybeNanFloat64
 
class  v8::internal::maglev::HoleyFloat64IsHole
 
class  v8::internal::maglev::TruncateNumberOrOddballToInt32
 
class  v8::internal::maglev::CheckedTruncateNumberOrOddballToInt32
 
class  v8::internal::maglev::LogicalNot
 
class  v8::internal::maglev::SetPendingMessage
 
class  v8::internal::maglev::ToBoolean
 
class  v8::internal::maglev::ToBooleanLogicalNot
 
class  v8::internal::maglev::StringEqual
 
class  v8::internal::maglev::TaggedEqual
 
class  v8::internal::maglev::TaggedNotEqual
 
class  v8::internal::maglev::TestInstanceOf
 
class  v8::internal::maglev::TestUndetectable
 
class  v8::internal::maglev::TestTypeOf
 
class  v8::internal::maglev::ToName
 
class  v8::internal::maglev::ToNumberOrNumeric
 
class  v8::internal::maglev::DeleteProperty
 
class  v8::internal::maglev::GeneratorStore
 
class  v8::internal::maglev::TryOnStackReplacement
 
class  v8::internal::maglev::ForInPrepare
 
class  v8::internal::maglev::ForInNext
 
class  v8::internal::maglev::GetIterator
 
class  v8::internal::maglev::GetSecondReturnedValue
 
class  v8::internal::maglev::ToObject
 
class  v8::internal::maglev::ToString
 
class  v8::internal::maglev::NumberToString
 
class  v8::internal::maglev::GeneratorRestoreRegister
 
class  v8::internal::maglev::InitialValue
 
class  v8::internal::maglev::RegisterInput
 
class  v8::internal::maglev::SmiConstant
 
class  v8::internal::maglev::TaggedIndexConstant
 
class  v8::internal::maglev::ExternalConstant
 
class  v8::internal::maglev::Constant
 
class  v8::internal::maglev::RootConstant
 
class  v8::internal::maglev::TrustedConstant
 
class  v8::internal::maglev::CreateArrayLiteral
 
class  v8::internal::maglev::CreateShallowArrayLiteral
 
class  v8::internal::maglev::CreateObjectLiteral
 
class  v8::internal::maglev::CreateShallowObjectLiteral
 
class  v8::internal::maglev::VirtualObject
 
struct  v8::internal::maglev::VirtualObject::VirtualConsString
 
struct  v8::internal::maglev::VirtualObject::DoubleArray
 
struct  v8::internal::maglev::VirtualObject::ObjectFields
 
class  v8::internal::maglev::VirtualObjectList
 
class  v8::internal::maglev::VirtualObjectList::Iterator
 
class  v8::internal::maglev::InlinedAllocation
 
class  v8::internal::maglev::AllocationBlock
 
class  v8::internal::maglev::ArgumentsLength
 
class  v8::internal::maglev::RestLength
 
class  v8::internal::maglev::ArgumentsElements
 
class  v8::internal::maglev::AllocateElementsArray
 
class  v8::internal::maglev::CreateFunctionContext
 
class  v8::internal::maglev::FastCreateClosure
 
class  v8::internal::maglev::CreateRegExpLiteral
 
class  v8::internal::maglev::CreateClosure
 
class  v8::internal::maglev::AssertInt32
 
class  v8::internal::maglev::CheckMaps
 
class  v8::internal::maglev::CheckMapsWithMigrationAndDeopt
 
class  v8::internal::maglev::CheckMapsWithAlreadyLoadedMap
 
class  v8::internal::maglev::CheckValue
 
class  v8::internal::maglev::CheckValueEqualsInt32
 
class  v8::internal::maglev::CheckFloat64SameValue
 
class  v8::internal::maglev::CheckValueEqualsString
 
class  v8::internal::maglev::CheckDynamicValue
 
class  v8::internal::maglev::CheckSmi
 
class  v8::internal::maglev::CheckNumber
 
class  v8::internal::maglev::CheckHeapObject
 
class  v8::internal::maglev::CheckSymbol
 
class  v8::internal::maglev::CheckInstanceType
 
class  v8::internal::maglev::CheckString
 
class  v8::internal::maglev::CheckStringOrStringWrapper
 
class  v8::internal::maglev::CheckDetectableCallable
 
class  v8::internal::maglev::CheckMapsWithMigration
 
class  v8::internal::maglev::MigrateMapIfNeeded
 
class  v8::internal::maglev::CheckCacheIndicesNotCleared
 
class  v8::internal::maglev::CheckJSDataViewBounds
 
class  v8::internal::maglev::LoadTypedArrayLength
 
class  v8::internal::maglev::CheckTypedArrayNotDetached
 
class  v8::internal::maglev::CheckTypedArrayBounds
 
class  v8::internal::maglev::CheckInt32Condition
 
class  v8::internal::maglev::DebugBreak
 
class  v8::internal::maglev::Dead
 
class  v8::internal::maglev::FunctionEntryStackCheck
 
class  v8::internal::maglev::CheckedInternalizedString
 
class  v8::internal::maglev::CheckedObjectToIndex
 
class  v8::internal::maglev::GetTemplateObject
 
class  v8::internal::maglev::HasInPrototypeChain
 
class  v8::internal::maglev::BuiltinStringFromCharCode
 
class  v8::internal::maglev::BuiltinStringPrototypeCharCodeOrCodePointAt
 
class  v8::internal::maglev::MapPrototypeGet
 
class  v8::internal::maglev::MapPrototypeGetInt32Key
 
class  v8::internal::maglev::SetPrototypeHas
 
class  v8::internal::maglev::CreateFastArrayElements
 
class  v8::internal::maglev::TransitionAndStoreArrayElement
 
class  v8::internal::maglev::PolymorphicAccessInfo
 
class  v8::internal::maglev::AbstractLoadTaggedField< Derived >
 
class  v8::internal::maglev::LoadTaggedField
 
class  v8::internal::maglev::LoadTaggedFieldForProperty
 
class  v8::internal::maglev::LoadTaggedFieldForContextSlot
 
class  v8::internal::maglev::LoadTaggedFieldForScriptContextSlot
 
class  v8::internal::maglev::LoadDoubleField
 
class  v8::internal::maglev::LoadFloat64
 
class  v8::internal::maglev::LoadHeapInt32
 
class  v8::internal::maglev::LoadInt32
 
class  v8::internal::maglev::LoadTaggedFieldByFieldIndex
 
class  v8::internal::maglev::LoadFixedArrayElement
 
class  v8::internal::maglev::EnsureWritableFastElements
 
class  v8::internal::maglev::ExtendPropertiesBackingStore
 
class  v8::internal::maglev::MaybeGrowFastElements
 
class  v8::internal::maglev::StoreFixedArrayElementWithWriteBarrier
 
class  v8::internal::maglev::StoreFixedArrayElementNoWriteBarrier
 
class  v8::internal::maglev::LoadFixedDoubleArrayElement
 
class  v8::internal::maglev::LoadHoleyFixedDoubleArrayElement
 
class  v8::internal::maglev::LoadHoleyFixedDoubleArrayElementCheckedNotHole
 
class  v8::internal::maglev::StoreFixedDoubleArrayElement
 
class  v8::internal::maglev::LoadSignedIntDataViewElement
 
class  v8::internal::maglev::LoadDoubleDataViewElement
 
class  v8::internal::maglev::StoreDoubleDataViewElement
 
class  v8::internal::maglev::StoreDoubleField
 
class  v8::internal::maglev::StoreHeapInt32
 
class  v8::internal::maglev::StoreInt32
 
class  v8::internal::maglev::StoreFloat64
 
class  v8::internal::maglev::StoreTaggedFieldNoWriteBarrier
 
class  v8::internal::maglev::StoreMap
 
class  v8::internal::maglev::StoreTaggedFieldWithWriteBarrier
 
class  v8::internal::maglev::StoreScriptContextSlotWithWriteBarrier
 
class  v8::internal::maglev::StoreTrustedPointerFieldWithWriteBarrier
 
class  v8::internal::maglev::LoadGlobal
 
class  v8::internal::maglev::StoreGlobal
 
class  v8::internal::maglev::UpdateJSArrayLength
 
class  v8::internal::maglev::LoadNamedGeneric
 
class  v8::internal::maglev::LoadNamedFromSuperGeneric
 
class  v8::internal::maglev::SetNamedGeneric
 
class  v8::internal::maglev::LoadEnumCacheLength
 
class  v8::internal::maglev::StringAt
 
class  v8::internal::maglev::StringLength
 
class  v8::internal::maglev::StringConcat
 
class  v8::internal::maglev::ConsStringMap
 
class  v8::internal::maglev::UnwrapStringWrapper
 
class  v8::internal::maglev::UnwrapThinString
 
class  v8::internal::maglev::DefineNamedOwnGeneric
 
class  v8::internal::maglev::StoreInArrayLiteralGeneric
 
class  v8::internal::maglev::GetKeyedGeneric
 
class  v8::internal::maglev::SetKeyedGeneric
 
class  v8::internal::maglev::DefineKeyedOwnGeneric
 
class  v8::internal::maglev::GapMove
 
class  v8::internal::maglev::ConstantGapMove
 
class  v8::internal::maglev::Phi
 
class  v8::internal::maglev::Call
 
class  v8::internal::maglev::Construct
 
class  v8::internal::maglev::CallBuiltin
 
class  v8::internal::maglev::CallCPPBuiltin
 
class  v8::internal::maglev::CallForwardVarargs
 
class  v8::internal::maglev::CallRuntime
 
class  v8::internal::maglev::CallWithSpread
 
class  v8::internal::maglev::CallWithArrayLike
 
class  v8::internal::maglev::CallSelf
 
class  v8::internal::maglev::CallKnownJSFunction
 
class  v8::internal::maglev::CallKnownApiFunction
 
class  v8::internal::maglev::ConstructWithSpread
 
class  v8::internal::maglev::ConvertReceiver
 
class  v8::internal::maglev::CheckConstructResult
 
class  v8::internal::maglev::CheckDerivedConstructResult
 
class  v8::internal::maglev::CheckJSReceiverOrNullOrUndefined
 
class  v8::internal::maglev::CheckNotHole
 
class  v8::internal::maglev::CheckHoleyFloat64NotHole
 
class  v8::internal::maglev::ConvertHoleToUndefined
 
class  v8::internal::maglev::HandleNoHeapWritesInterrupt
 
class  v8::internal::maglev::ReduceInterruptBudgetForLoop
 
class  v8::internal::maglev::ReduceInterruptBudgetForReturn
 
class  v8::internal::maglev::ThrowReferenceErrorIfHole
 
class  v8::internal::maglev::ThrowSuperNotCalledIfHole
 
class  v8::internal::maglev::ThrowSuperAlreadyCalledIfNotHole
 
class  v8::internal::maglev::ThrowIfNotCallable
 
class  v8::internal::maglev::ThrowIfNotSuperConstructor
 
class  v8::internal::maglev::TransitionElementsKind
 
class  v8::internal::maglev::TransitionElementsKindOrCheckMap
 
class  v8::internal::maglev::GetContinuationPreservedEmbedderData
 
class  v8::internal::maglev::SetContinuationPreservedEmbedderData
 
class  v8::internal::maglev::ControlNode
 
class  v8::internal::maglev::UnconditionalControlNode
 
class  v8::internal::maglev::UnconditionalControlNodeT< Derived >
 
class  v8::internal::maglev::ConditionalControlNode
 
class  v8::internal::maglev::BranchControlNode
 
class  v8::internal::maglev::TerminalControlNode
 
class  v8::internal::maglev::TerminalControlNodeT< InputCount, Derived >
 
class  v8::internal::maglev::BranchControlNodeT< InputCount, Derived >
 
class  v8::internal::maglev::Jump
 
class  v8::internal::maglev::CheckpointedJump
 
class  v8::internal::maglev::JumpLoop
 
class  v8::internal::maglev::Abort
 
class  v8::internal::maglev::Return
 
class  v8::internal::maglev::Deopt
 
class  v8::internal::maglev::Switch
 
class  v8::internal::maglev::BranchIfSmi
 
class  v8::internal::maglev::BranchIfRootConstant
 
class  v8::internal::maglev::BranchIfUndefinedOrNull
 
class  v8::internal::maglev::BranchIfUndetectable
 
class  v8::internal::maglev::BranchIfJSReceiver
 
class  v8::internal::maglev::BranchIfToBooleanTrue
 
class  v8::internal::maglev::BranchIfInt32ToBooleanTrue
 
class  v8::internal::maglev::BranchIfIntPtrToBooleanTrue
 
class  v8::internal::maglev::BranchIfFloat64ToBooleanTrue
 
class  v8::internal::maglev::BranchIfFloat64IsHole
 
class  v8::internal::maglev::BranchIfInt32Compare
 
class  v8::internal::maglev::BranchIfUint32Compare
 
class  v8::internal::maglev::BranchIfFloat64Compare
 
class  v8::internal::maglev::BranchIfReferenceEqual
 
class  v8::internal::maglev::BranchIfTypeOf
 

Namespaces

namespace  v8
 
namespace  v8::internal
 
namespace  v8::internal::maglev
 
namespace  v8::internal::maglev::detail
 

Macros

#define GENERIC_OPERATIONS_NODE_LIST(V)
 
#define INT32_OPERATIONS_NODE_LIST(V)
 
#define FLOAT64_OPERATIONS_NODE_LIST(V)
 
#define SMI_OPERATIONS_NODE_LIST(V)
 
#define CONSTANT_VALUE_NODE_LIST(V)
 
#define INLINE_BUILTIN_NODE_LIST(V)
 
#define TURBOLEV_VALUE_NODE_LIST(V)
 
#define TURBOLEV_NON_VALUE_NODE_LIST(V)
 
#define VALUE_NODE_LIST(V)
 
#define GAP_MOVE_NODE_LIST(V)
 
#define NON_VALUE_NODE_LIST(V)
 
#define NODE_LIST(V)
 
#define BRANCH_CONTROL_NODE_LIST(V)
 
#define CONDITIONAL_CONTROL_NODE_LIST(V)
 
#define UNCONDITIONAL_CONTROL_NODE_LIST(V)
 
#define TERMINAL_CONTROL_NODE_LIST(V)
 
#define CONTROL_NODE_LIST(V)
 
#define NODE_BASE_LIST(V)
 
#define DEF_OPCODES(type)
 
#define PLUS_ONE(type)
 
#define V(Name)
 
#define LEAF_NODE_TYPE_LIST(V)
 
#define COMBINED_NODE_TYPE_LIST(V)
 
#define NODE_TYPE_LIST(V)
 
#define DEFINE_NODE_TYPE(Name, Value)
 
#define ADD_STATIC_ASSERT(Name, Value)
 
#define CASE(Name, _)
 
#define CASE(Name, _)
 
#define CASE(Name, _)
 
#define CASE(Name, _)
 
#define DEFINE_NODE_TYPE_CHECK(Type, _)
 
#define DEF_FORWARD_DECLARATION(type, ...)
 
#define DEF_OPCODE_OF(Name)
 
#define DEOPTIMIZE_REASON_FIELD
 
#define DEF_OPERATION_WITH_FEEDBACK_NODE(Name, Super, OpName)
 
#define DEF_UNARY_WITH_FEEDBACK_NODE(Name)
 
#define DEF_BINARY_WITH_FEEDBACK_NODE(Name)
 
#define DEF_OPERATION_NODE(Name, Super, OpName)
 
#define DEF_INT32_BINARY_WITH_OVERFLOW_NODE(Name)
 
#define DEF_INT32_BINARY_NODE(Name)
 
#define DEF_INT32_UNARY_WITH_OVERFLOW_NODE(Name)
 
#define DEF_OPERATION_NODE_WITH_CALL(Name, Super, OpName)
 
#define DEF_FLOAT64_BINARY_NODE(Name)
 
#define DEF_FLOAT64_BINARY_NODE_WITH_CALL(Name)
 
#define IEEE_754_UNARY_LIST(V)
 
#define DECL_ENUM(MathName, ExtName, EnumName)
 
#define DEFINE_TRUNCATE_NODE(name, from_repr, properties)
 
#define ASSERT_CONDITION(V)
 
#define D(Name)
 
#define D(Name)
 
#define CASE(Name)
 
#define LOAD_TYPED_ARRAY(name, properties, ...)
 
#define STORE_TYPED_ARRAY(name, properties, type, ...)
 
#define CASE(op)
 

Typedefs

using v8::internal::maglev::NodeIdT = uint32_t
 
template<class Derived >
using v8::internal::maglev::NodeT = NodeTMixin<Node, Derived>
 
template<class Derived >
using v8::internal::maglev::ValueNodeT = NodeTMixin<ValueNode, Derived>
 
template<size_t InputCount, class Derived >
using v8::internal::maglev::FixedInputNodeT
 
template<size_t InputCount, class Derived >
using v8::internal::maglev::FixedInputValueNodeT
 
typedef base::EnumSet< ValueRepresentation, int8_t > v8::internal::maglev::ValueRepresentationSet
 
typedef base::EnumSet< UseRepresentation, int8_t > v8::internal::maglev::UseRepresentationSet
 

Enumerations

enum class  v8::internal::maglev::Opcode : uint16_t { v8::internal::maglev::NODE_BASE_LIST =(DEF_OPCODES) }
 
enum class  v8::internal::maglev::ValueRepresentation : uint8_t {
  v8::internal::maglev::kTagged , v8::internal::maglev::kInt32 , v8::internal::maglev::kUint32 , v8::internal::maglev::kFloat64 ,
  v8::internal::maglev::kHoleyFloat64 , v8::internal::maglev::kIntPtr
}
 
enum class  v8::internal::maglev::NodeType : uint32_t { v8::internal::maglev::DEFINE_NODE_TYPE }
 
enum class  v8::internal::maglev::TaggedToFloat64ConversionType : uint8_t { v8::internal::maglev::kOnlyNumber , v8::internal::maglev::kNumberOrBoolean , v8::internal::maglev::kNumberOrOddball }
 
enum class  v8::internal::maglev::CheckType { v8::internal::maglev::kCheckHeapObject , v8::internal::maglev::kOmitHeapObjectCheck }
 
enum class  v8::internal::maglev::EscapeAnalysisResult { v8::internal::maglev::kUnknown , v8::internal::maglev::kElided , v8::internal::maglev::kEscaped }
 
enum class  v8::internal::maglev::AssertCondition { v8::internal::maglev::D }
 
enum class  v8::internal::maglev::StoreTaggedMode : uint8_t { v8::internal::maglev::kDefault , v8::internal::maglev::kInitializing , v8::internal::maglev::kTransitioning }
 
enum class  v8::internal::maglev::UseRepresentation : uint8_t {
  v8::internal::maglev::kTagged , v8::internal::maglev::kInt32 , v8::internal::maglev::kTruncatedInt32 , v8::internal::maglev::kUint32 ,
  v8::internal::maglev::kFloat64 , v8::internal::maglev::kHoleyFloat64
}
 

Functions

const char * v8::internal::maglev::OpcodeToString (Opcode opcode)
 
std::ostream & v8::internal::maglev::operator<< (std::ostream &os, Opcode opcode)
 
constexpr bool v8::internal::maglev::IsValueNode (Opcode opcode)
 
constexpr bool v8::internal::maglev::IsConstantNode (Opcode opcode)
 
constexpr bool v8::internal::maglev::IsCommutativeNode (Opcode opcode)
 
constexpr bool v8::internal::maglev::IsZeroCostNode (Opcode opcode)
 
constexpr bool v8::internal::maglev::IsGapMoveNode (Opcode opcode)
 
constexpr bool v8::internal::maglev::IsControlNode (Opcode opcode)
 
constexpr bool v8::internal::maglev::IsBranchControlNode (Opcode opcode)
 
constexpr bool v8::internal::maglev::IsConditionalControlNode (Opcode opcode)
 
constexpr bool v8::internal::maglev::IsUnconditionalControlNode (Opcode opcode)
 
constexpr bool v8::internal::maglev::IsTerminalControlNode (Opcode opcode)
 
constexpr bool v8::internal::maglev::IsSimpleFieldStore (Opcode opcode)
 
constexpr bool v8::internal::maglev::IsElementsArrayWrite (Opcode opcode)
 
constexpr bool v8::internal::maglev::IsTypedArrayStore (Opcode opcode)
 
constexpr bool v8::internal::maglev::CanBeStoreToNonEscapedObject (Opcode opcode)
 
constexpr bool v8::internal::maglev::IsDoubleRepresentation (ValueRepresentation repr)
 
constexpr bool v8::internal::maglev::IsZeroExtendedRepresentation (ValueRepresentation repr)
 
constexpr NodeType v8::internal::maglev::EmptyNodeType ()
 
constexpr NodeType v8::internal::maglev::CombineType (NodeType left, NodeType right)
 
constexpr NodeType v8::internal::maglev::IntersectType (NodeType left, NodeType right)
 
constexpr bool v8::internal::maglev::NodeTypeIs (NodeType type, NodeType to_check)
 
NodeType v8::internal::maglev::StaticTypeForMap (compiler::MapRef map, compiler::JSHeapBroker *broker)
 
constexpr bool v8::internal::maglev::IsEmptyNodeType (NodeType type)
 
NodeType v8::internal::maglev::StaticTypeForConstant (compiler::JSHeapBroker *broker, compiler::ObjectRef ref)
 
bool v8::internal::maglev::IsInstanceOfLeafNodeType (compiler::MapRef map, NodeType type, compiler::JSHeapBroker *broker)
 
bool v8::internal::maglev::IsInstanceOfNodeType (compiler::MapRef map, NodeType type, compiler::JSHeapBroker *broker)
 
std::ostream & v8::internal::maglev::operator<< (std::ostream &out, const NodeType &type)
 
bool v8::internal::maglev::NodeTypeMayBeNullOrUndefined (NodeType type)
 
constexpr Condition v8::internal::maglev::ConditionFor (Operation operation)
 
constexpr Condition v8::internal::maglev::ConditionForNaN ()
 
bool v8::internal::maglev::FromConstantToBool (LocalIsolate *local_isolate, ValueNode *node)
 
bool v8::internal::maglev::FromConstantToBool (MaglevAssembler *masm, ValueNode *node)
 
std::ostream & v8::internal::maglev::operator<< (std::ostream &os, const ValueRepresentation &repr)
 
std::ostream & v8::internal::maglev::operator<< (std::ostream &os, const TaggedToFloat64ConversionType &conversion_type)
 
bool v8::internal::maglev::HasOnlyJSTypedArrayMaps (base::Vector< const compiler::MapRef > maps)
 
bool v8::internal::maglev::HasOnlyJSArrayMaps (base::Vector< const compiler::MapRef > maps)
 
bool v8::internal::maglev::HasOnlyJSObjectMaps (base::Vector< const compiler::MapRef > maps)
 
bool v8::internal::maglev::HasOnlyStringMaps (base::Vector< const compiler::MapRef > maps)
 
bool v8::internal::maglev::HasOnlyNumberMaps (base::Vector< const compiler::MapRef > maps)
 
bool v8::internal::maglev::HasNumberMap (base::Vector< const compiler::MapRef > maps)
 
constexpr OpProperties v8::internal::maglev::StaticPropertiesForOpcode (Opcode opcode)
 
template<typename T >
constexpr Tv8::internal::maglev::detail::ObjectPtrBeforeAddress (void *address)
 
template<typename T >
constexpr const Tv8::internal::maglev::detail::ObjectPtrBeforeAddress (const void *address)
 
void v8::internal::maglev::CheckValueInputIs (const NodeBase *node, int i, ValueRepresentation expected, MaglevGraphLabeller *graph_labeller)
 
 v8::internal::maglev::DEFINE_TRUNCATE_NODE (TruncateFloat64ToInt32, HoleyFloat64, OpProperties::Int32()) DEFINE_TRUNCATE_NODE(UnsafeTruncateFloat64ToInt32
 
std::ostream & v8::internal::maglev::operator<< (std::ostream &os, const AssertCondition cond)
 
 v8::internal::maglev::LOAD_TYPED_ARRAY (LoadSignedIntTypedArrayElement, OpProperties::Int32(), INT8_ELEMENTS, INT16_ELEMENTS, INT32_ELEMENTS) LOAD_TYPED_ARRAY(LoadUnsignedIntTypedArrayElement
 
UINT32_ELEMENTS v8::internal::maglev::LOAD_TYPED_ARRAY (LoadDoubleTypedArrayElement, OpProperties::Float64(), FLOAT32_ELEMENTS, FLOAT64_ELEMENTS) STORE_TYPED_ARRAY(StoreIntTypedArrayElement
 
bool v8::internal::maglev::IsInitializingOrTransitioning (StoreTaggedMode mode)
 
std::ostream & v8::internal::maglev::operator<< (std::ostream &os, StoreMap::Kind kind)
 
std::ostream & v8::internal::maglev::operator<< (std::ostream &os, const UseRepresentation &repr)
 
NodeType v8::internal::maglev::StaticTypeForNode (compiler::JSHeapBroker *broker, LocalIsolate *isolate, ValueNode *node)
 

Variables

static constexpr int v8::internal::maglev::kOpcodeCount = NODE_BASE_LIST(PLUS_ONE)
 
static constexpr Opcode v8::internal::maglev::kFirstOpcode = static_cast<Opcode>(0)
 
static constexpr Opcode v8::internal::maglev::kLastOpcode = static_cast<Opcode>(kOpcodeCount - 1)
 
static constexpr Opcode v8::internal::maglev::kFirstValueNodeOpcode
 
static constexpr Opcode v8::internal::maglev::kLastValueNodeOpcode
 
static constexpr Opcode v8::internal::maglev::kFirstConstantNodeOpcode
 
static constexpr Opcode v8::internal::maglev::kLastConstantNodeOpcode
 
static constexpr Opcode v8::internal::maglev::kFirstGapMoveNodeOpcode
 
static constexpr Opcode v8::internal::maglev::kLastGapMoveNodeOpcode
 
static constexpr Opcode v8::internal::maglev::kFirstNodeOpcode = std::min({NODE_LIST(V) kLastOpcode})
 
static constexpr Opcode v8::internal::maglev::kLastNodeOpcode = std::max({NODE_LIST(V) kFirstOpcode})
 
static constexpr Opcode v8::internal::maglev::kFirstBranchControlNodeOpcode
 
static constexpr Opcode v8::internal::maglev::kLastBranchControlNodeOpcode
 
static constexpr Opcode v8::internal::maglev::kFirstConditionalControlNodeOpcode
 
static constexpr Opcode v8::internal::maglev::kLastConditionalControlNodeOpcode
 
static constexpr Opcode v8::internal::maglev::kLastUnconditionalControlNodeOpcode
 
static constexpr Opcode v8::internal::maglev::kFirstUnconditionalControlNodeOpcode
 
static constexpr Opcode v8::internal::maglev::kLastTerminalControlNodeOpcode
 
static constexpr Opcode v8::internal::maglev::kFirstTerminalControlNodeOpcode
 
static constexpr Opcode v8::internal::maglev::kFirstControlNodeOpcode
 
static constexpr Opcode v8::internal::maglev::kLastControlNodeOpcode
 
static constexpr NodeIdT v8::internal::maglev::kInvalidNodeId = 0
 
static constexpr NodeIdT v8::internal::maglev::kFirstValidNodeId = 1
 
 v8::internal::maglev::HoleyFloat64
 
static constexpr int v8::internal::maglev::kNumAssertConditions
 
 v8::internal::maglev::UINT8_ELEMENTS
 
 v8::internal::maglev::UINT8_CLAMPED_ELEMENTS
 
 v8::internal::maglev::UINT16_ELEMENTS
 
UINT32_ELEMENTS v8::internal::maglev::INT8_ELEMENTS
 
UINT32_ELEMENTS v8::internal::maglev::INT16_ELEMENTS
 
UINT32_ELEMENTS v8::internal::maglev::INT32_ELEMENTS
 

Macro Definition Documentation

◆ ADD_STATIC_ASSERT

#define ADD_STATIC_ASSERT ( Name,
Value )
Value:
static_assert(NodeTypeIs(NodeType::k##Name, NodeType::kUnknown));

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

◆ ASSERT_CONDITION

#define ASSERT_CONDITION ( V)
Value:
V(Equal) \
V(NotEqual) \
V(LessThan) \
V(LessThanEqual) \
V(GreaterThan) \
V(GreaterThanEqual) \
V(UnsignedLessThan) \
V(UnsignedLessThanEqual) \
V(UnsignedGreaterThan) \
V(UnsignedGreaterThanEqual)
#define V(Name)
Definition maglev-ir.h:445

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

◆ BRANCH_CONTROL_NODE_LIST

#define BRANCH_CONTROL_NODE_LIST ( V)
Value:
V(BranchIfSmi) \
V(BranchIfRootConstant) \
V(BranchIfToBooleanTrue) \
V(BranchIfInt32ToBooleanTrue) \
V(BranchIfIntPtrToBooleanTrue) \
V(BranchIfFloat64ToBooleanTrue) \
V(BranchIfFloat64IsHole) \
V(BranchIfReferenceEqual) \
V(BranchIfInt32Compare) \
V(BranchIfUint32Compare) \
V(BranchIfFloat64Compare) \
V(BranchIfUndefinedOrNull) \
V(BranchIfUndetectable) \
V(BranchIfJSReceiver) \
V(BranchIfTypeOf)

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

◆ CASE [1/6]

#define CASE ( Name)
Value:
case AssertCondition::k##Name: \
os << #Name; \
break;

◆ CASE [2/6]

#define CASE ( Name,
_ )
Value:
case NodeType::k##Name:

◆ CASE [3/6]

#define CASE ( Name,
_ )
Value:
if (NodeTypeIs(NodeType::k##Name, type)) { \
if (IsInstanceOfLeafNodeType(map, NodeType::k##Name, broker)) { \
return true; \
} \
}
JSHeapBroker * broker

◆ CASE [4/6]

#define CASE ( Name,
_ )
Value:
case NodeType::k##Name: \
out << #Name; \
break;

◆ CASE [5/6]

#define CASE ( Name,
_ )
Value:
if (NodeTypeIs(NodeType::k##Name, type)) { \
if constexpr (NodeType::k##Name != NodeType::kUnknown) { \
out << #Name "|"; \
} \
}

◆ CASE [6/6]

#define CASE ( op)
Value:
case Opcode::k##op: \
return op::kProperties;

◆ COMBINED_NODE_TYPE_LIST

#define COMBINED_NODE_TYPE_LIST ( V)
Value:
/* A value which has all the above bits set */ \
V(Unknown, ((1 << 13) - 1)) \
V(Oddball, kNullOrUndefined | kBoolean) \
V(Number, kSmi | kHeapNumber) \
V(NumberOrBoolean, kNumber | kBoolean) \
V(NumberOrOddball, kNumber | kOddball) \
V(NonThinString, kInternalizedString | kNonInternalizedNonThinString) \
V(String, kThinString | kNonThinString) \
V(StringOrStringWrapper, kString | kStringWrapper) \
V(Name, kString | kSymbol) \
V(JSReceiver, kJSArray | kCallable | kStringWrapper | kOtherJSReceiver) \
V(JSReceiverOrNullOrUndefined, kJSReceiver | kNullOrUndefined) \
V(AnyHeapObject, kUnknown - kSmi)

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

◆ CONDITIONAL_CONTROL_NODE_LIST

#define CONDITIONAL_CONTROL_NODE_LIST ( V)
Value:
V(Switch) \
BRANCH_CONTROL_NODE_LIST(V)

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

◆ CONSTANT_VALUE_NODE_LIST

#define CONSTANT_VALUE_NODE_LIST ( V)
Value:
V(Constant) \
V(ExternalConstant) \
V(Float64Constant) \
V(Int32Constant) \
V(Uint32Constant) \
V(RootConstant) \
V(SmiConstant) \
V(TaggedIndexConstant) \
V(TrustedConstant)

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

◆ CONTROL_NODE_LIST

#define CONTROL_NODE_LIST ( V)
Value:
CONDITIONAL_CONTROL_NODE_LIST(V) \
UNCONDITIONAL_CONTROL_NODE_LIST(V)
#define TERMINAL_CONTROL_NODE_LIST(V)
Definition maglev-ir.h:416

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

◆ D [1/2]

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

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

◆ D [2/2]

#define D ( Name)
Value:
+1

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

◆ DECL_ENUM

#define DECL_ENUM ( MathName,
ExtName,
EnumName )
Value:
k##EnumName,

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

◆ DEF_BINARY_WITH_FEEDBACK_NODE

#define DEF_BINARY_WITH_FEEDBACK_NODE ( Name)
Value:
DEF_OPERATION_WITH_FEEDBACK_NODE(Generic##Name, BinaryWithFeedbackNode, Name)
#define DEF_OPERATION_WITH_FEEDBACK_NODE(Name, Super, OpName)
Definition maglev-ir.h:2948

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

◆ DEF_FLOAT64_BINARY_NODE

#define DEF_FLOAT64_BINARY_NODE ( Name)
Value:
DEF_OPERATION_NODE(Float64##Name, Float64BinaryNode, Name)
#define DEF_OPERATION_NODE(Name, Super, OpName)
Definition maglev-ir.h:2993

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

◆ DEF_FLOAT64_BINARY_NODE_WITH_CALL

#define DEF_FLOAT64_BINARY_NODE_WITH_CALL ( Name)
Value:
DEF_OPERATION_NODE_WITH_CALL(Float64##Name, Float64BinaryNodeWithCall, Name)
#define DEF_OPERATION_NODE_WITH_CALL(Name, Super, OpName)
Definition maglev-ir.h:3240

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

◆ DEF_FORWARD_DECLARATION

#define DEF_FORWARD_DECLARATION ( type,
... )
Value:
class type;

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

◆ DEF_INT32_BINARY_NODE

#define DEF_INT32_BINARY_NODE ( Name)
Value:
DEF_OPERATION_NODE(Int32##Name, Int32BinaryNode, Name)

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

◆ DEF_INT32_BINARY_WITH_OVERFLOW_NODE

#define DEF_INT32_BINARY_WITH_OVERFLOW_NODE ( Name)
Value:
DEF_OPERATION_NODE(Int32##Name##WithOverflow, Int32BinaryWithOverflowNode, \
Name)

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

◆ DEF_INT32_UNARY_WITH_OVERFLOW_NODE

#define DEF_INT32_UNARY_WITH_OVERFLOW_NODE ( Name)
Value:
DEF_OPERATION_NODE(Int32##Name##WithOverflow, Int32UnaryWithOverflowNode, \
Name)

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

◆ DEF_OPCODE_OF

#define DEF_OPCODE_OF ( Name)
Value:
template <> \
struct opcode_of_helper<Name> { \
static constexpr Opcode value = Opcode::k##Name; \
};

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

◆ DEF_OPCODES

#define DEF_OPCODES ( type)
Value:
k##type,
wasm::ValueType type

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

◆ DEF_OPERATION_NODE

#define DEF_OPERATION_NODE ( Name,
Super,
OpName )
Value:
class Name : public Super<Name, Operation::k##OpName> { \
using Base = Super<Name, Operation::k##OpName>; \
\
public: \
explicit Name(uint64_t bitfield) : Base(bitfield) {} \
void SetValueLocationConstraints(); \
void GenerateCode(MaglevAssembler*, const ProcessingState&); \
void PrintParams(std::ostream&, MaglevGraphLabeller*) const {} \
};

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

◆ DEF_OPERATION_NODE_WITH_CALL

#define DEF_OPERATION_NODE_WITH_CALL ( Name,
Super,
OpName )
Value:
class Name : public Super<Name, Operation::k##OpName> { \
using Base = Super<Name, Operation::k##OpName>; \
\
public: \
explicit Name(uint64_t bitfield) : Base(bitfield) {} \
int MaxCallStackArgs() const; \
void SetValueLocationConstraints(); \
void GenerateCode(MaglevAssembler*, const ProcessingState&); \
void PrintParams(std::ostream&, MaglevGraphLabeller*) const {} \
};

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

◆ DEF_OPERATION_WITH_FEEDBACK_NODE

#define DEF_OPERATION_WITH_FEEDBACK_NODE ( Name,
Super,
OpName )
Value:
class Name : public Super<Name, Operation::k##OpName> { \
using Base = Super<Name, Operation::k##OpName>; \
\
public: \
Name(uint64_t bitfield, const compiler::FeedbackSource& feedback) \
: Base(bitfield, feedback) {} \
int MaxCallStackArgs() const { return 0; } \
void SetValueLocationConstraints(); \
void GenerateCode(MaglevAssembler*, const ProcessingState&); \
void PrintParams(std::ostream&, MaglevGraphLabeller*) const {} \
};

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

◆ DEF_UNARY_WITH_FEEDBACK_NODE

#define DEF_UNARY_WITH_FEEDBACK_NODE ( Name)
Value:
DEF_OPERATION_WITH_FEEDBACK_NODE(Generic##Name, UnaryWithFeedbackNode, Name)

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

◆ DEFINE_NODE_TYPE

#define DEFINE_NODE_TYPE ( Name,
Value )
Value:
k##Name = Value,

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

◆ DEFINE_NODE_TYPE_CHECK

#define DEFINE_NODE_TYPE_CHECK ( Type,
_ )
Value:
inline bool NodeTypeIs##Type(NodeType type) { \
return NodeTypeIs(type, NodeType::k##Type); \
}

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

◆ DEFINE_TRUNCATE_NODE

#define DEFINE_TRUNCATE_NODE ( name,
from_repr,
properties )
Value:
class name : public FixedInputValueNodeT<1, name> { \
using Base = FixedInputValueNodeT<1, name>; \
\
public: \
explicit name(uint64_t bitfield) : Base(bitfield) {} \
\
static constexpr OpProperties kProperties = properties; \
static constexpr typename Base::InputTypes kInputTypes{ \
ValueRepresentation::k##from_repr}; \
\
Input& input() { return Node::input(0); } \
\
void SetValueLocationConstraints(); \
void GenerateCode(MaglevAssembler*, const ProcessingState&); \
void PrintParams(std::ostream&, MaglevGraphLabeller*) const {} \
};
const char * name
Definition builtins.cc:39

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

◆ DEOPTIMIZE_REASON_FIELD

#define DEOPTIMIZE_REASON_FIELD
Value:
private: \
using ReasonField = \
NextBitField<DeoptimizeReason, base::bits::WhichPowerOfTwo<size_t>( \
base::bits::RoundUpToPowerOfTwo32( \
kDeoptimizeReasonCount))>; \
\
public: \
DeoptimizeReason deoptimize_reason() const { \
return ReasonField::decode(bitfield()); \
}

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

◆ FLOAT64_OPERATIONS_NODE_LIST

#define FLOAT64_OPERATIONS_NODE_LIST ( V)
Value:
V(Float64Abs) \
V(Float64Add) \
V(Float64Subtract) \
V(Float64Multiply) \
V(Float64Divide) \
V(Float64Exponentiate) \
V(Float64Modulus) \
V(Float64Negate) \
V(Float64Round) \
V(Float64Compare) \
V(Float64ToBoolean) \
V(Float64Ieee754Unary)

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

◆ GAP_MOVE_NODE_LIST

#define GAP_MOVE_NODE_LIST ( V)
Value:
V(ConstantGapMove) \
V(GapMove)

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

◆ GENERIC_OPERATIONS_NODE_LIST

#define GENERIC_OPERATIONS_NODE_LIST ( V)
Value:
V(GenericAdd) \
V(GenericSubtract) \
V(GenericMultiply) \
V(GenericDivide) \
V(GenericModulus) \
V(GenericExponentiate) \
V(GenericBitwiseAnd) \
V(GenericBitwiseOr) \
V(GenericBitwiseXor) \
V(GenericShiftLeft) \
V(GenericShiftRight) \
V(GenericShiftRightLogical) \
V(GenericBitwiseNot) \
V(GenericNegate) \
V(GenericIncrement) \
V(GenericDecrement) \
V(GenericEqual) \
V(GenericStrictEqual) \
V(GenericLessThan) \
V(GenericLessThanOrEqual) \
V(GenericGreaterThan) \
V(GenericGreaterThanOrEqual)

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

◆ IEEE_754_UNARY_LIST

#define IEEE_754_UNARY_LIST ( V)
Value:
V(MathAcos, acos, Acos) \
V(MathAcosh, acosh, Acosh) \
V(MathAsin, asin, Asin) \
V(MathAsinh, asinh, Asinh) \
V(MathAtan, atan, Atan) \
V(MathAtanh, atanh, Atanh) \
V(MathCbrt, cbrt, Cbrt) \
V(MathCos, cos, Cos) \
V(MathCosh, cosh, Cosh) \
V(MathExp, exp, Exp) \
V(MathExpm1, expm1, Expm1) \
V(MathLog, log, Log) \
V(MathLog1p, log1p, Log1p) \
V(MathLog10, log10, Log10) \
V(MathLog2, log2, Log2) \
V(MathSin, sin, Sin) \
V(MathSinh, sinh, Sinh) \
V(MathTan, tan, Tan) \
V(MathTanh, tanh, Tanh)

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

◆ INLINE_BUILTIN_NODE_LIST

#define INLINE_BUILTIN_NODE_LIST ( V)
Value:
V(BuiltinStringFromCharCode) \
V(BuiltinStringPrototypeCharCodeOrCodePointAt)

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

◆ INT32_OPERATIONS_NODE_LIST

#define INT32_OPERATIONS_NODE_LIST ( V)
Value:
V(Int32AbsWithOverflow) \
V(Int32AddWithOverflow) \
V(Int32SubtractWithOverflow) \
V(Int32MultiplyWithOverflow) \
V(Int32DivideWithOverflow) \
V(Int32ModulusWithOverflow) \
V(Int32BitwiseAnd) \
V(Int32BitwiseOr) \
V(Int32BitwiseXor) \
V(Int32ShiftLeft) \
V(Int32ShiftRight) \
V(Int32ShiftRightLogical) \
V(Int32BitwiseNot) \
V(Int32NegateWithOverflow) \
V(Int32IncrementWithOverflow) \
V(Int32DecrementWithOverflow) \
V(Int32Compare) \
V(Int32ToBoolean)

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

◆ LEAF_NODE_TYPE_LIST

#define LEAF_NODE_TYPE_LIST ( V)
Value:
V(Smi, (1 << 0)) \
V(HeapNumber, (1 << 1)) \
V(NullOrUndefined, (1 << 2)) \
V(Boolean, (1 << 3)) \
V(Symbol, (1 << 4)) \
V(ThinString, (1 << 5)) \
V(InternalizedString, (1 << 6)) \
V(NonInternalizedNonThinString, (1 << 7)) \
V(StringWrapper, (1 << 8)) \
V(JSArray, (1 << 9)) \
V(Callable, (1 << 10)) \
V(OtherJSReceiver, (1 << 11)) \
V(OtherHeapObject, (1 << 12))

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

◆ LOAD_TYPED_ARRAY

#define LOAD_TYPED_ARRAY ( name,
properties,
... )

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

◆ NODE_BASE_LIST

#define NODE_BASE_LIST ( V)
Value:
CONTROL_NODE_LIST(V)
#define NODE_LIST(V)
Definition maglev-ir.h:386

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

◆ NODE_LIST

#define NODE_LIST ( V)
Value:
VALUE_NODE_LIST(V)
#define NON_VALUE_NODE_LIST(V)
Definition maglev-ir.h:321

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

◆ NODE_TYPE_LIST

#define NODE_TYPE_LIST ( V)
Value:
COMBINED_NODE_TYPE_LIST(V)
#define LEAF_NODE_TYPE_LIST(V)
Definition maglev-ir.h:619

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

◆ NON_VALUE_NODE_LIST

#define NON_VALUE_NODE_LIST ( V)

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

◆ PLUS_ONE

#define PLUS_ONE ( type)
Value:
+1

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

◆ SMI_OPERATIONS_NODE_LIST

#define SMI_OPERATIONS_NODE_LIST ( V)
Value:
V(CheckedSmiIncrement) \
V(CheckedSmiDecrement)

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

◆ STORE_TYPED_ARRAY

#define STORE_TYPED_ARRAY ( name,
properties,
type,
... )
Value:
class name : public FixedInputNodeT<3, name> { \
using Base = FixedInputNodeT<3, name>; \
\
public: \
explicit name(uint64_t bitfield, ElementsKind elements_kind) \
: Base(bitfield), elements_kind_(elements_kind) { \
DCHECK(elements_kind == \
} \
\
static constexpr OpProperties kProperties = properties; \
static constexpr typename Base::InputTypes kInputTypes{ \
ValueRepresentation::kTagged, ValueRepresentation::kUint32, type}; \
\
static constexpr int kObjectIndex = 0; \
static constexpr int kIndexIndex = 1; \
static constexpr int kValueIndex = 2; \
Input& object_input() { return input(kObjectIndex); } \
Input& index_input() { return input(kIndexIndex); } \
Input& value_input() { return input(kValueIndex); } \
\
void SetValueLocationConstraints(); \
void GenerateCode(MaglevAssembler*, const ProcessingState&); \
void PrintParams(std::ostream&, MaglevGraphLabeller*) const {} \
\
ElementsKind elements_kind() const { return elements_kind_; } \
\
private: \
};
ElementsKind elements_kind_

◆ TERMINAL_CONTROL_NODE_LIST

#define TERMINAL_CONTROL_NODE_LIST ( V)
Value:
V(Abort) \
V(Return) \
V(Deopt)

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

◆ TURBOLEV_NON_VALUE_NODE_LIST

#define TURBOLEV_NON_VALUE_NODE_LIST ( V)
Value:
V(TransitionAndStoreArrayElement)

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

◆ TURBOLEV_VALUE_NODE_LIST

#define TURBOLEV_VALUE_NODE_LIST ( V)
Value:
V(CreateFastArrayElements) \
V(MapPrototypeGet) \
V(MapPrototypeGetInt32Key) \
V(SetPrototypeHas)

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

◆ UNCONDITIONAL_CONTROL_NODE_LIST

#define UNCONDITIONAL_CONTROL_NODE_LIST ( V)
Value:
V(Jump) \
V(CheckpointedJump) \
V(JumpLoop)

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

◆ V

#define V ( Name)
Value:
Opcode::k##Name,

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

◆ VALUE_NODE_LIST

#define VALUE_NODE_LIST ( V)

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