5#ifndef V8_COMPILER_DISPATCHER_OPTIMIZING_COMPILE_DISPATCHER_H_
6#define V8_COMPILER_DISPATCHER_OPTIMIZING_COMPILE_DISPATCHER_H_
22class TurbofanCompilationJob;
23class RuntimeCallStats;
24class SharedFunctionInfo;
39 return queue_.size() < capacity_;
53 bool Enqueue(std::unique_ptr<TurbofanCompilationJob>& job);
55 void FlushJobsForIsolate(
Isolate* isolate);
56 bool HasJobForIsolate(
Isolate* isolate);
61 std::deque<TurbofanCompilationJob*>
queue_;
81 void EnsureInitialized();
100 bool IsTaskRunningForIsolate(
Isolate* isolate);
111 bool TryQueueForOptimization(std::unique_ptr<TurbofanCompilationJob>& job);
115 void WaitUntilCompilationJobsDoneForIsolate(
Isolate* isolate);
119 void CancelCompilationJobsForIsolate(
Isolate* isolate);
123 bool HasCompilationJobsForIsolate(
Isolate* isolate);
128 static constexpr TaskPriority kTaskPriority = TaskPriority::kUserVisible;
130 TaskPriority::kBestEffort;
146 bool is_initialized_ =
false;
154 std::unique_ptr<TurbofanCompilationJob> Dequeue();
156 int InstallGeneratedBuiltins(
Isolate* isolate,
int installed_count);
163 std::deque<TurbofanCompilationJob*>
queue_;
186 bool TryQueueForOptimization(std::unique_ptr<TurbofanCompilationJob>& job);
189 void WaitUntilCompilationJobsDone();
191 void InstallOptimizedFunctions();
196 int InstallGeneratedBuiltins(
int installed_count);
214 finalize_ = finalize;
219 void StartTearDown();
220 void FinishTearDown();
228 void FlushInputQueue();
229 void FlushOutputQueue();
232 return task_executor_->input_queue_;
236 return task_executor_->recompilation_delay_;
245 bool finalize_ =
true;
int recompilation_delay() const
OptimizingCompileInputQueue & input_queue()
OptimizingCompileOutputQueue output_queue_
OptimizingCompileTaskExecutor * task_executor_
void set_finalize(bool finalize)
std::deque< TurbofanCompilationJob * > queue_
OptimizingCompileInputQueue input_queue_
base::OwnedVector< OptimizingCompileTaskState > task_states_
std::unique_ptr< JobHandle > job_handle_
V8_EXPORT_PRIVATE FlagValues v8_flags
#define V8_EXPORT_PRIVATE
TurbofanCompilationJob * job