|
bool | CheckStaticType (ValueNode *node, NodeType type, NodeType *old=nullptr) |
|
bool | CheckType (ValueNode *node, NodeType type, NodeType *old=nullptr) |
|
NodeType | CheckTypes (ValueNode *node, std::initializer_list< NodeType > types) |
|
bool | EnsureType (ValueNode *node, NodeType type, NodeType *old=nullptr) |
|
NodeType | GetType (ValueNode *node) |
|
NodeInfo * | GetOrCreateInfoFor (ValueNode *node) |
|
bool | HaveDisjointTypes (ValueNode *lhs, ValueNode *rhs) |
|
bool | HasDisjointType (ValueNode *lhs, NodeType rhs_type) |
|
template<typename Function > |
bool | EnsureType (ValueNode *node, NodeType type, Function ensure_new_type) |
|
bool | MayBeNullOrUndefined (ValueNode *node) |
|
void | SetKnownValue (ValueNode *node, compiler::ObjectRef constant, NodeType new_node_type) |
|
bool | ShouldEmitInterruptBudgetChecks () |
|
bool | ShouldEmitOsrInterruptBudgetChecks () |
|
bool | MaglevIsTopTier () const |
|
BasicBlock * | CreateEdgeSplitBlock (BasicBlockRef &jump_targets, BasicBlock *predecessor) |
|
void | ProcessMergePointAtExceptionHandlerStart (int offset) |
|
void | ProcessMergePoint (int offset, bool preserve_known_node_aspects) |
|
void | ProcessMergePointPredecessors (MergePointInterpreterFrameState &merge_state, BasicBlockRef &jump_targets) |
|
void | RegisterPhisWithGraphLabeller (MergePointInterpreterFrameState &merge_state) |
|
bool | IsOffsetAMergePoint (int offset) |
|
ValueNode * | GetContextAtDepth (ValueNode *context, size_t depth) |
|
bool | CheckContextExtensions (size_t depth) |
|
ReduceResult | EmitUnconditionalDeopt (DeoptimizeReason reason) |
|
void | KillPeeledLoopTargets (int peelings) |
|
void | MarkBytecodeDead () |
|
void | UpdateSourceAndBytecodePosition (int offset) |
|
void | PrintVirtualObjects () |
|
void | VisitSingleBytecode () |
|
void | AddInitializedNodeToGraph (Node *node) |
|
template<typename NodeT , typename Function , typename... Args> |
NodeT * | AddNewNode (size_t input_count, Function &&post_create_input_initializer, Args &&... args) |
|
template<typename NodeT , typename... Args> |
NodeT * | AddNewNodeOrGetEquivalent (std::initializer_list< ValueNode * > raw_inputs, Args &&... args) |
|
template<typename NodeT , typename... Args> |
NodeT * | AddNewNode (std::initializer_list< ValueNode * > inputs, Args &&... args) |
|
template<typename NodeT , typename... Args> |
NodeT * | CreateNewConstantNode (Args &&... args) const |
|
template<typename NodeT > |
NodeT * | AttachExtraInfoAndAddToGraph (NodeT *node) |
|
template<typename NodeT > |
void | AttachDeoptCheckpoint (NodeT *node) |
|
template<typename NodeT > |
void | AttachEagerDeoptInfo (NodeT *node) |
|
template<typename NodeT > |
void | AttachLazyDeoptInfo (NodeT *node) |
|
template<typename NodeT > |
void | AttachExceptionHandlerInfo (NodeT *node) |
|
bool | IsInsideTryBlock () const |
|
MergePointInterpreterFrameState * | GetCatchBlockFrameState () |
|
CatchBlockDetails | GetCurrentTryCatchBlock () |
|
CatchBlockDetails | GetTryCatchBlockFromInfo (ExceptionHandlerInfo *info) |
|
bool | ContextMayAlias (ValueNode *context, compiler::OptionalScopeInfoRef scope_info) |
|
bool | TrySpecializeLoadContextSlotToFunctionContext (ValueNode *context, int slot_index, ContextSlotMutability slot_mutability) |
|
ValueNode * | TrySpecializeLoadScriptContextSlot (ValueNode *context, int index) |
|
ValueNode * | LoadAndCacheContextSlot (ValueNode *context, int offset, ContextSlotMutability slot_mutability, ContextKind context_kind) |
|
MaybeReduceResult | TrySpecializeStoreScriptContextSlot (ValueNode *context, int index, ValueNode *value, Node **store) |
|
ReduceResult | StoreAndCacheContextSlot (ValueNode *context, int index, ValueNode *value, ContextKind context_kind) |
|
ValueNode * | TryGetParentContext (ValueNode *node) |
|
void | MinimizeContextChainDepth (ValueNode **context, size_t *depth) |
|
void | EscapeContext () |
|
void | BuildLoadContextSlot (ValueNode *context, size_t depth, int slot_index, ContextSlotMutability slot_mutability, ContextKind context_kind) |
|
ReduceResult | BuildStoreContextSlot (ValueNode *context, size_t depth, int slot_index, ValueNode *value, ContextKind context_kind) |
|
void | BuildStoreMap (ValueNode *object, compiler::MapRef map, StoreMap::Kind kind) |
|
ValueNode * | BuildExtendPropertiesBackingStore (compiler::MapRef map, ValueNode *receiver, ValueNode *property_array) |
|
template<Builtin kBuiltin> |
CallBuiltin * | BuildCallBuiltin (std::initializer_list< ValueNode * > inputs) |
|
template<Builtin kBuiltin> |
CallBuiltin * | BuildCallBuiltin (std::initializer_list< ValueNode * > inputs, compiler::FeedbackSource const &feedback, CallBuiltin::FeedbackSlotType slot_type=CallBuiltin::kTaggedIndex) |
|
CallCPPBuiltin * | BuildCallCPPBuiltin (Builtin builtin, ValueNode *target, ValueNode *new_target, std::initializer_list< ValueNode * > inputs) |
|
ReduceResult | BuildLoadGlobal (compiler::NameRef name, compiler::FeedbackSource &feedback_source, TypeofMode typeof_mode) |
|
ValueNode * | BuildToString (ValueNode *value, ToString::ConversionMode mode) |
|
constexpr bool | RuntimeFunctionCanThrow (Runtime::FunctionId function_id) |
|
ReduceResult | BuildCallRuntime (Runtime::FunctionId function_id, std::initializer_list< ValueNode * > inputs) |
|
ReduceResult | BuildAbort (AbortReason reason) |
|
void | Print (const char *str) |
|
void | Print (ValueNode *value) |
|
void | Print (const char *str, ValueNode *value) |
|
ValueNode * | GetFeedbackCell () |
|
ValueNode * | GetClosure () const |
|
ValueNode * | GetContext () const |
|
void | SetContext (ValueNode *context) |
|
FeedbackSlot | GetSlotOperand (int operand_index) const |
|
uint32_t | GetFlag8Operand (int operand_index) const |
|
uint32_t | GetFlag16Operand (int operand_index) const |
|
template<class T >
requires (is_taggable_v<T>) |
compiler::ref_traits< T >::ref_type | GetRefOperand (int operand_index) |
|
ExternalConstant * | GetExternalConstant (ExternalReference reference) |
|
RootConstant * | GetRootConstant (RootIndex index) |
|
RootConstant * | GetBooleanConstant (bool value) |
|
ValueNode * | GetConstant (compiler::ObjectRef ref) |
|
ValueNode * | GetTrustedConstant (compiler::HeapObjectRef ref, IndirectPointerTag tag) |
|
ValueNode * | GetRegisterInput (Register reg) |
|
void | MoveNodeBetweenRegisters (interpreter::Register src, interpreter::Register dst) |
|
ValueNode * | GetTaggedValue (ValueNode *value, UseReprHintRecording record_use_repr_hint=UseReprHintRecording::kRecord) |
|
ReduceResult | GetSmiValue (ValueNode *value, UseReprHintRecording record_use_repr_hint=UseReprHintRecording::kRecord) |
|
MaybeReduceResult | GetSmiValue (interpreter::Register reg, UseReprHintRecording record_use_repr_hint=UseReprHintRecording::kRecord) |
|
ValueNode * | GetTaggedValue (interpreter::Register reg, UseReprHintRecording record_use_repr_hint=UseReprHintRecording::kRecord) |
|
ValueNode * | GetInternalizedString (interpreter::Register reg) |
|
ValueNode * | GetTruncatedInt32ForToNumber (ValueNode *value, NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type) |
|
ValueNode * | GetTruncatedInt32ForToNumber (interpreter::Register reg, NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type) |
|
ValueNode * | GetUint8ClampedForToNumber (ValueNode *value) |
|
ValueNode * | GetUint8ClampedForToNumber (interpreter::Register reg) |
|
std::optional< int32_t > | TryGetInt32Constant (ValueNode *value) |
|
std::optional< uint32_t > | TryGetUint32Constant (ValueNode *value) |
|
ValueNode * | GetInt32 (ValueNode *value, bool can_be_heap_number=false) |
|
void | EnsureInt32 (ValueNode *value, bool can_be_heap_number=false) |
|
void | EnsureInt32 (interpreter::Register reg) |
|
std::optional< double > | TryGetFloat64Constant (ValueNode *value, TaggedToFloat64ConversionType conversion_type) |
|
ValueNode * | GetFloat64 (ValueNode *value) |
|
ValueNode * | GetFloat64 (interpreter::Register reg) |
|
ValueNode * | GetFloat64ForToNumber (ValueNode *value, NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type) |
|
ValueNode * | GetFloat64ForToNumber (interpreter::Register reg, NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type) |
|
ValueNode * | GetHoleyFloat64ForToNumber (ValueNode *value, NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type) |
|
ValueNode * | GetHoleyFloat64ForToNumber (interpreter::Register reg, NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type) |
|
ValueNode * | GetAccumulator () |
|
MaybeReduceResult | GetAccumulatorSmi (UseReprHintRecording record_use_repr_hint=UseReprHintRecording::kRecord) |
|
ValueNode * | GetAccumulatorTruncatedInt32ForToNumber (NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type) |
|
ValueNode * | GetAccumulatorUint8ClampedForToNumber () |
|
ValueNode * | GetAccumulatorHoleyFloat64ForToNumber (NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type) |
|
ValueNode * | GetSilencedNaN (ValueNode *value) |
|
bool | IsRegisterEqualToAccumulator (int operand_index) |
|
ValueNode * | LoadRegister (int operand_index) |
|
ValueNode * | LoadRegisterHoleyFloat64ForToNumber (int operand_index, NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type) |
|
template<typename NodeT > |
void | SetAccumulator (NodeT *node) |
|
void | ClobberAccumulator () |
|
ValueNode * | GetSecondValue (ValueNode *result) |
|
template<typename NodeT > |
void | StoreRegister (interpreter::Register target, NodeT *value) |
|
void | SetAccumulatorInBranch (ValueNode *value) |
|
template<typename NodeT > |
void | StoreRegisterPair (std::pair< interpreter::Register, interpreter::Register > target, NodeT *value) |
|
std::pair< interpreter::Register, int > | GetResultLocationAndSize () const |
|
DeoptFrame * | GetCallerDeoptFrame () |
|
DeoptFrame * | GetDeoptFrameForEagerCall (const MaglevCompilationUnit *unit, ValueNode *closure, base::Vector< ValueNode * > args) |
|
DeoptFrame | GetDeoptFrameForLazyDeopt (interpreter::Register result_location, int result_size) |
|
DeoptFrame | GetDeoptFrameForLazyDeoptHelper (interpreter::Register result_location, int result_size, DeoptFrameScope *scope, bool mark_accumulator_dead) |
|
InterpretedDeoptFrame | GetDeoptFrameForEntryStackCheck () |
|
template<typename NodeT > |
void | MarkPossibleSideEffect (NodeT *node) |
|
template<bool is_possible_map_change = true> |
void | ResetBuilderCachedState () |
|
int | next_offset () const |
|
const compiler::BytecodeLivenessState * | GetInLiveness () const |
|
const compiler::BytecodeLivenessState * | GetInLivenessFor (int offset) const |
|
const compiler::BytecodeLivenessState * | GetOutLiveness () const |
|
const compiler::BytecodeLivenessState * | GetOutLivenessFor (int offset) const |
|
void | StartNewBlock (int offset, BasicBlock *predecessor) |
|
void | StartNewBlock (BasicBlock *predecessor, MergePointInterpreterFrameState *merge_state, BasicBlockRef &refs_to_block) |
|
template<UseReprHintRecording hint = UseReprHintRecording::kRecord> |
ValueNode * | ConvertInputTo (ValueNode *input, ValueRepresentation expected) |
|
template<typename NodeT > |
void | SetNodeInputs (NodeT *node, std::initializer_list< ValueNode * > inputs) |
|
void | FlushNodesToBlock () |
|
template<typename ControlNodeT , typename... Args> |
BasicBlock * | FinishBlock (std::initializer_list< ValueNode * > control_inputs, Args &&... args) |
|
void | StartFallthroughBlock (int next_block_offset, BasicBlock *predecessor) |
|
ValueNode * | GetValueOrUndefined (ValueNode *maybe_value) |
|
ValueNode * | GetConvertReceiver (compiler::SharedFunctionInfoRef shared, const CallArguments &args) |
|
base::Vector< ValueNode * > | GetArgumentsAsArrayOfValueNodes (compiler::SharedFunctionInfoRef shared, const CallArguments &args) |
|
compiler::OptionalHeapObjectRef | TryGetConstant (ValueNode *node, ValueNode **constant_node=nullptr) |
|
std::optional< ValueNode * > | TryGetConstantAlternative (ValueNode *node) |
|
template<typename LoadNode > |
MaybeReduceResult | TryBuildLoadDataView (const CallArguments &args, ExternalArrayType type) |
|
template<typename StoreNode , typename Function > |
MaybeReduceResult | TryBuildStoreDataView (const CallArguments &args, ExternalArrayType type, Function &&getValue) |
|
MaybeReduceResult | TryReduceArrayIteratingBuiltin (const char *name, compiler::JSFunctionRef target, CallArguments &args, GetDeoptScopeCallback get_eager_deopt_scope, GetDeoptScopeCallback get_lazy_deopt_scope, const std::optional< InitialCallback > &initial_callback={}, const std::optional< ProcessElementCallback > &process_element_callback={}) |
|
MaybeReduceResult | TryReduceGetProto (ValueNode *node) |
|
template<typename MapKindsT , typename IndexToElementsKindFunc , typename BuildKindSpecificFunc > |
MaybeReduceResult | BuildJSArrayBuiltinMapSwitchOnElementsKind (ValueNode *receiver, const MapKindsT &map_kinds, MaglevSubGraphBuilder &sub_graph, std::optional< MaglevSubGraphBuilder::Label > &do_return, int unique_kind_count, IndexToElementsKindFunc &&index_to_elements_kind, BuildKindSpecificFunc &&build_kind_specific) |
|
MaybeReduceResult | DoTryReduceMathRound (CallArguments &args, Float64Round::Kind kind) |
|
template<typename CallNode , typename... Args> |
CallNode * | AddNewCallNode (const CallArguments &args, Args &&... extra_args) |
|
MaybeReduceResult | TryReduceGetIterator (ValueNode *receiver, int load_slot, int call_slot) |
|
ValueNode * | BuildCallSelf (ValueNode *context, ValueNode *function, ValueNode *new_target, compiler::SharedFunctionInfoRef shared, CallArguments &args) |
|
MaybeReduceResult | TryReduceBuiltin (compiler::JSFunctionRef target, compiler::SharedFunctionInfoRef shared, CallArguments &args, const compiler::FeedbackSource &feedback_source) |
|
bool | TargetIsCurrentCompilingUnit (compiler::JSFunctionRef target) |
|
CallKnownJSFunction * | BuildCallKnownJSFunction (ValueNode *context, ValueNode *function, ValueNode *new_target, compiler::SharedFunctionInfoRef shared, compiler::FeedbackCellRef feedback_cell, CallArguments &args, const compiler::FeedbackSource &feedback_source) |
|
CallKnownJSFunction * | BuildCallKnownJSFunction (ValueNode *context, ValueNode *function, ValueNode *new_target, compiler::SharedFunctionInfoRef shared, base::Vector< ValueNode * > arguments) |
|
MaybeReduceResult | TryBuildCallKnownJSFunction (compiler::JSFunctionRef function, ValueNode *new_target, CallArguments &args, const compiler::FeedbackSource &feedback_source) |
|
MaybeReduceResult | TryBuildCallKnownJSFunction (ValueNode *context, ValueNode *function, ValueNode *new_target, compiler::SharedFunctionInfoRef shared, compiler::FeedbackCellRef feedback_cell, CallArguments &args, const compiler::FeedbackSource &feedback_source) |
|
bool | CanInlineCall (compiler::SharedFunctionInfoRef shared, float call_frequency) |
|
bool | ShouldEagerInlineCall (compiler::SharedFunctionInfoRef shared) |
|
ReduceResult | BuildEagerInlineCall (ValueNode *context, ValueNode *function, ValueNode *new_target, compiler::SharedFunctionInfoRef shared, compiler::FeedbackCellRef feedback_cell, CallArguments &args, float call_frequency) |
|
MaybeReduceResult | TryBuildInlineCall (ValueNode *context, ValueNode *function, ValueNode *new_target, compiler::SharedFunctionInfoRef shared, compiler::FeedbackCellRef feedback_cell, CallArguments &args, const compiler::FeedbackSource &feedback_source) |
|
ValueNode * | BuildGenericCall (ValueNode *target, Call::TargetType target_type, const CallArguments &args) |
|
MaybeReduceResult | TryReduceCallForConstant (compiler::JSFunctionRef target, CallArguments &args, const compiler::FeedbackSource &feedback_source=compiler::FeedbackSource()) |
|
MaybeReduceResult | TryReduceCallForTarget (ValueNode *target_node, compiler::JSFunctionRef target, CallArguments &args, const compiler::FeedbackSource &feedback_source) |
|
MaybeReduceResult | TryReduceCallForNewClosure (ValueNode *target_node, ValueNode *target_context, compiler::SharedFunctionInfoRef shared, compiler::FeedbackCellRef feedback_cell, CallArguments &args, const compiler::FeedbackSource &feedback_source) |
|
MaybeReduceResult | TryBuildCallKnownApiFunction (compiler::JSFunctionRef function, compiler::SharedFunctionInfoRef shared, CallArguments &args) |
|
compiler::HolderLookupResult | TryInferApiHolderValue (compiler::FunctionTemplateInfoRef function_template_info, ValueNode *receiver) |
|
MaybeReduceResult | TryReduceCallForApiFunction (compiler::FunctionTemplateInfoRef api_callback, compiler::OptionalSharedFunctionInfoRef maybe_shared, CallArguments &args) |
|
MaybeReduceResult | TryReduceFunctionPrototypeApplyCallWithReceiver (compiler::OptionalHeapObjectRef maybe_receiver, CallArguments &args, const compiler::FeedbackSource &feedback_source) |
|
ReduceResult | ReduceCallWithArrayLikeForArgumentsObject (ValueNode *target_node, CallArguments &args, VirtualObject *arguments_object, const compiler::FeedbackSource &feedback_source) |
|
ReduceResult | ReduceCallWithArrayLike (ValueNode *target_node, CallArguments &args, const compiler::FeedbackSource &feedback_source) |
|
ReduceResult | ReduceCall (ValueNode *target_node, CallArguments &args, const compiler::FeedbackSource &feedback_source=compiler::FeedbackSource()) |
|
ReduceResult | BuildCallWithFeedback (ValueNode *target_node, CallArguments &args, const compiler::FeedbackSource &feedback_source) |
|
ReduceResult | BuildCallFromRegisterList (ConvertReceiverMode receiver_mode) |
|
ReduceResult | BuildCallFromRegisters (int argc_count, ConvertReceiverMode receiver_mode) |
|
ValueNode * | BuildElementsArray (int length) |
|
ReduceResult | BuildAndAllocateKeyValueArray (ValueNode *key, ValueNode *value) |
|
ReduceResult | BuildAndAllocateJSArray (compiler::MapRef map, ValueNode *length, ValueNode *elements, const compiler::SlackTrackingPrediction &slack_tracking_prediction, AllocationType allocation_type) |
|
ValueNode * | BuildAndAllocateJSArrayIterator (ValueNode *array, IterationKind iteration_kind) |
|
MaybeReduceResult | TryBuildAndAllocateJSGeneratorObject (ValueNode *closure, ValueNode *receiver) |
|
ValueNode * | BuildGenericConstruct (ValueNode *target, ValueNode *new_target, ValueNode *context, const CallArguments &args, const compiler::FeedbackSource &feedback_source=compiler::FeedbackSource()) |
|
MaybeReduceResult | TryReduceConstructArrayConstructor (compiler::JSFunctionRef array_function, CallArguments &args, compiler::OptionalAllocationSiteRef maybe_allocation_site={}) |
|
MaybeReduceResult | TryReduceConstructBuiltin (compiler::JSFunctionRef builtin, compiler::SharedFunctionInfoRef shared_function_info, ValueNode *target, CallArguments &args) |
|
MaybeReduceResult | TryReduceConstructGeneric (compiler::JSFunctionRef function, compiler::SharedFunctionInfoRef shared_function_info, ValueNode *target, ValueNode *new_target, CallArguments &args, compiler::FeedbackSource &feedback_source) |
|
MaybeReduceResult | TryReduceConstruct (compiler::HeapObjectRef feedback_target, ValueNode *target, ValueNode *new_target, CallArguments &args, compiler::FeedbackSource &feedback_source) |
|
ReduceResult | BuildConstruct (ValueNode *target, ValueNode *new_target, CallArguments &args, compiler::FeedbackSource &feedback_source) |
|
MaybeReduceResult | TryBuildScriptContextStore (const compiler::GlobalAccessFeedback &global_access_feedback) |
|
MaybeReduceResult | TryBuildPropertyCellStore (const compiler::GlobalAccessFeedback &global_access_feedback) |
|
MaybeReduceResult | TryBuildGlobalStore (const compiler::GlobalAccessFeedback &global_access_feedback) |
|
MaybeReduceResult | TryBuildScriptContextConstantLoad (const compiler::GlobalAccessFeedback &global_access_feedback) |
|
MaybeReduceResult | TryBuildScriptContextLoad (const compiler::GlobalAccessFeedback &global_access_feedback) |
|
MaybeReduceResult | TryBuildPropertyCellLoad (const compiler::GlobalAccessFeedback &global_access_feedback) |
|
MaybeReduceResult | TryBuildGlobalLoad (const compiler::GlobalAccessFeedback &global_access_feedback) |
|
bool | TryBuildFindNonDefaultConstructorOrConstruct (ValueNode *this_function, ValueNode *new_target, std::pair< interpreter::Register, interpreter::Register > result) |
|
ValueNode * | BuildSmiUntag (ValueNode *node) |
|
ValueNode * | BuildNumberOrOddballToFloat64 (ValueNode *node, NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type) |
|
ReduceResult | BuildCheckSmi (ValueNode *object, bool elidable=true) |
|
ReduceResult | BuildCheckNumber (ValueNode *object) |
|
ReduceResult | BuildCheckHeapObject (ValueNode *object) |
|
ReduceResult | BuildCheckJSReceiver (ValueNode *object) |
|
ReduceResult | BuildCheckJSReceiverOrNullOrUndefined (ValueNode *object) |
|
ReduceResult | BuildCheckString (ValueNode *object) |
|
ReduceResult | BuildCheckStringOrStringWrapper (ValueNode *object) |
|
ReduceResult | BuildCheckSymbol (ValueNode *object) |
|
ReduceResult | BuildCheckMaps (ValueNode *object, base::Vector< const compiler::MapRef > maps, std::optional< ValueNode * > map={}, bool has_deprecated_map_without_migration_target=false) |
|
ReduceResult | BuildTransitionElementsKindOrCheckMap (ValueNode *heap_object, ValueNode *object_map, const ZoneVector< compiler::MapRef > &transition_sources, compiler::MapRef transition_target) |
|
ReduceResult | BuildCompareMaps (ValueNode *heap_object, ValueNode *object_map, base::Vector< const compiler::MapRef > maps, MaglevSubGraphBuilder *sub_graph, std::optional< MaglevSubGraphBuilder::Label > &if_not_matched) |
|
ReduceResult | BuildTransitionElementsKindAndCompareMaps (ValueNode *heap_object, ValueNode *object_map, const ZoneVector< compiler::MapRef > &transition_sources, compiler::MapRef transition_target, MaglevSubGraphBuilder *sub_graph, std::optional< MaglevSubGraphBuilder::Label > &if_not_matched) |
|
ReduceResult | BuildCheckInternalizedStringValueOrByReference (ValueNode *node, compiler::HeapObjectRef ref, DeoptimizeReason reason) |
|
ReduceResult | BuildCheckNumericalValueOrByReference (ValueNode *node, compiler::ObjectRef ref, DeoptimizeReason reason) |
|
ReduceResult | BuildCheckValueByReference (ValueNode *node, compiler::HeapObjectRef ref, DeoptimizeReason reason) |
|
ReduceResult | BuildCheckNumericalValue (ValueNode *node, compiler::ObjectRef ref, DeoptimizeReason reason) |
|
ValueNode * | BuildConvertHoleToUndefined (ValueNode *node) |
|
ReduceResult | BuildCheckNotHole (ValueNode *node) |
|
template<bool flip = false> |
ValueNode * | BuildToBoolean (ValueNode *node) |
|
ValueNode * | BuildLogicalNot (ValueNode *value) |
|
ValueNode * | BuildTestUndetectable (ValueNode *value) |
|
ReduceResult | BuildToNumberOrToNumeric (Object::Conversion mode) |
|
bool | CanTrackObjectChanges (ValueNode *object, TrackObjectMode mode) |
|
bool | CanElideWriteBarrier (ValueNode *object, ValueNode *value) |
|
void | BuildInitializeStore (InlinedAllocation *alloc, ValueNode *value, int offset) |
|
void | TryBuildStoreTaggedFieldToAllocation (ValueNode *object, ValueNode *value, int offset) |
|
template<typename Instruction = LoadTaggedField, typename... Args> |
ValueNode * | BuildLoadTaggedField (ValueNode *object, uint32_t offset, Args &&... args) |
|
Node * | BuildStoreTaggedField (ValueNode *object, ValueNode *value, int offset, StoreTaggedMode store_mode) |
|
void | BuildStoreTaggedFieldNoWriteBarrier (ValueNode *object, ValueNode *value, int offset, StoreTaggedMode store_mode) |
|
void | BuildStoreTrustedPointerField (ValueNode *object, ValueNode *value, int offset, IndirectPointerTag tag, StoreTaggedMode store_mode) |
|
ValueNode * | BuildLoadFixedArrayElement (ValueNode *elements, int index) |
|
ValueNode * | BuildLoadFixedArrayElement (ValueNode *elements, ValueNode *index) |
|
void | BuildStoreFixedArrayElement (ValueNode *elements, ValueNode *index, ValueNode *value) |
|
ValueNode * | BuildLoadFixedDoubleArrayElement (ValueNode *elements, int index) |
|
ValueNode * | BuildLoadFixedDoubleArrayElement (ValueNode *elements, ValueNode *index) |
|
void | BuildStoreFixedDoubleArrayElement (ValueNode *elements, ValueNode *index, ValueNode *value) |
|
ValueNode * | BuildLoadHoleyFixedDoubleArrayElement (ValueNode *elements, ValueNode *index, bool convert_hole) |
|
ValueNode * | GetInt32ElementIndex (interpreter::Register reg) |
|
ValueNode * | GetInt32ElementIndex (ValueNode *index_object) |
|
ReduceResult | GetUint32ElementIndex (interpreter::Register reg) |
|
ReduceResult | GetUint32ElementIndex (ValueNode *index_object) |
|
bool | CanTreatHoleAsUndefined (base::Vector< const compiler::MapRef > const &receiver_maps) |
|
compiler::OptionalObjectRef | TryFoldLoadDictPrototypeConstant (compiler::PropertyAccessInfo const &access_info) |
|
compiler::OptionalJSObjectRef | TryGetConstantDataFieldHolder (compiler::PropertyAccessInfo const &access_info, ValueNode *lookup_start_object) |
|
compiler::OptionalObjectRef | TryFoldLoadConstantDataField (compiler::JSObjectRef holder, compiler::PropertyAccessInfo const &access_info) |
|
std::optional< Float64 > | TryFoldLoadConstantDoubleField (compiler::JSObjectRef holder, compiler::PropertyAccessInfo const &access_info) |
|
ValueNode * | BuildLoadField (compiler::PropertyAccessInfo const &access_info, ValueNode *lookup_start_object, compiler::NameRef name) |
|
MaybeReduceResult | TryBuildStoreField (compiler::PropertyAccessInfo const &access_info, ValueNode *receiver, compiler::AccessMode access_mode) |
|
MaybeReduceResult | TryBuildPropertyGetterCall (compiler::PropertyAccessInfo const &access_info, ValueNode *receiver, ValueNode *lookup_start_object) |
|
MaybeReduceResult | TryBuildPropertySetterCall (compiler::PropertyAccessInfo const &access_info, ValueNode *receiver, ValueNode *lookup_start_object, ValueNode *value) |
|
MaybeReduceResult | TryBuildGetKeyedPropertyWithEnumeratedKey (ValueNode *object, const compiler::FeedbackSource &feedback_source, const compiler::ProcessedFeedback &processed_feedback) |
|
ReduceResult | BuildGetKeyedProperty (ValueNode *object, const compiler::FeedbackSource &feedback_source, const compiler::ProcessedFeedback &processed_feedback) |
|
ValueNode * | BuildLoadFixedArrayLength (ValueNode *fixed_array) |
|
ValueNode * | BuildLoadJSArrayLength (ValueNode *js_array, NodeType length_type=NodeType::kSmi) |
|
ValueNode * | BuildLoadElements (ValueNode *object) |
|
MaybeReduceResult | TryBuildCheckInt32Condition (ValueNode *lhs, ValueNode *rhs, AssertCondition condition, DeoptimizeReason reason, bool allow_unconditional_deopt=true) |
|
MaybeReduceResult | TryBuildPropertyLoad (ValueNode *receiver, ValueNode *lookup_start_object, compiler::NameRef name, compiler::PropertyAccessInfo const &access_info) |
|
MaybeReduceResult | TryBuildPropertyStore (ValueNode *receiver, ValueNode *lookup_start_object, compiler::NameRef name, compiler::PropertyAccessInfo const &access_info, compiler::AccessMode access_mode) |
|
MaybeReduceResult | TryBuildPropertyAccess (ValueNode *receiver, ValueNode *lookup_start_object, compiler::NameRef name, compiler::PropertyAccessInfo const &access_info, compiler::AccessMode access_mode) |
|
template<typename GenericAccessFunc > |
MaybeReduceResult | TryBuildNamedAccess (ValueNode *receiver, ValueNode *lookup_start_object, compiler::NamedAccessFeedback const &feedback, compiler::FeedbackSource const &feedback_source, compiler::AccessMode access_mode, GenericAccessFunc &&build_generic_access) |
|
template<typename GenericAccessFunc > |
MaybeReduceResult | TryBuildLoadNamedProperty (ValueNode *receiver, ValueNode *lookup_start_object, compiler::NameRef name, compiler::FeedbackSource &feedback_source, GenericAccessFunc &&build_generic_access) |
|
MaybeReduceResult | TryBuildLoadNamedProperty (ValueNode *receiver, compiler::NameRef name, compiler::FeedbackSource &feedback_source) |
|
ReduceResult | BuildLoadTypedArrayLength (ValueNode *object, ElementsKind elements_kind) |
|
ValueNode * | BuildLoadTypedArrayElement (ValueNode *object, ValueNode *index, ElementsKind elements_kind) |
|
void | BuildStoreTypedArrayElement (ValueNode *object, ValueNode *index, ElementsKind elements_kind) |
|
MaybeReduceResult | TryBuildElementAccessOnString (ValueNode *object, ValueNode *index, compiler::KeyedAccessMode const &keyed_mode) |
|
MaybeReduceResult | TryBuildElementAccessOnTypedArray (ValueNode *object, ValueNode *index, const compiler::ElementAccessInfo &access_info, compiler::KeyedAccessMode const &keyed_mode) |
|
MaybeReduceResult | TryBuildElementLoadOnJSArrayOrJSObject (ValueNode *object, ValueNode *index, base::Vector< const compiler::MapRef > maps, ElementsKind kind, KeyedAccessLoadMode load_mode) |
|
MaybeReduceResult | TryBuildElementStoreOnJSArrayOrJSObject (ValueNode *object, ValueNode *index_object, ValueNode *value, base::Vector< const compiler::MapRef > maps, ElementsKind kind, const compiler::KeyedAccessMode &keyed_mode) |
|
MaybeReduceResult | TryBuildElementAccessOnJSArrayOrJSObject (ValueNode *object, ValueNode *index, const compiler::ElementAccessInfo &access_info, compiler::KeyedAccessMode const &keyed_mode) |
|
template<typename GenericAccessFunc > |
MaybeReduceResult | TryBuildElementAccess (ValueNode *object, ValueNode *index, compiler::ElementAccessFeedback const &feedback, compiler::FeedbackSource const &feedback_source, GenericAccessFunc &&build_generic_access) |
|
template<typename GenericAccessFunc > |
MaybeReduceResult | TryBuildPolymorphicElementAccess (ValueNode *object, ValueNode *index, const compiler::KeyedAccessMode &keyed_mode, const ZoneVector< compiler::ElementAccessInfo > &access_infos, GenericAccessFunc &&build_generic_access) |
|
template<typename GenericAccessFunc > |
MaybeReduceResult | TryBuildPolymorphicPropertyAccess (ValueNode *receiver, ValueNode *lookup_start_object, compiler::NamedAccessFeedback const &feedback, compiler::AccessMode access_mode, const ZoneVector< compiler::PropertyAccessInfo > &access_infos, GenericAccessFunc &&build_generic_access) |
|
void | RecordKnownProperty (ValueNode *lookup_start_object, KnownNodeAspects::LoadedPropertyMapKey key, ValueNode *value, bool is_const, compiler::AccessMode access_mode) |
|
MaybeReduceResult | TryReuseKnownPropertyLoad (ValueNode *lookup_start_object, compiler::NameRef name) |
|
ValueNode * | BuildLoadStringLength (ValueNode *string) |
|
ReduceResult | ConvertForStoring (ValueNode *node, ElementsKind kind) |
|
InferHasInPrototypeChainResult | InferHasInPrototypeChain (ValueNode *receiver, compiler::HeapObjectRef prototype) |
|
MaybeReduceResult | TryBuildFastHasInPrototypeChain (ValueNode *object, compiler::HeapObjectRef prototype) |
|
ReduceResult | BuildHasInPrototypeChain (ValueNode *object, compiler::HeapObjectRef prototype) |
|
MaybeReduceResult | TryBuildFastOrdinaryHasInstance (ValueNode *object, compiler::JSObjectRef callable, ValueNode *callable_node) |
|
ReduceResult | BuildOrdinaryHasInstance (ValueNode *object, compiler::JSObjectRef callable, ValueNode *callable_node) |
|
MaybeReduceResult | TryBuildFastInstanceOf (ValueNode *object, compiler::JSObjectRef callable_ref, ValueNode *callable_node) |
|
MaybeReduceResult | TryBuildFastInstanceOfWithFeedback (ValueNode *object, ValueNode *callable, compiler::FeedbackSource feedback_source) |
|
VirtualObject * | GetObjectFromAllocation (InlinedAllocation *allocation) |
|
VirtualObject * | GetModifiableObjectFromAllocation (InlinedAllocation *allocation) |
|
VirtualObject * | DeepCopyVirtualObject (VirtualObject *vobj) |
|
VirtualObject * | CreateVirtualObject (compiler::MapRef map, uint32_t slot_count_including_map) |
|
VirtualObject * | CreateHeapNumber (Float64 value) |
|
VirtualObject * | CreateDoubleFixedArray (uint32_t elements_length, compiler::FixedDoubleArrayRef elements) |
|
VirtualObject * | CreateJSObject (compiler::MapRef map) |
|
VirtualObject * | CreateConsString (ValueNode *map, ValueNode *length, ValueNode *first, ValueNode *second) |
|
ReduceResult | CreateJSArray (compiler::MapRef map, int instance_size, ValueNode *length) |
|
VirtualObject * | CreateJSArrayIterator (compiler::MapRef map, ValueNode *iterated_object, IterationKind kind) |
|
VirtualObject * | CreateJSConstructor (compiler::JSFunctionRef constructor) |
|
VirtualObject * | CreateFixedArray (compiler::MapRef map, int length) |
|
VirtualObject * | CreateContext (compiler::MapRef map, int length, compiler::ScopeInfoRef scope_info, ValueNode *previous_context, std::optional< ValueNode * > extension={}) |
|
VirtualObject * | CreateArgumentsObject (compiler::MapRef map, ValueNode *length, ValueNode *elements, std::optional< ValueNode * > callee={}) |
|
VirtualObject * | CreateMappedArgumentsElements (compiler::MapRef map, int mapped_count, ValueNode *context, ValueNode *unmapped_elements) |
|
VirtualObject * | CreateRegExpLiteralObject (compiler::MapRef map, compiler::RegExpBoilerplateDescriptionRef literal) |
|
VirtualObject * | CreateJSGeneratorObject (compiler::MapRef map, int instance_size, ValueNode *context, ValueNode *closure, ValueNode *receiver, ValueNode *register_file) |
|
VirtualObject * | CreateJSIteratorResult (compiler::MapRef map, ValueNode *value, ValueNode *done) |
|
VirtualObject * | CreateJSStringIterator (compiler::MapRef map, ValueNode *string) |
|
InlinedAllocation * | ExtendOrReallocateCurrentAllocationBlock (AllocationType allocation_type, VirtualObject *value) |
|
void | ClearCurrentAllocationBlock () |
|
void | AddDeoptUse (ValueNode *node) |
|
void | AddDeoptUse (VirtualObject *alloc) |
|
void | AddNonEscapingUses (InlinedAllocation *allocation, int use_count) |
|
std::optional< VirtualObject * > | TryGetNonEscapingArgumentsObject (ValueNode *value) |
|
MaybeReduceResult | TryBuildFastCreateObjectOrArrayLiteral (const compiler::LiteralFeedback &feedback) |
|
std::optional< VirtualObject * > | TryReadBoilerplateForFastLiteral (compiler::JSObjectRef boilerplate, AllocationType allocation, int max_depth, int *max_properties) |
|
InlinedAllocation * | BuildInlinedAllocationForConsString (VirtualObject *object, AllocationType allocation) |
|
InlinedAllocation * | BuildInlinedAllocationForHeapNumber (VirtualObject *object, AllocationType allocation) |
|
InlinedAllocation * | BuildInlinedAllocationForDoubleFixedArray (VirtualObject *object, AllocationType allocation) |
|
InlinedAllocation * | BuildInlinedAllocation (VirtualObject *object, AllocationType allocation) |
|
ValueNode * | BuildInlinedArgumentsElements (int start_index, int length) |
|
ValueNode * | BuildInlinedUnmappedArgumentsElements (int mapped_count) |
|
template<CreateArgumentsType type> |
VirtualObject * | BuildVirtualArgumentsObject () |
|
template<CreateArgumentsType type> |
ValueNode * | BuildAndAllocateArgumentsObject () |
|
bool | CanAllocateSloppyArgumentElements () |
|
bool | CanAllocateInlinedArgumentElements () |
|
MaybeReduceResult | TryBuildInlinedAllocatedContext (compiler::MapRef map, compiler::ScopeInfoRef scope, int context_length) |
|
template<Operation kOperation> |
void | BuildGenericUnaryOperationNode () |
|
template<Operation kOperation> |
void | BuildGenericBinaryOperationNode () |
|
template<Operation kOperation> |
void | BuildGenericBinarySmiOperationNode () |
|
template<Operation kOperation> |
bool | TryReduceCompareEqualAgainstConstant () |
|
template<Operation kOperation> |
MaybeReduceResult | TryFoldInt32UnaryOperation (ValueNode *value) |
|
template<Operation kOperation> |
MaybeReduceResult | TryFoldInt32BinaryOperation (ValueNode *left, ValueNode *right) |
|
template<Operation kOperation> |
MaybeReduceResult | TryFoldInt32BinaryOperation (ValueNode *left, int32_t cst_right) |
|
template<Operation kOperation> |
ReduceResult | BuildInt32UnaryOperationNode () |
|
ReduceResult | BuildTruncatingInt32BitwiseNotForToNumber (NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type) |
|
template<Operation kOperation> |
ReduceResult | BuildInt32BinaryOperationNode () |
|
template<Operation kOperation> |
ReduceResult | BuildInt32BinarySmiOperationNode () |
|
template<Operation kOperation> |
ReduceResult | BuildTruncatingInt32BinaryOperationNodeForToNumber (NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type) |
|
template<Operation kOperation> |
ReduceResult | BuildTruncatingInt32BinarySmiOperationNodeForToNumber (NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type) |
|
template<Operation kOperation> |
MaybeReduceResult | TryFoldFloat64UnaryOperationForToNumber (TaggedToFloat64ConversionType conversion_type, ValueNode *value) |
|
template<Operation kOperation> |
MaybeReduceResult | TryFoldFloat64BinaryOperationForToNumber (TaggedToFloat64ConversionType conversion_type, ValueNode *left, ValueNode *right) |
|
template<Operation kOperation> |
MaybeReduceResult | TryFoldFloat64BinaryOperationForToNumber (TaggedToFloat64ConversionType conversion_type, ValueNode *left, double cst_right) |
|
template<Operation kOperation> |
ReduceResult | BuildFloat64UnaryOperationNodeForToNumber (NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type) |
|
template<Operation kOperation> |
ReduceResult | BuildFloat64BinaryOperationNodeForToNumber (NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type) |
|
template<Operation kOperation> |
ReduceResult | BuildFloat64BinarySmiOperationNodeForToNumber (NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type) |
|
template<Operation kOperation> |
ReduceResult | VisitUnaryOperation () |
|
template<Operation kOperation> |
ReduceResult | VisitBinaryOperation () |
|
template<Operation kOperation> |
ReduceResult | VisitBinarySmiOperation () |
|
ValueNode * | BuildUnwrapThinString (ValueNode *input) |
|
ValueNode * | BuildUnwrapStringWrapper (ValueNode *input) |
|
ReduceResult | BuildStringConcat (ValueNode *left, ValueNode *right) |
|
ValueNode * | BuildNewConsStringMap (ValueNode *left, ValueNode *right) |
|
size_t | StringLengthStaticLowerBound (ValueNode *string, int max_depth=2) |
|
MaybeReduceResult | TryBuildNewConsString (ValueNode *left, ValueNode *right, AllocationType allocation_type=AllocationType::kYoung) |
|
template<Operation kOperation> |
ReduceResult | VisitCompareOperation () |
|
template<typename Function > |
MaybeReduceResult | TryReduceTypeOf (ValueNode *value, const Function &GetResult) |
|
MaybeReduceResult | TryReduceTypeOf (ValueNode *value) |
|
void | BeginLoopEffects (int loop_header) |
|
void | EndLoopEffects (int loop_header) |
|
void | MergeIntoFrameState (BasicBlock *block, int target) |
|
void | MergeDeadIntoFrameState (int target) |
|
void | MergeDeadLoopIntoFrameState (int target) |
|
void | MergeIntoInlinedReturnFrameState (BasicBlock *block) |
|
bool | HasValidInitialMap (compiler::JSFunctionRef new_target, compiler::JSFunctionRef constructor) |
|
ValueNode * | BuildTaggedEqual (ValueNode *lhs, ValueNode *rhs) |
|
ValueNode * | BuildTaggedEqual (ValueNode *lhs, RootIndex rhs_index) |
|
BranchBuilder | CreateBranchBuilder (BranchType jump_type=BranchType::kBranchIfTrue) |
|
BranchBuilder | CreateBranchBuilder (MaglevSubGraphBuilder *subgraph, MaglevSubGraphBuilder::Label *jump_label, BranchType jump_type=BranchType::kBranchIfTrue) |
|
BranchResult | BuildBranchIfRootConstant (BranchBuilder &builder, ValueNode *node, RootIndex root_index) |
|
BranchResult | BuildBranchIfToBooleanTrue (BranchBuilder &builder, ValueNode *node) |
|
BranchResult | BuildBranchIfInt32ToBooleanTrue (BranchBuilder &builder, ValueNode *node) |
|
BranchResult | BuildBranchIfIntPtrToBooleanTrue (BranchBuilder &builder, ValueNode *node) |
|
BranchResult | BuildBranchIfFloat64ToBooleanTrue (BranchBuilder &builder, ValueNode *node) |
|
BranchResult | BuildBranchIfFloat64IsHole (BranchBuilder &builder, ValueNode *node) |
|
BranchResult | BuildBranchIfReferenceEqual (BranchBuilder &builder, ValueNode *lhs, ValueNode *rhs) |
|
BranchResult | BuildBranchIfInt32Compare (BranchBuilder &builder, Operation op, ValueNode *lhs, ValueNode *rhs) |
|
BranchResult | BuildBranchIfUint32Compare (BranchBuilder &builder, Operation op, ValueNode *lhs, ValueNode *rhs) |
|
BranchResult | BuildBranchIfUndefinedOrNull (BranchBuilder &builder, ValueNode *node) |
|
BranchResult | BuildBranchIfUndetectable (BranchBuilder &builder, ValueNode *value) |
|
BranchResult | BuildBranchIfJSReceiver (BranchBuilder &builder, ValueNode *value) |
|
BranchResult | BuildBranchIfTrue (BranchBuilder &builder, ValueNode *node) |
|
BranchResult | BuildBranchIfNull (BranchBuilder &builder, ValueNode *node) |
|
BranchResult | BuildBranchIfUndefined (BranchBuilder &builder, ValueNode *node) |
|
BasicBlock * | BuildBranchIfReferenceEqual (ValueNode *lhs, ValueNode *rhs, BasicBlockRef *true_target, BasicBlockRef *false_target) |
|
template<typename FCond , typename FTrue , typename FFalse > |
ValueNode * | Select (FCond cond, FTrue if_true, FFalse if_false) |
|
template<typename FCond , typename FTrue , typename FFalse > |
MaybeReduceResult | SelectReduction (FCond cond, FTrue if_true, FFalse if_false) |
|
void | MarkBranchDeadAndJumpIfNeeded (bool is_jump_taken) |
|
void | CalculatePredecessorCounts () |
|
compiler::FeedbackVectorRef | feedback () const |
|
const FeedbackNexus | FeedbackNexusForOperand (int slot_operand_index) const |
|
const FeedbackNexus | FeedbackNexusForSlot (FeedbackSlot slot) const |
|
compiler::BytecodeArrayRef | bytecode () const |
|
const compiler::BytecodeAnalysis & | bytecode_analysis () const |
|
int | parameter_count () const |
|
int | parameter_count_without_receiver () const |
|
int | register_count () const |
|
KnownNodeAspects & | known_node_aspects () |
|
float | GetCurrentCallFrequency () |
|
int | argument_count () const |
|
int | argument_count_without_receiver () const |
|
bool | IsInsideLoop () const |
|
int | inline_exit_offset () const |
|
void | DecrementDeadPredecessorAndAccountForPeeling (uint32_t offset) |
|
void | InitializePredecessorCount (uint32_t offset, int amount) |
|
void | UpdatePredecessorCount (uint32_t offset, int diff) |
|
uint32_t | predecessor_count (uint32_t offset) |
|
bool | in_peeled_iteration () const |
|
bool | in_optimistic_peeling_iteration () const |
|
bool | is_loop_effect_tracking_enabled () |
|
bool | is_loop_effect_tracking () |
|
int | bailout_for_entrypoint () |
|
bool | CanSpeculateCall () const |
|
void | MarkNodeDead (Node *node) |
|