5#ifndef V8_COMPILER_PIPELINE_H_
6#define V8_COMPILER_PIPELINE_H_
17#if V8_ENABLE_WEBASSEMBLY
25struct AssemblerOptions;
26class OptimizedCompilationInfo;
27class TurbofanCompilationJob;
28class ProfileDataFromFile;
29class RegisterConfiguration;
30struct WasmInliningPosition;
35struct WasmCompilationResult;
36class WasmDetectedFeatures;
39namespace compiler::turboshaft {
42class TurboshaftCompilationJob;
50class InstructionSequence;
55class SourcePositionTable;
56struct WasmCompilationData;
80 static std::unique_ptr<TurbofanCompilationJob>
88 static std::unique_ptr<TurbofanCompilationJob>
95 static std::unique_ptr<TurbofanCompilationJob>
104#if V8_ENABLE_WEBASSEMBLY
112 GenerateCodeForWasmNativeStubFromTurboshaft(
122 static std::unique_ptr<TurbofanCompilationJob> NewWasmHeapStubCompilationJob(
127 static std::unique_ptr<compiler::turboshaft::TurboshaftCompilationJob>
128 NewWasmTurboshaftWrapperCompilationJob(
static constexpr BytecodeOffset None()
static std::unique_ptr< TurbofanCompilationJob > NewBytecodeHandlerCompilationJob(Isolate *isolate, Builtin builtin, CodeAssemblerGenerator generator, CodeAssemblerInstaller installer, const AssemblerOptions &assembler_options, const char *name, const ProfileDataFromFile *profile_data, int finalize_order)
static MaybeHandle< Code > GenerateCodeForTurboshaftBuiltin(turboshaft::PipelineData *turboshaft_data, CallDescriptor *call_descriptor, Builtin builtin, const char *debug_name, const ProfileDataFromFile *profile_data)
std::function< void(Builtin builtin, Handle< Code > code)> CodeAssemblerInstaller
static std::unique_ptr< TurbofanCompilationJob > NewCSLinkageCodeStubBuiltinCompilationJob(Isolate *isolate, Builtin builtin, CodeAssemblerGenerator generator, CodeAssemblerInstaller installer, const AssemblerOptions &assembler_options, CallDescriptors::Key interface_descriptor, const char *name, const ProfileDataFromFile *profile_data, int finalize_order)
DISALLOW_IMPLICIT_CONSTRUCTORS(Pipeline)
static V8_EXPORT_PRIVATE MaybeHandle< Code > GenerateCodeForTesting(OptimizedCompilationInfo *info, Isolate *isolate)
static V8_EXPORT_PRIVATE MaybeHandle< Code > GenerateTurboshaftCodeForTesting(CallDescriptor *call_descriptor, turboshaft::PipelineData *data)
static V8_EXPORT_PRIVATE std::unique_ptr< TurbofanCompilationJob > NewCompilationJob(Isolate *isolate, Handle< JSFunction > function, CodeKind code_kind, bool has_script, BytecodeOffset osr_offset=BytecodeOffset::None())
std::function< void(compiler::CodeAssemblerState *)> CodeAssemblerGenerator
static std::unique_ptr< TurbofanCompilationJob > NewJSLinkageCodeStubBuiltinCompilationJob(Isolate *isolate, Builtin builtin, CodeAssemblerGenerator generator, CodeAssemblerInstaller installer, const AssemblerOptions &assembler_options, int argc, const char *name, const ProfileDataFromFile *profile_data, int finalize_order)
SourcePositionTable * source_positions
std::ostream & operator<<(std::ostream &os, AccessMode access_mode)
compiler::CodeAssemblerState CodeAssemblerState
kWasmInternalFunctionIndirectPointerTag kProtectedInstanceDataOffset sig
#define V8_EXPORT_PRIVATE
const ZoneVector< std::pair< int, int > > * instr_origins
const InstructionSequence * sequence