5#ifndef V8_WASM_TURBOSHAFT_GRAPH_INTERFACE_H_
6#define V8_WASM_TURBOSHAFT_GRAPH_INTERFACE_H_
8#if !V8_ENABLE_WEBASSEMBLY
9#error This header should only be included if WebAssembly is enabled.
24class AccountingAllocator;
25struct WasmInliningPosition;
36class AssumptionsJournal;
38class WasmDetectedFeatures;
40class WireBytesStorage;
41class TurboshaftGraphBuildingInterface;
45 compiler::turboshaft::PipelineData* data, AccountingAllocator* allocator,
46 CompilationEnv* env, WasmDetectedFeatures* detected,
47 compiler::turboshaft::Graph& graph,
const FunctionBody& func_body,
48 const WireBytesStorage* wire_bytes,
49 std::unique_ptr<AssumptionsJournal>* assumptions,
50 ZoneVector<WasmInliningPosition>* inlining_positions,
int func_index);
53 AccountingAllocator* allocator,
54 compiler::turboshaft::Graph& graph,
55 const wasm::CanonicalSig*
sig, WrapperCompilationInfo);
69 template <
typename T,
typename A>
71 template <
typename T,
typename A>
76 void BuildModifyThreadInWasmFlagHelper(
Zone* zone,
77 OpIndex thread_in_wasm_flag_address,
79 void BuildModifyThreadInWasmFlag(
Zone* zone,
bool new_value);
100 std::initializer_list<const OpIndex>
args,
107 std::pair<V<Word32>,
V<HeapObject>> BuildImportedFunctionTargetAndImplicitArg(
119 std::initializer_list<OpIndex>
args);
121 std::initializer_list<OpIndex>
args);
124 return CallC(
sig, ref, {arg});
129 std::pair<V<WordPtr>,
V<WordPtr>> BuildSwitchToTheCentralStackIfNeeded();
OpIndex CallC(const MachineSignature *sig, ExternalReference ref, OpIndex arg)
compiler::turboshaft::WordPtr WordPtr
WasmGraphBuilderBase(Zone *zone, Assembler &assembler)
base::Vector< const DirectHandle< Object > > args
std::conditional_t< Is64(), Word64, Word32 > WordPtr
V8_EXPORT_PRIVATE void BuildTSGraph(compiler::turboshaft::PipelineData *data, AccountingAllocator *allocator, CompilationEnv *env, WasmDetectedFeatures *detected, Graph &graph, const FunctionBody &func_body, const WireBytesStorage *wire_bytes, std::unique_ptr< AssumptionsJournal > *assumptions, ZoneVector< WasmInliningPosition > *inlining_positions, int func_index)
void BuildWasmWrapper(compiler::turboshaft::PipelineData *data, AccountingAllocator *allocator, compiler::turboshaft::Graph &graph, const wasm::CanonicalSig *sig, WrapperCompilationInfo)
wasm::WasmModule WasmModule
kWasmInternalFunctionIndirectPointerTag kProtectedInstanceDataOffset sig
#define V8_EXPORT_PRIVATE