From d6085f277c7ea2940a7638375ae07ea4c167ab81 Mon Sep 17 00:00:00 2001 From: mstarzinger Date: Mon, 23 Mar 2015 07:25:45 -0700 Subject: [PATCH] Make compiler more acceptive wrt Isolate::use_crankshaft. This allows using %OptimizeFunctionOnNextCall and friends even when Crankshaft is disabled. Note that this should only affect code paths that are not relevant to performance. By now we have a single bailout point in place within OptimizedCompileJob::CreateGraph that ensures Crankshaft is only used when enabled and supported. R=titzer@chromium.org Review URL: https://codereview.chromium.org/999173007 Cr-Commit-Position: refs/heads/master@{#27367} --- src/factory.cc | 4 ++-- src/objects.cc | 2 -- src/runtime/runtime-compiler.cc | 1 - src/runtime/runtime-test.cc | 4 ---- 4 files changed, 2 insertions(+), 9 deletions(-) diff --git a/src/factory.cc b/src/factory.cc index d999cd503..5dac6a1ad 100644 --- a/src/factory.cc +++ b/src/factory.cc @@ -1353,8 +1353,8 @@ Handle Factory::NewFunctionPrototype(Handle function) { static bool ShouldOptimizeNewClosure(Isolate* isolate, Handle info) { - return isolate->use_crankshaft() && !info->is_toplevel() && - info->is_compiled() && info->allows_lazy_compilation(); + return !info->is_toplevel() && info->is_compiled() && + info->allows_lazy_compilation(); } diff --git a/src/objects.cc b/src/objects.cc index 1a5e45844..f7d0fd5b6 100644 --- a/src/objects.cc +++ b/src/objects.cc @@ -9626,7 +9626,6 @@ void JSFunction::JSFunctionIterateBody(int object_size, ObjectVisitor* v) { void JSFunction::MarkForOptimization() { Isolate* isolate = GetIsolate(); - DCHECK(isolate->use_crankshaft()); DCHECK(!IsOptimized()); DCHECK(shared()->allows_lazy_compilation() || code()->optimizable()); set_code_no_write_barrier( @@ -9650,7 +9649,6 @@ void JSFunction::AttemptConcurrentOptimization() { // recompilation race. This goes away as soon as OSR becomes one-shot. return; } - DCHECK(isolate->use_crankshaft()); DCHECK(!IsInOptimizationQueue()); DCHECK(is_compiled() || isolate->debug()->has_break_points()); DCHECK(!IsOptimized()); diff --git a/src/runtime/runtime-compiler.cc b/src/runtime/runtime-compiler.cc index 0958da13a..52fe1e7a8 100644 --- a/src/runtime/runtime-compiler.cc +++ b/src/runtime/runtime-compiler.cc @@ -47,7 +47,6 @@ RUNTIME_FUNCTION(Runtime_CompileOptimized) { DCHECK(args.length() == 2); CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0); CONVERT_BOOLEAN_ARG_CHECKED(concurrent, 1); - DCHECK(isolate->use_crankshaft()); Compiler::ConcurrencyMode mode = concurrent ? Compiler::CONCURRENT : Compiler::NOT_CONCURRENT; diff --git a/src/runtime/runtime-test.cc b/src/runtime/runtime-test.cc index c5e3f15f3..8b402f9b2 100644 --- a/src/runtime/runtime-test.cc +++ b/src/runtime/runtime-test.cc @@ -89,8 +89,6 @@ RUNTIME_FUNCTION(Runtime_OptimizeFunctionOnNextCall) { (function->code()->kind() == Code::FUNCTION && function->code()->optimizable())); - if (!isolate->use_crankshaft()) return isolate->heap()->undefined_value(); - // If the function is already optimized, just return. if (function->IsOptimized()) return isolate->heap()->undefined_value(); @@ -136,8 +134,6 @@ RUNTIME_FUNCTION(Runtime_OptimizeOsr) { (function->code()->kind() == Code::FUNCTION && function->code()->optimizable())); - if (!isolate->use_crankshaft()) return isolate->heap()->undefined_value(); - // If the function is already optimized, just return. if (function->IsOptimized()) return isolate->heap()->undefined_value(); -- 2.34.1