| OLD | NEW |
| 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/asmjs/asm-js.h" | 9 #include "src/asmjs/asm-js.h" |
| 10 #include "src/asmjs/typing-asm.h" | 10 #include "src/asmjs/typing-asm.h" |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 bailout_reason_(kNoReason), | 136 bailout_reason_(kNoReason), |
| 137 prologue_offset_(Code::kPrologueOffsetNotSet), | 137 prologue_offset_(Code::kPrologueOffsetNotSet), |
| 138 track_positions_(FLAG_hydrogen_track_positions || | 138 track_positions_(FLAG_hydrogen_track_positions || |
| 139 isolate->is_profiling()), | 139 isolate->is_profiling()), |
| 140 parameter_count_(0), | 140 parameter_count_(0), |
| 141 optimization_id_(-1), | 141 optimization_id_(-1), |
| 142 osr_expr_stack_height_(0), | 142 osr_expr_stack_height_(0), |
| 143 debug_name_(debug_name) {} | 143 debug_name_(debug_name) {} |
| 144 | 144 |
| 145 CompilationInfo::~CompilationInfo() { | 145 CompilationInfo::~CompilationInfo() { |
| 146 DisableFutureOptimization(); | 146 if (GetFlag(kDisableFutureOptimization) && has_shared_info()) { |
| 147 shared_info()->DisableOptimization(bailout_reason()); |
| 148 } |
| 147 dependencies()->Rollback(); | 149 dependencies()->Rollback(); |
| 148 delete deferred_handles_; | 150 delete deferred_handles_; |
| 149 } | 151 } |
| 150 | 152 |
| 151 | 153 |
| 152 int CompilationInfo::num_parameters() const { | 154 int CompilationInfo::num_parameters() const { |
| 153 return !IsStub() ? scope()->num_parameters() : parameter_count_; | 155 return !IsStub() ? scope()->num_parameters() : parameter_count_; |
| 154 } | 156 } |
| 155 | 157 |
| 156 | 158 |
| (...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 620 parse_info->literal())) { | 622 parse_info->literal())) { |
| 621 return false; | 623 return false; |
| 622 } | 624 } |
| 623 Handle<SharedFunctionInfo> shared_info = parse_info->shared_info(); | 625 Handle<SharedFunctionInfo> shared_info = parse_info->shared_info(); |
| 624 if (!shared_info.is_null()) { | 626 if (!shared_info.is_null()) { |
| 625 FunctionLiteral* lit = parse_info->literal(); | 627 FunctionLiteral* lit = parse_info->literal(); |
| 626 shared_info->set_ast_node_count(lit->ast_node_count()); | 628 shared_info->set_ast_node_count(lit->ast_node_count()); |
| 627 if (lit->dont_optimize_reason() != kNoReason) { | 629 if (lit->dont_optimize_reason() != kNoReason) { |
| 628 shared_info->DisableOptimization(lit->dont_optimize_reason()); | 630 shared_info->DisableOptimization(lit->dont_optimize_reason()); |
| 629 } | 631 } |
| 630 shared_info->set_dont_crankshaft( | 632 if (lit->flags() & AstProperties::kDontCrankshaft) { |
| 631 shared_info->dont_crankshaft() || | 633 shared_info->set_dont_crankshaft(true); |
| 632 (lit->flags() & AstProperties::kDontCrankshaft)); | 634 } |
| 633 } | 635 } |
| 634 return true; | 636 return true; |
| 635 } | 637 } |
| 636 | 638 |
| 637 bool UseTurboFan(Handle<SharedFunctionInfo> shared) { | 639 bool UseTurboFan(Handle<SharedFunctionInfo> shared) { |
| 638 bool optimization_disabled = shared->optimization_disabled(); | 640 bool optimization_disabled = shared->optimization_disabled(); |
| 639 bool dont_crankshaft = shared->dont_crankshaft(); | 641 bool dont_crankshaft = shared->dont_crankshaft(); |
| 640 | 642 |
| 641 // Check the enabling conditions for Turbofan. | 643 // Check the enabling conditions for Turbofan. |
| 642 // 1. "use asm" code. | 644 // 1. "use asm" code. |
| (...skipping 1195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1838 DCHECK(shared->is_compiled()); | 1840 DCHECK(shared->is_compiled()); |
| 1839 function->set_literals(cached.literals); | 1841 function->set_literals(cached.literals); |
| 1840 } else if (shared->is_compiled()) { | 1842 } else if (shared->is_compiled()) { |
| 1841 // TODO(mvstanton): pass pretenure flag to EnsureLiterals. | 1843 // TODO(mvstanton): pass pretenure flag to EnsureLiterals. |
| 1842 JSFunction::EnsureLiterals(function); | 1844 JSFunction::EnsureLiterals(function); |
| 1843 } | 1845 } |
| 1844 } | 1846 } |
| 1845 | 1847 |
| 1846 } // namespace internal | 1848 } // namespace internal |
| 1847 } // namespace v8 | 1849 } // namespace v8 |
| OLD | NEW |