5#ifndef V8_COMPILER_FRAME_STATES_H_
6#define V8_COMPILER_FRAME_STATES_H_
18class CanonicalValueType;
26class SharedFunctionInfoRef;
54 return !(*
this == other);
76#if V8_ENABLE_WEBASSEMBLY
77 kJSToWasmBuiltinContinuation,
103#if V8_ENABLE_WEBASSEMBLY
139#if V8_ENABLE_WEBASSEMBLY
153#if V8_ENABLE_WEBASSEMBLY
162 signature_(signature) {
166 const wasm::CanonicalSig* signature()
const {
return signature_; }
169 const wasm::CanonicalSig*
const signature_;
190 :
info_->shared_info();
194 :
info_->bytecode_array();
197 return info_ ==
nullptr ? 0 :
info_->parameter_count();
200 return info_ ==
nullptr ? 0 :
info_->max_arguments();
203 return info_ ==
nullptr ? 0 :
info_->local_count();
228 JSGraph* graph,
Builtin name, Node* context, Node*
const* parameters,
233#if V8_ENABLE_WEBASSEMBLY
234FrameState CreateJSWasmCallBuiltinContinuationFrameState(
240 JSGraph* graph, SharedFunctionInfoRef shared,
Builtin name, Node* target,
241 Node* context, Node*
const* stack_parameters,
int stack_parameter_count,
245 JSGraph* graph, SharedFunctionInfoRef shared, Node* target, Node* context,
252 SharedFunctionInfoRef shared,
253 Node* target, Node* context,
260 OutputFrameStateCombine changed_state_combine);
uint16_t max_arguments() const
const uint16_t parameter_count_
const MaybeIndirectHandle< BytecodeArray > bytecode_array_
FrameStateType type() const
const uint16_t max_arguments_
uint16_t parameter_count() const
static bool IsJSFunctionType(FrameStateType type)
const FrameStateType type_
static constexpr uint32_t wasm_function_index_
uint32_t wasm_function_index() const
const IndirectHandle< SharedFunctionInfo > shared_info_
IndirectHandle< SharedFunctionInfo > shared_info() const
FrameStateFunctionInfo(FrameStateType type, uint16_t parameter_count, uint16_t max_arguments, int local_count, IndirectHandle< SharedFunctionInfo > shared_info, MaybeIndirectHandle< BytecodeArray > bytecode_array, uint32_t wasm_liftoff_frame_size=0, uint32_t wasm_function_index=-1)
uint32_t wasm_liftoff_frame_size() const
MaybeIndirectHandle< BytecodeArray > bytecode_array() const
static constexpr uint32_t wasm_liftoff_frame_size_
FrameStateInfo(BytecodeOffset bailout_id, OutputFrameStateCombine state_combine, const FrameStateFunctionInfo *info)
OutputFrameStateCombine state_combine() const
const FrameStateFunctionInfo *const info_
MaybeIndirectHandle< SharedFunctionInfo > shared_info() const
MaybeIndirectHandle< BytecodeArray > bytecode_array() const
OutputFrameStateCombine const frame_state_combine_
const FrameStateFunctionInfo * function_info() const
BytecodeOffset const bailout_id_
uint16_t parameter_count() const
FrameStateType type() const
uint16_t max_arguments() const
BytecodeOffset bailout_id() const
static const size_t kInvalidIndex
size_t ConsumedOutputCount() const
friend std::ostream & operator<<(std::ostream &, OutputFrameStateCombine const &)
OutputFrameStateCombine(size_t parameter)
static OutputFrameStateCombine PokeAt(size_t index)
static OutputFrameStateCombine Ignore()
size_t GetOffsetToPokeAt() const
bool IsOutputIgnored() const
bool operator==(OutputFrameStateCombine const &other) const
bool operator!=(OutputFrameStateCombine const &other) const
friend size_t hash_value(OutputFrameStateCombine const &)
FrameState outer_frame_state
@ kJavaScriptBuiltinContinuationWithCatch
@ kJavaScriptBuiltinContinuation
FrameState CloneFrameState(JSGraph *jsgraph, FrameState frame_state, OutputFrameStateCombine changed_state_combine)
FrameState CreateGenericLazyDeoptContinuationFrameState(JSGraph *graph, SharedFunctionInfoRef shared, Node *target, Node *context, Node *receiver, Node *outer_frame_state)
ContinuationFrameStateMode
FrameState CreateStubBuiltinContinuationFrameState(JSGraph *jsgraph, Builtin name, Node *context, Node *const *parameters, int parameter_count, Node *outer_frame_state, ContinuationFrameStateMode mode, const wasm::CanonicalSig *signature)
size_t hash_value(const BranchParameters &p)
Node * CreateInlinedApiFunctionFrameState(JSGraph *graph, SharedFunctionInfoRef shared, Node *target, Node *context, Node *receiver, Node *outer_frame_state)
FrameState CreateJavaScriptBuiltinContinuationFrameState(JSGraph *jsgraph, SharedFunctionInfoRef shared, Builtin name, Node *target, Node *context, Node *const *stack_parameters, int stack_parameter_count, Node *outer_frame_state, ContinuationFrameStateMode mode)
bool operator!=(DeoptimizeParameters lhs, DeoptimizeParameters rhs)
bool operator==(const BranchParameters &lhs, const BranchParameters &rhs)
std::ostream & operator<<(std::ostream &os, AccessMode access_mode)
MaybeHandle< T > MaybeIndirectHandle
#define DCHECK_NOT_NULL(val)
#define DCHECK_NE(v1, v2)
#define V8_EXPORT_PRIVATE