v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::compiler::JSCallReducerAssembler Class Reference
Inheritance diagram for v8::internal::compiler::JSCallReducerAssembler:
Collaboration diagram for v8::internal::compiler::JSCallReducerAssembler:

Classes

class  ForBuilder0
 
class  ForBuilder1
 
class  TryCatchBuilder0
 

Public Types

using ConditionFunction1 = std::function<TNode<Boolean>(TNode<Number>)>
 
using StepFunction1 = std::function<TNode<Number>(TNode<Number>)>
 
using For1BodyFunction = std::function<void(TNode<Number>, TNode<Object>*)>
 
- Public Types inherited from v8::internal::compiler::JSGraphAssembler
using NodeGenerator0 = std::function<TNode<Object>()>
 
using VoidGenerator0 = std::function<void()>
 

Public Member Functions

 JSCallReducerAssembler (JSCallReducer *reducer, Node *node, Node *effect=nullptr, Node *control=nullptr)
 
TNode< Object > ReduceJSCallWithArrayLikeOrSpreadOfEmpty (std::unordered_set< Node * > *generated_calls_with_array_like_or_spread)
 
TNode< Object > ReduceMathUnary (const Operator *op)
 
TNode< Object > ReduceMathBinary (const Operator *op)
 
TNode< String > ReduceStringPrototypeSubstring ()
 
TNode< Boolean > ReduceStringPrototypeStartsWith ()
 
TNode< Boolean > ReduceStringPrototypeStartsWith (StringRef search_element_string)
 
TNode< Boolean > ReduceStringPrototypeEndsWith ()
 
TNode< Boolean > ReduceStringPrototypeEndsWith (StringRef search_element_string)
 
TNode< String > ReduceStringPrototypeCharAt ()
 
TNode< String > ReduceStringPrototypeCharAt (StringRef s, uint32_t index)
 
TNode< String > ReduceStringPrototypeSlice ()
 
TNode< Object > ReduceJSCallMathMinMaxWithArrayLike (Builtin builtin)
 
TNode< Object > TargetInput () const
 
template<typename T >
TNode< T > ReceiverInputAs () const
 
TNode< Object > ReceiverInput () const
 
Node * node_ptr () const
 
TNode< Number > SpeculativeToNumber (TNode< Object > value, NumberOperationHint hint=NumberOperationHint::kNumberOrOddball)
 
TNode< Smi > CheckSmi (TNode< Object > value)
 
TNode< Number > CheckNumber (TNode< Object > value)
 
TNode< String > CheckString (TNode< Object > value)
 
TNode< Number > CheckBounds (TNode< Number > value, TNode< Number > limit, CheckBoundsFlags flags={})
 
TNode< Smi > TypeGuardUnsignedSmall (TNode< Object > value)
 
TNode< Object > TypeGuardNonInternal (TNode< Object > value)
 
TNode< Number > TypeGuardFixedArrayLength (TNode< Object > value)
 
TNode< Object > Call4 (const Callable &callable, TNode< Context > context, TNode< Object > arg0, TNode< Object > arg1, TNode< Object > arg2, TNode< Object > arg3)
 
TNode< Object > JSCall3 (TNode< Object > function, TNode< Object > this_arg, TNode< Object > arg0, TNode< Object > arg1, TNode< Object > arg2, FrameState frame_state)
 
TNode< Object > JSCall4 (TNode< Object > function, TNode< Object > this_arg, TNode< Object > arg0, TNode< Object > arg1, TNode< Object > arg2, TNode< Object > arg3, FrameState frame_state)
 
TNode< Object > CopyNode ()
 
TNode< JSArray > CreateArrayNoThrow (TNode< Object > ctor, TNode< Number > size, FrameState frame_state)
 
TNode< JSArray > AllocateEmptyJSArray (ElementsKind kind, NativeContextRef native_context)
 
TNode< Number > NumberInc (TNode< Number > value)
 
TNode< Number > LoadMapElementsKind (TNode< Map > map)
 
template<typename T , typename U >
TNode< T > EnterMachineGraph (TNode< U > input, UseInfo use_info)
 
template<typename T , typename U >
TNode< T > ExitMachineGraph (TNode< U > input, MachineRepresentation output_representation, Type output_type)
 
void MaybeInsertMapChecks (MapInference *inference, bool has_stability_dependency)
 
TNode< Object > ConvertHoleToUndefined (TNode< Object > value, ElementsKind kind)
 
TryCatchBuilder0 Try (const VoidGenerator0 &try_body)
 
ForBuilder0 ForZeroUntil (TNode< Number > excluded_limit)
 
ForBuilder0 Forever (TNode< Number > initial_value, const StepFunction1 &step)
 
ForBuilder1 For1 (TNode< Number > initial_value, const ConditionFunction1 &cond, const StepFunction1 &step, TNode< Object > initial_arg0)
 
ForBuilder1 For1ZeroUntil (TNode< Number > excluded_limit, TNode< Object > initial_arg0)
 
void ThrowIfNotCallable (TNode< Object > maybe_callable, FrameState frame_state)
 
const FeedbackSource & feedback () const
 
int ArgumentCount () const
 
TNode< Object > Argument (int index) const
 
template<typename T >
TNode< T > ArgumentAs (int index) const
 
TNode< Object > ArgumentOrNaN (int index)
 
TNode< Object > ArgumentOrUndefined (int index)
 
TNode< Number > ArgumentOrZero (int index)
 
TNode< Context > ContextInput () const
 
FrameState FrameStateInput () const
 
CompilationDependencies * dependencies () const
 
- Public Member Functions inherited from v8::internal::compiler::JSGraphAssembler
 JSGraphAssembler (JSHeapBroker *broker, JSGraph *jsgraph, Zone *zone, BranchSemantics branch_semantics, std::optional< NodeChangedCallback > node_changed_callback=std::nullopt, bool mark_loop_exits=false)
 
TNode< Smi > SmiConstant (int32_t value)
 
TNode< HeapObject > HeapConstant (Handle< HeapObject > object)
 
TNode< Object > Constant (ObjectRef ref)
 
TNode< Number > NumberConstant (double value)
 
Node * CEntryStubConstant (int result_size)
 
Node * Allocate (AllocationType allocation, Node *size)
 
TNode< Map > LoadMap (TNode< HeapObject > object)
 
Node * LoadField (FieldAccess const &, Node *object)
 
template<typename T >
TNode< T > LoadField (FieldAccess const &access, TNode< HeapObject > object)
 
TNode< Uint32T > LoadElementsKind (TNode< Map > map)
 
Node * LoadElement (ElementAccess const &, Node *object, Node *index)
 
template<typename T >
TNode< T > LoadElement (ElementAccess const &access, TNode< HeapObject > object, TNode< Number > index)
 
Node * StoreField (FieldAccess const &, Node *object, Node *value)
 
Node * StoreElement (ElementAccess const &, Node *object, Node *index, Node *value)
 
Node * ClearPendingMessage ()
 
void TransitionAndStoreElement (MapRef double_map, MapRef fast_map, TNode< HeapObject > object, TNode< Number > index, TNode< Object > value)
 
TNode< Number > StringLength (TNode< String > string)
 
TNode< Boolean > ReferenceEqual (TNode< Object > lhs, TNode< Object > rhs)
 
TNode< Number > PlainPrimitiveToNumber (TNode< Object > value)
 
TNode< Number > NumberMin (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Number > NumberMax (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Boolean > NumberEqual (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Boolean > NumberLessThan (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Boolean > NumberLessThanOrEqual (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Number > NumberAdd (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Number > NumberSubtract (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Number > NumberShiftRightLogical (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Number > NumberBitwiseAnd (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Number > NumberBitwiseOr (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Number > NumberDivide (TNode< Number > lhs, TNode< Number > rhs)
 
TNode< Number > NumberFloor (TNode< Number > value)
 
TNode< String > StringSubstring (TNode< String > string, TNode< Number > from, TNode< Number > to)
 
TNode< Boolean > ObjectIsCallable (TNode< Object > value)
 
TNode< Boolean > ObjectIsSmi (TNode< Object > value)
 
TNode< Boolean > ObjectIsUndetectable (TNode< Object > value)
 
Node * BooleanNot (Node *cond)
 
Node * CheckSmi (Node *value, const FeedbackSource &feedback={})
 
Node * CheckNumber (Node *value, const FeedbackSource &feedback={})
 
Node * CheckNumberFitsInt32 (Node *value, const FeedbackSource &feedback={})
 
Node * CheckIf (Node *cond, DeoptimizeReason reason, const FeedbackSource &feedback={})
 
Node * Assert (Node *cond, const char *condition_string="", const char *file="", int line=-1)
 
void Assert (TNode< Word32T > cond, const char *condition_string="", const char *file="", int line=-1)
 
TNode< Boolean > NumberIsFloat64Hole (TNode< Number > value)
 
TNode< Boolean > ToBoolean (TNode< Object > value)
 
TNode< Object > ConvertTaggedHoleToUndefined (TNode< Object > value)
 
TNode< FixedArrayBase > MaybeGrowFastElements (ElementsKind kind, const FeedbackSource &feedback, TNode< JSArray > array, TNode< FixedArrayBase > elements, TNode< Number > new_length, TNode< Number > old_length)
 
Node * StringCharCodeAt (TNode< String > string, TNode< Number > position)
 
TNode< String > StringFromSingleCharCode (TNode< Number > code)
 
TNode< Object > DoubleArrayMax (TNode< JSArray > array)
 
TNode< Object > DoubleArrayMin (TNode< JSArray > array)
 
TNode< Number > ArrayBufferViewByteLength (TNode< JSArrayBufferView > array_buffer_view, InstanceType instance_type, std::set< ElementsKind > elements_kinds_candidates, TNode< Context > context)
 
TNode< Word32T > ArrayBufferDetachedBit (TNode< HeapObject > buffer)
 
TNode< Word32T > ArrayBufferViewDetachedBit (TNode< JSArrayBufferView > array_buffer_view)
 
TNode< Number > TypedArrayLength (TNode< JSTypedArray > typed_array, std::set< ElementsKind > elements_kinds_candidates, TNode< Context > context)
 
void CheckIfTypedArrayWasDetachedOrOutOfBounds (TNode< JSTypedArray > typed_array, std::set< ElementsKind > elements_kinds_candidates, const FeedbackSource &feedback)
 
TNode< Uint32T > LookupByteShiftForElementsKind (TNode< Uint32T > elements_kind)
 
TNode< Uint32T > LookupByteSizeForElementsKind (TNode< Uint32T > elements_kind)
 
TNode< Object > JSCallRuntime1 (Runtime::FunctionId function_id, TNode< Object > arg0, TNode< Context > context, std::optional< FrameState > frame_state, Operator::Properties properties=Operator::kNoProperties)
 
TNode< Object > JSCallRuntime2 (Runtime::FunctionId function_id, TNode< Object > arg0, TNode< Object > arg1, TNode< Context > context, FrameState frame_state)
 
Node * Chained (const Operator *op, Node *input)
 
JSHeapBroker * broker () const
 
JSGraph * jsgraph () const
 
Isolate * isolate () const
 
SimplifiedOperatorBuilder * simplified () override
 
JSOperatorBuilder * javascript () const
 
template<typename T , typename U >
TNode< T > EnterMachineGraph (TNode< U > input, UseInfo use_info)
 
template<typename T , typename U >
TNode< T > ExitMachineGraph (TNode< U > input, MachineRepresentation output_representation, Type output_type)
 
CatchScope * catch_scope () const
 
Node * outermost_handler () const
 
TNode< Object > MayThrow (const NodeGenerator0 &body)
 
IfBuilder0 If (TNode< Boolean > cond)
 
IfBuilder0 IfNot (TNode< Boolean > cond)
 
template<typename T >
IfBuilder1< T, Boolean > SelectIf (TNode< Boolean > cond)
 
template<typename T >
IfBuilder1< T, Boolean > SelectIfNot (TNode< Boolean > cond)
 
template<typename T >
IfBuilder1< T, Word32T > MachineSelectIf (TNode< Word32T > cond)
 
template<typename T >
TNode< T > MachineSelect (TNode< Word32T > cond, TNode< T > true_value, TNode< T > false_value, BranchHint hint=BranchHint::kNone)
 
- Public Member Functions inherited from v8::internal::compiler::GraphAssembler
 GraphAssembler (MachineGraph *jsgraph, Zone *zone, BranchSemantics default_branch_semantics, std::optional< NodeChangedCallback > node_changed_callback=std::nullopt, bool mark_loop_exits=false)
 
virtual ~GraphAssembler ()
 
void Reset ()
 
void InitializeEffectControl (Node *effect, Node *control)
 
template<typename... Reps>
detail::GraphAssemblerLabelForReps< Reps... > MakeLabelFor (GraphAssemblerLabelType type, Reps... reps)
 
GraphAssemblerDynamicLabel MakeLabelFor (GraphAssemblerLabelType type, base::SmallVector< MachineRepresentation, 4 > reps)
 
template<typename... Reps>
detail::GraphAssemblerLabelForReps< Reps... > MakeLabel (Reps... reps)
 
template<typename... Reps>
detail::GraphAssemblerLabelForReps< Reps... > MakeLoopLabel (Reps... reps)
 
template<typename... Reps>
detail::GraphAssemblerLabelForReps< Reps... > MakeDeferredLabel (Reps... reps)
 
Node * IntPtrConstant (intptr_t value)
 
TNode< UintPtrT > UintPtrConstant (uintptr_t value)
 
Node * Int32Constant (int32_t value)
 
TNode< Uint32T > Uint32Constant (uint32_t value)
 
Node * Int64Constant (int64_t value)
 
Node * Uint64Constant (uint64_t value)
 
Node * UniqueIntPtrConstant (intptr_t value)
 
Node * Float64Constant (double value)
 
Node * ExternalConstant (ExternalReference ref)
 
Node * IsolateField (IsolateFieldId id)
 
Node * Projection (int index, Node *value, Node *ctrl=nullptr)
 
Node * Parameter (int index)
 
Node * LoadFramePointer ()
 
Node * LoadRootRegister ()
 
Node * LoadHeapNumberValue (Node *heap_number)
 
TNode< BoolT > UintPtrLessThan (TNode< UintPtrT > left, TNode< UintPtrT > right)
 
TNode< BoolT > UintPtrLessThanOrEqual (TNode< UintPtrT > left, TNode< UintPtrT > right)
 
TNode< UintPtrT > UintPtrAdd (TNode< UintPtrT > left, TNode< UintPtrT > right)
 
TNode< UintPtrT > UintPtrSub (TNode< UintPtrT > left, TNode< UintPtrT > right)
 
TNode< UintPtrT > UintPtrDiv (TNode< UintPtrT > left, TNode< UintPtrT > right)
 
TNode< UintPtrT > ChangeUint32ToUintPtr (SloppyTNode< Uint32T > value)
 
TNode< Map > LoadMap (Node *object)
 
Node * DebugBreak ()
 
Node * Unreachable ()
 
Node * UnreachableWithoutConnectToEnd ()
 
Node * IntPtrEqual (Node *left, Node *right)
 
Node * TaggedEqual (Node *left, Node *right)
 
Node * SmiSub (Node *left, Node *right)
 
Node * SmiLessThan (Node *left, Node *right)
 
Node * Float64RoundDown (Node *value)
 
Node * Float64RoundTruncate (Node *value)
 
Node * TruncateFloat64ToInt64 (Node *value, TruncateKind kind)
 
Node * BitcastWordToTagged (Node *value)
 
Node * BitcastWordToTaggedSigned (Node *value)
 
Node * BitcastTaggedToWord (Node *value)
 
Node * BitcastTaggedToWordForTagAndSmiBits (Node *value)
 
Node * BitcastMaybeObjectToWord (Node *value)
 
Node * TypeGuard (Type type, Node *value)
 
template<typename T >
TNode< T > TypeGuard (Type type, TNode< T > value)
 
Node * Checkpoint (FrameState frame_state)
 
TNode< RawPtrT > StackSlot (int size, int alignment, bool is_tagged=false)
 
Node * AdaptLocalArgument (Node *argument)
 
Node * Store (StoreRepresentation rep, Node *object, Node *offset, Node *value)
 
Node * Store (StoreRepresentation rep, Node *object, int offset, Node *value)
 
Node * Load (MachineType type, Node *object, Node *offset)
 
Node * Load (MachineType type, Node *object, int offset)
 
Node * StoreUnaligned (MachineRepresentation rep, Node *object, Node *offset, Node *value)
 
Node * LoadUnaligned (MachineType type, Node *object, Node *offset)
 
Node * ProtectedStore (MachineRepresentation rep, Node *object, Node *offset, Node *value)
 
Node * ProtectedLoad (MachineType type, Node *object, Node *offset)
 
Node * LoadTrapOnNull (MachineType type, Node *object, Node *offset)
 
Node * StoreTrapOnNull (StoreRepresentation rep, Node *object, Node *offset, Node *value)
 
Node * Retain (Node *buffer)
 
Node * IntPtrAdd (Node *a, Node *b)
 
Node * IntPtrSub (Node *a, Node *b)
 
Node * DeoptimizeIf (DeoptimizeReason reason, FeedbackSource const &feedback, Node *condition, Node *frame_state)
 
Node * DeoptimizeIfNot (DeoptimizeReason reason, FeedbackSource const &feedback, Node *condition, Node *frame_state)
 
TNode< Object > Call (const CallDescriptor *call_descriptor, int inputs_size, Node **inputs)
 
TNode< Object > Call (const Operator *op, int inputs_size, Node **inputs)
 
template<typename... Args>
TNode< Object > Call (const CallDescriptor *call_descriptor, Node *first_arg, Args... args)
 
template<typename... Args>
TNode< Object > Call (const Operator *op, Node *first_arg, Args... args)
 
void TailCall (const CallDescriptor *call_descriptor, int inputs_size, Node **inputs)
 
template<size_t VarCount>
void Bind (GraphAssemblerLabel< VarCount > *label)
 
template<typename... Vars>
void Goto (detail::GraphAssemblerLabelForVars< Vars... > *label, Vars...)
 
void BranchWithCriticalSafetyCheck (Node *condition, GraphAssemblerLabel< 0u > *if_true, GraphAssemblerLabel< 0u > *if_false)
 
template<typename... Vars>
void Branch (Node *condition, detail::GraphAssemblerLabelForVars< Vars... > *if_true, detail::GraphAssemblerLabelForVars< Vars... > *if_false, Vars...)
 
template<typename... Vars>
void BranchWithHint (Node *condition, detail::GraphAssemblerLabelForVars< Vars... > *if_true, detail::GraphAssemblerLabelForVars< Vars... > *if_false, BranchHint hint, Vars...)
 
template<typename... Vars>
void MachineBranch (TNode< Word32T > condition, GraphAssemblerLabel< sizeof...(Vars)> *if_true, GraphAssemblerLabel< sizeof...(Vars)> *if_false, BranchHint hint, Vars...)
 
template<typename... Vars>
void JSBranch (TNode< Boolean > condition, GraphAssemblerLabel< sizeof...(Vars)> *if_true, GraphAssemblerLabel< sizeof...(Vars)> *if_false, BranchHint hint, Vars...)
 
template<typename... Vars>
void GotoIf (Node *condition, detail::GraphAssemblerLabelForVars< Vars... > *label, BranchHint hint, Vars...)
 
template<typename... Vars>
void GotoIfNot (Node *condition, detail::GraphAssemblerLabelForVars< Vars... > *label, BranchHint hint, Vars...)
 
template<typename... Vars>
void GotoIf (Node *condition, detail::GraphAssemblerLabelForVars< Vars... > *label, Vars...)
 
template<typename... Vars>
void GotoIfNot (Node *condition, detail::GraphAssemblerLabelForVars< Vars... > *label, Vars...)
 
void RuntimeAbort (AbortReason reason)
 
bool HasActiveBlock () const
 
V8_INLINE void UpdateEffectControlWith (Node *node)
 
Node * AddNode (Node *node)
 
template<typename T >
TNode< T > AddNode (Node *node)
 
void ConnectUnreachableToEnd ()
 
void AddInlineReducer (Reducer *reducer)
 
Control control () const
 
Effect effect () const
 
Node * start () const
 

Private Attributes

CompilationDependencies *const dependencies_
 
Node *const node_
 

Static Private Attributes

static constexpr bool kMarkLoopExits = true
 

Additional Inherited Members

- Protected Member Functions inherited from v8::internal::compiler::JSGraphAssembler
Operator const * PlainPrimitiveToNumberOperator ()
 
- Protected Member Functions inherited from v8::internal::compiler::GraphAssembler
constexpr bool Is64 () const
 
template<typename... Vars>
void MergeState (detail::GraphAssemblerLabelForVars< Vars... > *label, Vars... vars)
 
V8_INLINE Node * AddClonedNode (Node *node)
 
MachineGraph * mcgraph () const
 
TFGraph * graph () const
 
Zone * temp_zone () const
 
CommonOperatorBuilder * common () const
 
MachineOperatorBuilder * machine () const
 
- Protected Attributes inherited from v8::internal::compiler::JSGraphAssembler
CatchScope outermost_catch_scope_
 
Node * outermost_handler_
 
CatchScope * catch_scope_
 

Detailed Description

Definition at line 56 of file js-call-reducer.cc.

Member Typedef Documentation

◆ ConditionFunction1

◆ For1BodyFunction

◆ StepFunction1

Constructor & Destructor Documentation

◆ JSCallReducerAssembler()

v8::internal::compiler::JSCallReducerAssembler::JSCallReducerAssembler ( JSCallReducer * reducer,
Node * node,
Node * effect = nullptr,
Node * control = nullptr )
inline

Definition at line 60 of file js-call-reducer.cc.

Here is the call graph for this function:

Member Function Documentation

◆ AllocateEmptyJSArray()

TNode< JSArray > v8::internal::compiler::JSCallReducerAssembler::AllocateEmptyJSArray ( ElementsKind kind,
NativeContextRef native_context )

Definition at line 879 of file js-call-reducer.cc.

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

◆ Argument()

TNode< Object > v8::internal::compiler::JSCallReducerAssembler::Argument ( int index) const
inline

Definition at line 387 of file js-call-reducer.cc.

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

◆ ArgumentAs()

template<typename T >
TNode< T > v8::internal::compiler::JSCallReducerAssembler::ArgumentAs ( int index) const
inline

Definition at line 392 of file js-call-reducer.cc.

Here is the call graph for this function:

◆ ArgumentCount()

int v8::internal::compiler::JSCallReducerAssembler::ArgumentCount ( ) const
inline

Definition at line 385 of file js-call-reducer.cc.

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

◆ ArgumentOrNaN()

TNode< Object > v8::internal::compiler::JSCallReducerAssembler::ArgumentOrNaN ( int index)
inline

Definition at line 396 of file js-call-reducer.cc.

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

◆ ArgumentOrUndefined()

TNode< Object > v8::internal::compiler::JSCallReducerAssembler::ArgumentOrUndefined ( int index)
inline

Definition at line 401 of file js-call-reducer.cc.

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

◆ ArgumentOrZero()

TNode< Number > v8::internal::compiler::JSCallReducerAssembler::ArgumentOrZero ( int index)
inline

Definition at line 406 of file js-call-reducer.cc.

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

◆ Call4()

TNode< Object > v8::internal::compiler::JSCallReducerAssembler::Call4 ( const Callable & callable,
TNode< Context > context,
TNode< Object > arg0,
TNode< Object > arg1,
TNode< Object > arg2,
TNode< Object > arg3 )

Definition at line 816 of file js-call-reducer.cc.

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

◆ CheckBounds()

TNode< Number > v8::internal::compiler::JSCallReducerAssembler::CheckBounds ( TNode< Number > value,
TNode< Number > limit,
CheckBoundsFlags flags = {} )

Definition at line 791 of file js-call-reducer.cc.

Here is the call graph for this function:

◆ CheckNumber()

TNode< Number > v8::internal::compiler::JSCallReducerAssembler::CheckNumber ( TNode< Object > value)

Definition at line 781 of file js-call-reducer.cc.

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

◆ CheckSmi()

TNode< Smi > v8::internal::compiler::JSCallReducerAssembler::CheckSmi ( TNode< Object > value)

Definition at line 776 of file js-call-reducer.cc.

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

◆ CheckString()

TNode< String > v8::internal::compiler::JSCallReducerAssembler::CheckString ( TNode< Object > value)

Definition at line 786 of file js-call-reducer.cc.

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

◆ ContextInput()

TNode< Context > v8::internal::compiler::JSCallReducerAssembler::ContextInput ( ) const
inline

Definition at line 411 of file js-call-reducer.cc.

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

◆ ConvertHoleToUndefined()

TNode< Object > v8::internal::compiler::JSCallReducerAssembler::ConvertHoleToUndefined ( TNode< Object > value,
ElementsKind kind )
inline

Definition at line 173 of file js-call-reducer.cc.

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

◆ CopyNode()

TNode< Object > v8::internal::compiler::JSCallReducerAssembler::CopyNode ( )

Definition at line 863 of file js-call-reducer.cc.

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

◆ CreateArrayNoThrow()

TNode< JSArray > v8::internal::compiler::JSCallReducerAssembler::CreateArrayNoThrow ( TNode< Object > ctor,
TNode< Number > size,
FrameState frame_state )

Definition at line 872 of file js-call-reducer.cc.

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

◆ dependencies()

CompilationDependencies * v8::internal::compiler::JSCallReducerAssembler::dependencies ( ) const
inline

Definition at line 420 of file js-call-reducer.cc.

◆ EnterMachineGraph()

template<typename T , typename U >
TNode< T > v8::internal::compiler::JSCallReducerAssembler::EnterMachineGraph ( TNode< U > input,
UseInfo use_info )
inline

Definition at line 149 of file js-call-reducer.cc.

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

◆ ExitMachineGraph()

template<typename T , typename U >
TNode< T > v8::internal::compiler::JSCallReducerAssembler::ExitMachineGraph ( TNode< U > input,
MachineRepresentation output_representation,
Type output_type )
inline

Definition at line 155 of file js-call-reducer.cc.

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

◆ feedback()

const FeedbackSource & v8::internal::compiler::JSCallReducerAssembler::feedback ( ) const
inline

Definition at line 380 of file js-call-reducer.cc.

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

◆ For1()

ForBuilder1 v8::internal::compiler::JSCallReducerAssembler::For1 ( TNode< Number > initial_value,
const ConditionFunction1 & cond,
const StepFunction1 & step,
TNode< Object > initial_arg0 )
inline

Definition at line 352 of file js-call-reducer.cc.

Here is the caller graph for this function:

◆ For1ZeroUntil()

ForBuilder1 v8::internal::compiler::JSCallReducerAssembler::For1ZeroUntil ( TNode< Number > excluded_limit,
TNode< Object > initial_arg0 )
inline

Definition at line 357 of file js-call-reducer.cc.

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

◆ Forever()

ForBuilder0 v8::internal::compiler::JSCallReducerAssembler::Forever ( TNode< Number > initial_value,
const StepFunction1 & step )
inline

Definition at line 285 of file js-call-reducer.cc.

Here is the caller graph for this function:

◆ ForZeroUntil()

ForBuilder0 v8::internal::compiler::JSCallReducerAssembler::ForZeroUntil ( TNode< Number > excluded_limit)
inline

Definition at line 274 of file js-call-reducer.cc.

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

◆ FrameStateInput()

FrameState v8::internal::compiler::JSCallReducerAssembler::FrameStateInput ( ) const
inline

Definition at line 416 of file js-call-reducer.cc.

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

◆ JSCall3()

TNode< Object > v8::internal::compiler::JSCallReducerAssembler::JSCall3 ( TNode< Object > function,
TNode< Object > this_arg,
TNode< Object > arg0,
TNode< Object > arg1,
TNode< Object > arg2,
FrameState frame_state )

Definition at line 830 of file js-call-reducer.cc.

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

◆ JSCall4()

TNode< Object > v8::internal::compiler::JSCallReducerAssembler::JSCall4 ( TNode< Object > function,
TNode< Object > this_arg,
TNode< Object > arg0,
TNode< Object > arg1,
TNode< Object > arg2,
TNode< Object > arg3,
FrameState frame_state )

Definition at line 846 of file js-call-reducer.cc.

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

◆ LoadMapElementsKind()

TNode< Number > v8::internal::compiler::JSCallReducerAssembler::LoadMapElementsKind ( TNode< Map > map)

Definition at line 901 of file js-call-reducer.cc.

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

◆ MaybeInsertMapChecks()

void v8::internal::compiler::JSCallReducerAssembler::MaybeInsertMapChecks ( MapInference * inference,
bool has_stability_dependency )
inline

Definition at line 162 of file js-call-reducer.cc.

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

◆ node_ptr()

Node * v8::internal::compiler::JSCallReducerAssembler::node_ptr ( ) const
inline

Definition at line 103 of file js-call-reducer.cc.

Here is the caller graph for this function:

◆ NumberInc()

TNode< Number > v8::internal::compiler::JSCallReducerAssembler::NumberInc ( TNode< Number > value)
inline

Definition at line 142 of file js-call-reducer.cc.

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

◆ ReceiverInput()

TNode< Object > v8::internal::compiler::JSCallReducerAssembler::ReceiverInput ( ) const
inline

Definition at line 101 of file js-call-reducer.cc.

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

◆ ReceiverInputAs()

template<typename T >
TNode< T > v8::internal::compiler::JSCallReducerAssembler::ReceiverInputAs ( ) const
inline

Definition at line 97 of file js-call-reducer.cc.

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

◆ ReduceJSCallMathMinMaxWithArrayLike()

TNode< Object > v8::internal::compiler::JSCallReducerAssembler::ReduceJSCallMathMinMaxWithArrayLike ( Builtin builtin)

Definition at line 1229 of file js-call-reducer.cc.

Here is the call graph for this function:

◆ ReduceJSCallWithArrayLikeOrSpreadOfEmpty()

TNode< Object > v8::internal::compiler::JSCallReducerAssembler::ReduceJSCallWithArrayLikeOrSpreadOfEmpty ( std::unordered_set< Node * > * generated_calls_with_array_like_or_spread)

Definition at line 5173 of file js-call-reducer.cc.

Here is the call graph for this function:

◆ ReduceMathBinary()

TNode< Object > v8::internal::compiler::JSCallReducerAssembler::ReduceMathBinary ( const Operator * op)

Definition at line 916 of file js-call-reducer.cc.

Here is the call graph for this function:

◆ ReduceMathUnary()

TNode< Object > v8::internal::compiler::JSCallReducerAssembler::ReduceMathUnary ( const Operator * op)

Definition at line 910 of file js-call-reducer.cc.

Here is the call graph for this function:

◆ ReduceStringPrototypeCharAt() [1/2]

TNode< String > v8::internal::compiler::JSCallReducerAssembler::ReduceStringPrototypeCharAt ( )

Definition at line 1169 of file js-call-reducer.cc.

Here is the call graph for this function:

◆ ReduceStringPrototypeCharAt() [2/2]

TNode< String > v8::internal::compiler::JSCallReducerAssembler::ReduceStringPrototypeCharAt ( StringRef s,
uint32_t index )

Definition at line 1142 of file js-call-reducer.cc.

Here is the call graph for this function:

◆ ReduceStringPrototypeEndsWith() [1/2]

TNode< Boolean > v8::internal::compiler::JSCallReducerAssembler::ReduceStringPrototypeEndsWith ( )

Definition at line 1091 of file js-call-reducer.cc.

Here is the call graph for this function:

◆ ReduceStringPrototypeEndsWith() [2/2]

TNode< Boolean > v8::internal::compiler::JSCallReducerAssembler::ReduceStringPrototypeEndsWith ( StringRef search_element_string)

Definition at line 1043 of file js-call-reducer.cc.

Here is the call graph for this function:

◆ ReduceStringPrototypeSlice()

TNode< String > v8::internal::compiler::JSCallReducerAssembler::ReduceStringPrototypeSlice ( )

Definition at line 1185 of file js-call-reducer.cc.

Here is the call graph for this function:

◆ ReduceStringPrototypeStartsWith() [1/2]

TNode< Boolean > v8::internal::compiler::JSCallReducerAssembler::ReduceStringPrototypeStartsWith ( )

Definition at line 995 of file js-call-reducer.cc.

Here is the call graph for this function:

◆ ReduceStringPrototypeStartsWith() [2/2]

TNode< Boolean > v8::internal::compiler::JSCallReducerAssembler::ReduceStringPrototypeStartsWith ( StringRef search_element_string)

Definition at line 950 of file js-call-reducer.cc.

Here is the call graph for this function:

◆ ReduceStringPrototypeSubstring()

TNode< String > v8::internal::compiler::JSCallReducerAssembler::ReduceStringPrototypeSubstring ( )

Definition at line 925 of file js-call-reducer.cc.

Here is the call graph for this function:

◆ SpeculativeToNumber()

TNode< Number > v8::internal::compiler::JSCallReducerAssembler::SpeculativeToNumber ( TNode< Object > value,
NumberOperationHint hint = NumberOperationHint::kNumberOrOddball )

Definition at line 769 of file js-call-reducer.cc.

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

◆ TargetInput()

TNode< Object > v8::internal::compiler::JSCallReducerAssembler::TargetInput ( ) const
inline

Definition at line 94 of file js-call-reducer.cc.

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

◆ ThrowIfNotCallable()

void v8::internal::compiler::JSCallReducerAssembler::ThrowIfNotCallable ( TNode< Object > maybe_callable,
FrameState frame_state )
inline

Definition at line 369 of file js-call-reducer.cc.

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

◆ Try()

TryCatchBuilder0 v8::internal::compiler::JSCallReducerAssembler::Try ( const VoidGenerator0 & try_body)
inline

Definition at line 222 of file js-call-reducer.cc.

Here is the caller graph for this function:

◆ TypeGuardFixedArrayLength()

TNode< Number > v8::internal::compiler::JSCallReducerAssembler::TypeGuardFixedArrayLength ( TNode< Object > value)

Definition at line 808 of file js-call-reducer.cc.

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

◆ TypeGuardNonInternal()

TNode< Object > v8::internal::compiler::JSCallReducerAssembler::TypeGuardNonInternal ( TNode< Object > value)

Definition at line 803 of file js-call-reducer.cc.

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

◆ TypeGuardUnsignedSmall()

TNode< Smi > v8::internal::compiler::JSCallReducerAssembler::TypeGuardUnsignedSmall ( TNode< Object > value)

Definition at line 799 of file js-call-reducer.cc.

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

Member Data Documentation

◆ dependencies_

CompilationDependencies* const v8::internal::compiler::JSCallReducerAssembler::dependencies_
private

Definition at line 423 of file js-call-reducer.cc.

◆ kMarkLoopExits

bool v8::internal::compiler::JSCallReducerAssembler::kMarkLoopExits = true
staticconstexprprivate

Definition at line 57 of file js-call-reducer.cc.

◆ node_

Node* const v8::internal::compiler::JSCallReducerAssembler::node_
private

Definition at line 424 of file js-call-reducer.cc.


The documentation for this class was generated from the following file: