| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/pipeline.h" | 5 #include "src/compiler/pipeline.h" |
| 6 | 6 |
| 7 #include <fstream> // NOLINT(readability/streams) | 7 #include <fstream> // NOLINT(readability/streams) |
| 8 #include <sstream> | 8 #include <sstream> |
| 9 | 9 |
| 10 #include "src/base/adapters.h" | 10 #include "src/base/adapters.h" |
| (...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 496 }; | 496 }; |
| 497 | 497 |
| 498 | 498 |
| 499 struct InliningPhase { | 499 struct InliningPhase { |
| 500 static const char* phase_name() { return "inlining"; } | 500 static const char* phase_name() { return "inlining"; } |
| 501 | 501 |
| 502 void Run(PipelineData* data, Zone* temp_zone) { | 502 void Run(PipelineData* data, Zone* temp_zone) { |
| 503 GraphReducer graph_reducer(data->graph(), temp_zone); | 503 GraphReducer graph_reducer(data->graph(), temp_zone); |
| 504 JSInliner inliner(&graph_reducer, data->info()->is_inlining_enabled() | 504 JSInliner inliner(&graph_reducer, data->info()->is_inlining_enabled() |
| 505 ? JSInliner::kGeneralInlining | 505 ? JSInliner::kGeneralInlining |
| 506 : JSInliner::kBuiltinsInlining, | 506 : JSInliner::kRestrictedInlining, |
| 507 temp_zone, data->info(), data->jsgraph()); | 507 temp_zone, data->info(), data->jsgraph()); |
| 508 AddReducer(data, &graph_reducer, &inliner); | 508 AddReducer(data, &graph_reducer, &inliner); |
| 509 graph_reducer.ReduceGraph(); | 509 graph_reducer.ReduceGraph(); |
| 510 } | 510 } |
| 511 }; | 511 }; |
| 512 | 512 |
| 513 | 513 |
| 514 struct TyperPhase { | 514 struct TyperPhase { |
| 515 static const char* phase_name() { return "typer"; } | 515 static const char* phase_name() { return "typer"; } |
| 516 | 516 |
| (...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1003 | 1003 |
| 1004 Run<EarlyControlReductionPhase>(); | 1004 Run<EarlyControlReductionPhase>(); |
| 1005 RunPrintAndVerify("Early Control reduced", true); | 1005 RunPrintAndVerify("Early Control reduced", true); |
| 1006 | 1006 |
| 1007 if (info()->is_context_specializing()) { | 1007 if (info()->is_context_specializing()) { |
| 1008 // Specialize the code to the context as aggressively as possible. | 1008 // Specialize the code to the context as aggressively as possible. |
| 1009 Run<ContextSpecializerPhase>(); | 1009 Run<ContextSpecializerPhase>(); |
| 1010 RunPrintAndVerify("Context specialized", true); | 1010 RunPrintAndVerify("Context specialized", true); |
| 1011 } | 1011 } |
| 1012 | 1012 |
| 1013 if (info()->is_builtin_inlining_enabled() || info()->is_inlining_enabled()) { | 1013 Run<InliningPhase>(); |
| 1014 Run<InliningPhase>(); | 1014 RunPrintAndVerify("Inlined", true); |
| 1015 RunPrintAndVerify("Inlined", true); | |
| 1016 } | |
| 1017 | 1015 |
| 1018 if (FLAG_print_turbo_replay) { | 1016 if (FLAG_print_turbo_replay) { |
| 1019 // Print a replay of the initial graph. | 1017 // Print a replay of the initial graph. |
| 1020 GraphReplayPrinter::PrintReplay(data.graph()); | 1018 GraphReplayPrinter::PrintReplay(data.graph()); |
| 1021 } | 1019 } |
| 1022 | 1020 |
| 1023 // Bailout here in case target architecture is not supported. | 1021 // Bailout here in case target architecture is not supported. |
| 1024 if (!SupportedTarget()) return Handle<Code>::null(); | 1022 if (!SupportedTarget()) return Handle<Code>::null(); |
| 1025 | 1023 |
| 1026 if (info()->is_typing_enabled()) { | 1024 if (info()->is_typing_enabled()) { |
| (...skipping 296 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1323 tcf << AsC1VRegisterAllocationData("CodeGen", | 1321 tcf << AsC1VRegisterAllocationData("CodeGen", |
| 1324 data->register_allocation_data()); | 1322 data->register_allocation_data()); |
| 1325 } | 1323 } |
| 1326 | 1324 |
| 1327 data->DeleteRegisterAllocationZone(); | 1325 data->DeleteRegisterAllocationZone(); |
| 1328 } | 1326 } |
| 1329 | 1327 |
| 1330 } // namespace compiler | 1328 } // namespace compiler |
| 1331 } // namespace internal | 1329 } // namespace internal |
| 1332 } // namespace v8 | 1330 } // namespace v8 |
| OLD | NEW |