| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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/crankshaft/hydrogen.h" | 5 #include "src/crankshaft/hydrogen.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <sstream> | 8 #include <sstream> |
| 9 | 9 |
| 10 #include "src/allocation-site-scopes.h" | 10 #include "src/allocation-site-scopes.h" |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 #define DEF_VISIT(type) \ | 111 #define DEF_VISIT(type) \ |
| 112 void Visit##type(type* node) override { \ | 112 void Visit##type(type* node) override { \ |
| 113 HOptimizedGraphBuilder::Visit##type(node); \ | 113 HOptimizedGraphBuilder::Visit##type(node); \ |
| 114 } | 114 } |
| 115 DECLARATION_NODE_LIST(DEF_VISIT) | 115 DECLARATION_NODE_LIST(DEF_VISIT) |
| 116 #undef DEF_VISIT | 116 #undef DEF_VISIT |
| 117 }; | 117 }; |
| 118 | 118 |
| 119 HCompilationJob::Status HCompilationJob::PrepareJobImpl() { | 119 HCompilationJob::Status HCompilationJob::PrepareJobImpl() { |
| 120 if (!isolate()->use_crankshaft() || | 120 if (!isolate()->use_crankshaft() || |
| 121 info()->shared_info()->dont_crankshaft()) { | 121 info()->shared_info()->must_use_ignition_turbo()) { |
| 122 // Crankshaft is entirely disabled. | 122 // Crankshaft is entirely disabled. |
| 123 return FAILED; | 123 return FAILED; |
| 124 } | 124 } |
| 125 | 125 |
| 126 // Optimization requires a version of fullcode with deoptimization support. | 126 // Optimization requires a version of fullcode with deoptimization support. |
| 127 // Recompile the unoptimized version of the code if the current version | 127 // Recompile the unoptimized version of the code if the current version |
| 128 // doesn't have deoptimization support already. | 128 // doesn't have deoptimization support already. |
| 129 // Otherwise, if we are gathering compilation time and space statistics | 129 // Otherwise, if we are gathering compilation time and space statistics |
| 130 // for hydrogen, gather baseline statistics for a fullcode compilation. | 130 // for hydrogen, gather baseline statistics for a fullcode compilation. |
| 131 bool should_recompile = !info()->shared_info()->has_deoptimization_support(); | 131 bool should_recompile = !info()->shared_info()->has_deoptimization_support(); |
| (...skipping 7940 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8072 } | 8072 } |
| 8073 if (!Compiler::ParseAndAnalyze(target_info.parse_info())) { | 8073 if (!Compiler::ParseAndAnalyze(target_info.parse_info())) { |
| 8074 if (target_info.isolate()->has_pending_exception()) { | 8074 if (target_info.isolate()->has_pending_exception()) { |
| 8075 // Parse or scope error, never optimize this function. | 8075 // Parse or scope error, never optimize this function. |
| 8076 SetStackOverflow(); | 8076 SetStackOverflow(); |
| 8077 target_shared->DisableOptimization(kParseScopeError); | 8077 target_shared->DisableOptimization(kParseScopeError); |
| 8078 } | 8078 } |
| 8079 TraceInline(target, caller, "parse failure"); | 8079 TraceInline(target, caller, "parse failure"); |
| 8080 return false; | 8080 return false; |
| 8081 } | 8081 } |
| 8082 if (target_shared->dont_crankshaft()) { | 8082 if (target_shared->must_use_ignition_turbo()) { |
| 8083 TraceInline(target, caller, "ParseAndAnalyze found incompatibility"); | 8083 TraceInline(target, caller, "ParseAndAnalyze found incompatibility"); |
| 8084 return false; | 8084 return false; |
| 8085 } | 8085 } |
| 8086 | 8086 |
| 8087 if (target_info.scope()->NeedsContext()) { | 8087 if (target_info.scope()->NeedsContext()) { |
| 8088 TraceInline(target, caller, "target has context-allocated variables"); | 8088 TraceInline(target, caller, "target has context-allocated variables"); |
| 8089 return false; | 8089 return false; |
| 8090 } | 8090 } |
| 8091 | 8091 |
| 8092 if (target_info.scope()->rest_parameter() != nullptr) { | 8092 if (target_info.scope()->rest_parameter() != nullptr) { |
| (...skipping 4933 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13026 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 13026 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 13027 } | 13027 } |
| 13028 | 13028 |
| 13029 #ifdef DEBUG | 13029 #ifdef DEBUG |
| 13030 graph_->Verify(false); // No full verify. | 13030 graph_->Verify(false); // No full verify. |
| 13031 #endif | 13031 #endif |
| 13032 } | 13032 } |
| 13033 | 13033 |
| 13034 } // namespace internal | 13034 } // namespace internal |
| 13035 } // namespace v8 | 13035 } // namespace v8 |
| OLD | NEW |