Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(67)

Unified Diff: src/compiler.cc

Issue 2505933008: [compiler] Ensure code unsupported by Crankshaft goes to Ignition. (Closed)
Patch Set: Update FunctionTester Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | test/cctest/compiler/function-tester.cc » ('j') | test/cctest/compiler/function-tester.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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) {
« no previous file with comments | « no previous file | test/cctest/compiler/function-tester.cc » ('j') | test/cctest/compiler/function-tester.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698