Allow --always-opt to go further into the pipeline (1).
authormstarzinger <mstarzinger@chromium.org>
Fri, 16 Jan 2015 22:20:00 +0000 (14:20 -0800)
committerCommit bot <commit-bot@chromium.org>
Fri, 16 Jan 2015 22:20:09 +0000 (22:20 +0000)
R=rossberg@chromium.org

Review URL: https://codereview.chromium.org/841213003

Cr-Commit-Position: refs/heads/master@{#26112}

src/bootstrapper.cc
src/compiler.cc
src/factory.cc
src/objects.cc
src/runtime/runtime-test.cc

index 4254e59..049519b 100644 (file)
@@ -2510,6 +2510,7 @@ bool Genesis::InstallJSBuiltins(Handle<JSBuiltinsObject> builtins) {
     // TODO(mstarzinger): This is just a temporary hack to make TurboFan work,
     // the correct solution is to restore the context register after invoking
     // builtins from full-codegen.
+    function->shared()->set_disable_optimization_reason(kOptimizationDisabled);
     function->shared()->set_optimization_disabled(true);
     if (!Compiler::EnsureCompiled(function, CLEAR_EXCEPTION)) {
       return false;
index 0136e5b..544b4dd 100644 (file)
@@ -967,7 +967,6 @@ MaybeHandle<Code> Compiler::GetLazyCode(Handle<JSFunction> function) {
                              Code);
 
   if (FLAG_always_opt && isolate->use_crankshaft() &&
-      !info.shared_info()->optimization_disabled() &&
       !isolate->DebuggerHasBreakPoints()) {
     Handle<Code> opt_code;
     if (Compiler::GetOptimizedCode(
index 9688305..fe99aa6 100644 (file)
@@ -1362,7 +1362,7 @@ static bool ShouldOptimizeNewClosure(Isolate* isolate,
                                      Handle<SharedFunctionInfo> info) {
   return isolate->use_crankshaft() && !info->is_toplevel() &&
          info->is_compiled() && info->allows_lazy_compilation() &&
-         !info->optimization_disabled() && !isolate->DebuggerHasBreakPoints();
+         !isolate->DebuggerHasBreakPoints();
 }
 
 
index 9edbdc9..cbca817 100644 (file)
@@ -9437,9 +9437,7 @@ void JSFunction::MarkForOptimization() {
   Isolate* isolate = GetIsolate();
   DCHECK(isolate->use_crankshaft());
   DCHECK(!IsOptimized());
-  DCHECK(shared()->allows_lazy_compilation() ||
-         code()->optimizable());
-  DCHECK(!shared()->is_generator());
+  DCHECK(shared()->allows_lazy_compilation() || code()->optimizable());
   set_code_no_write_barrier(
       isolate->builtins()->builtin(Builtins::kCompileOptimized));
   // No write barrier required, since the builtin is part of the root set.
@@ -9466,7 +9464,6 @@ void JSFunction::AttemptConcurrentOptimization() {
   DCHECK(is_compiled() || isolate->DebuggerHasBreakPoints());
   DCHECK(!IsOptimized());
   DCHECK(shared()->allows_lazy_compilation() || code()->optimizable());
-  DCHECK(!shared()->is_generator());
   DCHECK(isolate->concurrent_recompilation_enabled());
   if (FLAG_trace_concurrent_recompilation) {
     PrintF("  ** Marking ");
index b4b90e2..a66e766 100644 (file)
@@ -53,9 +53,8 @@ RUNTIME_FUNCTION(Runtime_OptimizeFunctionOnNextCall) {
   HandleScope scope(isolate);
   RUNTIME_ASSERT(args.length() == 1 || args.length() == 2);
   CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0);
-  // The following two assertions are lifted from the DCHECKs inside
+  // The following assertion was lifted from the DCHECK inside
   // JSFunction::MarkForOptimization().
-  RUNTIME_ASSERT(!function->shared()->is_generator());
   RUNTIME_ASSERT(function->shared()->allows_lazy_compilation() ||
                  (function->code()->kind() == Code::FUNCTION &&
                   function->code()->optimizable()));