| 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) {
|
|
|