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

#include <maglev-graph-builder.h>

Collaboration diagram for v8::internal::maglev::MaglevGraphBuilder:

Classes

class  BranchBuilder
 
class  DeoptFrameScope
 
struct  ForInState
 
struct  HandlerTableEntry
 
class  LazyDeoptResultLocationScope
 
class  MaglevSubGraphBuilder
 
class  SaveCallSpeculationScope
 

Public Member Functions

 MaglevGraphBuilder (LocalIsolate *local_isolate, MaglevCompilationUnit *compilation_unit, Graph *graph, MaglevCallerDetails *caller_details=nullptr)
 
void Build ()
 
ReduceResult BuildInlineFunction (SourcePosition call_site_position, ValueNode *context, ValueNode *function, ValueNode *new_target)
 
void StartPrologue ()
 
void SetArgument (int i, ValueNode *value)
 
void InitializeRegister (interpreter::Register reg, ValueNode *value)
 
ValueNodeGetArgument (int i)
 
ValueNodeGetInlinedArgument (int i)
 
void BuildRegisterFrameInitialization (ValueNode *context=nullptr, ValueNode *closure=nullptr, ValueNode *new_target=nullptr)
 
void BuildMergeStates ()
 
BasicBlockEndPrologue ()
 
void PeelLoop ()
 
void BuildLoopForPeeling ()
 
void OsrAnalyzePrequel ()
 
void BuildBody ()
 
SmiConstantGetSmiConstant (int constant) const
 
TaggedIndexConstantGetTaggedIndexConstant (int constant)
 
Int32ConstantGetInt32Constant (int32_t constant)
 
Uint32ConstantGetUint32Constant (int constant)
 
Float64ConstantGetFloat64Constant (double constant)
 
Float64ConstantGetFloat64Constant (Float64 constant)
 
ValueNodeGetNumberConstant (double constant)
 
Graphgraph () const
 
Zonezone () const
 
MaglevCompilationUnitcompilation_unit () const
 
const InterpreterFrameStatecurrent_interpreter_frame () const
 
MaglevCallerDetailscaller_details () const
 
const DeoptFrameScopecurrent_deopt_scope () const
 
compiler::JSHeapBrokerbroker () const
 
LocalIsolatelocal_isolate () const
 
bool has_graph_labeller () const
 
MaglevGraphLabellergraph_labeller () const
 
bool is_inline () const
 
int inlining_depth () const
 
bool is_eager_inline () const
 
DeoptFrame GetLatestCheckpointedFrame ()
 
bool need_checkpointed_loop_entry ()
 
bool TopLevelFunctionPassMaglevPrintFilter ()
 
void RecordUseReprHint (Phi *phi, UseRepresentationSet reprs)
 
void RecordUseReprHint (Phi *phi, UseRepresentation repr)
 
void RecordUseReprHintIfPhi (ValueNode *node, UseRepresentation repr)
 
void set_current_block (BasicBlock *block)
 
BasicBlockFinishInlinedBlockForCaller (ControlNode *control_node, ZoneVector< Node * > rem_nodes_in_call_block)
 
ZoneVector< Node * > & node_buffer ()
 
uint32_t NewObjectId ()
 
bool is_turbolev () const
 
bool is_non_eager_inlining_enabled () const
 
int max_inlined_bytecode_size ()
 
int max_inlined_bytecode_size_small ()
 
float min_inlining_frequency ()
 
int max_inlined_bytecode_size_cumulative ()
 
DeoptFrameAddInlinedArgumentsToDeoptFrame (DeoptFrame *deopt_frame, const MaglevCompilationUnit *unit, ValueNode *closure, base::Vector< ValueNode * > args)
 

Static Public Member Functions

static compiler::OptionalHeapObjectRef TryGetConstant (compiler::JSHeapBroker *broker, LocalIsolate *isolate, ValueNode *node)
 

Private Types

enum  ContextSlotMutability { kImmutable , kMutable }
 
enum class  TrackObjectMode { kLoad , kStore }
 
enum  InferHasInPrototypeChainResult { kMayBeInPrototypeChain , kIsInPrototypeChain , kIsNotInPrototypeChain }
 
enum class  BranchType { kBranchIfTrue , kBranchIfFalse }
 
enum class  BranchSpecializationMode { kDefault , kAlwaysBoolean }
 
enum class  BranchResult { kDefault , kAlwaysTrue , kAlwaysFalse }
 
using InitialCallback = std::function<ReduceResult(ValueNode*)>
 
using ProcessElementCallback = std::function<void(ValueNode*, ValueNode*)>
 
using GetDeoptScopeCallback
 
using TypeOfLiteralFlag = interpreter::TestTypeOfFlags::LiteralFlag
 

Private Member Functions

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)
 
NodeInfoGetOrCreateInfoFor (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
 
BasicBlockCreateEdgeSplitBlock (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)
 
ValueNodeGetContextAtDepth (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>
NodeTAddNewNode (size_t input_count, Function &&post_create_input_initializer, Args &&... args)
 
template<typename NodeT , typename... Args>
NodeTAddNewNodeOrGetEquivalent (std::initializer_list< ValueNode * > raw_inputs, Args &&... args)
 
template<typename NodeT , typename... Args>
NodeTAddNewNode (std::initializer_list< ValueNode * > inputs, Args &&... args)
 
template<typename NodeT , typename... Args>
NodeTCreateNewConstantNode (Args &&... args) const
 
template<typename NodeT >
NodeTAttachExtraInfoAndAddToGraph (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
 
MergePointInterpreterFrameStateGetCatchBlockFrameState ()
 
CatchBlockDetails GetCurrentTryCatchBlock ()
 
CatchBlockDetails GetTryCatchBlockFromInfo (ExceptionHandlerInfo *info)
 
bool ContextMayAlias (ValueNode *context, compiler::OptionalScopeInfoRef scope_info)
 
bool TrySpecializeLoadContextSlotToFunctionContext (ValueNode *context, int slot_index, ContextSlotMutability slot_mutability)
 
ValueNodeTrySpecializeLoadScriptContextSlot (ValueNode *context, int index)
 
ValueNodeLoadAndCacheContextSlot (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)
 
ValueNodeTryGetParentContext (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)
 
ValueNodeBuildExtendPropertiesBackingStore (compiler::MapRef map, ValueNode *receiver, ValueNode *property_array)
 
template<Builtin kBuiltin>
CallBuiltinBuildCallBuiltin (std::initializer_list< ValueNode * > inputs)
 
template<Builtin kBuiltin>
CallBuiltinBuildCallBuiltin (std::initializer_list< ValueNode * > inputs, compiler::FeedbackSource const &feedback, CallBuiltin::FeedbackSlotType slot_type=CallBuiltin::kTaggedIndex)
 
CallCPPBuiltinBuildCallCPPBuiltin (Builtin builtin, ValueNode *target, ValueNode *new_target, std::initializer_list< ValueNode * > inputs)
 
ReduceResult BuildLoadGlobal (compiler::NameRef name, compiler::FeedbackSource &feedback_source, TypeofMode typeof_mode)
 
ValueNodeBuildToString (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)
 
ValueNodeGetFeedbackCell ()
 
ValueNodeGetClosure () const
 
ValueNodeGetContext () 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)
 
ExternalConstantGetExternalConstant (ExternalReference reference)
 
RootConstantGetRootConstant (RootIndex index)
 
RootConstantGetBooleanConstant (bool value)
 
ValueNodeGetConstant (compiler::ObjectRef ref)
 
ValueNodeGetTrustedConstant (compiler::HeapObjectRef ref, IndirectPointerTag tag)
 
ValueNodeGetRegisterInput (Register reg)
 
void MoveNodeBetweenRegisters (interpreter::Register src, interpreter::Register dst)
 
ValueNodeGetTaggedValue (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)
 
ValueNodeGetTaggedValue (interpreter::Register reg, UseReprHintRecording record_use_repr_hint=UseReprHintRecording::kRecord)
 
ValueNodeGetInternalizedString (interpreter::Register reg)
 
ValueNodeGetTruncatedInt32ForToNumber (ValueNode *value, NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type)
 
ValueNodeGetTruncatedInt32ForToNumber (interpreter::Register reg, NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type)
 
ValueNodeGetUint8ClampedForToNumber (ValueNode *value)
 
ValueNodeGetUint8ClampedForToNumber (interpreter::Register reg)
 
std::optional< int32_t > TryGetInt32Constant (ValueNode *value)
 
std::optional< uint32_t > TryGetUint32Constant (ValueNode *value)
 
ValueNodeGetInt32 (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)
 
ValueNodeGetFloat64 (ValueNode *value)
 
ValueNodeGetFloat64 (interpreter::Register reg)
 
ValueNodeGetFloat64ForToNumber (ValueNode *value, NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type)
 
ValueNodeGetFloat64ForToNumber (interpreter::Register reg, NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type)
 
ValueNodeGetHoleyFloat64ForToNumber (ValueNode *value, NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type)
 
ValueNodeGetHoleyFloat64ForToNumber (interpreter::Register reg, NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type)
 
ValueNodeGetAccumulator ()
 
MaybeReduceResult GetAccumulatorSmi (UseReprHintRecording record_use_repr_hint=UseReprHintRecording::kRecord)
 
ValueNodeGetAccumulatorTruncatedInt32ForToNumber (NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type)
 
ValueNodeGetAccumulatorUint8ClampedForToNumber ()
 
ValueNodeGetAccumulatorHoleyFloat64ForToNumber (NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type)
 
ValueNodeGetSilencedNaN (ValueNode *value)
 
bool IsRegisterEqualToAccumulator (int operand_index)
 
ValueNodeLoadRegister (int operand_index)
 
ValueNodeLoadRegisterHoleyFloat64ForToNumber (int operand_index, NodeType allowed_input_type, TaggedToFloat64ConversionType conversion_type)
 
template<typename NodeT >
void SetAccumulator (NodeT *node)
 
void ClobberAccumulator ()
 
ValueNodeGetSecondValue (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
 
DeoptFrameGetCallerDeoptFrame ()
 
DeoptFrameGetDeoptFrameForEagerCall (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::BytecodeLivenessStateGetInLiveness () const
 
const compiler::BytecodeLivenessStateGetInLivenessFor (int offset) const
 
const compiler::BytecodeLivenessStateGetOutLiveness () const
 
const compiler::BytecodeLivenessStateGetOutLivenessFor (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>
ValueNodeConvertInputTo (ValueNode *input, ValueRepresentation expected)
 
template<typename NodeT >
void SetNodeInputs (NodeT *node, std::initializer_list< ValueNode * > inputs)
 
void FlushNodesToBlock ()
 
template<typename ControlNodeT , typename... Args>
BasicBlockFinishBlock (std::initializer_list< ValueNode * > control_inputs, Args &&... args)
 
void StartFallthroughBlock (int next_block_offset, BasicBlock *predecessor)
 
ValueNodeGetValueOrUndefined (ValueNode *maybe_value)
 
ValueNodeGetConvertReceiver (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)
 
ValueNodeBuildCallSelf (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)
 
CallKnownJSFunctionBuildCallKnownJSFunction (ValueNode *context, ValueNode *function, ValueNode *new_target, compiler::SharedFunctionInfoRef shared, compiler::FeedbackCellRef feedback_cell, CallArguments &args, const compiler::FeedbackSource &feedback_source)
 
CallKnownJSFunctionBuildCallKnownJSFunction (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)
 
ValueNodeBuildGenericCall (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)
 
ValueNodeBuildElementsArray (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)
 
ValueNodeBuildAndAllocateJSArrayIterator (ValueNode *array, IterationKind iteration_kind)
 
MaybeReduceResult TryBuildAndAllocateJSGeneratorObject (ValueNode *closure, ValueNode *receiver)
 
ValueNodeBuildGenericConstruct (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)
 
ValueNodeBuildSmiUntag (ValueNode *node)
 
ValueNodeBuildNumberOrOddballToFloat64 (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)
 
ValueNodeBuildConvertHoleToUndefined (ValueNode *node)
 
ReduceResult BuildCheckNotHole (ValueNode *node)
 
template<bool flip = false>
ValueNodeBuildToBoolean (ValueNode *node)
 
ValueNodeBuildLogicalNot (ValueNode *value)
 
ValueNodeBuildTestUndetectable (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>
ValueNodeBuildLoadTaggedField (ValueNode *object, uint32_t offset, Args &&... args)
 
NodeBuildStoreTaggedField (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)
 
ValueNodeBuildLoadFixedArrayElement (ValueNode *elements, int index)
 
ValueNodeBuildLoadFixedArrayElement (ValueNode *elements, ValueNode *index)
 
void BuildStoreFixedArrayElement (ValueNode *elements, ValueNode *index, ValueNode *value)
 
ValueNodeBuildLoadFixedDoubleArrayElement (ValueNode *elements, int index)
 
ValueNodeBuildLoadFixedDoubleArrayElement (ValueNode *elements, ValueNode *index)
 
void BuildStoreFixedDoubleArrayElement (ValueNode *elements, ValueNode *index, ValueNode *value)
 
ValueNodeBuildLoadHoleyFixedDoubleArrayElement (ValueNode *elements, ValueNode *index, bool convert_hole)
 
ValueNodeGetInt32ElementIndex (interpreter::Register reg)
 
ValueNodeGetInt32ElementIndex (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< Float64TryFoldLoadConstantDoubleField (compiler::JSObjectRef holder, compiler::PropertyAccessInfo const &access_info)
 
ValueNodeBuildLoadField (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)
 
ValueNodeBuildLoadFixedArrayLength (ValueNode *fixed_array)
 
ValueNodeBuildLoadJSArrayLength (ValueNode *js_array, NodeType length_type=NodeType::kSmi)
 
ValueNodeBuildLoadElements (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)
 
ValueNodeBuildLoadTypedArrayElement (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)
 
ValueNodeBuildLoadStringLength (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)
 
VirtualObjectGetObjectFromAllocation (InlinedAllocation *allocation)
 
VirtualObjectGetModifiableObjectFromAllocation (InlinedAllocation *allocation)
 
VirtualObjectDeepCopyVirtualObject (VirtualObject *vobj)
 
VirtualObjectCreateVirtualObject (compiler::MapRef map, uint32_t slot_count_including_map)
 
VirtualObjectCreateHeapNumber (Float64 value)
 
VirtualObjectCreateDoubleFixedArray (uint32_t elements_length, compiler::FixedDoubleArrayRef elements)
 
VirtualObjectCreateJSObject (compiler::MapRef map)
 
VirtualObjectCreateConsString (ValueNode *map, ValueNode *length, ValueNode *first, ValueNode *second)
 
ReduceResult CreateJSArray (compiler::MapRef map, int instance_size, ValueNode *length)
 
VirtualObjectCreateJSArrayIterator (compiler::MapRef map, ValueNode *iterated_object, IterationKind kind)
 
VirtualObjectCreateJSConstructor (compiler::JSFunctionRef constructor)
 
VirtualObjectCreateFixedArray (compiler::MapRef map, int length)
 
VirtualObjectCreateContext (compiler::MapRef map, int length, compiler::ScopeInfoRef scope_info, ValueNode *previous_context, std::optional< ValueNode * > extension={})
 
VirtualObjectCreateArgumentsObject (compiler::MapRef map, ValueNode *length, ValueNode *elements, std::optional< ValueNode * > callee={})
 
VirtualObjectCreateMappedArgumentsElements (compiler::MapRef map, int mapped_count, ValueNode *context, ValueNode *unmapped_elements)
 
VirtualObjectCreateRegExpLiteralObject (compiler::MapRef map, compiler::RegExpBoilerplateDescriptionRef literal)
 
VirtualObjectCreateJSGeneratorObject (compiler::MapRef map, int instance_size, ValueNode *context, ValueNode *closure, ValueNode *receiver, ValueNode *register_file)
 
VirtualObjectCreateJSIteratorResult (compiler::MapRef map, ValueNode *value, ValueNode *done)
 
VirtualObjectCreateJSStringIterator (compiler::MapRef map, ValueNode *string)
 
InlinedAllocationExtendOrReallocateCurrentAllocationBlock (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)
 
InlinedAllocationBuildInlinedAllocationForConsString (VirtualObject *object, AllocationType allocation)
 
InlinedAllocationBuildInlinedAllocationForHeapNumber (VirtualObject *object, AllocationType allocation)
 
InlinedAllocationBuildInlinedAllocationForDoubleFixedArray (VirtualObject *object, AllocationType allocation)
 
InlinedAllocationBuildInlinedAllocation (VirtualObject *object, AllocationType allocation)
 
ValueNodeBuildInlinedArgumentsElements (int start_index, int length)
 
ValueNodeBuildInlinedUnmappedArgumentsElements (int mapped_count)
 
template<CreateArgumentsType type>
VirtualObjectBuildVirtualArgumentsObject ()
 
template<CreateArgumentsType type>
ValueNodeBuildAndAllocateArgumentsObject ()
 
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 ()
 
ValueNodeBuildUnwrapThinString (ValueNode *input)
 
ValueNodeBuildUnwrapStringWrapper (ValueNode *input)
 
ReduceResult BuildStringConcat (ValueNode *left, ValueNode *right)
 
ValueNodeBuildNewConsStringMap (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)
 
ValueNodeBuildTaggedEqual (ValueNode *lhs, ValueNode *rhs)
 
ValueNodeBuildTaggedEqual (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)
 
BasicBlockBuildBranchIfReferenceEqual (ValueNode *lhs, ValueNode *rhs, BasicBlockRef *true_target, BasicBlockRef *false_target)
 
template<typename FCond , typename FTrue , typename FFalse >
ValueNodeSelect (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::BytecodeAnalysisbytecode_analysis () const
 
int parameter_count () const
 
int parameter_count_without_receiver () const
 
int register_count () const
 
KnownNodeAspectsknown_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)
 

Static Private Member Functions

template<typename NodeT >
static constexpr UseReprHintRecording ShouldRecordUseReprHint ()
 
static BranchType NegateBranchType (BranchType jump_type)
 
static size_t fast_hash_combine (size_t seed, size_t h)
 
template<typename T >
static size_t gvn_hash_value (const T &in)
 
static size_t gvn_hash_value (const compiler::MapRef &map)
 
static size_t gvn_hash_value (const interpreter::Register &reg)
 
static size_t gvn_hash_value (const Representation &rep)
 
static size_t gvn_hash_value (const ExternalReference &ref)
 
static size_t gvn_hash_value (const PolymorphicAccessInfo &access_info)
 
template<typename T >
static size_t gvn_hash_value (const v8::internal::ZoneCompactSet< T > &vector)
 
template<typename T >
static size_t gvn_hash_value (const v8::internal::ZoneVector< T > &vector)
 

Private Attributes

LocalIsolate *const local_isolate_
 
MaglevCompilationUnit *const compilation_unit_
 
MaglevCallerDetailscaller_details_
 
compiler::JSHeapBrokerbroker_ = compilation_unit_->broker()
 
Graph *const graph_
 
compiler::BytecodeAnalysis bytecode_analysis_
 
interpreter::BytecodeArrayIterator iterator_
 
SourcePositionTableIterator source_position_iterator_
 
uint32_t * predecessor_count_
 
int peeled_iteration_count_ = 0
 
bool any_peeled_loop_ = false
 
bool allow_loop_peeling_
 
LoopEffectsloop_effects_ = nullptr
 
ZoneDeque< LoopEffects * > loop_effects_stack_
 
ZoneVector< int > decremented_predecessor_offsets_
 
BitVector loop_headers_to_peel_
 
bool in_prologue_ = true
 
BasicBlockcurrent_block_ = nullptr
 
std::optional< InterpretedDeoptFrameentry_stack_check_frame_
 
std::optional< DeoptFramelatest_checkpointed_frame_
 
SourcePosition current_source_position_
 
ForInState current_for_in_state = ForInState()
 
AllocationBlockcurrent_allocation_block_ = nullptr
 
BasicBlockRefjump_targets_
 
MergePointInterpreterFrameState ** merge_states_
 
InterpreterFrameState current_interpreter_frame_
 
compiler::FeedbackSource current_speculation_feedback_
 
ValueNodeinlined_new_target_ = nullptr
 
bool is_turbolev_ = false
 
int entrypoint_
 
int inlining_id_ = SourcePosition::kNotInlined
 
int next_handler_table_index_ = 0
 
DeoptFrameScopecurrent_deopt_scope_ = nullptr
 
LazyDeoptResultLocationScopelazy_deopt_result_location_scope_ = nullptr
 
ZoneStack< HandlerTableEntrycatch_block_stack_
 
ZoneUnorderedMap< KnownNodeAspects::LoadedContextSlotsKey, Node * > unobserved_context_slot_stores_
 

Static Private Attributes

static constexpr bool kLoopsMustBeEnteredThroughHeader = true
 

Detailed Description

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

Member Typedef Documentation

◆ GetDeoptScopeCallback

Initial value:
std::function<DeoptFrameScope(
compiler::JSFunctionRef, ValueNode*, ValueNode*, ValueNode*, ValueNode*,
ValueNode*, ValueNode*)>

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

◆ InitialCallback

◆ ProcessElementCallback

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

◆ TypeOfLiteralFlag

Member Enumeration Documentation

◆ BranchResult

Enumerator
kDefault 
kAlwaysTrue 
kAlwaysFalse 

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

◆ BranchSpecializationMode

Enumerator
kDefault 
kAlwaysBoolean 

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

◆ BranchType

Enumerator
kBranchIfTrue 
kBranchIfFalse 

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

◆ ContextSlotMutability

Enumerator
kImmutable 
kMutable 

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

◆ InferHasInPrototypeChainResult

Enumerator
kMayBeInPrototypeChain 
kIsInPrototypeChain 
kIsNotInPrototypeChain 

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

◆ TrackObjectMode

Enumerator
kLoad 
kStore 

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

Constructor & Destructor Documentation

◆ MaglevGraphBuilder()

v8::internal::maglev::MaglevGraphBuilder::MaglevGraphBuilder ( LocalIsolate * local_isolate,
MaglevCompilationUnit * compilation_unit,
Graph * graph,
MaglevCallerDetails * caller_details = nullptr )
explicit

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

Here is the call graph for this function:

Member Function Documentation

◆ AddDeoptUse() [1/2]

void v8::internal::maglev::MaglevGraphBuilder::AddDeoptUse ( ValueNode * node)
inlineprivate

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

Here is the caller graph for this function:

◆ AddDeoptUse() [2/2]

void v8::internal::maglev::MaglevGraphBuilder::AddDeoptUse ( VirtualObject * alloc)
private

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

Here is the call graph for this function:

◆ AddInitializedNodeToGraph()

void v8::internal::maglev::MaglevGraphBuilder::AddInitializedNodeToGraph ( Node * node)
inlineprivate

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

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

◆ AddInlinedArgumentsToDeoptFrame()

DeoptFrame * v8::internal::maglev::MaglevGraphBuilder::AddInlinedArgumentsToDeoptFrame ( DeoptFrame * deopt_frame,
const MaglevCompilationUnit * unit,
ValueNode * closure,
base::Vector< ValueNode * > args )

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

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

◆ AddNewCallNode()

template<typename CallNode , typename... Args>
CallNode * v8::internal::maglev::MaglevGraphBuilder::AddNewCallNode ( const CallArguments & args,
Args &&... extra_args )
private

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

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

◆ AddNewNode() [1/2]

template<typename NodeT , typename Function , typename... Args>
NodeT * v8::internal::maglev::MaglevGraphBuilder::AddNewNode ( size_t input_count,
Function && post_create_input_initializer,
Args &&... args )
inlineprivate

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

Here is the call graph for this function:

◆ AddNewNode() [2/2]

template<typename NodeT , typename... Args>
NodeT * v8::internal::maglev::MaglevGraphBuilder::AddNewNode ( std::initializer_list< ValueNode * > inputs,
Args &&... args )
inlineprivate

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

Here is the call graph for this function:

◆ AddNewNodeOrGetEquivalent()

template<typename NodeT , typename... Args>
NodeT * v8::internal::maglev::MaglevGraphBuilder::AddNewNodeOrGetEquivalent ( std::initializer_list< ValueNode * > raw_inputs,
Args &&... args )
inlineprivate

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

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

◆ AddNonEscapingUses()

void v8::internal::maglev::MaglevGraphBuilder::AddNonEscapingUses ( InlinedAllocation * allocation,
int use_count )
private

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

Here is the caller graph for this function:

◆ argument_count()

int v8::internal::maglev::MaglevGraphBuilder::argument_count ( ) const
inlineprivate

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

Here is the caller graph for this function:

◆ argument_count_without_receiver()

int v8::internal::maglev::MaglevGraphBuilder::argument_count_without_receiver ( ) const
inlineprivate

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

Here is the caller graph for this function:

◆ AttachDeoptCheckpoint()

template<typename NodeT >
void v8::internal::maglev::MaglevGraphBuilder::AttachDeoptCheckpoint ( NodeT * node)
inlineprivate

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

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

◆ AttachEagerDeoptInfo()

template<typename NodeT >
void v8::internal::maglev::MaglevGraphBuilder::AttachEagerDeoptInfo ( NodeT * node)
inlineprivate

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

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

◆ AttachExceptionHandlerInfo()

template<typename NodeT >
void v8::internal::maglev::MaglevGraphBuilder::AttachExceptionHandlerInfo ( NodeT * node)
inlineprivate

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

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

◆ AttachExtraInfoAndAddToGraph()

template<typename NodeT >
NodeT * v8::internal::maglev::MaglevGraphBuilder::AttachExtraInfoAndAddToGraph ( NodeT * node)
inlineprivate

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

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

◆ AttachLazyDeoptInfo()

template<typename NodeT >
void v8::internal::maglev::MaglevGraphBuilder::AttachLazyDeoptInfo ( NodeT * node)
inlineprivate

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

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

◆ bailout_for_entrypoint()

int v8::internal::maglev::MaglevGraphBuilder::bailout_for_entrypoint ( )
inlineprivate

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

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

◆ BeginLoopEffects()

void v8::internal::maglev::MaglevGraphBuilder::BeginLoopEffects ( int loop_header)
private

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

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

◆ broker()

compiler::JSHeapBroker * v8::internal::maglev::MaglevGraphBuilder::broker ( ) const
inline

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

◆ Build()

void v8::internal::maglev::MaglevGraphBuilder::Build ( )
inline

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

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

◆ BuildAbort()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildAbort ( AbortReason reason)
inlineprivate

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

◆ BuildAndAllocateArgumentsObject()

template<CreateArgumentsType type>
ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildAndAllocateArgumentsObject ( )
private

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

Here is the call graph for this function:

◆ BuildAndAllocateJSArray()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildAndAllocateJSArray ( compiler::MapRef map,
ValueNode * length,
ValueNode * elements,
const compiler::SlackTrackingPrediction & slack_tracking_prediction,
AllocationType allocation_type )
private

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

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

◆ BuildAndAllocateJSArrayIterator()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildAndAllocateJSArrayIterator ( ValueNode * array,
IterationKind iteration_kind )
private

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

Here is the call graph for this function:

◆ BuildAndAllocateKeyValueArray()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildAndAllocateKeyValueArray ( ValueNode * key,
ValueNode * value )
private

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

Here is the call graph for this function:

◆ BuildBody()

void v8::internal::maglev::MaglevGraphBuilder::BuildBody ( )
inline

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

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

◆ BuildBranchIfFloat64IsHole()

MaglevGraphBuilder::BranchResult v8::internal::maglev::MaglevGraphBuilder::BuildBranchIfFloat64IsHole ( BranchBuilder & builder,
ValueNode * node )
private

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

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

◆ BuildBranchIfFloat64ToBooleanTrue()

MaglevGraphBuilder::BranchResult v8::internal::maglev::MaglevGraphBuilder::BuildBranchIfFloat64ToBooleanTrue ( BranchBuilder & builder,
ValueNode * node )
private

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

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

◆ BuildBranchIfInt32Compare()

MaglevGraphBuilder::BranchResult v8::internal::maglev::MaglevGraphBuilder::BuildBranchIfInt32Compare ( BranchBuilder & builder,
Operation op,
ValueNode * lhs,
ValueNode * rhs )
private

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

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

◆ BuildBranchIfInt32ToBooleanTrue()

MaglevGraphBuilder::BranchResult v8::internal::maglev::MaglevGraphBuilder::BuildBranchIfInt32ToBooleanTrue ( BranchBuilder & builder,
ValueNode * node )
private

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

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

◆ BuildBranchIfIntPtrToBooleanTrue()

MaglevGraphBuilder::BranchResult v8::internal::maglev::MaglevGraphBuilder::BuildBranchIfIntPtrToBooleanTrue ( BranchBuilder & builder,
ValueNode * node )
private

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

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

◆ BuildBranchIfJSReceiver()

MaglevGraphBuilder::BranchResult v8::internal::maglev::MaglevGraphBuilder::BuildBranchIfJSReceiver ( BranchBuilder & builder,
ValueNode * value )
private

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

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

◆ BuildBranchIfNull()

MaglevGraphBuilder::BranchResult v8::internal::maglev::MaglevGraphBuilder::BuildBranchIfNull ( BranchBuilder & builder,
ValueNode * node )
private

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

Here is the call graph for this function:

◆ BuildBranchIfReferenceEqual() [1/2]

MaglevGraphBuilder::BranchResult v8::internal::maglev::MaglevGraphBuilder::BuildBranchIfReferenceEqual ( BranchBuilder & builder,
ValueNode * lhs,
ValueNode * rhs )
private

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

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

◆ BuildBranchIfReferenceEqual() [2/2]

BasicBlock * v8::internal::maglev::MaglevGraphBuilder::BuildBranchIfReferenceEqual ( ValueNode * lhs,
ValueNode * rhs,
BasicBlockRef * true_target,
BasicBlockRef * false_target )
private

◆ BuildBranchIfRootConstant()

MaglevGraphBuilder::BranchResult v8::internal::maglev::MaglevGraphBuilder::BuildBranchIfRootConstant ( BranchBuilder & builder,
ValueNode * node,
RootIndex root_index )
private

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

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

◆ BuildBranchIfToBooleanTrue()

MaglevGraphBuilder::BranchResult v8::internal::maglev::MaglevGraphBuilder::BuildBranchIfToBooleanTrue ( BranchBuilder & builder,
ValueNode * node )
private

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

Here is the call graph for this function:

◆ BuildBranchIfTrue()

MaglevGraphBuilder::BranchResult v8::internal::maglev::MaglevGraphBuilder::BuildBranchIfTrue ( BranchBuilder & builder,
ValueNode * node )
private

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

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

◆ BuildBranchIfUint32Compare()

MaglevGraphBuilder::BranchResult v8::internal::maglev::MaglevGraphBuilder::BuildBranchIfUint32Compare ( BranchBuilder & builder,
Operation op,
ValueNode * lhs,
ValueNode * rhs )
private

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

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

◆ BuildBranchIfUndefined()

MaglevGraphBuilder::BranchResult v8::internal::maglev::MaglevGraphBuilder::BuildBranchIfUndefined ( BranchBuilder & builder,
ValueNode * node )
private

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

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

◆ BuildBranchIfUndefinedOrNull()

MaglevGraphBuilder::BranchResult v8::internal::maglev::MaglevGraphBuilder::BuildBranchIfUndefinedOrNull ( BranchBuilder & builder,
ValueNode * node )
private

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

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

◆ BuildBranchIfUndetectable()

MaglevGraphBuilder::BranchResult v8::internal::maglev::MaglevGraphBuilder::BuildBranchIfUndetectable ( BranchBuilder & builder,
ValueNode * value )
private

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

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

◆ BuildCallBuiltin() [1/2]

template<Builtin kBuiltin>
CallBuiltin * v8::internal::maglev::MaglevGraphBuilder::BuildCallBuiltin ( std::initializer_list< ValueNode * > inputs)
inlineprivate

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

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

◆ BuildCallBuiltin() [2/2]

template<Builtin kBuiltin>
CallBuiltin * v8::internal::maglev::MaglevGraphBuilder::BuildCallBuiltin ( std::initializer_list< ValueNode * > inputs,
compiler::FeedbackSource const & feedback,
CallBuiltin::FeedbackSlotType slot_type = CallBuiltin::kTaggedIndex )
inlineprivate

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

Here is the call graph for this function:

◆ BuildCallCPPBuiltin()

CallCPPBuiltin * v8::internal::maglev::MaglevGraphBuilder::BuildCallCPPBuiltin ( Builtin builtin,
ValueNode * target,
ValueNode * new_target,
std::initializer_list< ValueNode * > inputs )
inlineprivate

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

Here is the call graph for this function:

◆ BuildCallFromRegisterList()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCallFromRegisterList ( ConvertReceiverMode receiver_mode)
private

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

Here is the call graph for this function:

◆ BuildCallFromRegisters()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCallFromRegisters ( int argc_count,
ConvertReceiverMode receiver_mode )
private

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

Here is the call graph for this function:

◆ BuildCallKnownJSFunction() [1/2]

CallKnownJSFunction * v8::internal::maglev::MaglevGraphBuilder::BuildCallKnownJSFunction ( ValueNode * context,
ValueNode * function,
ValueNode * new_target,
compiler::SharedFunctionInfoRef shared,
base::Vector< ValueNode * > arguments )
private

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

Here is the call graph for this function:

◆ BuildCallKnownJSFunction() [2/2]

CallKnownJSFunction * v8::internal::maglev::MaglevGraphBuilder::BuildCallKnownJSFunction ( ValueNode * context,
ValueNode * function,
ValueNode * new_target,
compiler::SharedFunctionInfoRef shared,
compiler::FeedbackCellRef feedback_cell,
CallArguments & args,
const compiler::FeedbackSource & feedback_source )
private

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

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

◆ BuildCallRuntime()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCallRuntime ( Runtime::FunctionId function_id,
std::initializer_list< ValueNode * > inputs )
inlineprivate

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

Here is the caller graph for this function:

◆ BuildCallSelf()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildCallSelf ( ValueNode * context,
ValueNode * function,
ValueNode * new_target,
compiler::SharedFunctionInfoRef shared,
CallArguments & args )
private

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

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

◆ BuildCallWithFeedback()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCallWithFeedback ( ValueNode * target_node,
CallArguments & args,
const compiler::FeedbackSource & feedback_source )
private

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

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

◆ BuildCheckHeapObject()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCheckHeapObject ( ValueNode * object)
private

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

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

◆ BuildCheckInternalizedStringValueOrByReference()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCheckInternalizedStringValueOrByReference ( ValueNode * node,
compiler::HeapObjectRef ref,
DeoptimizeReason reason )
private

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

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

◆ BuildCheckJSReceiver()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCheckJSReceiver ( ValueNode * object)
private

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

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

◆ BuildCheckJSReceiverOrNullOrUndefined()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCheckJSReceiverOrNullOrUndefined ( ValueNode * object)
private

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

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

◆ BuildCheckMaps()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCheckMaps ( ValueNode * object,
base::Vector< const compiler::MapRef > maps,
std::optional< ValueNode * > map = {},
bool has_deprecated_map_without_migration_target = false )
private

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

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

◆ BuildCheckNotHole()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCheckNotHole ( ValueNode * node)
private

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

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

◆ BuildCheckNumber()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCheckNumber ( ValueNode * object)
private

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

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

◆ BuildCheckNumericalValue()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCheckNumericalValue ( ValueNode * node,
compiler::ObjectRef ref,
DeoptimizeReason reason )
private

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

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

◆ BuildCheckNumericalValueOrByReference()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCheckNumericalValueOrByReference ( ValueNode * node,
compiler::ObjectRef ref,
DeoptimizeReason reason )
private

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

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

◆ BuildCheckSmi()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCheckSmi ( ValueNode * object,
bool elidable = true )
private

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

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

◆ BuildCheckString()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCheckString ( ValueNode * object)
private

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

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

◆ BuildCheckStringOrStringWrapper()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCheckStringOrStringWrapper ( ValueNode * object)
private

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

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

◆ BuildCheckSymbol()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCheckSymbol ( ValueNode * object)
private

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

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

◆ BuildCheckValueByReference()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCheckValueByReference ( ValueNode * node,
compiler::HeapObjectRef ref,
DeoptimizeReason reason )
private

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

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

◆ BuildCompareMaps()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildCompareMaps ( ValueNode * heap_object,
ValueNode * object_map,
base::Vector< const compiler::MapRef > maps,
MaglevSubGraphBuilder * sub_graph,
std::optional< MaglevSubGraphBuilder::Label > & if_not_matched )
private

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

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

◆ BuildConstruct()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildConstruct ( ValueNode * target,
ValueNode * new_target,
CallArguments & args,
compiler::FeedbackSource & feedback_source )
private

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

Here is the call graph for this function:

◆ BuildConvertHoleToUndefined()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildConvertHoleToUndefined ( ValueNode * node)
private

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

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

◆ BuildEagerInlineCall()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildEagerInlineCall ( ValueNode * context,
ValueNode * function,
ValueNode * new_target,
compiler::SharedFunctionInfoRef shared,
compiler::FeedbackCellRef feedback_cell,
CallArguments & args,
float call_frequency )
private

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

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

◆ BuildElementsArray()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildElementsArray ( int length)
private

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

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

◆ BuildExtendPropertiesBackingStore()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildExtendPropertiesBackingStore ( compiler::MapRef map,
ValueNode * receiver,
ValueNode * property_array )
private

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

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

◆ BuildFloat64BinaryOperationNodeForToNumber()

template<Operation kOperation>
ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildFloat64BinaryOperationNodeForToNumber ( NodeType allowed_input_type,
TaggedToFloat64ConversionType conversion_type )
private

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

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

◆ BuildFloat64BinarySmiOperationNodeForToNumber()

template<Operation kOperation>
ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildFloat64BinarySmiOperationNodeForToNumber ( NodeType allowed_input_type,
TaggedToFloat64ConversionType conversion_type )
private

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

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

◆ BuildFloat64UnaryOperationNodeForToNumber()

template<Operation kOperation>
ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildFloat64UnaryOperationNodeForToNumber ( NodeType allowed_input_type,
TaggedToFloat64ConversionType conversion_type )
private

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

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

◆ BuildGenericBinaryOperationNode()

template<Operation kOperation>
void v8::internal::maglev::MaglevGraphBuilder::BuildGenericBinaryOperationNode ( )
private

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

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

◆ BuildGenericBinarySmiOperationNode()

template<Operation kOperation>
void v8::internal::maglev::MaglevGraphBuilder::BuildGenericBinarySmiOperationNode ( )
private

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

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

◆ BuildGenericCall()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildGenericCall ( ValueNode * target,
Call::TargetType target_type,
const CallArguments & args )
private

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

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

◆ BuildGenericConstruct()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildGenericConstruct ( ValueNode * target,
ValueNode * new_target,
ValueNode * context,
const CallArguments & args,
const compiler::FeedbackSource & feedback_source = compiler::FeedbackSource() )
private

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

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

◆ BuildGenericUnaryOperationNode()

template<Operation kOperation>
void v8::internal::maglev::MaglevGraphBuilder::BuildGenericUnaryOperationNode ( )
private

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

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

◆ BuildGetKeyedProperty()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildGetKeyedProperty ( ValueNode * object,
const compiler::FeedbackSource & feedback_source,
const compiler::ProcessedFeedback & processed_feedback )
private

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

Here is the call graph for this function:

◆ BuildHasInPrototypeChain()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildHasInPrototypeChain ( ValueNode * object,
compiler::HeapObjectRef prototype )
private

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

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

◆ BuildInitializeStore()

void v8::internal::maglev::MaglevGraphBuilder::BuildInitializeStore ( InlinedAllocation * alloc,
ValueNode * value,
int offset )
private

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

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

◆ BuildInlinedAllocation()

InlinedAllocation * v8::internal::maglev::MaglevGraphBuilder::BuildInlinedAllocation ( VirtualObject * object,
AllocationType allocation )
private

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

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

◆ BuildInlinedAllocationForConsString()

InlinedAllocation * v8::internal::maglev::MaglevGraphBuilder::BuildInlinedAllocationForConsString ( VirtualObject * object,
AllocationType allocation )
private

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

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

◆ BuildInlinedAllocationForDoubleFixedArray()

InlinedAllocation * v8::internal::maglev::MaglevGraphBuilder::BuildInlinedAllocationForDoubleFixedArray ( VirtualObject * object,
AllocationType allocation )
private

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

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

◆ BuildInlinedAllocationForHeapNumber()

InlinedAllocation * v8::internal::maglev::MaglevGraphBuilder::BuildInlinedAllocationForHeapNumber ( VirtualObject * object,
AllocationType allocation )
private

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

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

◆ BuildInlinedArgumentsElements()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildInlinedArgumentsElements ( int start_index,
int length )
private

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

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

◆ BuildInlinedUnmappedArgumentsElements()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildInlinedUnmappedArgumentsElements ( int mapped_count)
private

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

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

◆ BuildInlineFunction()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildInlineFunction ( SourcePosition call_site_position,
ValueNode * context,
ValueNode * function,
ValueNode * new_target )

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

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

◆ BuildInt32BinaryOperationNode()

template<Operation kOperation>
ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildInt32BinaryOperationNode ( )
private

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

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

◆ BuildInt32BinarySmiOperationNode()

template<Operation kOperation>
ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildInt32BinarySmiOperationNode ( )
private

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

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

◆ BuildInt32UnaryOperationNode()

template<Operation kOperation>
ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildInt32UnaryOperationNode ( )
private

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

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

◆ BuildJSArrayBuiltinMapSwitchOnElementsKind()

template<typename MapKindsT , typename IndexToElementsKindFunc , typename BuildKindSpecificFunc >
MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::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 )
private

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

Here is the call graph for this function:

◆ BuildLoadContextSlot()

void v8::internal::maglev::MaglevGraphBuilder::BuildLoadContextSlot ( ValueNode * context,
size_t depth,
int slot_index,
ContextSlotMutability slot_mutability,
ContextKind context_kind )
private

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

Here is the call graph for this function:

◆ BuildLoadElements()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildLoadElements ( ValueNode * object)
private

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

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

◆ BuildLoadField()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildLoadField ( compiler::PropertyAccessInfo const & access_info,
ValueNode * lookup_start_object,
compiler::NameRef name )
private

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

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

◆ BuildLoadFixedArrayElement() [1/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildLoadFixedArrayElement ( ValueNode * elements,
int index )
private

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

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

◆ BuildLoadFixedArrayElement() [2/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildLoadFixedArrayElement ( ValueNode * elements,
ValueNode * index )
private

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

Here is the call graph for this function:

◆ BuildLoadFixedArrayLength()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildLoadFixedArrayLength ( ValueNode * fixed_array)
private

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

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

◆ BuildLoadFixedDoubleArrayElement() [1/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildLoadFixedDoubleArrayElement ( ValueNode * elements,
int index )
private

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

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

◆ BuildLoadFixedDoubleArrayElement() [2/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildLoadFixedDoubleArrayElement ( ValueNode * elements,
ValueNode * index )
private

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

Here is the call graph for this function:

◆ BuildLoadGlobal()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildLoadGlobal ( compiler::NameRef name,
compiler::FeedbackSource & feedback_source,
TypeofMode typeof_mode )
private

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

Here is the call graph for this function:

◆ BuildLoadHoleyFixedDoubleArrayElement()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildLoadHoleyFixedDoubleArrayElement ( ValueNode * elements,
ValueNode * index,
bool convert_hole )
private

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

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

◆ BuildLoadJSArrayLength()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildLoadJSArrayLength ( ValueNode * js_array,
NodeType length_type = NodeType::kSmi )
private

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

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

◆ BuildLoadStringLength()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildLoadStringLength ( ValueNode * string)
private

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

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

◆ BuildLoadTaggedField()

template<typename Instruction = LoadTaggedField, typename... Args>
ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildLoadTaggedField ( ValueNode * object,
uint32_t offset,
Args &&... args )
inlineprivate

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

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

◆ BuildLoadTypedArrayElement()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildLoadTypedArrayElement ( ValueNode * object,
ValueNode * index,
ElementsKind elements_kind )
private

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

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

◆ BuildLoadTypedArrayLength()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildLoadTypedArrayLength ( ValueNode * object,
ElementsKind elements_kind )
private

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

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

◆ BuildLogicalNot()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildLogicalNot ( ValueNode * value)
private

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

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

◆ BuildLoopForPeeling()

void v8::internal::maglev::MaglevGraphBuilder::BuildLoopForPeeling ( )

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

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

◆ BuildMergeStates()

void v8::internal::maglev::MaglevGraphBuilder::BuildMergeStates ( )

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

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

◆ BuildNewConsStringMap()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildNewConsStringMap ( ValueNode * left,
ValueNode * right )
private

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

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

◆ BuildNumberOrOddballToFloat64()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildNumberOrOddballToFloat64 ( ValueNode * node,
NodeType allowed_input_type,
TaggedToFloat64ConversionType conversion_type )
private

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

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

◆ BuildOrdinaryHasInstance()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildOrdinaryHasInstance ( ValueNode * object,
compiler::JSObjectRef callable,
ValueNode * callable_node )
private

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

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

◆ BuildRegisterFrameInitialization()

void v8::internal::maglev::MaglevGraphBuilder::BuildRegisterFrameInitialization ( ValueNode * context = nullptr,
ValueNode * closure = nullptr,
ValueNode * new_target = nullptr )

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

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

◆ BuildSmiUntag()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildSmiUntag ( ValueNode * node)
private

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

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

◆ BuildStoreContextSlot()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildStoreContextSlot ( ValueNode * context,
size_t depth,
int slot_index,
ValueNode * value,
ContextKind context_kind )
private

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

Here is the call graph for this function:

◆ BuildStoreFixedArrayElement()

void v8::internal::maglev::MaglevGraphBuilder::BuildStoreFixedArrayElement ( ValueNode * elements,
ValueNode * index,
ValueNode * value )
private

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

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

◆ BuildStoreFixedDoubleArrayElement()

void v8::internal::maglev::MaglevGraphBuilder::BuildStoreFixedDoubleArrayElement ( ValueNode * elements,
ValueNode * index,
ValueNode * value )
private

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

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

◆ BuildStoreMap()

void v8::internal::maglev::MaglevGraphBuilder::BuildStoreMap ( ValueNode * object,
compiler::MapRef map,
StoreMap::Kind kind )
private

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

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

◆ BuildStoreTaggedField()

Node * v8::internal::maglev::MaglevGraphBuilder::BuildStoreTaggedField ( ValueNode * object,
ValueNode * value,
int offset,
StoreTaggedMode store_mode )
private

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

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

◆ BuildStoreTaggedFieldNoWriteBarrier()

void v8::internal::maglev::MaglevGraphBuilder::BuildStoreTaggedFieldNoWriteBarrier ( ValueNode * object,
ValueNode * value,
int offset,
StoreTaggedMode store_mode )
private

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

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

◆ BuildStoreTrustedPointerField()

void v8::internal::maglev::MaglevGraphBuilder::BuildStoreTrustedPointerField ( ValueNode * object,
ValueNode * value,
int offset,
IndirectPointerTag tag,
StoreTaggedMode store_mode )
private

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

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

◆ BuildStoreTypedArrayElement()

void v8::internal::maglev::MaglevGraphBuilder::BuildStoreTypedArrayElement ( ValueNode * object,
ValueNode * index,
ElementsKind elements_kind )
private

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

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

◆ BuildStringConcat()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildStringConcat ( ValueNode * left,
ValueNode * right )
private

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

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

◆ BuildTaggedEqual() [1/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildTaggedEqual ( ValueNode * lhs,
RootIndex rhs_index )
private

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

Here is the call graph for this function:

◆ BuildTaggedEqual() [2/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildTaggedEqual ( ValueNode * lhs,
ValueNode * rhs )
private

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

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

◆ BuildTestUndetectable()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildTestUndetectable ( ValueNode * value)
private

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

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

◆ BuildToBoolean()

template<bool flip>
ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildToBoolean ( ValueNode * node)
private

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

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

◆ BuildToNumberOrToNumeric()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildToNumberOrToNumeric ( Object::Conversion mode)
private

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

Here is the call graph for this function:

◆ BuildToString()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildToString ( ValueNode * value,
ToString::ConversionMode mode )
private

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

Here is the call graph for this function:

◆ BuildTransitionElementsKindAndCompareMaps()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::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 )
private

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

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

◆ BuildTransitionElementsKindOrCheckMap()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildTransitionElementsKindOrCheckMap ( ValueNode * heap_object,
ValueNode * object_map,
const ZoneVector< compiler::MapRef > & transition_sources,
compiler::MapRef transition_target )
private

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

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

◆ BuildTruncatingInt32BinaryOperationNodeForToNumber()

template<Operation kOperation>
ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildTruncatingInt32BinaryOperationNodeForToNumber ( NodeType allowed_input_type,
TaggedToFloat64ConversionType conversion_type )
private

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

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

◆ BuildTruncatingInt32BinarySmiOperationNodeForToNumber()

template<Operation kOperation>
ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildTruncatingInt32BinarySmiOperationNodeForToNumber ( NodeType allowed_input_type,
TaggedToFloat64ConversionType conversion_type )
private

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

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

◆ BuildTruncatingInt32BitwiseNotForToNumber()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::BuildTruncatingInt32BitwiseNotForToNumber ( NodeType allowed_input_type,
TaggedToFloat64ConversionType conversion_type )
private

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

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

◆ BuildUnwrapStringWrapper()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildUnwrapStringWrapper ( ValueNode * input)
private

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

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

◆ BuildUnwrapThinString()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::BuildUnwrapThinString ( ValueNode * input)
private

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

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

◆ BuildVirtualArgumentsObject()

template<CreateArgumentsType type>
VirtualObject * v8::internal::maglev::MaglevGraphBuilder::BuildVirtualArgumentsObject ( )
private

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

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

◆ bytecode()

compiler::BytecodeArrayRef v8::internal::maglev::MaglevGraphBuilder::bytecode ( ) const
inlineprivate

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

Here is the caller graph for this function:

◆ bytecode_analysis()

const compiler::BytecodeAnalysis & v8::internal::maglev::MaglevGraphBuilder::bytecode_analysis ( ) const
inlineprivate

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

Here is the caller graph for this function:

◆ CalculatePredecessorCounts()

void v8::internal::maglev::MaglevGraphBuilder::CalculatePredecessorCounts ( )
inlineprivate

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

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

◆ caller_details()

MaglevCallerDetails * v8::internal::maglev::MaglevGraphBuilder::caller_details ( ) const
inline

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

Here is the caller graph for this function:

◆ CanAllocateInlinedArgumentElements()

bool v8::internal::maglev::MaglevGraphBuilder::CanAllocateInlinedArgumentElements ( )
private

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

Here is the call graph for this function:

◆ CanAllocateSloppyArgumentElements()

bool v8::internal::maglev::MaglevGraphBuilder::CanAllocateSloppyArgumentElements ( )
private

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

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

◆ CanElideWriteBarrier()

bool v8::internal::maglev::MaglevGraphBuilder::CanElideWriteBarrier ( ValueNode * object,
ValueNode * value )
private

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

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

◆ CanInlineCall()

bool v8::internal::maglev::MaglevGraphBuilder::CanInlineCall ( compiler::SharedFunctionInfoRef shared,
float call_frequency )
private

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

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

◆ CanSpeculateCall()

bool v8::internal::maglev::MaglevGraphBuilder::CanSpeculateCall ( ) const
inlineprivate

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

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

◆ CanTrackObjectChanges()

bool v8::internal::maglev::MaglevGraphBuilder::CanTrackObjectChanges ( ValueNode * object,
TrackObjectMode mode )
private

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

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

◆ CanTreatHoleAsUndefined()

bool v8::internal::maglev::MaglevGraphBuilder::CanTreatHoleAsUndefined ( base::Vector< const compiler::MapRef > const & receiver_maps)
private

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

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

◆ CheckContextExtensions()

bool v8::internal::maglev::MaglevGraphBuilder::CheckContextExtensions ( size_t depth)
private

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

Here is the call graph for this function:

◆ CheckStaticType()

bool v8::internal::maglev::MaglevGraphBuilder::CheckStaticType ( ValueNode * node,
NodeType type,
NodeType * old = nullptr )
private

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

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

◆ CheckType()

bool v8::internal::maglev::MaglevGraphBuilder::CheckType ( ValueNode * node,
NodeType type,
NodeType * old = nullptr )
private

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

Here is the call graph for this function:

◆ CheckTypes()

NodeType v8::internal::maglev::MaglevGraphBuilder::CheckTypes ( ValueNode * node,
std::initializer_list< NodeType > types )
private

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

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

◆ ClearCurrentAllocationBlock()

void v8::internal::maglev::MaglevGraphBuilder::ClearCurrentAllocationBlock ( )
private

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

Here is the caller graph for this function:

◆ ClobberAccumulator()

void v8::internal::maglev::MaglevGraphBuilder::ClobberAccumulator ( )
inlineprivate

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

◆ compilation_unit()

MaglevCompilationUnit * v8::internal::maglev::MaglevGraphBuilder::compilation_unit ( ) const
inline

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

Here is the caller graph for this function:

◆ ContextMayAlias()

bool v8::internal::maglev::MaglevGraphBuilder::ContextMayAlias ( ValueNode * context,
compiler::OptionalScopeInfoRef scope_info )
private

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

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

◆ ConvertForStoring()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::ConvertForStoring ( ValueNode * node,
ElementsKind kind )
private

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

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

◆ ConvertInputTo()

template<UseReprHintRecording hint = UseReprHintRecording::kRecord>
ValueNode * v8::internal::maglev::MaglevGraphBuilder::ConvertInputTo ( ValueNode * input,
ValueRepresentation expected )
inlineprivate

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

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

◆ CreateArgumentsObject()

VirtualObject * v8::internal::maglev::MaglevGraphBuilder::CreateArgumentsObject ( compiler::MapRef map,
ValueNode * length,
ValueNode * elements,
std::optional< ValueNode * > callee = {} )
private

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

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

◆ CreateBranchBuilder() [1/2]

BranchBuilder v8::internal::maglev::MaglevGraphBuilder::CreateBranchBuilder ( BranchType jump_type = BranchType::kBranchIfTrue)
inlineprivate

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

◆ CreateBranchBuilder() [2/2]

BranchBuilder v8::internal::maglev::MaglevGraphBuilder::CreateBranchBuilder ( MaglevSubGraphBuilder * subgraph,
MaglevSubGraphBuilder::Label * jump_label,
BranchType jump_type = BranchType::kBranchIfTrue )
inlineprivate

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

◆ CreateConsString()

VirtualObject * v8::internal::maglev::MaglevGraphBuilder::CreateConsString ( ValueNode * map,
ValueNode * length,
ValueNode * first,
ValueNode * second )
private

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

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

◆ CreateContext()

VirtualObject * v8::internal::maglev::MaglevGraphBuilder::CreateContext ( compiler::MapRef map,
int length,
compiler::ScopeInfoRef scope_info,
ValueNode * previous_context,
std::optional< ValueNode * > extension = {} )
private

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

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

◆ CreateDoubleFixedArray()

VirtualObject * v8::internal::maglev::MaglevGraphBuilder::CreateDoubleFixedArray ( uint32_t elements_length,
compiler::FixedDoubleArrayRef elements )
private

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

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

◆ CreateEdgeSplitBlock()

BasicBlock * v8::internal::maglev::MaglevGraphBuilder::CreateEdgeSplitBlock ( BasicBlockRef & jump_targets,
BasicBlock * predecessor )
inlineprivate

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

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

◆ CreateFixedArray()

VirtualObject * v8::internal::maglev::MaglevGraphBuilder::CreateFixedArray ( compiler::MapRef map,
int length )
private

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

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

◆ CreateHeapNumber()

VirtualObject * v8::internal::maglev::MaglevGraphBuilder::CreateHeapNumber ( Float64 value)
private

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

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

◆ CreateJSArray()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::CreateJSArray ( compiler::MapRef map,
int instance_size,
ValueNode * length )
private

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

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

◆ CreateJSArrayIterator()

VirtualObject * v8::internal::maglev::MaglevGraphBuilder::CreateJSArrayIterator ( compiler::MapRef map,
ValueNode * iterated_object,
IterationKind kind )
private

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

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

◆ CreateJSConstructor()

VirtualObject * v8::internal::maglev::MaglevGraphBuilder::CreateJSConstructor ( compiler::JSFunctionRef constructor)
private

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

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

◆ CreateJSGeneratorObject()

VirtualObject * v8::internal::maglev::MaglevGraphBuilder::CreateJSGeneratorObject ( compiler::MapRef map,
int instance_size,
ValueNode * context,
ValueNode * closure,
ValueNode * receiver,
ValueNode * register_file )
private

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

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

◆ CreateJSIteratorResult()

VirtualObject * v8::internal::maglev::MaglevGraphBuilder::CreateJSIteratorResult ( compiler::MapRef map,
ValueNode * value,
ValueNode * done )
private

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

Here is the call graph for this function:

◆ CreateJSObject()

VirtualObject * v8::internal::maglev::MaglevGraphBuilder::CreateJSObject ( compiler::MapRef map)
private

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

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

◆ CreateJSStringIterator()

VirtualObject * v8::internal::maglev::MaglevGraphBuilder::CreateJSStringIterator ( compiler::MapRef map,
ValueNode * string )
private

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

Here is the call graph for this function:

◆ CreateMappedArgumentsElements()

VirtualObject * v8::internal::maglev::MaglevGraphBuilder::CreateMappedArgumentsElements ( compiler::MapRef map,
int mapped_count,
ValueNode * context,
ValueNode * unmapped_elements )
private

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

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

◆ CreateNewConstantNode()

template<typename NodeT , typename... Args>
NodeT * v8::internal::maglev::MaglevGraphBuilder::CreateNewConstantNode ( Args &&... args) const
inlineprivate

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

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

◆ CreateRegExpLiteralObject()

VirtualObject * v8::internal::maglev::MaglevGraphBuilder::CreateRegExpLiteralObject ( compiler::MapRef map,
compiler::RegExpBoilerplateDescriptionRef literal )
private

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

Here is the call graph for this function:

◆ CreateVirtualObject()

VirtualObject * v8::internal::maglev::MaglevGraphBuilder::CreateVirtualObject ( compiler::MapRef map,
uint32_t slot_count_including_map )
private

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

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

◆ current_deopt_scope()

const DeoptFrameScope * v8::internal::maglev::MaglevGraphBuilder::current_deopt_scope ( ) const
inline

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

◆ current_interpreter_frame()

const InterpreterFrameState & v8::internal::maglev::MaglevGraphBuilder::current_interpreter_frame ( ) const
inline

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

Here is the caller graph for this function:

◆ DecrementDeadPredecessorAndAccountForPeeling()

void v8::internal::maglev::MaglevGraphBuilder::DecrementDeadPredecessorAndAccountForPeeling ( uint32_t offset)
inlineprivate

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

Here is the caller graph for this function:

◆ DeepCopyVirtualObject()

VirtualObject * v8::internal::maglev::MaglevGraphBuilder::DeepCopyVirtualObject ( VirtualObject * vobj)
private

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

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

◆ DoTryReduceMathRound()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::DoTryReduceMathRound ( CallArguments & args,
Float64Round::Kind kind )
private

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

Here is the call graph for this function:

◆ EmitUnconditionalDeopt()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::EmitUnconditionalDeopt ( DeoptimizeReason reason)
inlineprivate

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

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

◆ EndLoopEffects()

void v8::internal::maglev::MaglevGraphBuilder::EndLoopEffects ( int loop_header)
private

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

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

◆ EndPrologue()

BasicBlock * v8::internal::maglev::MaglevGraphBuilder::EndPrologue ( )

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

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

◆ EnsureInt32() [1/2]

void v8::internal::maglev::MaglevGraphBuilder::EnsureInt32 ( interpreter::Register reg)
inlineprivate

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

◆ EnsureInt32() [2/2]

void v8::internal::maglev::MaglevGraphBuilder::EnsureInt32 ( ValueNode * value,
bool can_be_heap_number = false )
inlineprivate

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

Here is the caller graph for this function:

◆ EnsureType() [1/2]

template<typename Function >
bool v8::internal::maglev::MaglevGraphBuilder::EnsureType ( ValueNode * node,
NodeType type,
Function ensure_new_type )
private

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

Here is the call graph for this function:

◆ EnsureType() [2/2]

bool v8::internal::maglev::MaglevGraphBuilder::EnsureType ( ValueNode * node,
NodeType type,
NodeType * old = nullptr )
private

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

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

◆ EscapeContext()

void v8::internal::maglev::MaglevGraphBuilder::EscapeContext ( )
private

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

Here is the call graph for this function:

◆ ExtendOrReallocateCurrentAllocationBlock()

InlinedAllocation * v8::internal::maglev::MaglevGraphBuilder::ExtendOrReallocateCurrentAllocationBlock ( AllocationType allocation_type,
VirtualObject * value )
private

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

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

◆ fast_hash_combine()

static size_t v8::internal::maglev::MaglevGraphBuilder::fast_hash_combine ( size_t seed,
size_t h )
inlinestaticprivate

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

◆ feedback()

compiler::FeedbackVectorRef v8::internal::maglev::MaglevGraphBuilder::feedback ( ) const
inlineprivate

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

Here is the caller graph for this function:

◆ FeedbackNexusForOperand()

const FeedbackNexus v8::internal::maglev::MaglevGraphBuilder::FeedbackNexusForOperand ( int slot_operand_index) const
inlineprivate

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

Here is the caller graph for this function:

◆ FeedbackNexusForSlot()

const FeedbackNexus v8::internal::maglev::MaglevGraphBuilder::FeedbackNexusForSlot ( FeedbackSlot slot) const
inlineprivate

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

◆ FinishBlock()

template<typename ControlNodeT , typename... Args>
BasicBlock * v8::internal::maglev::MaglevGraphBuilder::FinishBlock ( std::initializer_list< ValueNode * > control_inputs,
Args &&... args )
inlineprivate

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

Here is the caller graph for this function:

◆ FinishInlinedBlockForCaller()

BasicBlock * v8::internal::maglev::MaglevGraphBuilder::FinishInlinedBlockForCaller ( ControlNode * control_node,
ZoneVector< Node * > rem_nodes_in_call_block )

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

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

◆ FlushNodesToBlock()

void v8::internal::maglev::MaglevGraphBuilder::FlushNodesToBlock ( )
inlineprivate

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

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

◆ GetAccumulator()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetAccumulator ( )
inlineprivate

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

Here is the caller graph for this function:

◆ GetAccumulatorHoleyFloat64ForToNumber()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetAccumulatorHoleyFloat64ForToNumber ( NodeType allowed_input_type,
TaggedToFloat64ConversionType conversion_type )
inlineprivate

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

Here is the caller graph for this function:

◆ GetAccumulatorSmi()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::GetAccumulatorSmi ( UseReprHintRecording record_use_repr_hint = UseReprHintRecording::kRecord)
inlineprivate

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

Here is the caller graph for this function:

◆ GetAccumulatorTruncatedInt32ForToNumber()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetAccumulatorTruncatedInt32ForToNumber ( NodeType allowed_input_type,
TaggedToFloat64ConversionType conversion_type )
inlineprivate

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

Here is the caller graph for this function:

◆ GetAccumulatorUint8ClampedForToNumber()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetAccumulatorUint8ClampedForToNumber ( )
inlineprivate

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

Here is the caller graph for this function:

◆ GetArgument()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetArgument ( int i)

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

Here is the call graph for this function:

◆ GetArgumentsAsArrayOfValueNodes()

base::Vector< ValueNode * > v8::internal::maglev::MaglevGraphBuilder::GetArgumentsAsArrayOfValueNodes ( compiler::SharedFunctionInfoRef shared,
const CallArguments & args )
private

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

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

◆ GetBooleanConstant()

RootConstant * v8::internal::maglev::MaglevGraphBuilder::GetBooleanConstant ( bool value)
inlineprivate

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

Here is the caller graph for this function:

◆ GetCallerDeoptFrame()

DeoptFrame * v8::internal::maglev::MaglevGraphBuilder::GetCallerDeoptFrame ( )
private

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

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

◆ GetCatchBlockFrameState()

MergePointInterpreterFrameState * v8::internal::maglev::MaglevGraphBuilder::GetCatchBlockFrameState ( )
inlineprivate

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

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

◆ GetClosure()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetClosure ( ) const
inlineprivate

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

Here is the caller graph for this function:

◆ GetConstant()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetConstant ( compiler::ObjectRef ref)
private

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

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

◆ GetContext()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetContext ( ) const
inlineprivate

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

Here is the caller graph for this function:

◆ GetContextAtDepth()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetContextAtDepth ( ValueNode * context,
size_t depth )
private

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

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

◆ GetConvertReceiver()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetConvertReceiver ( compiler::SharedFunctionInfoRef shared,
const CallArguments & args )
private

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

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

◆ GetCurrentCallFrequency()

float v8::internal::maglev::MaglevGraphBuilder::GetCurrentCallFrequency ( )
inlineprivate

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

Here is the caller graph for this function:

◆ GetCurrentTryCatchBlock()

CatchBlockDetails v8::internal::maglev::MaglevGraphBuilder::GetCurrentTryCatchBlock ( )
inlineprivate

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

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

◆ GetDeoptFrameForEagerCall()

DeoptFrame * v8::internal::maglev::MaglevGraphBuilder::GetDeoptFrameForEagerCall ( const MaglevCompilationUnit * unit,
ValueNode * closure,
base::Vector< ValueNode * > args )
private

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

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

◆ GetDeoptFrameForEntryStackCheck()

InterpretedDeoptFrame v8::internal::maglev::MaglevGraphBuilder::GetDeoptFrameForEntryStackCheck ( )
private

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

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

◆ GetDeoptFrameForLazyDeopt()

DeoptFrame v8::internal::maglev::MaglevGraphBuilder::GetDeoptFrameForLazyDeopt ( interpreter::Register result_location,
int result_size )
private

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

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

◆ GetDeoptFrameForLazyDeoptHelper()

DeoptFrame v8::internal::maglev::MaglevGraphBuilder::GetDeoptFrameForLazyDeoptHelper ( interpreter::Register result_location,
int result_size,
DeoptFrameScope * scope,
bool mark_accumulator_dead )
private

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

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

◆ GetExternalConstant()

ExternalConstant * v8::internal::maglev::MaglevGraphBuilder::GetExternalConstant ( ExternalReference reference)
inlineprivate

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

Here is the call graph for this function:

◆ GetFeedbackCell()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetFeedbackCell ( )
inlineprivate

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

◆ GetFlag16Operand()

uint32_t v8::internal::maglev::MaglevGraphBuilder::GetFlag16Operand ( int operand_index) const
inlineprivate

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

◆ GetFlag8Operand()

uint32_t v8::internal::maglev::MaglevGraphBuilder::GetFlag8Operand ( int operand_index) const
inlineprivate

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

◆ GetFloat64() [1/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetFloat64 ( interpreter::Register reg)
inlineprivate

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

◆ GetFloat64() [2/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetFloat64 ( ValueNode * value)
private

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

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

◆ GetFloat64Constant() [1/2]

Float64Constant * v8::internal::maglev::MaglevGraphBuilder::GetFloat64Constant ( double constant)
inline

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

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

◆ GetFloat64Constant() [2/2]

Float64Constant * v8::internal::maglev::MaglevGraphBuilder::GetFloat64Constant ( Float64 constant)
inline

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

Here is the call graph for this function:

◆ GetFloat64ForToNumber() [1/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetFloat64ForToNumber ( interpreter::Register reg,
NodeType allowed_input_type,
TaggedToFloat64ConversionType conversion_type )
inlineprivate

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

◆ GetFloat64ForToNumber() [2/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetFloat64ForToNumber ( ValueNode * value,
NodeType allowed_input_type,
TaggedToFloat64ConversionType conversion_type )
private

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

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

◆ GetHoleyFloat64ForToNumber() [1/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetHoleyFloat64ForToNumber ( interpreter::Register reg,
NodeType allowed_input_type,
TaggedToFloat64ConversionType conversion_type )
inlineprivate

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

◆ GetHoleyFloat64ForToNumber() [2/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetHoleyFloat64ForToNumber ( ValueNode * value,
NodeType allowed_input_type,
TaggedToFloat64ConversionType conversion_type )
private

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

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

◆ GetInlinedArgument()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetInlinedArgument ( int i)

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

Here is the call graph for this function:

◆ GetInLiveness()

const compiler::BytecodeLivenessState * v8::internal::maglev::MaglevGraphBuilder::GetInLiveness ( ) const
inlineprivate

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

Here is the caller graph for this function:

◆ GetInLivenessFor()

const compiler::BytecodeLivenessState * v8::internal::maglev::MaglevGraphBuilder::GetInLivenessFor ( int offset) const
inlineprivate

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

Here is the caller graph for this function:

◆ GetInt32()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetInt32 ( ValueNode * value,
bool can_be_heap_number = false )
private

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

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

◆ GetInt32Constant()

Int32Constant * v8::internal::maglev::MaglevGraphBuilder::GetInt32Constant ( int32_t constant)
inline

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

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

◆ GetInt32ElementIndex() [1/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetInt32ElementIndex ( interpreter::Register reg)
inlineprivate

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

Here is the caller graph for this function:

◆ GetInt32ElementIndex() [2/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetInt32ElementIndex ( ValueNode * index_object)
private

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

Here is the call graph for this function:

◆ GetInternalizedString()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetInternalizedString ( interpreter::Register reg)
private

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

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

◆ GetLatestCheckpointedFrame()

DeoptFrame v8::internal::maglev::MaglevGraphBuilder::GetLatestCheckpointedFrame ( )

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

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

◆ GetModifiableObjectFromAllocation()

VirtualObject * v8::internal::maglev::MaglevGraphBuilder::GetModifiableObjectFromAllocation ( InlinedAllocation * allocation)
private

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

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

◆ GetNumberConstant()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetNumberConstant ( double constant)

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

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

◆ GetObjectFromAllocation()

VirtualObject * v8::internal::maglev::MaglevGraphBuilder::GetObjectFromAllocation ( InlinedAllocation * allocation)
private

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

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

◆ GetOrCreateInfoFor()

NodeInfo * v8::internal::maglev::MaglevGraphBuilder::GetOrCreateInfoFor ( ValueNode * node)
inlineprivate

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

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

◆ GetOutLiveness()

const compiler::BytecodeLivenessState * v8::internal::maglev::MaglevGraphBuilder::GetOutLiveness ( ) const
inlineprivate

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

Here is the caller graph for this function:

◆ GetOutLivenessFor()

const compiler::BytecodeLivenessState * v8::internal::maglev::MaglevGraphBuilder::GetOutLivenessFor ( int offset) const
inlineprivate

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

◆ GetRefOperand()

template<class T >
requires (is_taggable_v<T>)
compiler::ref_traits< T >::ref_type v8::internal::maglev::MaglevGraphBuilder::GetRefOperand ( int operand_index)
inlineprivate

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

◆ GetRegisterInput()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetRegisterInput ( Register reg)
inlineprivate

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

Here is the caller graph for this function:

◆ GetResultLocationAndSize()

std::pair< interpreter::Register, int > v8::internal::maglev::MaglevGraphBuilder::GetResultLocationAndSize ( ) const
private

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

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

◆ GetRootConstant()

RootConstant * v8::internal::maglev::MaglevGraphBuilder::GetRootConstant ( RootIndex index)
inlineprivate

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

Here is the caller graph for this function:

◆ GetSecondValue()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetSecondValue ( ValueNode * result)
inlineprivate

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

Here is the call graph for this function:

◆ GetSilencedNaN()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetSilencedNaN ( ValueNode * value)
inlineprivate

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

Here is the caller graph for this function:

◆ GetSlotOperand()

FeedbackSlot v8::internal::maglev::MaglevGraphBuilder::GetSlotOperand ( int operand_index) const
inlineprivate

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

Here is the caller graph for this function:

◆ GetSmiConstant()

SmiConstant * v8::internal::maglev::MaglevGraphBuilder::GetSmiConstant ( int constant) const
inline

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

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

◆ GetSmiValue() [1/2]

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::GetSmiValue ( interpreter::Register reg,
UseReprHintRecording record_use_repr_hint = UseReprHintRecording::kRecord )
inlineprivate

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

◆ GetSmiValue() [2/2]

ReduceResult v8::internal::maglev::MaglevGraphBuilder::GetSmiValue ( ValueNode * value,
UseReprHintRecording record_use_repr_hint = UseReprHintRecording::kRecord )
private

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

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

◆ GetTaggedIndexConstant()

TaggedIndexConstant * v8::internal::maglev::MaglevGraphBuilder::GetTaggedIndexConstant ( int constant)
inline

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

Here is the call graph for this function:

◆ GetTaggedValue() [1/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetTaggedValue ( interpreter::Register reg,
UseReprHintRecording record_use_repr_hint = UseReprHintRecording::kRecord )
inlineprivate

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

◆ GetTaggedValue() [2/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetTaggedValue ( ValueNode * value,
UseReprHintRecording record_use_repr_hint = UseReprHintRecording::kRecord )
private

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

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

◆ GetTruncatedInt32ForToNumber() [1/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetTruncatedInt32ForToNumber ( interpreter::Register reg,
NodeType allowed_input_type,
TaggedToFloat64ConversionType conversion_type )
inlineprivate

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

◆ GetTruncatedInt32ForToNumber() [2/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetTruncatedInt32ForToNumber ( ValueNode * value,
NodeType allowed_input_type,
TaggedToFloat64ConversionType conversion_type )
private

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

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

◆ GetTrustedConstant()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetTrustedConstant ( compiler::HeapObjectRef ref,
IndirectPointerTag tag )
private

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

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

◆ GetTryCatchBlockFromInfo()

CatchBlockDetails v8::internal::maglev::MaglevGraphBuilder::GetTryCatchBlockFromInfo ( ExceptionHandlerInfo * info)
inlineprivate

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

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

◆ GetType()

NodeType v8::internal::maglev::MaglevGraphBuilder::GetType ( ValueNode * node)
private

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

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

◆ GetUint32Constant()

Uint32Constant * v8::internal::maglev::MaglevGraphBuilder::GetUint32Constant ( int constant)
inline

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

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

◆ GetUint32ElementIndex() [1/2]

ReduceResult v8::internal::maglev::MaglevGraphBuilder::GetUint32ElementIndex ( interpreter::Register reg)
inlineprivate

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

Here is the caller graph for this function:

◆ GetUint32ElementIndex() [2/2]

ReduceResult v8::internal::maglev::MaglevGraphBuilder::GetUint32ElementIndex ( ValueNode * index_object)
private

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

Here is the call graph for this function:

◆ GetUint8ClampedForToNumber() [1/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetUint8ClampedForToNumber ( interpreter::Register reg)
inlineprivate

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

◆ GetUint8ClampedForToNumber() [2/2]

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetUint8ClampedForToNumber ( ValueNode * value)
private

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

Here is the call graph for this function:

◆ GetValueOrUndefined()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::GetValueOrUndefined ( ValueNode * maybe_value)
inlineprivate

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

Here is the caller graph for this function:

◆ graph()

Graph * v8::internal::maglev::MaglevGraphBuilder::graph ( ) const
inline

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

Here is the caller graph for this function:

◆ graph_labeller()

MaglevGraphLabeller * v8::internal::maglev::MaglevGraphBuilder::graph_labeller ( ) const
inline

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

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

◆ gvn_hash_value() [1/8]

static size_t v8::internal::maglev::MaglevGraphBuilder::gvn_hash_value ( const compiler::MapRef & map)
inlinestaticprivate

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

◆ gvn_hash_value() [2/8]

static size_t v8::internal::maglev::MaglevGraphBuilder::gvn_hash_value ( const ExternalReference & ref)
inlinestaticprivate

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

Here is the call graph for this function:

◆ gvn_hash_value() [3/8]

static size_t v8::internal::maglev::MaglevGraphBuilder::gvn_hash_value ( const interpreter::Register & reg)
inlinestaticprivate

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

Here is the call graph for this function:

◆ gvn_hash_value() [4/8]

static size_t v8::internal::maglev::MaglevGraphBuilder::gvn_hash_value ( const PolymorphicAccessInfo & access_info)
inlinestaticprivate

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

Here is the call graph for this function:

◆ gvn_hash_value() [5/8]

static size_t v8::internal::maglev::MaglevGraphBuilder::gvn_hash_value ( const Representation & rep)
inlinestaticprivate

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

Here is the call graph for this function:

◆ gvn_hash_value() [6/8]

template<typename T >
static size_t v8::internal::maglev::MaglevGraphBuilder::gvn_hash_value ( const T & in)
inlinestaticprivate

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

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

◆ gvn_hash_value() [7/8]

template<typename T >
static size_t v8::internal::maglev::MaglevGraphBuilder::gvn_hash_value ( const v8::internal::ZoneCompactSet< T > & vector)
inlinestaticprivate

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

Here is the call graph for this function:

◆ gvn_hash_value() [8/8]

template<typename T >
static size_t v8::internal::maglev::MaglevGraphBuilder::gvn_hash_value ( const v8::internal::ZoneVector< T > & vector)
inlinestaticprivate

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

Here is the call graph for this function:

◆ has_graph_labeller()

bool v8::internal::maglev::MaglevGraphBuilder::has_graph_labeller ( ) const
inline

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

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

◆ HasDisjointType()

bool v8::internal::maglev::MaglevGraphBuilder::HasDisjointType ( ValueNode * lhs,
NodeType rhs_type )
private

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

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

◆ HasValidInitialMap()

bool v8::internal::maglev::MaglevGraphBuilder::HasValidInitialMap ( compiler::JSFunctionRef new_target,
compiler::JSFunctionRef constructor )
private

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

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

◆ HaveDisjointTypes()

bool v8::internal::maglev::MaglevGraphBuilder::HaveDisjointTypes ( ValueNode * lhs,
ValueNode * rhs )
private

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

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

◆ in_optimistic_peeling_iteration()

bool v8::internal::maglev::MaglevGraphBuilder::in_optimistic_peeling_iteration ( ) const
inlineprivate

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

Here is the caller graph for this function:

◆ in_peeled_iteration()

bool v8::internal::maglev::MaglevGraphBuilder::in_peeled_iteration ( ) const
inlineprivate

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

Here is the caller graph for this function:

◆ InferHasInPrototypeChain()

MaglevGraphBuilder::InferHasInPrototypeChainResult v8::internal::maglev::MaglevGraphBuilder::InferHasInPrototypeChain ( ValueNode * receiver,
compiler::HeapObjectRef prototype )
private

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

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

◆ InitializePredecessorCount()

void v8::internal::maglev::MaglevGraphBuilder::InitializePredecessorCount ( uint32_t offset,
int amount )
inlineprivate

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

Here is the caller graph for this function:

◆ InitializeRegister()

void v8::internal::maglev::MaglevGraphBuilder::InitializeRegister ( interpreter::Register reg,
ValueNode * value )

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

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

◆ inline_exit_offset()

int v8::internal::maglev::MaglevGraphBuilder::inline_exit_offset ( ) const
inlineprivate

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

Here is the caller graph for this function:

◆ inlining_depth()

int v8::internal::maglev::MaglevGraphBuilder::inlining_depth ( ) const
inline

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

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

◆ is_eager_inline()

bool v8::internal::maglev::MaglevGraphBuilder::is_eager_inline ( ) const
inline

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

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

◆ is_inline()

bool v8::internal::maglev::MaglevGraphBuilder::is_inline ( ) const
inline

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

Here is the caller graph for this function:

◆ is_loop_effect_tracking()

bool v8::internal::maglev::MaglevGraphBuilder::is_loop_effect_tracking ( )
inlineprivate

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

Here is the caller graph for this function:

◆ is_loop_effect_tracking_enabled()

bool v8::internal::maglev::MaglevGraphBuilder::is_loop_effect_tracking_enabled ( )
inlineprivate

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

Here is the caller graph for this function:

◆ is_non_eager_inlining_enabled()

bool v8::internal::maglev::MaglevGraphBuilder::is_non_eager_inlining_enabled ( ) const
inline

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

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

◆ is_turbolev()

bool v8::internal::maglev::MaglevGraphBuilder::is_turbolev ( ) const
inline

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

Here is the caller graph for this function:

◆ IsInsideLoop()

bool v8::internal::maglev::MaglevGraphBuilder::IsInsideLoop ( ) const
inlineprivate

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

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

◆ IsInsideTryBlock()

bool v8::internal::maglev::MaglevGraphBuilder::IsInsideTryBlock ( ) const
inlineprivate

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

Here is the caller graph for this function:

◆ IsOffsetAMergePoint()

bool v8::internal::maglev::MaglevGraphBuilder::IsOffsetAMergePoint ( int offset)
inlineprivate

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

◆ IsRegisterEqualToAccumulator()

bool v8::internal::maglev::MaglevGraphBuilder::IsRegisterEqualToAccumulator ( int operand_index)
inlineprivate

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

Here is the caller graph for this function:

◆ KillPeeledLoopTargets()

void v8::internal::maglev::MaglevGraphBuilder::KillPeeledLoopTargets ( int peelings)
inlineprivate

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

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

◆ known_node_aspects()

KnownNodeAspects & v8::internal::maglev::MaglevGraphBuilder::known_node_aspects ( )
inlineprivate

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

Here is the caller graph for this function:

◆ LoadAndCacheContextSlot()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::LoadAndCacheContextSlot ( ValueNode * context,
int offset,
ContextSlotMutability slot_mutability,
ContextKind context_kind )
private

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

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

◆ LoadRegister()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::LoadRegister ( int operand_index)
inlineprivate

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

Here is the caller graph for this function:

◆ LoadRegisterHoleyFloat64ForToNumber()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::LoadRegisterHoleyFloat64ForToNumber ( int operand_index,
NodeType allowed_input_type,
TaggedToFloat64ConversionType conversion_type )
inlineprivate

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

Here is the caller graph for this function:

◆ local_isolate()

LocalIsolate * v8::internal::maglev::MaglevGraphBuilder::local_isolate ( ) const
inline

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

Here is the caller graph for this function:

◆ MaglevIsTopTier()

bool v8::internal::maglev::MaglevGraphBuilder::MaglevIsTopTier ( ) const
inlineprivate

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

Here is the caller graph for this function:

◆ MarkBranchDeadAndJumpIfNeeded()

void v8::internal::maglev::MaglevGraphBuilder::MarkBranchDeadAndJumpIfNeeded ( bool is_jump_taken)
private

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

Here is the call graph for this function:

◆ MarkBytecodeDead()

void v8::internal::maglev::MaglevGraphBuilder::MarkBytecodeDead ( )
inlineprivate

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

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

◆ MarkNodeDead()

void v8::internal::maglev::MaglevGraphBuilder::MarkNodeDead ( Node * node)
inlineprivate

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

Here is the caller graph for this function:

◆ MarkPossibleSideEffect()

template<typename NodeT >
void v8::internal::maglev::MaglevGraphBuilder::MarkPossibleSideEffect ( NodeT * node)
inlineprivate

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

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

◆ max_inlined_bytecode_size()

int v8::internal::maglev::MaglevGraphBuilder::max_inlined_bytecode_size ( )
inline

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

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

◆ max_inlined_bytecode_size_cumulative()

int v8::internal::maglev::MaglevGraphBuilder::max_inlined_bytecode_size_cumulative ( )
inline

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

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

◆ max_inlined_bytecode_size_small()

int v8::internal::maglev::MaglevGraphBuilder::max_inlined_bytecode_size_small ( )
inline

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

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

◆ MayBeNullOrUndefined()

bool v8::internal::maglev::MaglevGraphBuilder::MayBeNullOrUndefined ( ValueNode * node)
private

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

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

◆ MergeDeadIntoFrameState()

void v8::internal::maglev::MaglevGraphBuilder::MergeDeadIntoFrameState ( int target)
private

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

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

◆ MergeDeadLoopIntoFrameState()

void v8::internal::maglev::MaglevGraphBuilder::MergeDeadLoopIntoFrameState ( int target)
private

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

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

◆ MergeIntoFrameState()

void v8::internal::maglev::MaglevGraphBuilder::MergeIntoFrameState ( BasicBlock * block,
int target )
private

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

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

◆ MergeIntoInlinedReturnFrameState()

void v8::internal::maglev::MaglevGraphBuilder::MergeIntoInlinedReturnFrameState ( BasicBlock * block)
private

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

Here is the call graph for this function:

◆ min_inlining_frequency()

float v8::internal::maglev::MaglevGraphBuilder::min_inlining_frequency ( )
inline

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

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

◆ MinimizeContextChainDepth()

void v8::internal::maglev::MaglevGraphBuilder::MinimizeContextChainDepth ( ValueNode ** context,
size_t * depth )
private

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

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

◆ MoveNodeBetweenRegisters()

void v8::internal::maglev::MaglevGraphBuilder::MoveNodeBetweenRegisters ( interpreter::Register src,
interpreter::Register dst )
inlineprivate

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

◆ need_checkpointed_loop_entry()

bool v8::internal::maglev::MaglevGraphBuilder::need_checkpointed_loop_entry ( )
inline

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

Here is the caller graph for this function:

◆ NegateBranchType()

static BranchType v8::internal::maglev::MaglevGraphBuilder::NegateBranchType ( BranchType jump_type)
inlinestaticprivate

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

◆ NewObjectId()

uint32_t v8::internal::maglev::MaglevGraphBuilder::NewObjectId ( )
inline

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

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

◆ next_offset()

int v8::internal::maglev::MaglevGraphBuilder::next_offset ( ) const
inlineprivate

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

Here is the caller graph for this function:

◆ node_buffer()

ZoneVector< Node * > & v8::internal::maglev::MaglevGraphBuilder::node_buffer ( )
inline

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

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

◆ OsrAnalyzePrequel()

void v8::internal::maglev::MaglevGraphBuilder::OsrAnalyzePrequel ( )

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

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

◆ parameter_count()

int v8::internal::maglev::MaglevGraphBuilder::parameter_count ( ) const
inlineprivate

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

Here is the caller graph for this function:

◆ parameter_count_without_receiver()

int v8::internal::maglev::MaglevGraphBuilder::parameter_count_without_receiver ( ) const
inlineprivate

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

Here is the caller graph for this function:

◆ PeelLoop()

void v8::internal::maglev::MaglevGraphBuilder::PeelLoop ( )

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

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

◆ predecessor_count()

uint32_t v8::internal::maglev::MaglevGraphBuilder::predecessor_count ( uint32_t offset)
inlineprivate

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

Here is the caller graph for this function:

◆ Print() [1/3]

void v8::internal::maglev::MaglevGraphBuilder::Print ( const char * str)
inlineprivate

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

◆ Print() [2/3]

void v8::internal::maglev::MaglevGraphBuilder::Print ( const char * str,
ValueNode * value )
inlineprivate

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

◆ Print() [3/3]

void v8::internal::maglev::MaglevGraphBuilder::Print ( ValueNode * value)
inlineprivate

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

◆ PrintVirtualObjects()

void v8::internal::maglev::MaglevGraphBuilder::PrintVirtualObjects ( )
inlineprivate

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

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

◆ ProcessMergePoint()

void v8::internal::maglev::MaglevGraphBuilder::ProcessMergePoint ( int offset,
bool preserve_known_node_aspects )
inlineprivate

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

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

◆ ProcessMergePointAtExceptionHandlerStart()

void v8::internal::maglev::MaglevGraphBuilder::ProcessMergePointAtExceptionHandlerStart ( int offset)
inlineprivate

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

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

◆ ProcessMergePointPredecessors()

void v8::internal::maglev::MaglevGraphBuilder::ProcessMergePointPredecessors ( MergePointInterpreterFrameState & merge_state,
BasicBlockRef & jump_targets )
inlineprivate

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

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

◆ RecordKnownProperty()

void v8::internal::maglev::MaglevGraphBuilder::RecordKnownProperty ( ValueNode * lookup_start_object,
KnownNodeAspects::LoadedPropertyMapKey key,
ValueNode * value,
bool is_const,
compiler::AccessMode access_mode )
private

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

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

◆ RecordUseReprHint() [1/2]

void v8::internal::maglev::MaglevGraphBuilder::RecordUseReprHint ( Phi * phi,
UseRepresentation repr )
inline

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

Here is the call graph for this function:

◆ RecordUseReprHint() [2/2]

void v8::internal::maglev::MaglevGraphBuilder::RecordUseReprHint ( Phi * phi,
UseRepresentationSet reprs )
inline

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

Here is the caller graph for this function:

◆ RecordUseReprHintIfPhi()

void v8::internal::maglev::MaglevGraphBuilder::RecordUseReprHintIfPhi ( ValueNode * node,
UseRepresentation repr )
inline

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

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

◆ ReduceCall()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::ReduceCall ( ValueNode * target_node,
CallArguments & args,
const compiler::FeedbackSource & feedback_source = compiler::FeedbackSource() )
private

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

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

◆ ReduceCallWithArrayLike()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::ReduceCallWithArrayLike ( ValueNode * target_node,
CallArguments & args,
const compiler::FeedbackSource & feedback_source )
private

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

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

◆ ReduceCallWithArrayLikeForArgumentsObject()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::ReduceCallWithArrayLikeForArgumentsObject ( ValueNode * target_node,
CallArguments & args,
VirtualObject * arguments_object,
const compiler::FeedbackSource & feedback_source )
private

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

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

◆ register_count()

int v8::internal::maglev::MaglevGraphBuilder::register_count ( ) const
inlineprivate

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

Here is the caller graph for this function:

◆ RegisterPhisWithGraphLabeller()

void v8::internal::maglev::MaglevGraphBuilder::RegisterPhisWithGraphLabeller ( MergePointInterpreterFrameState & merge_state)
inlineprivate

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

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

◆ ResetBuilderCachedState()

template<bool is_possible_map_change = true>
void v8::internal::maglev::MaglevGraphBuilder::ResetBuilderCachedState ( )
inlineprivate

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

Here is the caller graph for this function:

◆ RuntimeFunctionCanThrow()

bool v8::internal::maglev::MaglevGraphBuilder::RuntimeFunctionCanThrow ( Runtime::FunctionId function_id)
inlineconstexprprivate

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

◆ Select()

template<typename FCond , typename FTrue , typename FFalse >
ValueNode * v8::internal::maglev::MaglevGraphBuilder::Select ( FCond cond,
FTrue if_true,
FFalse if_false )
private

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

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

◆ SelectReduction()

template<typename FCond , typename FTrue , typename FFalse >
MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::SelectReduction ( FCond cond,
FTrue if_true,
FFalse if_false )
private

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

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

◆ set_current_block()

void v8::internal::maglev::MaglevGraphBuilder::set_current_block ( BasicBlock * block)
inline

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

Here is the caller graph for this function:

◆ SetAccumulator()

template<typename NodeT >
void v8::internal::maglev::MaglevGraphBuilder::SetAccumulator ( NodeT * node)
inlineprivate

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

Here is the caller graph for this function:

◆ SetAccumulatorInBranch()

void v8::internal::maglev::MaglevGraphBuilder::SetAccumulatorInBranch ( ValueNode * value)
inlineprivate

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

◆ SetArgument()

void v8::internal::maglev::MaglevGraphBuilder::SetArgument ( int i,
ValueNode * value )

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

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

◆ SetContext()

void v8::internal::maglev::MaglevGraphBuilder::SetContext ( ValueNode * context)
inlineprivate

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

◆ SetKnownValue()

void v8::internal::maglev::MaglevGraphBuilder::SetKnownValue ( ValueNode * node,
compiler::ObjectRef constant,
NodeType new_node_type )
private

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

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

◆ SetNodeInputs()

template<typename NodeT >
void v8::internal::maglev::MaglevGraphBuilder::SetNodeInputs ( NodeT * node,
std::initializer_list< ValueNode * > inputs )
inlineprivate

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

Here is the caller graph for this function:

◆ ShouldEagerInlineCall()

bool v8::internal::maglev::MaglevGraphBuilder::ShouldEagerInlineCall ( compiler::SharedFunctionInfoRef shared)
private

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

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

◆ ShouldEmitInterruptBudgetChecks()

bool v8::internal::maglev::MaglevGraphBuilder::ShouldEmitInterruptBudgetChecks ( )
inlineprivate

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

Here is the call graph for this function:

◆ ShouldEmitOsrInterruptBudgetChecks()

bool v8::internal::maglev::MaglevGraphBuilder::ShouldEmitOsrInterruptBudgetChecks ( )
inlineprivate

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

Here is the call graph for this function:

◆ ShouldRecordUseReprHint()

template<typename NodeT >
static constexpr UseReprHintRecording v8::internal::maglev::MaglevGraphBuilder::ShouldRecordUseReprHint ( )
inlinestaticconstexprprivate

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

Here is the caller graph for this function:

◆ StartFallthroughBlock()

void v8::internal::maglev::MaglevGraphBuilder::StartFallthroughBlock ( int next_block_offset,
BasicBlock * predecessor )
inlineprivate

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

Here is the caller graph for this function:

◆ StartNewBlock() [1/2]

void v8::internal::maglev::MaglevGraphBuilder::StartNewBlock ( BasicBlock * predecessor,
MergePointInterpreterFrameState * merge_state,
BasicBlockRef & refs_to_block )
inlineprivate

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

Here is the call graph for this function:

◆ StartNewBlock() [2/2]

void v8::internal::maglev::MaglevGraphBuilder::StartNewBlock ( int offset,
BasicBlock * predecessor )
inlineprivate

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

Here is the caller graph for this function:

◆ StartPrologue()

void v8::internal::maglev::MaglevGraphBuilder::StartPrologue ( )

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

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

◆ StoreAndCacheContextSlot()

ReduceResult v8::internal::maglev::MaglevGraphBuilder::StoreAndCacheContextSlot ( ValueNode * context,
int index,
ValueNode * value,
ContextKind context_kind )
private

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

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

◆ StoreRegister()

template<typename NodeT >
void v8::internal::maglev::MaglevGraphBuilder::StoreRegister ( interpreter::Register target,
NodeT * value )
inlineprivate

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

Here is the caller graph for this function:

◆ StoreRegisterPair()

template<typename NodeT >
void v8::internal::maglev::MaglevGraphBuilder::StoreRegisterPair ( std::pair< interpreter::Register, interpreter::Register > target,
NodeT * value )
inlineprivate

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

Here is the call graph for this function:

◆ StringLengthStaticLowerBound()

size_t v8::internal::maglev::MaglevGraphBuilder::StringLengthStaticLowerBound ( ValueNode * string,
int max_depth = 2 )
private

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

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

◆ TargetIsCurrentCompilingUnit()

bool v8::internal::maglev::MaglevGraphBuilder::TargetIsCurrentCompilingUnit ( compiler::JSFunctionRef target)
private

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

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

◆ TopLevelFunctionPassMaglevPrintFilter()

bool v8::internal::maglev::MaglevGraphBuilder::TopLevelFunctionPassMaglevPrintFilter ( )

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

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

◆ TryBuildAndAllocateJSGeneratorObject()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildAndAllocateJSGeneratorObject ( ValueNode * closure,
ValueNode * receiver )
private

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

Here is the call graph for this function:

◆ TryBuildCallKnownApiFunction()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildCallKnownApiFunction ( compiler::JSFunctionRef function,
compiler::SharedFunctionInfoRef shared,
CallArguments & args )
private

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

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

◆ TryBuildCallKnownJSFunction() [1/2]

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildCallKnownJSFunction ( compiler::JSFunctionRef function,
ValueNode * new_target,
CallArguments & args,
const compiler::FeedbackSource & feedback_source )
private

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

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

◆ TryBuildCallKnownJSFunction() [2/2]

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildCallKnownJSFunction ( ValueNode * context,
ValueNode * function,
ValueNode * new_target,
compiler::SharedFunctionInfoRef shared,
compiler::FeedbackCellRef feedback_cell,
CallArguments & args,
const compiler::FeedbackSource & feedback_source )
private

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

Here is the call graph for this function:

◆ TryBuildCheckInt32Condition()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildCheckInt32Condition ( ValueNode * lhs,
ValueNode * rhs,
AssertCondition condition,
DeoptimizeReason reason,
bool allow_unconditional_deopt = true )
private

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

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

◆ TryBuildElementAccess()

template<typename GenericAccessFunc >
MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildElementAccess ( ValueNode * object,
ValueNode * index,
compiler::ElementAccessFeedback const & feedback,
compiler::FeedbackSource const & feedback_source,
GenericAccessFunc && build_generic_access )
private

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

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

◆ TryBuildElementAccessOnJSArrayOrJSObject()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildElementAccessOnJSArrayOrJSObject ( ValueNode * object,
ValueNode * index,
const compiler::ElementAccessInfo & access_info,
compiler::KeyedAccessMode const & keyed_mode )
private

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

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

◆ TryBuildElementAccessOnString()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildElementAccessOnString ( ValueNode * object,
ValueNode * index,
compiler::KeyedAccessMode const & keyed_mode )
private

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

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

◆ TryBuildElementAccessOnTypedArray()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildElementAccessOnTypedArray ( ValueNode * object,
ValueNode * index,
const compiler::ElementAccessInfo & access_info,
compiler::KeyedAccessMode const & keyed_mode )
private

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

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

◆ TryBuildElementLoadOnJSArrayOrJSObject()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildElementLoadOnJSArrayOrJSObject ( ValueNode * object,
ValueNode * index,
base::Vector< const compiler::MapRef > maps,
ElementsKind kind,
KeyedAccessLoadMode load_mode )
private

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

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

◆ TryBuildElementStoreOnJSArrayOrJSObject()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildElementStoreOnJSArrayOrJSObject ( ValueNode * object,
ValueNode * index_object,
ValueNode * value,
base::Vector< const compiler::MapRef > maps,
ElementsKind kind,
const compiler::KeyedAccessMode & keyed_mode )
private

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

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

◆ TryBuildFastCreateObjectOrArrayLiteral()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildFastCreateObjectOrArrayLiteral ( const compiler::LiteralFeedback & feedback)
private

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

Here is the call graph for this function:

◆ TryBuildFastHasInPrototypeChain()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildFastHasInPrototypeChain ( ValueNode * object,
compiler::HeapObjectRef prototype )
private

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

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

◆ TryBuildFastInstanceOf()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildFastInstanceOf ( ValueNode * object,
compiler::JSObjectRef callable_ref,
ValueNode * callable_node )
private

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

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

◆ TryBuildFastInstanceOfWithFeedback()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildFastInstanceOfWithFeedback ( ValueNode * object,
ValueNode * callable,
compiler::FeedbackSource feedback_source )
private

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

Here is the call graph for this function:

◆ TryBuildFastOrdinaryHasInstance()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildFastOrdinaryHasInstance ( ValueNode * object,
compiler::JSObjectRef callable,
ValueNode * callable_node )
private

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

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

◆ TryBuildFindNonDefaultConstructorOrConstruct()

bool v8::internal::maglev::MaglevGraphBuilder::TryBuildFindNonDefaultConstructorOrConstruct ( ValueNode * this_function,
ValueNode * new_target,
std::pair< interpreter::Register, interpreter::Register > result )
private

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

Here is the call graph for this function:

◆ TryBuildGetKeyedPropertyWithEnumeratedKey()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildGetKeyedPropertyWithEnumeratedKey ( ValueNode * object,
const compiler::FeedbackSource & feedback_source,
const compiler::ProcessedFeedback & processed_feedback )
private

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

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

◆ TryBuildGlobalLoad()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildGlobalLoad ( const compiler::GlobalAccessFeedback & global_access_feedback)
private

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

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

◆ TryBuildGlobalStore()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildGlobalStore ( const compiler::GlobalAccessFeedback & global_access_feedback)
private

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

Here is the call graph for this function:

◆ TryBuildInlineCall()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildInlineCall ( ValueNode * context,
ValueNode * function,
ValueNode * new_target,
compiler::SharedFunctionInfoRef shared,
compiler::FeedbackCellRef feedback_cell,
CallArguments & args,
const compiler::FeedbackSource & feedback_source )
private

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

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

◆ TryBuildInlinedAllocatedContext()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildInlinedAllocatedContext ( compiler::MapRef map,
compiler::ScopeInfoRef scope,
int context_length )
private

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

Here is the call graph for this function:

◆ TryBuildLoadDataView()

template<typename LoadNode >
MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildLoadDataView ( const CallArguments & args,
ExternalArrayType type )
private

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

Here is the call graph for this function:

◆ TryBuildLoadNamedProperty() [1/2]

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildLoadNamedProperty ( ValueNode * receiver,
compiler::NameRef name,
compiler::FeedbackSource & feedback_source )
private

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

Here is the call graph for this function:

◆ TryBuildLoadNamedProperty() [2/2]

template<typename GenericAccessFunc >
MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildLoadNamedProperty ( ValueNode * receiver,
ValueNode * lookup_start_object,
compiler::NameRef name,
compiler::FeedbackSource & feedback_source,
GenericAccessFunc && build_generic_access )
private

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

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

◆ TryBuildNamedAccess()

template<typename GenericAccessFunc >
MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildNamedAccess ( ValueNode * receiver,
ValueNode * lookup_start_object,
compiler::NamedAccessFeedback const & feedback,
compiler::FeedbackSource const & feedback_source,
compiler::AccessMode access_mode,
GenericAccessFunc && build_generic_access )
private

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

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

◆ TryBuildNewConsString()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildNewConsString ( ValueNode * left,
ValueNode * right,
AllocationType allocation_type = AllocationType::kYoung )
private

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

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

◆ TryBuildPolymorphicElementAccess()

template<typename GenericAccessFunc >
MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildPolymorphicElementAccess ( ValueNode * object,
ValueNode * index,
const compiler::KeyedAccessMode & keyed_mode,
const ZoneVector< compiler::ElementAccessInfo > & access_infos,
GenericAccessFunc && build_generic_access )
private

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

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

◆ TryBuildPolymorphicPropertyAccess()

template<typename GenericAccessFunc >
MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::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 )
private

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

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

◆ TryBuildPropertyAccess()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildPropertyAccess ( ValueNode * receiver,
ValueNode * lookup_start_object,
compiler::NameRef name,
compiler::PropertyAccessInfo const & access_info,
compiler::AccessMode access_mode )
private

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

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

◆ TryBuildPropertyCellLoad()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildPropertyCellLoad ( const compiler::GlobalAccessFeedback & global_access_feedback)
private

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

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

◆ TryBuildPropertyCellStore()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildPropertyCellStore ( const compiler::GlobalAccessFeedback & global_access_feedback)
private

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

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

◆ TryBuildPropertyGetterCall()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildPropertyGetterCall ( compiler::PropertyAccessInfo const & access_info,
ValueNode * receiver,
ValueNode * lookup_start_object )
private

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

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

◆ TryBuildPropertyLoad()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildPropertyLoad ( ValueNode * receiver,
ValueNode * lookup_start_object,
compiler::NameRef name,
compiler::PropertyAccessInfo const & access_info )
private

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

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

◆ TryBuildPropertySetterCall()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildPropertySetterCall ( compiler::PropertyAccessInfo const & access_info,
ValueNode * receiver,
ValueNode * lookup_start_object,
ValueNode * value )
private

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

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

◆ TryBuildPropertyStore()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildPropertyStore ( ValueNode * receiver,
ValueNode * lookup_start_object,
compiler::NameRef name,
compiler::PropertyAccessInfo const & access_info,
compiler::AccessMode access_mode )
private

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

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

◆ TryBuildScriptContextConstantLoad()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildScriptContextConstantLoad ( const compiler::GlobalAccessFeedback & global_access_feedback)
private

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

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

◆ TryBuildScriptContextLoad()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildScriptContextLoad ( const compiler::GlobalAccessFeedback & global_access_feedback)
private

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

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

◆ TryBuildScriptContextStore()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildScriptContextStore ( const compiler::GlobalAccessFeedback & global_access_feedback)
private

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

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

◆ TryBuildStoreDataView()

template<typename StoreNode , typename Function >
MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildStoreDataView ( const CallArguments & args,
ExternalArrayType type,
Function && getValue )
private

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

Here is the call graph for this function:

◆ TryBuildStoreField()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryBuildStoreField ( compiler::PropertyAccessInfo const & access_info,
ValueNode * receiver,
compiler::AccessMode access_mode )
private

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

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

◆ TryBuildStoreTaggedFieldToAllocation()

void v8::internal::maglev::MaglevGraphBuilder::TryBuildStoreTaggedFieldToAllocation ( ValueNode * object,
ValueNode * value,
int offset )
private

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

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

◆ TryFoldFloat64BinaryOperationForToNumber() [1/2]

template<Operation kOperation>
MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryFoldFloat64BinaryOperationForToNumber ( TaggedToFloat64ConversionType conversion_type,
ValueNode * left,
double cst_right )
private

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

Here is the call graph for this function:

◆ TryFoldFloat64BinaryOperationForToNumber() [2/2]

template<Operation kOperation>
MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryFoldFloat64BinaryOperationForToNumber ( TaggedToFloat64ConversionType conversion_type,
ValueNode * left,
ValueNode * right )
private

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

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

◆ TryFoldFloat64UnaryOperationForToNumber()

template<Operation kOperation>
MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryFoldFloat64UnaryOperationForToNumber ( TaggedToFloat64ConversionType conversion_type,
ValueNode * value )
private

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

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

◆ TryFoldInt32BinaryOperation() [1/2]

template<Operation kOperation>
MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryFoldInt32BinaryOperation ( ValueNode * left,
int32_t cst_right )
private

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

Here is the call graph for this function:

◆ TryFoldInt32BinaryOperation() [2/2]

template<Operation kOperation>
MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryFoldInt32BinaryOperation ( ValueNode * left,
ValueNode * right )
private

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

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

◆ TryFoldInt32UnaryOperation()

template<Operation kOperation>
MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryFoldInt32UnaryOperation ( ValueNode * value)
private

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

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

◆ TryFoldLoadConstantDataField()

compiler::OptionalObjectRef v8::internal::maglev::MaglevGraphBuilder::TryFoldLoadConstantDataField ( compiler::JSObjectRef holder,
compiler::PropertyAccessInfo const & access_info )
private

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

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

◆ TryFoldLoadConstantDoubleField()

std::optional< Float64 > v8::internal::maglev::MaglevGraphBuilder::TryFoldLoadConstantDoubleField ( compiler::JSObjectRef holder,
compiler::PropertyAccessInfo const & access_info )
private

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

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

◆ TryFoldLoadDictPrototypeConstant()

compiler::OptionalObjectRef v8::internal::maglev::MaglevGraphBuilder::TryFoldLoadDictPrototypeConstant ( compiler::PropertyAccessInfo const & access_info)
private

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

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

◆ TryGetConstant() [1/2]

compiler::OptionalHeapObjectRef v8::internal::maglev::MaglevGraphBuilder::TryGetConstant ( compiler::JSHeapBroker * broker,
LocalIsolate * isolate,
ValueNode * node )
static

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

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

◆ TryGetConstant() [2/2]

compiler::OptionalHeapObjectRef v8::internal::maglev::MaglevGraphBuilder::TryGetConstant ( ValueNode * node,
ValueNode ** constant_node = nullptr )
private

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

Here is the call graph for this function:

◆ TryGetConstantAlternative()

std::optional< ValueNode * > v8::internal::maglev::MaglevGraphBuilder::TryGetConstantAlternative ( ValueNode * node)
private

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

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

◆ TryGetConstantDataFieldHolder()

compiler::OptionalJSObjectRef v8::internal::maglev::MaglevGraphBuilder::TryGetConstantDataFieldHolder ( compiler::PropertyAccessInfo const & access_info,
ValueNode * lookup_start_object )
private

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

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

◆ TryGetFloat64Constant()

std::optional< double > v8::internal::maglev::MaglevGraphBuilder::TryGetFloat64Constant ( ValueNode * value,
TaggedToFloat64ConversionType conversion_type )
private

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

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

◆ TryGetInt32Constant()

std::optional< int32_t > v8::internal::maglev::MaglevGraphBuilder::TryGetInt32Constant ( ValueNode * value)
private

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

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

◆ TryGetNonEscapingArgumentsObject()

std::optional< VirtualObject * > v8::internal::maglev::MaglevGraphBuilder::TryGetNonEscapingArgumentsObject ( ValueNode * value)
private

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

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

◆ TryGetParentContext()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::TryGetParentContext ( ValueNode * node)
private

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

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

◆ TryGetUint32Constant()

std::optional< uint32_t > v8::internal::maglev::MaglevGraphBuilder::TryGetUint32Constant ( ValueNode * value)
private

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

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

◆ TryInferApiHolderValue()

compiler::HolderLookupResult v8::internal::maglev::MaglevGraphBuilder::TryInferApiHolderValue ( compiler::FunctionTemplateInfoRef function_template_info,
ValueNode * receiver )
private

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

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

◆ TryReadBoilerplateForFastLiteral()

std::optional< VirtualObject * > v8::internal::maglev::MaglevGraphBuilder::TryReadBoilerplateForFastLiteral ( compiler::JSObjectRef boilerplate,
AllocationType allocation,
int max_depth,
int * max_properties )
private

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

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

◆ TryReduceArrayIteratingBuiltin()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::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 = {} )
private

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

Here is the call graph for this function:

◆ TryReduceBuiltin()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryReduceBuiltin ( compiler::JSFunctionRef target,
compiler::SharedFunctionInfoRef shared,
CallArguments & args,
const compiler::FeedbackSource & feedback_source )
private

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

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

◆ TryReduceCallForApiFunction()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryReduceCallForApiFunction ( compiler::FunctionTemplateInfoRef api_callback,
compiler::OptionalSharedFunctionInfoRef maybe_shared,
CallArguments & args )
private

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

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

◆ TryReduceCallForConstant()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryReduceCallForConstant ( compiler::JSFunctionRef target,
CallArguments & args,
const compiler::FeedbackSource & feedback_source = compiler::FeedbackSource() )
private

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

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

◆ TryReduceCallForNewClosure()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryReduceCallForNewClosure ( ValueNode * target_node,
ValueNode * target_context,
compiler::SharedFunctionInfoRef shared,
compiler::FeedbackCellRef feedback_cell,
CallArguments & args,
const compiler::FeedbackSource & feedback_source )
private

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

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

◆ TryReduceCallForTarget()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryReduceCallForTarget ( ValueNode * target_node,
compiler::JSFunctionRef target,
CallArguments & args,
const compiler::FeedbackSource & feedback_source )
private

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

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

◆ TryReduceCompareEqualAgainstConstant()

template<Operation kOperation>
bool v8::internal::maglev::MaglevGraphBuilder::TryReduceCompareEqualAgainstConstant ( )
private

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

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

◆ TryReduceConstruct()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryReduceConstruct ( compiler::HeapObjectRef feedback_target,
ValueNode * target,
ValueNode * new_target,
CallArguments & args,
compiler::FeedbackSource & feedback_source )
private

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

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

◆ TryReduceConstructArrayConstructor()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryReduceConstructArrayConstructor ( compiler::JSFunctionRef array_function,
CallArguments & args,
compiler::OptionalAllocationSiteRef maybe_allocation_site = {} )
private

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

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

◆ TryReduceConstructBuiltin()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryReduceConstructBuiltin ( compiler::JSFunctionRef builtin,
compiler::SharedFunctionInfoRef shared_function_info,
ValueNode * target,
CallArguments & args )
private

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

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

◆ TryReduceConstructGeneric()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryReduceConstructGeneric ( compiler::JSFunctionRef function,
compiler::SharedFunctionInfoRef shared_function_info,
ValueNode * target,
ValueNode * new_target,
CallArguments & args,
compiler::FeedbackSource & feedback_source )
private

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

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

◆ TryReduceFunctionPrototypeApplyCallWithReceiver()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryReduceFunctionPrototypeApplyCallWithReceiver ( compiler::OptionalHeapObjectRef maybe_receiver,
CallArguments & args,
const compiler::FeedbackSource & feedback_source )
private

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

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

◆ TryReduceGetIterator()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryReduceGetIterator ( ValueNode * receiver,
int load_slot,
int call_slot )
private

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

Here is the call graph for this function:

◆ TryReduceGetProto()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryReduceGetProto ( ValueNode * node)
private

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

Here is the call graph for this function:

◆ TryReduceTypeOf() [1/2]

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryReduceTypeOf ( ValueNode * value)
private

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

Here is the call graph for this function:

◆ TryReduceTypeOf() [2/2]

template<typename Function >
MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryReduceTypeOf ( ValueNode * value,
const Function & GetResult )
private

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

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

◆ TryReuseKnownPropertyLoad()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TryReuseKnownPropertyLoad ( ValueNode * lookup_start_object,
compiler::NameRef name )
private

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

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

◆ TrySpecializeLoadContextSlotToFunctionContext()

bool v8::internal::maglev::MaglevGraphBuilder::TrySpecializeLoadContextSlotToFunctionContext ( ValueNode * context,
int slot_index,
ContextSlotMutability slot_mutability )
private

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

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

◆ TrySpecializeLoadScriptContextSlot()

ValueNode * v8::internal::maglev::MaglevGraphBuilder::TrySpecializeLoadScriptContextSlot ( ValueNode * context,
int index )
private

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

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

◆ TrySpecializeStoreScriptContextSlot()

MaybeReduceResult v8::internal::maglev::MaglevGraphBuilder::TrySpecializeStoreScriptContextSlot ( ValueNode * context,
int index,
ValueNode * value,
Node ** store )
private

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

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

◆ UpdatePredecessorCount()

void v8::internal::maglev::MaglevGraphBuilder::UpdatePredecessorCount ( uint32_t offset,
int diff )
inlineprivate

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

Here is the caller graph for this function:

◆ UpdateSourceAndBytecodePosition()

void v8::internal::maglev::MaglevGraphBuilder::UpdateSourceAndBytecodePosition ( int offset)
inlineprivate

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

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

◆ VisitBinaryOperation()

template<Operation kOperation>
ReduceResult v8::internal::maglev::MaglevGraphBuilder::VisitBinaryOperation ( )
private

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

Here is the call graph for this function:

◆ VisitBinarySmiOperation()

template<Operation kOperation>
ReduceResult v8::internal::maglev::MaglevGraphBuilder::VisitBinarySmiOperation ( )
private

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

Here is the call graph for this function:

◆ VisitCompareOperation()

template<Operation kOperation>
ReduceResult v8::internal::maglev::MaglevGraphBuilder::VisitCompareOperation ( )
private

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

Here is the call graph for this function:

◆ VisitSingleBytecode()

void v8::internal::maglev::MaglevGraphBuilder::VisitSingleBytecode ( )
inlineprivate

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

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

◆ VisitUnaryOperation()

template<Operation kOperation>
ReduceResult v8::internal::maglev::MaglevGraphBuilder::VisitUnaryOperation ( )
private

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

Here is the call graph for this function:

◆ zone()

Zone * v8::internal::maglev::MaglevGraphBuilder::zone ( ) const
inline

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

Here is the call graph for this function:

Member Data Documentation

◆ allow_loop_peeling_

bool v8::internal::maglev::MaglevGraphBuilder::allow_loop_peeling_
private

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

◆ any_peeled_loop_

bool v8::internal::maglev::MaglevGraphBuilder::any_peeled_loop_ = false
private

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

◆ broker_

compiler::JSHeapBroker* v8::internal::maglev::MaglevGraphBuilder::broker_ = compilation_unit_->broker()
private

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

◆ bytecode_analysis_

compiler::BytecodeAnalysis v8::internal::maglev::MaglevGraphBuilder::bytecode_analysis_
private

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

◆ caller_details_

MaglevCallerDetails* v8::internal::maglev::MaglevGraphBuilder::caller_details_
private

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

◆ catch_block_stack_

ZoneStack<HandlerTableEntry> v8::internal::maglev::MaglevGraphBuilder::catch_block_stack_
private

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

◆ compilation_unit_

MaglevCompilationUnit* const v8::internal::maglev::MaglevGraphBuilder::compilation_unit_
private

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

◆ current_allocation_block_

AllocationBlock* v8::internal::maglev::MaglevGraphBuilder::current_allocation_block_ = nullptr
private

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

◆ current_block_

BasicBlock* v8::internal::maglev::MaglevGraphBuilder::current_block_ = nullptr
private

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

◆ current_deopt_scope_

DeoptFrameScope* v8::internal::maglev::MaglevGraphBuilder::current_deopt_scope_ = nullptr
private

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

◆ current_for_in_state

ForInState v8::internal::maglev::MaglevGraphBuilder::current_for_in_state = ForInState()
private

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

◆ current_interpreter_frame_

InterpreterFrameState v8::internal::maglev::MaglevGraphBuilder::current_interpreter_frame_
private

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

◆ current_source_position_

SourcePosition v8::internal::maglev::MaglevGraphBuilder::current_source_position_
private

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

◆ current_speculation_feedback_

compiler::FeedbackSource v8::internal::maglev::MaglevGraphBuilder::current_speculation_feedback_
private

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

◆ decremented_predecessor_offsets_

ZoneVector<int> v8::internal::maglev::MaglevGraphBuilder::decremented_predecessor_offsets_
private

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

◆ entry_stack_check_frame_

std::optional<InterpretedDeoptFrame> v8::internal::maglev::MaglevGraphBuilder::entry_stack_check_frame_
private

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

◆ entrypoint_

int v8::internal::maglev::MaglevGraphBuilder::entrypoint_
private

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

◆ graph_

Graph* const v8::internal::maglev::MaglevGraphBuilder::graph_
private

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

◆ in_prologue_

bool v8::internal::maglev::MaglevGraphBuilder::in_prologue_ = true
private

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

◆ inlined_new_target_

ValueNode* v8::internal::maglev::MaglevGraphBuilder::inlined_new_target_ = nullptr
private

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

◆ inlining_id_

int v8::internal::maglev::MaglevGraphBuilder::inlining_id_ = SourcePosition::kNotInlined
private

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

◆ is_turbolev_

bool v8::internal::maglev::MaglevGraphBuilder::is_turbolev_ = false
private

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

◆ iterator_

interpreter::BytecodeArrayIterator v8::internal::maglev::MaglevGraphBuilder::iterator_
private

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

◆ jump_targets_

BasicBlockRef* v8::internal::maglev::MaglevGraphBuilder::jump_targets_
private

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

◆ kLoopsMustBeEnteredThroughHeader

bool v8::internal::maglev::MaglevGraphBuilder::kLoopsMustBeEnteredThroughHeader = true
staticconstexprprivate

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

◆ latest_checkpointed_frame_

std::optional<DeoptFrame> v8::internal::maglev::MaglevGraphBuilder::latest_checkpointed_frame_
private

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

◆ lazy_deopt_result_location_scope_

LazyDeoptResultLocationScope* v8::internal::maglev::MaglevGraphBuilder::lazy_deopt_result_location_scope_ = nullptr
private

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

◆ local_isolate_

LocalIsolate* const v8::internal::maglev::MaglevGraphBuilder::local_isolate_
private

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

◆ loop_effects_

LoopEffects* v8::internal::maglev::MaglevGraphBuilder::loop_effects_ = nullptr
private

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

◆ loop_effects_stack_

ZoneDeque<LoopEffects*> v8::internal::maglev::MaglevGraphBuilder::loop_effects_stack_
private

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

◆ loop_headers_to_peel_

BitVector v8::internal::maglev::MaglevGraphBuilder::loop_headers_to_peel_
private

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

◆ merge_states_

MergePointInterpreterFrameState** v8::internal::maglev::MaglevGraphBuilder::merge_states_
private

Definition at line 3260 of file maglev-graph-builder.h.

◆ next_handler_table_index_

int v8::internal::maglev::MaglevGraphBuilder::next_handler_table_index_ = 0
private

Definition at line 3277 of file maglev-graph-builder.h.

◆ peeled_iteration_count_

int v8::internal::maglev::MaglevGraphBuilder::peeled_iteration_count_ = 0
private

Definition at line 3208 of file maglev-graph-builder.h.

◆ predecessor_count_

uint32_t* v8::internal::maglev::MaglevGraphBuilder::predecessor_count_
private

Definition at line 3206 of file maglev-graph-builder.h.

◆ source_position_iterator_

SourcePositionTableIterator v8::internal::maglev::MaglevGraphBuilder::source_position_iterator_
private

Definition at line 3164 of file maglev-graph-builder.h.

◆ unobserved_context_slot_stores_

ZoneUnorderedMap<KnownNodeAspects::LoadedContextSlotsKey, Node*> v8::internal::maglev::MaglevGraphBuilder::unobserved_context_slot_stores_
private

Definition at line 3358 of file maglev-graph-builder.h.


The documentation for this class was generated from the following files: