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

Side by Side Diff: src/compiler.cc

Issue 1552233002: [turbofan] Fix turbofan-enabling conditions. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Adjust test expectations. Created 4 years, 11 months 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 unified diff | Download patch
« no previous file with comments | « no previous file | test/mjsunit/mjsunit.status » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler.h" 5 #include "src/compiler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "src/ast/ast-numbering.h" 9 #include "src/ast/ast-numbering.h"
10 #include "src/ast/prettyprinter.h" 10 #include "src/ast/prettyprinter.h"
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 return SetLastStatus(FAILED); 404 return SetLastStatus(FAILED);
405 } 405 }
406 if (FLAG_hydrogen_stats) { 406 if (FLAG_hydrogen_stats) {
407 isolate()->GetHStatistics()->IncrementFullCodeGen(timer.Elapsed()); 407 isolate()->GetHStatistics()->IncrementFullCodeGen(timer.Elapsed());
408 } 408 }
409 } 409 }
410 410
411 DCHECK(info()->shared_info()->has_deoptimization_support()); 411 DCHECK(info()->shared_info()->has_deoptimization_support());
412 DCHECK(!info()->is_first_compile()); 412 DCHECK(!info()->is_first_compile());
413 413
414 // Check the enabling conditions for TurboFan. 414 bool optimization_disabled = info()->shared_info()->optimization_disabled();
415 bool dont_crankshaft = info()->shared_info()->dont_crankshaft(); 415 bool dont_crankshaft = info()->shared_info()->dont_crankshaft();
416 if (((FLAG_turbo_asm && info()->shared_info()->asm_function()) || 416
417 (dont_crankshaft && strcmp(FLAG_turbo_filter, "~~") == 0) || 417 // Check the enabling conditions for Turbofan.
418 info()->closure()->PassesFilter(FLAG_turbo_filter)) && 418 // 1. "use asm" code.
419 (FLAG_turbo_osr || !info()->is_osr())) { 419 bool is_turbofanable_asm = FLAG_turbo_asm &&
420 info()->shared_info()->asm_function() &&
421 !optimization_disabled;
422
423 // 2. Fallback for features unsupported by Crankshaft.
424 bool is_unsupported_by_crankshaft_but_turbofanable =
425 dont_crankshaft && strcmp(FLAG_turbo_filter, "~~") == 0 &&
426 !optimization_disabled;
427
428 // 3. Explicitly enabled by the command-line filter.
429 bool passes_turbo_filter = info()->closure()->PassesFilter(FLAG_turbo_filter);
430
431 // If this is OSR request, OSR must be enabled by Turbofan.
432 bool passes_osr_test = FLAG_turbo_osr || !info()->is_osr();
433
434 if ((is_turbofanable_asm || is_unsupported_by_crankshaft_but_turbofanable ||
435 passes_turbo_filter) &&
436 passes_osr_test) {
420 // Use TurboFan for the compilation. 437 // Use TurboFan for the compilation.
421 if (FLAG_trace_opt) { 438 if (FLAG_trace_opt) {
422 OFStream os(stdout); 439 OFStream os(stdout);
423 os << "[compiling method " << Brief(*info()->closure()) 440 os << "[compiling method " << Brief(*info()->closure())
424 << " using TurboFan"; 441 << " using TurboFan";
425 if (info()->is_osr()) os << " OSR"; 442 if (info()->is_osr()) os << " OSR";
426 os << "]" << std::endl; 443 os << "]" << std::endl;
427 } 444 }
428 445
429 if (info()->shared_info()->asm_function()) { 446 if (info()->shared_info()->asm_function()) {
(...skipping 1408 matching lines...) Expand 10 before | Expand all | Expand 10 after
1838 } 1855 }
1839 1856
1840 #if DEBUG 1857 #if DEBUG
1841 void CompilationInfo::PrintAstForTesting() { 1858 void CompilationInfo::PrintAstForTesting() {
1842 PrintF("--- Source from AST ---\n%s\n", 1859 PrintF("--- Source from AST ---\n%s\n",
1843 PrettyPrinter(isolate()).PrintProgram(literal())); 1860 PrettyPrinter(isolate()).PrintProgram(literal()));
1844 } 1861 }
1845 #endif 1862 #endif
1846 } // namespace internal 1863 } // namespace internal
1847 } // namespace v8 1864 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | test/mjsunit/mjsunit.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698