5#ifndef V8_COMPILER_JS_INLINING_H_
6#define V8_COMPILER_JS_INLINING_H_
12#if V8_ENABLE_WEBASSEMBLY
22class OptimizedCompilationInfo;
26class SourcePositionTable;
27class JSWasmCallParameters;
40 bool inline_wasm_fct_if_supported)
66#if V8_ENABLE_WEBASSEMBLY
68 void InlineWasmFunction(
Node* call,
Node* inlinee_start,
Node* inlinee_end,
71 int argument_count,
Node* context);
76 if (builder.
length() == 0)
return "<no name>";
114 OptionalBytecodeArrayRef maybe_bytecode_array,
Node* context =
nullptr,
115 Node* callee =
nullptr);
119 Node* exception_target,
120 const NodeVector& uncaught_subcalls,
int argument_count);
122#if V8_ENABLE_WEBASSEMBLY
123 struct WasmInlineResult {
124 bool can_inline_body =
false;
125 Node* body_start =
nullptr;
126 Node* body_end =
nullptr;
128 WasmInlineResult TryWasmInlining(
const JSWasmCallNode& call_node);
131 Node* exception_target,
Isolate * isolate() const
Reduction ReduceJSCall(Node *node)
JSHeapBroker * broker() const
FrameState CreateArtificialFrameState(Node *node, FrameState outer_frame_state, int parameter_count, FrameStateType frame_state_type, SharedFunctionInfoRef shared, OptionalBytecodeArrayRef maybe_bytecode_array, Node *context=nullptr, Node *callee=nullptr)
Reduction InlineCall(Node *call, Node *new_target, Node *context, Node *frame_state, StartNode start, Node *end, Node *exception_target, const NodeVector &uncaught_subcalls, int argument_count)
Reduction Reduce(Node *node) final
JSHeapBroker *const broker_
CommonOperatorBuilder * common() const
NodeOriginTable *const node_origins_
JSInliner(Editor *editor, Zone *local_zone, OptimizedCompilationInfo *info, JSGraph *jsgraph, JSHeapBroker *broker, SourcePositionTable *source_positions, NodeOriginTable *node_origins, const wasm::WasmModule *wasm_module, JsWasmCallsSidetable *js_wasm_calls_sidetable, bool inline_wasm_fct_if_supported)
Isolate * isolate() const
SimplifiedOperatorBuilder * simplified() const
JSGraph * jsgraph() const
JSOperatorBuilder * javascript() const
JsWasmCallsSidetable * js_wasm_calls_sidetable_
const wasm::WasmModule * wasm_module_
bool inline_wasm_fct_if_supported_
OptionalSharedFunctionInfoRef DetermineCallTarget(Node *node)
FeedbackCellRef DetermineCallContext(Node *node, Node **context_out)
const char * reducer_name() const override
OptimizedCompilationInfo * info_
SourcePositionTable *const source_positions_
void PrintFunctionName(StringBuilder &out, uint32_t function_index, FunctionNamesBehavior behavior=kWasmInternal, IndexAsComment index_as_comment=kDontPrintIndex)
NamesProvider * GetNamesProvider()
const char * start() const
DirectHandle< Object > new_target
JsWasmCallsSidetable * js_wasm_calls_sidetable
SourcePositionTable * source_positions
FrameState outer_frame_state
#define DCHECK_IMPLIES(v1, v2)