| Index: src/compiler-dispatcher/compiler-dispatcher-job.cc
|
| diff --git a/src/compiler-dispatcher/compiler-dispatcher-job.cc b/src/compiler-dispatcher/compiler-dispatcher-job.cc
|
| index edff41baaf58cb1f2cce3d9e2f095ed3347c3300..fdb975a5e419fde3427a53514cc5a8730ec33694 100644
|
| --- a/src/compiler-dispatcher/compiler-dispatcher-job.cc
|
| +++ b/src/compiler-dispatcher/compiler-dispatcher-job.cc
|
| @@ -66,8 +66,7 @@
|
| CompilerDispatcherTracer* tracer,
|
| Handle<SharedFunctionInfo> shared,
|
| size_t max_stack_size)
|
| - : status_(CompileJobStatus::kInitial),
|
| - isolate_(isolate),
|
| + : isolate_(isolate),
|
| tracer_(tracer),
|
| shared_(Handle<SharedFunctionInfo>::cast(
|
| isolate_->global_handles()->Create(*shared))),
|
| @@ -80,35 +79,7 @@
|
| if (trace_compiler_dispatcher_jobs_) {
|
| PrintF("CompilerDispatcherJob[%p] created for ", static_cast<void*>(this));
|
| shared_->ShortPrint();
|
| - PrintF(" in initial state.\n");
|
| - }
|
| -}
|
| -
|
| -CompilerDispatcherJob::CompilerDispatcherJob(Isolate* isolate,
|
| - CompilerDispatcherTracer* tracer,
|
| - Handle<SharedFunctionInfo> shared,
|
| - FunctionLiteral* literal,
|
| - size_t max_stack_size)
|
| - : status_(CompileJobStatus::kAnalyzed),
|
| - isolate_(isolate),
|
| - tracer_(tracer),
|
| - shared_(Handle<SharedFunctionInfo>::cast(
|
| - isolate_->global_handles()->Create(*shared))),
|
| - max_stack_size_(max_stack_size),
|
| - zone_(new Zone(isolate->allocator(), ZONE_NAME)),
|
| - parse_info_(new ParseInfo(
|
| - zone_.get(), Handle<Script>(Script::cast(shared->script())))),
|
| - compile_info_(
|
| - new CompilationInfo(parse_info_.get(), Handle<JSFunction>::null())),
|
| - trace_compiler_dispatcher_jobs_(FLAG_trace_compiler_dispatcher_jobs) {
|
| - parse_info_->set_literal(literal);
|
| - parse_info_->set_shared_info(shared);
|
| - parse_info_->set_function_literal_id(shared->function_literal_id());
|
| - parse_info_->set_language_mode(literal->scope()->language_mode());
|
| - if (trace_compiler_dispatcher_jobs_) {
|
| - PrintF("CompilerDispatcherJob[%p] created for ", static_cast<void*>(this));
|
| - shared_->ShortPrint();
|
| - PrintF(" in Analyzed state.\n");
|
| + PrintF("\n");
|
| }
|
| }
|
|
|
| @@ -281,7 +252,7 @@
|
| if (parse_info_->literal() == nullptr) {
|
| status_ = CompileJobStatus::kFailed;
|
| } else {
|
| - status_ = CompileJobStatus::kReadyToAnalyze;
|
| + status_ = CompileJobStatus::kReadyToAnalyse;
|
| }
|
|
|
| DeferredHandleScope scope(isolate_);
|
| @@ -312,38 +283,25 @@
|
| return status_ != CompileJobStatus::kFailed;
|
| }
|
|
|
| -bool CompilerDispatcherJob::AnalyzeOnMainThread() {
|
| - DCHECK(ThreadId::Current().Equals(isolate_->thread_id()));
|
| - DCHECK(status() == CompileJobStatus::kReadyToAnalyze);
|
| - COMPILER_DISPATCHER_TRACE_SCOPE(tracer_, kAnalyze);
|
| - if (trace_compiler_dispatcher_jobs_) {
|
| - PrintF("CompilerDispatcherJob[%p]: Analyzing\n", static_cast<void*>(this));
|
| +bool CompilerDispatcherJob::PrepareToCompileOnMainThread() {
|
| + DCHECK(ThreadId::Current().Equals(isolate_->thread_id()));
|
| + DCHECK(status() == CompileJobStatus::kReadyToAnalyse);
|
| + COMPILER_DISPATCHER_TRACE_SCOPE(tracer_, kPrepareToCompile);
|
| + if (trace_compiler_dispatcher_jobs_) {
|
| + PrintF("CompilerDispatcherJob[%p]: Preparing to compile\n",
|
| + static_cast<void*>(this));
|
| }
|
|
|
| compile_info_.reset(
|
| new CompilationInfo(parse_info_.get(), Handle<JSFunction>::null()));
|
|
|
| DeferredHandleScope scope(isolate_);
|
| - {
|
| - if (Compiler::Analyze(parse_info_.get())) {
|
| - status_ = CompileJobStatus::kAnalyzed;
|
| - } else {
|
| - status_ = CompileJobStatus::kFailed;
|
| - if (!isolate_->has_pending_exception()) isolate_->StackOverflow();
|
| - }
|
| + if (Compiler::Analyze(parse_info_.get())) {
|
| + compile_job_.reset(
|
| + Compiler::PrepareUnoptimizedCompilationJob(compile_info_.get()));
|
| }
|
| compile_info_->set_deferred_handles(scope.Detach());
|
|
|
| - return status_ != CompileJobStatus::kFailed;
|
| -}
|
| -
|
| -bool CompilerDispatcherJob::PrepareToCompileOnMainThread() {
|
| - DCHECK(ThreadId::Current().Equals(isolate_->thread_id()));
|
| - DCHECK(status() == CompileJobStatus::kAnalyzed);
|
| - COMPILER_DISPATCHER_TRACE_SCOPE(tracer_, kPrepareToCompile);
|
| -
|
| - compile_job_.reset(
|
| - Compiler::PrepareUnoptimizedCompilationJob(compile_info_.get()));
|
| if (!compile_job_.get()) {
|
| if (!isolate_->has_pending_exception()) isolate_->StackOverflow();
|
| status_ = CompileJobStatus::kFailed;
|
| @@ -443,10 +401,7 @@
|
| case CompileJobStatus::kParsed:
|
| return tracer_->EstimateFinalizeParsingInMs();
|
|
|
| - case CompileJobStatus::kReadyToAnalyze:
|
| - return tracer_->EstimateAnalyzeInMs();
|
| -
|
| - case CompileJobStatus::kAnalyzed:
|
| + case CompileJobStatus::kReadyToAnalyse:
|
| return tracer_->EstimatePrepareToCompileInMs();
|
|
|
| case CompileJobStatus::kReadyToCompile:
|
|
|