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

Namespaces

namespace  detail
 

Classes

class  Abort
 
class  AbstractLoadTaggedField
 
struct  AllocatableRegisters
 
struct  AllocatableRegisters< DoubleRegister >
 
struct  AllocatableRegisters< Register >
 
class  AllocateElementsArray
 
class  AllocationBlock
 
class  AnyUseMarkingProcessor
 
class  ArgumentsElements
 
class  ArgumentsLength
 
class  AssertInt32
 
class  BasicBlock
 
class  BasicBlockRef
 
class  BinaryWithFeedbackNode
 
class  BranchControlNode
 
class  BranchControlNodeT
 
class  BranchIfFloat64Compare
 
class  BranchIfFloat64IsHole
 
class  BranchIfFloat64ToBooleanTrue
 
class  BranchIfInt32Compare
 
class  BranchIfInt32ToBooleanTrue
 
class  BranchIfIntPtrToBooleanTrue
 
class  BranchIfJSReceiver
 
class  BranchIfReferenceEqual
 
class  BranchIfRootConstant
 
class  BranchIfSmi
 
class  BranchIfToBooleanTrue
 
class  BranchIfTypeOf
 
class  BranchIfUint32Compare
 
class  BranchIfUndefinedOrNull
 
class  BranchIfUndetectable
 
class  BuiltinContinuationDeoptFrame
 
class  BuiltinStringFromCharCode
 
class  BuiltinStringPrototypeCharCodeOrCodePointAt
 
class  Call
 
class  CallArguments
 
class  CallBuiltin
 
class  CallCPPBuiltin
 
class  CallForwardVarargs
 
class  CallKnownApiFunction
 
class  CallKnownJSFunction
 
class  CallRuntime
 
class  CallSelf
 
class  CallWithArrayLike
 
class  CallWithSpread
 
struct  CatchBlockDetails
 
class  ChangeInt32ToFloat64
 
class  ChangeIntPtrToFloat64
 
class  ChangeUint32ToFloat64
 
class  CheckCacheIndicesNotCleared
 
class  CheckConstructResult
 
class  CheckDerivedConstructResult
 
class  CheckDetectableCallable
 
class  CheckDynamicValue
 
class  CheckedHoleyFloat64ToFloat64
 
class  CheckedInt32ToUint32
 
class  CheckedInternalizedString
 
class  CheckedIntPtrToInt32
 
class  CheckedIntPtrToUint32
 
class  CheckedNumberOrOddballToFloat64
 
class  CheckedNumberOrOddballToFloat64OrHoleyFloat64
 
class  CheckedNumberOrOddballToHoleyFloat64
 
class  CheckedNumberToInt32
 
class  CheckedNumberToUint8Clamped
 
class  CheckedObjectToIndex
 
class  CheckedSmiDecrement
 
class  CheckedSmiIncrement
 
class  CheckedSmiSizedInt32
 
class  CheckedSmiTagFloat64
 
class  CheckedSmiTagInt32
 
class  CheckedSmiTagIntPtr
 
class  CheckedSmiTagUint32
 
class  CheckedSmiUntag
 
class  CheckedTruncateFloat64ToInt32
 
class  CheckedTruncateFloat64ToUint32
 
class  CheckedTruncateNumberOrOddballToInt32
 
class  CheckedUint32ToInt32
 
class  CheckFloat64SameValue
 
class  CheckHeapObject
 
class  CheckHoleyFloat64IsSmi
 
class  CheckHoleyFloat64NotHole
 
class  CheckInstanceType
 
class  CheckInt32Condition
 
class  CheckInt32IsSmi
 
class  CheckIntPtrIsSmi
 
class  CheckJSDataViewBounds
 
class  CheckJSReceiverOrNullOrUndefined
 
class  CheckMaps
 
class  CheckMapsWithAlreadyLoadedMap
 
class  CheckMapsWithMigration
 
class  CheckMapsWithMigrationAndDeopt
 
class  CheckNotHole
 
class  CheckNumber
 
class  CheckpointedJump
 
class  CheckSmi
 
class  CheckString
 
class  CheckStringOrStringWrapper
 
class  CheckSymbol
 
class  CheckTypedArrayBounds
 
class  CheckTypedArrayNotDetached
 
class  CheckUint32IsSmi
 
class  CheckValue
 
class  CheckValueEqualsInt32
 
class  CheckValueEqualsString
 
class  CompactInterpreterFrameState
 
class  ConditionalControlNode
 
class  ConsStringMap
 
class  Constant
 
class  ConstantGapMove
 
class  Construct
 
class  ConstructInvokeStubDeoptFrame
 
class  ConstructWithSpread
 
class  ControlNode
 
class  ConvertHoleToUndefined
 
class  ConvertReceiver
 
class  CreateArrayLiteral
 
class  CreateClosure
 
class  CreateFastArrayElements
 
class  CreateFunctionContext
 
class  CreateObjectLiteral
 
class  CreateRegExpLiteral
 
class  CreateShallowArrayLiteral
 
class  CreateShallowObjectLiteral
 
class  Dead
 
class  DeadNodeSweepingProcessor
 
class  DebugBreak
 
class  DecompressedUseMarkingProcessor
 
class  DeferredCodeInfo
 
class  DefineKeyedOwnGeneric
 
class  DefineNamedOwnGeneric
 
class  DeleteProperty
 
class  Deopt
 
class  DeoptFrame
 
class  DeoptInfo
 
class  DeoptInfoVisitor
 
class  EagerDeoptInfo
 
class  EnsureWritableFastElements
 
class  ExceptionHandlerInfo
 
class  ExtendPropertiesBackingStore
 
class  ExternalConstant
 
class  FastCreateClosure
 
class  FixedInputNodeTMixin
 
class  Float64Abs
 
class  Float64BinaryNode
 
class  Float64BinaryNodeWithCall
 
class  Float64Compare
 
class  Float64Constant
 
class  Float64Ieee754Unary
 
class  Float64Negate
 
class  Float64Round
 
class  Float64ToBoolean
 
class  Float64ToHeapNumberForField
 
class  Float64ToTagged
 
class  Float64ToUint8Clamped
 
class  ForInNext
 
class  ForInPrepare
 
class  FunctionEntryStackCheck
 
class  GapMove
 
class  GeneratorRestoreRegister
 
class  GeneratorStore
 
class  GetContinuationPreservedEmbedderData
 
class  GetIterator
 
class  GetKeyedGeneric
 
class  GetSecondReturnedValue
 
class  GetTemplateObject
 
class  Graph
 
class  GraphProcessor
 
class  HandleNoHeapWritesInterrupt
 
class  HasInPrototypeChain
 
class  HoleyFloat64IsHole
 
class  HoleyFloat64ToMaybeNanFloat64
 
class  HoleyFloat64ToTagged
 
class  Identity
 
class  InitialValue
 
class  InlinedAllocation
 
class  InlinedArgumentsDeoptFrame
 
class  Input
 
class  InputLocation
 
class  Int32AbsWithOverflow
 
class  Int32BinaryNode
 
class  Int32BinaryWithOverflowNode
 
class  Int32BitwiseNot
 
class  Int32Compare
 
class  Int32Constant
 
class  Int32ShiftRightLogical
 
class  Int32ToBoolean
 
class  Int32ToNumber
 
class  Int32ToUint8Clamped
 
class  Int32UnaryWithOverflowNode
 
class  InterpretedDeoptFrame
 
class  InterpreterFrameState
 
class  IntPtrToBoolean
 
class  IntPtrToNumber
 
struct  IsFixedInputNode
 
struct  IsFixedInputNode< T, std::void_t< decltype(T::kInputCount)> >
 
class  Jump
 
class  JumpLoop
 
struct  KnownNodeAspects
 
class  LazyDeoptInfo
 
class  LiveRangeAndNextUseProcessor
 
class  LoadDoubleDataViewElement
 
class  LoadDoubleField
 
class  LoadEnumCacheLength
 
class  LoadFixedArrayElement
 
class  LoadFixedDoubleArrayElement
 
class  LoadFloat64
 
class  LoadGlobal
 
class  LoadHeapInt32
 
class  LoadHoleyFixedDoubleArrayElement
 
class  LoadHoleyFixedDoubleArrayElementCheckedNotHole
 
class  LoadInt32
 
class  LoadNamedFromSuperGeneric
 
class  LoadNamedGeneric
 
class  LoadSignedIntDataViewElement
 
class  LoadTaggedField
 
class  LoadTaggedFieldByFieldIndex
 
class  LoadTaggedFieldForContextSlot
 
class  LoadTaggedFieldForProperty
 
class  LoadTaggedFieldForScriptContextSlot
 
class  LoadTypedArrayLength
 
class  LogicalNot
 
struct  LoopEffects
 
class  LoopOptimizationProcessor
 
class  MaglevAssembler
 
struct  MaglevCallerDetails
 
struct  MaglevCallSiteInfo
 
class  MaglevCodeGenerator
 
class  MaglevCodeGenState
 
class  MaglevCompilationInfo
 
class  MaglevCompilationUnit
 
class  MaglevCompiler
 
class  MaglevGraphBuilder
 
class  MaglevGraphLabeller
 
class  MaglevGraphVerifier
 
class  MaglevInliner
 
class  MaglevPhiRepresentationSelector
 
class  MaglevPrintingVisitor
 
class  MapCompare
 
class  MapPrototypeGet
 
class  MapPrototypeGetInt32Key
 
class  MaxCallDepthProcessor
 
class  MaybeGrowFastElements
 
class  MaybeReduceResult
 
class  MergePointInterpreterFrameState
 
class  MergePointRegisterState
 
class  MigrateMapIfNeeded
 
class  Node
 
class  NodeBase
 
class  NodeInfo
 
class  NodeMultiProcessor
 
class  NodeMultiProcessor< Processor, Processors... >
 
class  NodeMultiProcessor<>
 
class  NodeTMixin
 
struct  NodeWithInlineInputs
 
class  NumberToString
 
class  OpProperties
 
class  Phi
 
class  PolymorphicAccessInfo
 
class  PrintNode
 
class  PrintNodeLabel
 
class  ProcessingState
 
class  ReduceInterruptBudgetForLoop
 
class  ReduceInterruptBudgetForReturn
 
class  ReduceResult
 
struct  RegallocInfo
 
class  RegisterFrameArray
 
class  RegisterFrameState
 
class  RegisterInput
 
struct  RegisterMerge
 
struct  RegisterSnapshot
 
struct  RegisterStateFlags
 
class  RepeatIterator
 
class  RestLength
 
class  Return
 
class  RootConstant
 
class  SaveRegisterStateForCall
 
class  SetContinuationPreservedEmbedderData
 
class  SetKeyedGeneric
 
class  SetNamedGeneric
 
class  SetPendingMessage
 
class  SetPrototypeHas
 
class  SmiConstant
 
struct  StackSlot
 
class  StoreDoubleDataViewElement
 
class  StoreDoubleField
 
class  StoreFixedArrayElementNoWriteBarrier
 
class  StoreFixedArrayElementWithWriteBarrier
 
class  StoreFixedDoubleArrayElement
 
class  StoreFloat64
 
class  StoreGlobal
 
class  StoreHeapInt32
 
class  StoreInArrayLiteralGeneric
 
class  StoreInt32
 
class  StoreMap
 
class  StoreScriptContextSlotWithWriteBarrier
 
class  StoreTaggedFieldNoWriteBarrier
 
class  StoreTaggedFieldWithWriteBarrier
 
class  StoreTrustedPointerFieldWithWriteBarrier
 
class  StraightForwardRegisterAllocator
 
class  StringAt
 
class  StringConcat
 
class  StringEqual
 
class  StringLength
 
class  SweepIdentityNodes
 
class  Switch
 
class  TaggedEqual
 
class  TaggedIndexConstant
 
class  TaggedNotEqual
 
class  TerminalControlNode
 
class  TerminalControlNodeT
 
class  TestInstanceOf
 
class  TestTypeOf
 
class  TestUndetectable
 
class  ThrowIfNotCallable
 
class  ThrowIfNotSuperConstructor
 
class  ThrowReferenceErrorIfHole
 
class  ThrowSuperAlreadyCalledIfNotHole
 
class  ThrowSuperNotCalledIfHole
 
class  ToBoolean
 
class  ToBooleanLogicalNot
 
class  ToName
 
class  ToNumberOrNumeric
 
class  ToObject
 
class  ToString
 
class  TransitionAndStoreArrayElement
 
class  TransitionElementsKind
 
class  TransitionElementsKindOrCheckMap
 
class  TruncateNumberOrOddballToInt32
 
class  TrustedConstant
 
class  TryOnStackReplacement
 
class  Uint32Constant
 
class  Uint32ToNumber
 
class  Uint32ToUint8Clamped
 
class  UnaryWithFeedbackNode
 
class  UncheckedNumberOrOddballToFloat64
 
class  UnconditionalControlNode
 
class  UnconditionalControlNodeT
 
class  UnsafeInt32ToUint32
 
class  UnsafeSmiTagInt32
 
class  UnsafeSmiTagIntPtr
 
class  UnsafeSmiTagUint32
 
class  UnsafeSmiUntag
 
class  UnwrapStringWrapper
 
class  UnwrapThinString
 
class  UpdateJSArrayLength
 
class  ValueLocation
 
class  ValueLocationConstraintProcessor
 
class  ValueNode
 
class  VirtualObject
 
class  VirtualObjectList
 
class  ZoneLabelRef
 

Typedefs

using NodeIterator = ZoneVector<Node*>::iterator
 
using NodeConstIterator = ZoneVector<Node*>::const_iterator
 
template<typename... Processors>
using GraphMultiProcessor = GraphProcessor<NodeMultiProcessor<Processors...>>
 
using BlockConstIterator = ZoneVector<BasicBlock*>::const_iterator
 
using BlockConstReverseIterator
 
using PossibleMaps = compiler::ZoneRefSet<Map>
 
using NodeIdT = uint32_t
 
template<class Derived >
using NodeT = NodeTMixin<Node, Derived>
 
template<class Derived >
using ValueNodeT = NodeTMixin<ValueNode, Derived>
 
template<size_t InputCount, class Derived >
using FixedInputNodeT
 
template<size_t InputCount, class Derived >
using FixedInputValueNodeT
 
typedef base::EnumSet< ValueRepresentation, int8_t > ValueRepresentationSet
 
typedef base::EnumSet< UseRepresentation, int8_t > UseRepresentationSet
 
typedef base::PointerWithPayload< void, RegisterStateFlags, 2 > RegisterState
 

Enumerations

enum class  UseReprHintRecording { kRecord , kDoNotRecord }
 
enum class  BlockProcessResult { kContinue , kSkip }
 
enum class  ProcessResult {
  kContinue , kRemove , kHoist , kAbort ,
  kSkipBlock
}
 
enum class  Opcode : uint16_t { NODE_BASE_LIST =(DEF_OPCODES) }
 
enum class  ValueRepresentation : uint8_t {
  kTagged , kInt32 , kUint32 , kFloat64 ,
  kHoleyFloat64 , kIntPtr
}
 
enum class  NodeType : uint32_t { DEFINE_NODE_TYPE }
 
enum class  TaggedToFloat64ConversionType : uint8_t { kOnlyNumber , kNumberOrBoolean , kNumberOrOddball }
 
enum class  CheckType { kCheckHeapObject , kOmitHeapObjectCheck }
 
enum class  EscapeAnalysisResult { kUnknown , kElided , kEscaped }
 
enum class  AssertCondition { D }
 
enum class  StoreTaggedMode : uint8_t { kDefault , kInitializing , kTransitioning }
 
enum class  UseRepresentation : uint8_t {
  kTagged , kInt32 , kTruncatedInt32 , kUint32 ,
  kFloat64 , kHoleyFloat64
}
 

Functions

static bool IsMaglevEnabled ()
 
static bool IsMaglevOsrEnabled ()
 
constexpr Condition ConditionForFloat64 (Operation operation)
 
constexpr Condition ConditionForNaN ()
 
int ShiftFromScale (int n)
 
template<typename T >
void AllocateSlow (MaglevAssembler *masm, RegisterSnapshot register_snapshot, Register object, Builtin builtin, T size_in_bytes, ZoneLabelRef done)
 
ExternalReference SpaceAllocationTopAddress (Isolate *isolate, AllocationType alloc_type)
 
ExternalReference SpaceAllocationLimitAddress (Isolate *isolate, AllocationType alloc_type)
 
Builtin AllocateBuiltin (AllocationType alloc_type)
 
template<typename T >
auto RepeatValue (T val, int count)
 
Condition ToCondition (AssertCondition cond)
 
constexpr Condition ConditionFor (Operation operation)
 
constexpr Condition UnsignedConditionFor (Operation operation)
 
int GetSafepointIndexForStackSlot (int i)
 
Register ToRegister (const compiler::InstructionOperand &operand)
 
DoubleRegister ToDoubleRegister (const compiler::InstructionOperand &operand)
 
template<typename RegisterT >
auto ToRegisterT (const compiler::InstructionOperand &operand)
 
Register ToRegister (const ValueLocation &location)
 
DoubleRegister ToDoubleRegister (const ValueLocation &location)
 
template<Operation kOperation>
static constexpr std::optional< int > Int32Identity ()
 
template<Operation kOperation, typename type >
bool OperationValue (type left, type right)
 
NodeType StaticTypeForNode (compiler::JSHeapBroker *broker, LocalIsolate *isolate, ValueNode *node)
 
void PrintGraph (std::ostream &os, MaglevCompilationInfo *compilation_info, Graph *const graph)
 
std::ostream & operator<< (std::ostream &os, const PrintNode &printer)
 
std::ostream & operator<< (std::ostream &os, const PrintNodeLabel &printer)
 
template<typename Key , typename Value , typename MergeFunc = std::equal_to<Value>>
void DestructivelyIntersect (ZoneMap< Key, Value > &lhs_map, const ZoneMap< Key, Value > &rhs_map, MergeFunc &&func=MergeFunc())
 
void DefineAsRegister (Node *node)
 
void DefineAsConstant (Node *node)
 
void DefineAsFixed (Node *node, Register reg)
 
void DefineSameAsFirst (Node *node)
 
void UseRegister (Input &input)
 
void UseAndClobberRegister (Input &input)
 
void UseAny (Input &input)
 
void UseFixed (Input &input, Register reg)
 
void UseFixed (Input &input, DoubleRegister reg)
 
const char * OpcodeToString (Opcode opcode)
 
bool FromConstantToBool (LocalIsolate *local_isolate, ValueNode *node)
 
ValueRepresentation ToValueRepresentation (MachineType type)
 
void CheckValueInputIs (const NodeBase *node, int i, ValueRepresentation expected, MaglevGraphLabeller *graph_labeller)
 
void CheckValueInputIs (const NodeBase *node, int i, Opcode expected, MaglevGraphLabeller *graph_labeller)
 
std::ostream & operator<< (std::ostream &os, StoreMap::Kind kind)
 
std::ostream & operator<< (std::ostream &os, Opcode opcode)
 
constexpr bool IsValueNode (Opcode opcode)
 
constexpr bool IsConstantNode (Opcode opcode)
 
constexpr bool IsCommutativeNode (Opcode opcode)
 
constexpr bool IsZeroCostNode (Opcode opcode)
 
constexpr bool IsGapMoveNode (Opcode opcode)
 
constexpr bool IsControlNode (Opcode opcode)
 
constexpr bool IsBranchControlNode (Opcode opcode)
 
constexpr bool IsConditionalControlNode (Opcode opcode)
 
constexpr bool IsUnconditionalControlNode (Opcode opcode)
 
constexpr bool IsTerminalControlNode (Opcode opcode)
 
constexpr bool IsSimpleFieldStore (Opcode opcode)
 
constexpr bool IsElementsArrayWrite (Opcode opcode)
 
constexpr bool IsTypedArrayStore (Opcode opcode)
 
constexpr bool CanBeStoreToNonEscapedObject (Opcode opcode)
 
constexpr bool IsDoubleRepresentation (ValueRepresentation repr)
 
constexpr bool IsZeroExtendedRepresentation (ValueRepresentation repr)
 
constexpr NodeType EmptyNodeType ()
 
constexpr NodeType CombineType (NodeType left, NodeType right)
 
constexpr NodeType IntersectType (NodeType left, NodeType right)
 
constexpr bool NodeTypeIs (NodeType type, NodeType to_check)
 
NodeType StaticTypeForMap (compiler::MapRef map, compiler::JSHeapBroker *broker)
 
constexpr bool IsEmptyNodeType (NodeType type)
 
NodeType StaticTypeForConstant (compiler::JSHeapBroker *broker, compiler::ObjectRef ref)
 
bool IsInstanceOfLeafNodeType (compiler::MapRef map, NodeType type, compiler::JSHeapBroker *broker)
 
bool IsInstanceOfNodeType (compiler::MapRef map, NodeType type, compiler::JSHeapBroker *broker)
 
std::ostream & operator<< (std::ostream &out, const NodeType &type)
 
bool NodeTypeMayBeNullOrUndefined (NodeType type)
 
bool FromConstantToBool (MaglevAssembler *masm, ValueNode *node)
 
std::ostream & operator<< (std::ostream &os, const ValueRepresentation &repr)
 
std::ostream & operator<< (std::ostream &os, const TaggedToFloat64ConversionType &conversion_type)
 
bool HasOnlyJSTypedArrayMaps (base::Vector< const compiler::MapRef > maps)
 
bool HasOnlyJSArrayMaps (base::Vector< const compiler::MapRef > maps)
 
bool HasOnlyJSObjectMaps (base::Vector< const compiler::MapRef > maps)
 
bool HasOnlyStringMaps (base::Vector< const compiler::MapRef > maps)
 
bool HasOnlyNumberMaps (base::Vector< const compiler::MapRef > maps)
 
bool HasNumberMap (base::Vector< const compiler::MapRef > maps)
 
constexpr OpProperties StaticPropertiesForOpcode (Opcode opcode)
 
 DEFINE_TRUNCATE_NODE (TruncateFloat64ToInt32, HoleyFloat64, OpProperties::Int32()) DEFINE_TRUNCATE_NODE(UnsafeTruncateFloat64ToInt32
 
std::ostream & operator<< (std::ostream &os, const AssertCondition cond)
 
 LOAD_TYPED_ARRAY (LoadSignedIntTypedArrayElement, OpProperties::Int32(), INT8_ELEMENTS, INT16_ELEMENTS, INT32_ELEMENTS) LOAD_TYPED_ARRAY(LoadUnsignedIntTypedArrayElement
 
UINT32_ELEMENTS LOAD_TYPED_ARRAY (LoadDoubleTypedArrayElement, OpProperties::Float64(), FLOAT32_ELEMENTS, FLOAT64_ELEMENTS) STORE_TYPED_ARRAY(StoreIntTypedArrayElement
 
bool IsInitializingOrTransitioning (StoreTaggedMode mode)
 
std::ostream & operator<< (std::ostream &os, const UseRepresentation &repr)
 
template<typename NodeT >
constexpr bool CanBeStoreToNonEscapedObject ()
 
constexpr bool operator== (const RegisterStateFlags &left, const RegisterStateFlags &right)
 
bool LoadMergeState (RegisterState state, RegisterMerge **merge)
 
bool LoadMergeState (RegisterState state, ValueNode **node, RegisterMerge **merge)
 
FPUCondition ConditionToConditionCmpFPU (Condition condition)
 
void SubSizeAndTagObject (MaglevAssembler *masm, Register object, Register size_in_bytes)
 
void SubSizeAndTagObject (MaglevAssembler *masm, Register object, int size_in_bytes)
 
template<typename T >
void AllocateRaw (MaglevAssembler *masm, Isolate *isolate, RegisterSnapshot register_snapshot, Register object, T size_in_bytes, AllocationType alloc_type, AllocationAlignment alignment)
 
ScaleFactor ScaleFactorFromInt (int n)
 

Variables

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

Typedef Documentation

◆ BlockConstIterator

Definition at line 19 of file maglev-graph.h.

◆ BlockConstReverseIterator

Initial value:
ZoneVector<BasicBlock*>::const_reverse_iterator

Definition at line 20 of file maglev-graph.h.

◆ FixedInputNodeT

template<size_t InputCount, class Derived >
using v8::internal::maglev::FixedInputNodeT
Initial value:
FixedInputNodeTMixin<InputCount, NodeT<Derived>, Derived>

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

◆ FixedInputValueNodeT

template<size_t InputCount, class Derived >
using v8::internal::maglev::FixedInputValueNodeT
Initial value:
FixedInputNodeTMixin<InputCount, ValueNodeT<Derived>, Derived>

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

◆ GraphMultiProcessor

template<typename... Processors>
using v8::internal::maglev::GraphMultiProcessor = GraphProcessor<NodeMultiProcessor<Processors...>>

Definition at line 335 of file maglev-graph-processor.h.

◆ NodeConstIterator

Definition at line 23 of file maglev-basic-block.h.

◆ NodeIdT

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

◆ NodeIterator

Definition at line 22 of file maglev-basic-block.h.

◆ NodeT

template<class Derived >
using v8::internal::maglev::NodeT = NodeTMixin<Node, Derived>

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

◆ PossibleMaps

◆ RegisterState

◆ UseRepresentationSet

◆ ValueNodeT

template<class Derived >
using v8::internal::maglev::ValueNodeT = NodeTMixin<ValueNode, Derived>

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

◆ ValueRepresentationSet

Enumeration Type Documentation

◆ AssertCondition

Enumerator

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

◆ BlockProcessResult

Enumerator
kContinue 
kSkip 

Definition at line 47 of file maglev-graph-processor.h.

◆ CheckType

Enumerator
kCheckHeapObject 
kOmitHeapObjectCheck 

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

◆ EscapeAnalysisResult

Enumerator
kUnknown 
kElided 
kEscaped 

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

◆ NodeType

enum class v8::internal::maglev::NodeType : uint32_t
strong
Enumerator
DEFINE_NODE_TYPE 

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

◆ Opcode

enum class v8::internal::maglev::Opcode : uint16_t
strong
Enumerator
NODE_BASE_LIST 

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

◆ ProcessResult

Enumerator
kContinue 
kRemove 
kHoist 
kAbort 
kSkipBlock 

Definition at line 52 of file maglev-graph-processor.h.

◆ StoreTaggedMode

enum class v8::internal::maglev::StoreTaggedMode : uint8_t
strong
Enumerator
kDefault 
kInitializing 
kTransitioning 

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

◆ TaggedToFloat64ConversionType

Enumerator
kOnlyNumber 
kNumberOrBoolean 
kNumberOrOddball 

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

◆ UseRepresentation

enum class v8::internal::maglev::UseRepresentation : uint8_t
strong
Enumerator
kTagged 
kInt32 
kTruncatedInt32 
kUint32 
kFloat64 
kHoleyFloat64 

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

◆ UseReprHintRecording

Enumerator
kRecord 
kDoNotRecord 

Definition at line 173 of file maglev-graph-builder.h.

◆ ValueRepresentation

enum class v8::internal::maglev::ValueRepresentation : uint8_t
strong
Enumerator
kTagged 
kInt32 
kUint32 
kFloat64 
kHoleyFloat64 
kIntPtr 

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

Function Documentation

◆ AllocateBuiltin()

Builtin v8::internal::maglev::AllocateBuiltin ( AllocationType alloc_type)
inline

Definition at line 41 of file maglev-assembler.h.

Here is the caller graph for this function:

◆ AllocateRaw()

template<typename T >
void v8::internal::maglev::AllocateRaw ( MaglevAssembler * masm,
Isolate * isolate,
RegisterSnapshot register_snapshot,
Register object,
T size_in_bytes,
AllocationType alloc_type,
AllocationAlignment alignment )

Definition at line 27 of file maglev-assembler-riscv.cc.

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

◆ AllocateSlow()

template<typename T >
void v8::internal::maglev::AllocateSlow ( MaglevAssembler * masm,
RegisterSnapshot register_snapshot,
Register object,
Builtin builtin,
T size_in_bytes,
ZoneLabelRef done )
inline

Definition at line 263 of file maglev-assembler-inl.h.

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

◆ CanBeStoreToNonEscapedObject() [1/2]

template<typename NodeT >
bool v8::internal::maglev::CanBeStoreToNonEscapedObject ( )
constexpr

Definition at line 190 of file maglev-post-hoc-optimizations-processors.h.

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

◆ CanBeStoreToNonEscapedObject() [2/2]

bool v8::internal::maglev::CanBeStoreToNonEscapedObject ( Opcode opcode)
constexpr

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

◆ CheckValueInputIs() [1/2]

void v8::internal::maglev::CheckValueInputIs ( const NodeBase * node,
int i,
Opcode expected,
MaglevGraphLabeller * graph_labeller )

Definition at line 554 of file maglev-ir.cc.

Here is the call graph for this function:

◆ CheckValueInputIs() [2/2]

void v8::internal::maglev::CheckValueInputIs ( const NodeBase * node,
int i,
ValueRepresentation expected,
MaglevGraphLabeller * graph_labeller )

Definition at line 532 of file maglev-ir.cc.

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

◆ CombineType()

NodeType v8::internal::maglev::CombineType ( NodeType left,
NodeType right )
inlineconstexpr

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

Here is the caller graph for this function:

◆ ConditionFor()

Condition v8::internal::maglev::ConditionFor ( Operation operation)
constexpr

Definition at line 1089 of file maglev-assembler.h.

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

◆ ConditionForFloat64()

Condition v8::internal::maglev::ConditionForFloat64 ( Operation operation)
constexpr

Definition at line 21 of file maglev-assembler-arm-inl.h.

Here is the call graph for this function:

◆ ConditionForNaN()

Condition v8::internal::maglev::ConditionForNaN ( )
constexpr

Definition at line 25 of file maglev-assembler-arm-inl.h.

Here is the caller graph for this function:

◆ ConditionToConditionCmpFPU()

FPUCondition v8::internal::maglev::ConditionToConditionCmpFPU ( Condition condition)
inline

Definition at line 41 of file maglev-assembler-riscv-inl.h.

Here is the call graph for this function:

◆ DEFINE_TRUNCATE_NODE()

v8::internal::maglev::DEFINE_TRUNCATE_NODE ( TruncateFloat64ToInt32 ,
HoleyFloat64 ,
OpProperties::Int32()  )

◆ DefineAsConstant()

void v8::internal::maglev::DefineAsConstant ( Node * node)
inline

Definition at line 48 of file maglev-ir-inl.h.

◆ DefineAsFixed()

void v8::internal::maglev::DefineAsFixed ( Node * node,
Register reg )
inline

Definition at line 52 of file maglev-ir-inl.h.

◆ DefineAsRegister()

void v8::internal::maglev::DefineAsRegister ( Node * node)
inline

Definition at line 44 of file maglev-ir-inl.h.

Here is the caller graph for this function:

◆ DefineSameAsFirst()

void v8::internal::maglev::DefineSameAsFirst ( Node * node)
inline

Definition at line 58 of file maglev-ir-inl.h.

Here is the caller graph for this function:

◆ DestructivelyIntersect()

template<typename Key , typename Value , typename MergeFunc = std::equal_to<Value>>
void v8::internal::maglev::DestructivelyIntersect ( ZoneMap< Key, Value > & lhs_map,
const ZoneMap< Key, Value > & rhs_map,
MergeFunc && func = MergeFunc() )

Definition at line 37 of file maglev-interpreter-frame-state.h.

Here is the caller graph for this function:

◆ EmptyNodeType()

NodeType v8::internal::maglev::EmptyNodeType ( )
inlineconstexpr

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

◆ FromConstantToBool() [1/2]

bool v8::internal::maglev::FromConstantToBool ( LocalIsolate * local_isolate,
ValueNode * node )

Definition at line 364 of file maglev-ir.cc.

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

◆ FromConstantToBool() [2/2]

bool v8::internal::maglev::FromConstantToBool ( MaglevAssembler * masm,
ValueNode * node )

◆ GetSafepointIndexForStackSlot()

int v8::internal::maglev::GetSafepointIndexForStackSlot ( int i)
inline

Definition at line 146 of file maglev-code-gen-state.h.

◆ HasNumberMap()

bool v8::internal::maglev::HasNumberMap ( base::Vector< const compiler::MapRef > maps)
inline

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

◆ HasOnlyJSArrayMaps()

bool v8::internal::maglev::HasOnlyJSArrayMaps ( base::Vector< const compiler::MapRef > maps)
inline

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

Here is the caller graph for this function:

◆ HasOnlyJSObjectMaps()

bool v8::internal::maglev::HasOnlyJSObjectMaps ( base::Vector< const compiler::MapRef > maps)
inline

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

Here is the caller graph for this function:

◆ HasOnlyJSTypedArrayMaps()

bool v8::internal::maglev::HasOnlyJSTypedArrayMaps ( base::Vector< const compiler::MapRef > maps)
inline

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

Here is the caller graph for this function:

◆ HasOnlyNumberMaps()

bool v8::internal::maglev::HasOnlyNumberMaps ( base::Vector< const compiler::MapRef > maps)
inline

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

Here is the caller graph for this function:

◆ HasOnlyStringMaps()

bool v8::internal::maglev::HasOnlyStringMaps ( base::Vector< const compiler::MapRef > maps)
inline

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

Here is the caller graph for this function:

◆ Int32Identity()

template<Operation kOperation>
static constexpr std::optional< int > v8::internal::maglev::Int32Identity ( )
staticconstexpr

Definition at line 2123 of file maglev-graph-builder.cc.

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

◆ IntersectType()

NodeType v8::internal::maglev::IntersectType ( NodeType left,
NodeType right )
inlineconstexpr

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

Here is the caller graph for this function:

◆ IsBranchControlNode()

bool v8::internal::maglev::IsBranchControlNode ( Opcode opcode)
constexpr

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

Here is the caller graph for this function:

◆ IsCommutativeNode()

bool v8::internal::maglev::IsCommutativeNode ( Opcode opcode)
constexpr

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

Here is the caller graph for this function:

◆ IsConditionalControlNode()

bool v8::internal::maglev::IsConditionalControlNode ( Opcode opcode)
constexpr

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

Here is the caller graph for this function:

◆ IsConstantNode()

bool v8::internal::maglev::IsConstantNode ( Opcode opcode)
constexpr

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

Here is the caller graph for this function:

◆ IsControlNode()

bool v8::internal::maglev::IsControlNode ( Opcode opcode)
constexpr

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

Here is the caller graph for this function:

◆ IsDoubleRepresentation()

bool v8::internal::maglev::IsDoubleRepresentation ( ValueRepresentation repr)
inlineconstexpr

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

Here is the caller graph for this function:

◆ IsElementsArrayWrite()

bool v8::internal::maglev::IsElementsArrayWrite ( Opcode opcode)
constexpr

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

Here is the caller graph for this function:

◆ IsEmptyNodeType()

bool v8::internal::maglev::IsEmptyNodeType ( NodeType type)
inlineconstexpr

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

Here is the caller graph for this function:

◆ IsGapMoveNode()

bool v8::internal::maglev::IsGapMoveNode ( Opcode opcode)
constexpr

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

Here is the caller graph for this function:

◆ IsInitializingOrTransitioning()

bool v8::internal::maglev::IsInitializingOrTransitioning ( StoreTaggedMode mode)
inline

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

◆ IsInstanceOfLeafNodeType()

bool v8::internal::maglev::IsInstanceOfLeafNodeType ( compiler::MapRef map,
NodeType type,
compiler::JSHeapBroker * broker )
inline

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

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

◆ IsInstanceOfNodeType()

bool v8::internal::maglev::IsInstanceOfNodeType ( compiler::MapRef map,
NodeType type,
compiler::JSHeapBroker * broker )
inline

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

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

◆ IsMaglevEnabled()

static bool v8::internal::maglev::IsMaglevEnabled ( )
inlinestatic

Definition at line 57 of file compiler.h.

Here is the caller graph for this function:

◆ IsMaglevOsrEnabled()

static bool v8::internal::maglev::IsMaglevOsrEnabled ( )
inlinestatic

Definition at line 59 of file compiler.h.

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

◆ IsSimpleFieldStore()

bool v8::internal::maglev::IsSimpleFieldStore ( Opcode opcode)
constexpr

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

Here is the caller graph for this function:

◆ IsTerminalControlNode()

bool v8::internal::maglev::IsTerminalControlNode ( Opcode opcode)
constexpr

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

Here is the caller graph for this function:

◆ IsTypedArrayStore()

bool v8::internal::maglev::IsTypedArrayStore ( Opcode opcode)
constexpr

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

Here is the caller graph for this function:

◆ IsUnconditionalControlNode()

bool v8::internal::maglev::IsUnconditionalControlNode ( Opcode opcode)
constexpr

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

Here is the caller graph for this function:

◆ IsValueNode()

bool v8::internal::maglev::IsValueNode ( Opcode opcode)
constexpr

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

Here is the caller graph for this function:

◆ IsZeroCostNode()

bool v8::internal::maglev::IsZeroCostNode ( Opcode opcode)
constexpr

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

Here is the caller graph for this function:

◆ IsZeroExtendedRepresentation()

bool v8::internal::maglev::IsZeroExtendedRepresentation ( ValueRepresentation repr)
inlineconstexpr

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

◆ LOAD_TYPED_ARRAY() [1/2]

UINT32_ELEMENTS v8::internal::maglev::LOAD_TYPED_ARRAY ( LoadDoubleTypedArrayElement ,
OpProperties::Float64() ,
FLOAT32_ELEMENTS ,
FLOAT64_ELEMENTS  )

◆ LOAD_TYPED_ARRAY() [2/2]

v8::internal::maglev::LOAD_TYPED_ARRAY ( LoadSignedIntTypedArrayElement ,
OpProperties::Int32() ,
INT8_ELEMENTS ,
INT16_ELEMENTS ,
INT32_ELEMENTS  )

◆ LoadMergeState() [1/2]

bool v8::internal::maglev::LoadMergeState ( RegisterState state,
RegisterMerge ** merge )
inline

Definition at line 74 of file maglev-regalloc-data.h.

Here is the caller graph for this function:

◆ LoadMergeState() [2/2]

bool v8::internal::maglev::LoadMergeState ( RegisterState state,
ValueNode ** node,
RegisterMerge ** merge )
inline

Definition at line 84 of file maglev-regalloc-data.h.

Here is the call graph for this function:

◆ NodeTypeIs()

bool v8::internal::maglev::NodeTypeIs ( NodeType type,
NodeType to_check )
inlineconstexpr

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

Here is the caller graph for this function:

◆ NodeTypeMayBeNullOrUndefined()

bool v8::internal::maglev::NodeTypeMayBeNullOrUndefined ( NodeType type)
inline

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

Here is the caller graph for this function:

◆ OpcodeToString()

const char * v8::internal::maglev::OpcodeToString ( Opcode opcode)

Definition at line 52 of file maglev-ir.cc.

Here is the caller graph for this function:

◆ OperationValue()

template<Operation kOperation, typename type >
bool v8::internal::maglev::OperationValue ( type left,
type right )

Definition at line 2943 of file maglev-graph-builder.cc.

Here is the caller graph for this function:

◆ operator<<() [1/9]

std::ostream & v8::internal::maglev::operator<< ( std::ostream & os,
const AssertCondition cond )
inline

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

◆ operator<<() [2/9]

std::ostream & v8::internal::maglev::operator<< ( std::ostream & os,
const PrintNode & printer )
inline

Definition at line 144 of file maglev-graph-printer.h.

◆ operator<<() [3/9]

std::ostream & v8::internal::maglev::operator<< ( std::ostream & os,
const PrintNodeLabel & printer )
inline

Definition at line 149 of file maglev-graph-printer.h.

◆ operator<<() [4/9]

std::ostream & v8::internal::maglev::operator<< ( std::ostream & os,
const TaggedToFloat64ConversionType & conversion_type )
inline

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

◆ operator<<() [5/9]

std::ostream & v8::internal::maglev::operator<< ( std::ostream & os,
const UseRepresentation & repr )
inline

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

◆ operator<<() [6/9]

std::ostream & v8::internal::maglev::operator<< ( std::ostream & os,
const ValueRepresentation & repr )
inline

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

◆ operator<<() [7/9]

std::ostream & v8::internal::maglev::operator<< ( std::ostream & os,
Opcode opcode )
inline

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

Here is the call graph for this function:

◆ operator<<() [8/9]

std::ostream & v8::internal::maglev::operator<< ( std::ostream & os,
StoreMap::Kind kind )

Definition at line 7798 of file maglev-ir.cc.

◆ operator<<() [9/9]

std::ostream & v8::internal::maglev::operator<< ( std::ostream & out,
const NodeType & type )
inline

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

◆ operator==()

bool v8::internal::maglev::operator== ( const RegisterStateFlags & left,
const RegisterStateFlags & right )
constexpr

Definition at line 57 of file maglev-regalloc-data.h.

◆ PrintGraph()

void v8::internal::maglev::PrintGraph ( std::ostream & os,
MaglevCompilationInfo * compilation_info,
Graph *const graph )
inline

Definition at line 125 of file maglev-graph-printer.h.

Here is the caller graph for this function:

◆ RepeatValue()

template<typename T >
auto v8::internal::maglev::RepeatValue ( T val,
int count )

Definition at line 1063 of file maglev-assembler.h.

Here is the call graph for this function:

◆ ScaleFactorFromInt()

ScaleFactor v8::internal::maglev::ScaleFactorFromInt ( int n)
inline

Definition at line 45 of file maglev-assembler-x64-inl.h.

Here is the call graph for this function:

◆ ShiftFromScale()

int v8::internal::maglev::ShiftFromScale ( int n)
inline

Definition at line 27 of file maglev-assembler-arm-inl.h.

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

◆ SpaceAllocationLimitAddress()

ExternalReference v8::internal::maglev::SpaceAllocationLimitAddress ( Isolate * isolate,
AllocationType alloc_type )
inline

Definition at line 32 of file maglev-assembler.h.

Here is the caller graph for this function:

◆ SpaceAllocationTopAddress()

ExternalReference v8::internal::maglev::SpaceAllocationTopAddress ( Isolate * isolate,
AllocationType alloc_type )
inline

Definition at line 23 of file maglev-assembler.h.

Here is the caller graph for this function:

◆ StaticPropertiesForOpcode()

OpProperties v8::internal::maglev::StaticPropertiesForOpcode ( Opcode opcode)
inlineconstexpr

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

Here is the caller graph for this function:

◆ StaticTypeForConstant()

NodeType v8::internal::maglev::StaticTypeForConstant ( compiler::JSHeapBroker * broker,
compiler::ObjectRef ref )
inline

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

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

◆ StaticTypeForMap()

NodeType v8::internal::maglev::StaticTypeForMap ( compiler::MapRef map,
compiler::JSHeapBroker * broker )
inline

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

Here is the caller graph for this function:

◆ StaticTypeForNode()

NodeType v8::internal::maglev::StaticTypeForNode ( compiler::JSHeapBroker * broker,
LocalIsolate * isolate,
ValueNode * node )

Definition at line 4422 of file maglev-graph-builder.cc.

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

◆ SubSizeAndTagObject() [1/2]

void v8::internal::maglev::SubSizeAndTagObject ( MaglevAssembler * masm,
Register object,
int size_in_bytes )

Definition at line 21 of file maglev-assembler-riscv.cc.

◆ SubSizeAndTagObject() [2/2]

void v8::internal::maglev::SubSizeAndTagObject ( MaglevAssembler * masm,
Register object,
Register size_in_bytes )

Definition at line 15 of file maglev-assembler-riscv.cc.

Here is the caller graph for this function:

◆ ToCondition()

Condition v8::internal::maglev::ToCondition ( AssertCondition cond)
inline

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

◆ ToDoubleRegister() [1/2]

DoubleRegister v8::internal::maglev::ToDoubleRegister ( const compiler::InstructionOperand & operand)
inline

Definition at line 156 of file maglev-code-gen-state.h.

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

◆ ToDoubleRegister() [2/2]

DoubleRegister v8::internal::maglev::ToDoubleRegister ( const ValueLocation & location)
inline

Definition at line 174 of file maglev-code-gen-state.h.

Here is the call graph for this function:

◆ ToRegister() [1/2]

Register v8::internal::maglev::ToRegister ( const compiler::InstructionOperand & operand)
inline

Definition at line 152 of file maglev-code-gen-state.h.

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

◆ ToRegister() [2/2]

Register v8::internal::maglev::ToRegister ( const ValueLocation & location)
inline

Definition at line 170 of file maglev-code-gen-state.h.

Here is the call graph for this function:

◆ ToRegisterT()

template<typename RegisterT >
auto v8::internal::maglev::ToRegisterT ( const compiler::InstructionOperand & operand)
inline

Definition at line 162 of file maglev-code-gen-state.h.

Here is the call graph for this function:

◆ ToValueRepresentation()

ValueRepresentation v8::internal::maglev::ToValueRepresentation ( MachineType type)

Definition at line 516 of file maglev-ir.cc.

Here is the caller graph for this function:

◆ UnsignedConditionFor()

Condition v8::internal::maglev::UnsignedConditionFor ( Operation operation)
constexpr

Definition at line 1107 of file maglev-assembler.h.

Here is the call graph for this function:

◆ UseAndClobberRegister()

void v8::internal::maglev::UseAndClobberRegister ( Input & input)
inline

Definition at line 66 of file maglev-ir-inl.h.

Here is the caller graph for this function:

◆ UseAny()

void v8::internal::maglev::UseAny ( Input & input)
inline

Definition at line 70 of file maglev-ir-inl.h.

Here is the caller graph for this function:

◆ UseFixed() [1/2]

void v8::internal::maglev::UseFixed ( Input & input,
DoubleRegister reg )
inline

Definition at line 80 of file maglev-ir-inl.h.

◆ UseFixed() [2/2]

void v8::internal::maglev::UseFixed ( Input & input,
Register reg )
inline

Definition at line 75 of file maglev-ir-inl.h.

◆ UseRegister()

void v8::internal::maglev::UseRegister ( Input & input)
inline

Definition at line 62 of file maglev-ir-inl.h.

Here is the caller graph for this function:

Variable Documentation

◆ HoleyFloat64

v8::internal::maglev::HoleyFloat64

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

◆ INT16_ELEMENTS

UINT32_ELEMENTS v8::internal::maglev::INT16_ELEMENTS

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

◆ INT32_ELEMENTS

UINT32_ELEMENTS v8::internal::maglev::INT32_ELEMENTS

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

◆ INT8_ELEMENTS

UINT32_ELEMENTS v8::internal::maglev::INT8_ELEMENTS

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

◆ kAllocatableDoubleRegisterCount

int v8::internal::maglev::kAllocatableDoubleRegisterCount
staticconstexpr
Initial value:
=
MaglevAssembler::GetAllocatableDoubleRegisters().Count()

Definition at line 21 of file maglev-regalloc-data.h.

◆ kAllocatableGeneralRegisterCount

int v8::internal::maglev::kAllocatableGeneralRegisterCount
staticconstexpr
Initial value:
=
MaglevAssembler::GetAllocatableRegisters().Count()

Definition at line 19 of file maglev-regalloc-data.h.

◆ kFirstBranchControlNodeOpcode

Opcode v8::internal::maglev::kFirstBranchControlNodeOpcode
staticconstexpr
Initial value:
=
#define V(Name)
Definition maglev-ir.h:445
#define BRANCH_CONTROL_NODE_LIST(V)
Definition maglev-ir.h:390
static constexpr Opcode kLastOpcode
Definition maglev-ir.h:437

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

◆ kFirstConditionalControlNodeOpcode

Opcode v8::internal::maglev::kFirstConditionalControlNodeOpcode
staticconstexpr
Initial value:
=
#define CONDITIONAL_CONTROL_NODE_LIST(V)
Definition maglev-ir.h:407

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

◆ kFirstConstantNodeOpcode

Opcode v8::internal::maglev::kFirstConstantNodeOpcode
staticconstexpr
Initial value:
=
#define CONSTANT_VALUE_NODE_LIST(V)
Definition maglev-ir.h:138

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

◆ kFirstControlNodeOpcode

Opcode v8::internal::maglev::kFirstControlNodeOpcode
staticconstexpr
Initial value:
=
#define CONTROL_NODE_LIST(V)
Definition maglev-ir.h:421

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

◆ kFirstGapMoveNodeOpcode

Opcode v8::internal::maglev::kFirstGapMoveNodeOpcode
staticconstexpr
Initial value:
=
#define GAP_MOVE_NODE_LIST(V)
Definition maglev-ir.h:317

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

◆ kFirstNodeOpcode

Opcode v8::internal::maglev::kFirstNodeOpcode = std::min({NODE_LIST(V) kLastOpcode})
staticconstexpr

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

◆ kFirstOpcode

Opcode v8::internal::maglev::kFirstOpcode = static_cast<Opcode>(0)
staticconstexpr

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

◆ kFirstTerminalControlNodeOpcode

Opcode v8::internal::maglev::kFirstTerminalControlNodeOpcode
staticconstexpr
Initial value:
=
#define TERMINAL_CONTROL_NODE_LIST(V)
Definition maglev-ir.h:416

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

◆ kFirstUnconditionalControlNodeOpcode

Opcode v8::internal::maglev::kFirstUnconditionalControlNodeOpcode
staticconstexpr
Initial value:
=
#define UNCONDITIONAL_CONTROL_NODE_LIST(V)
Definition maglev-ir.h:411

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

◆ kFirstValidNodeId

NodeIdT v8::internal::maglev::kFirstValidNodeId = 1
staticconstexpr

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

◆ kFirstValueNodeOpcode

Opcode v8::internal::maglev::kFirstValueNodeOpcode
staticconstexpr
Initial value:
=
#define VALUE_NODE_LIST(V)
Definition maglev-ir.h:161

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

◆ kInvalidNodeId

NodeIdT v8::internal::maglev::kInvalidNodeId = 0
staticconstexpr

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

◆ kLastBranchControlNodeOpcode

Opcode v8::internal::maglev::kLastBranchControlNodeOpcode
staticconstexpr
Initial value:
=
static constexpr Opcode kFirstOpcode
Definition maglev-ir.h:436

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

◆ kLastConditionalControlNodeOpcode

Opcode v8::internal::maglev::kLastConditionalControlNodeOpcode
staticconstexpr
Initial value:

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

◆ kLastConstantNodeOpcode

Opcode v8::internal::maglev::kLastConstantNodeOpcode
staticconstexpr
Initial value:

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

◆ kLastControlNodeOpcode

Opcode v8::internal::maglev::kLastControlNodeOpcode
staticconstexpr
Initial value:

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

◆ kLastGapMoveNodeOpcode

Opcode v8::internal::maglev::kLastGapMoveNodeOpcode
staticconstexpr
Initial value:

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

◆ kLastNodeOpcode

Opcode v8::internal::maglev::kLastNodeOpcode = std::max({NODE_LIST(V) kFirstOpcode})
staticconstexpr

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

◆ kLastOpcode

Opcode v8::internal::maglev::kLastOpcode = static_cast<Opcode>(kOpcodeCount - 1)
staticconstexpr

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

◆ kLastTerminalControlNodeOpcode

Opcode v8::internal::maglev::kLastTerminalControlNodeOpcode
staticconstexpr
Initial value:

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

◆ kLastUnconditionalControlNodeOpcode

Opcode v8::internal::maglev::kLastUnconditionalControlNodeOpcode
staticconstexpr
Initial value:

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

◆ kLastValueNodeOpcode

Opcode v8::internal::maglev::kLastValueNodeOpcode
staticconstexpr
Initial value:

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

◆ kNoVreg

int v8::internal::maglev::kNoVreg = -1
staticconstexpr

Definition at line 42 of file maglev-ir-inl.h.

◆ kNumAssertConditions

int v8::internal::maglev::kNumAssertConditions
staticconstexpr
Initial value:
=
#define D(Name)
#define D(Name)
Definition maglev-ir.h:6426
#define ASSERT_CONDITION(V)
Definition maglev-ir.h:6413

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

◆ kOpcodeCount

int v8::internal::maglev::kOpcodeCount = NODE_BASE_LIST(PLUS_ONE)
staticconstexpr

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

◆ UINT16_ELEMENTS

UINT32_ELEMENTS v8::internal::maglev::UINT16_ELEMENTS

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

◆ UINT8_CLAMPED_ELEMENTS

UINT32_ELEMENTS v8::internal::maglev::UINT8_CLAMPED_ELEMENTS

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

◆ UINT8_ELEMENTS

UINT32_ELEMENTS v8::internal::maglev::UINT8_ELEMENTS

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