Index: src/compiler.cc |
diff --git a/src/compiler.cc b/src/compiler.cc |
index 9c63ca055a330fc56f72cc705eba17ab66d30b21..bd5f5db9a15d17577181acbdebd9a9bbbe1c56cd 100644 |
--- a/src/compiler.cc |
+++ b/src/compiler.cc |
@@ -326,32 +326,34 @@ bool UseTurboFan(Handle<SharedFunctionInfo> shared) { |
bool ShouldUseIgnition(CompilationInfo* info) { |
DCHECK(info->has_shared_info()); |
+ Handle<SharedFunctionInfo> shared = info->shared_info(); |
+ |
+ // Code which can't be supported by the old pipeline should use Ignition. |
+ if (shared->dont_crankshaft()) return true; |
// Skip Ignition for asm.js functions. |
- if (info->shared_info()->asm_function()) { |
- return false; |
- } |
+ if (shared->asm_function()) return false; |
// When requesting debug code as a replacement for existing code, we provide |
// the same kind as the existing code (to prevent implicit tier-change). |
- if (info->is_debug() && info->shared_info()->is_compiled()) { |
- return !info->shared_info()->HasBaselineCode(); |
+ if (info->is_debug() && shared->is_compiled()) { |
+ return !shared->HasBaselineCode(); |
} |
// Code destined for TurboFan should be compiled with Ignition first. |
- if (UseTurboFan(info->shared_info())) return true; |
+ if (UseTurboFan(shared)) return true; |
// Only use Ignition for any other function if FLAG_ignition is true. |
if (!FLAG_ignition) return false; |
// Checks whether top level functions should be passed by the filter. |
- if (info->shared_info()->is_toplevel()) { |
+ if (shared->is_toplevel()) { |
Vector<const char> filter = CStrVector(FLAG_ignition_filter); |
return (filter.length() == 0) || (filter.length() == 1 && filter[0] == '*'); |
} |
// Finally respect the filter. |
- return info->shared_info()->PassesFilter(FLAG_ignition_filter); |
+ return shared->PassesFilter(FLAG_ignition_filter); |
} |
CompilationJob* GetUnoptimizedCompilationJob(CompilationInfo* info) { |