|
| 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) |
|
| 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 |
|