#include "src/compiler/frame-states.h"
#include <optional>
#include "src/base/functional.h"
#include "src/codegen/callable.h"
#include "src/compiler/graph.h"
#include "src/compiler/js-graph.h"
#include "src/compiler/node.h"
#include "src/handles/handles-inl.h"
#include "src/objects/objects-inl.h"
#if V8_ENABLE_WEBASSEMBLY
#include "src/wasm/value-type.h"
#endif
namespace v8 {
namespace internal {
namespace compiler {
size_t hash_value(OutputFrameStateCombine const& sc) { … }
std::ostream& operator<<(std::ostream& os, OutputFrameStateCombine const& sc) { … }
bool operator==(FrameStateInfo const& lhs, FrameStateInfo const& rhs) { … }
bool operator!=(FrameStateInfo const& lhs, FrameStateInfo const& rhs) { … }
size_t hash_value(FrameStateInfo const& info) { … }
std::ostream& operator<<(std::ostream& os, FrameStateType type) { … }
std::ostream& operator<<(std::ostream& os, FrameStateInfo const& info) { … }
namespace {
uint8_t DeoptimizerParameterCountFor(ContinuationFrameStateMode mode) { … }
FrameState CreateBuiltinContinuationFrameStateCommon(
JSGraph* jsgraph, FrameStateType frame_type, Builtin name, Node* closure,
Node* context, Node** parameters, int parameter_count,
Node* outer_frame_state,
Handle<SharedFunctionInfo> shared = Handle<SharedFunctionInfo>(),
const wasm::FunctionSig* signature = nullptr) { … }
}
FrameState CreateStubBuiltinContinuationFrameState(
JSGraph* jsgraph, Builtin name, Node* context, Node* const* parameters,
int parameter_count, Node* outer_frame_state,
ContinuationFrameStateMode mode, const wasm::FunctionSig* signature) { … }
#if V8_ENABLE_WEBASSEMBLY
FrameState CreateJSWasmCallBuiltinContinuationFrameState(
JSGraph* jsgraph, Node* context, Node* outer_frame_state,
const wasm::FunctionSig* signature) { … }
#endif
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) { … }
FrameState CreateGenericLazyDeoptContinuationFrameState(
JSGraph* graph, SharedFunctionInfoRef shared, Node* target, Node* context,
Node* receiver, Node* outer_frame_state) { … }
Node* CreateInlinedApiFunctionFrameState(JSGraph* graph,
SharedFunctionInfoRef shared,
Node* target, Node* context,
Node* receiver,
Node* outer_frame_state) { … }
FrameState CloneFrameState(JSGraph* jsgraph, FrameState frame_state,
OutputFrameStateCombine changed_state_combine) { … }
}
}
}