10#ifdef V8_ENABLE_SPARKPLUG
27 if (!
v8_flags.sparkplug)
return false;
30 if (
v8_flags.sparkplug_needs_short_builtins &&
31 !isolate->is_short_builtin_calls_enabled()) {
36 if (!shared->HasBytecodeArray())
return false;
39 if (isolate->debug()->needs_check_on_function_call())
return false;
41 if (
auto debug_info = shared->TryGetDebugInfo(isolate)) {
43 if (debug_info.value()->HasBreakInfo())
return false;
47 if (debug_info.value()->HasInstrumentedBytecodeArray())
return false;
51 if (!shared->PassesFilter(
v8_flags.sparkplug_filter))
return false;
58 RCS_SCOPE(isolate, RuntimeCallCounterId::kCompileBaseline);
60 LocalIsolate* local_isolate = isolate->main_thread_local_isolate();
61 baseline::BaselineCompiler compiler(local_isolate, shared, bytecode);
62 compiler.GenerateCode();
63 MaybeDirectHandle<Code> code = compiler.Build();
64 if (
v8_flags.print_code && !code.is_null()) {
65 Print(*code.ToHandleChecked());
interpreter::Bytecode bytecode
static void EmitReturn(MacroAssembler *masm)
PerThreadAssertScopeDebugOnly< false, SAFEPOINTS_ASSERT, HEAP_ALLOCATION_ASSERT > DisallowGarbageCollection
Tagged(T object) -> Tagged< T >
MaybeDirectHandle< Code > GenerateBaselineCode(Isolate *isolate, Handle< SharedFunctionInfo > shared)
void Print(Tagged< Object > obj)
void EmitReturnBaseline(MacroAssembler *masm)
V8_EXPORT_PRIVATE FlagValues v8_flags
bool CanCompileWithBaseline(Isolate *isolate, Tagged< SharedFunctionInfo > shared)