| 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 <memory> | 8 #include <memory> |
| 9 #include <sstream> | 9 #include <sstream> |
| 10 | 10 |
| (...skipping 534 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 545 }; | 545 }; |
| 546 | 546 |
| 547 PipelineCompilationJob::Status PipelineCompilationJob::PrepareJobImpl() { | 547 PipelineCompilationJob::Status PipelineCompilationJob::PrepareJobImpl() { |
| 548 if (info()->shared_info()->asm_function()) { | 548 if (info()->shared_info()->asm_function()) { |
| 549 if (info()->osr_frame()) info()->MarkAsFrameSpecializing(); | 549 if (info()->osr_frame()) info()->MarkAsFrameSpecializing(); |
| 550 info()->MarkAsFunctionContextSpecializing(); | 550 info()->MarkAsFunctionContextSpecializing(); |
| 551 } else { | 551 } else { |
| 552 if (!FLAG_always_opt) { | 552 if (!FLAG_always_opt) { |
| 553 info()->MarkAsBailoutOnUninitialized(); | 553 info()->MarkAsBailoutOnUninitialized(); |
| 554 } | 554 } |
| 555 if (FLAG_turbo_loop_peeling) { |
| 556 info()->MarkAsLoopPeelingEnabled(); |
| 557 } |
| 555 } | 558 } |
| 556 if (info()->is_optimizing_from_bytecode() || | 559 if (info()->is_optimizing_from_bytecode() || |
| 557 !info()->shared_info()->asm_function() || FLAG_turbo_asm_deoptimization) { | 560 !info()->shared_info()->asm_function() || FLAG_turbo_asm_deoptimization) { |
| 558 info()->MarkAsDeoptimizationEnabled(); | 561 info()->MarkAsDeoptimizationEnabled(); |
| 559 if (FLAG_inline_accessors) { | 562 if (FLAG_inline_accessors) { |
| 560 info()->MarkAsAccessorInliningEnabled(); | 563 info()->MarkAsAccessorInliningEnabled(); |
| 561 } | 564 } |
| 562 } | 565 } |
| 563 if (!info()->is_optimizing_from_bytecode()) { | 566 if (!info()->is_optimizing_from_bytecode()) { |
| 564 if (!Compiler::EnsureDeoptimizationSupport(info())) return FAILED; | 567 if (!Compiler::EnsureDeoptimizationSupport(info())) return FAILED; |
| (...skipping 933 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1498 Typer typer(isolate(), flags, data->graph()); | 1501 Typer typer(isolate(), flags, data->graph()); |
| 1499 Run<TyperPhase>(&typer); | 1502 Run<TyperPhase>(&typer); |
| 1500 RunPrintAndVerify("Typed"); | 1503 RunPrintAndVerify("Typed"); |
| 1501 | 1504 |
| 1502 data->BeginPhaseKind("lowering"); | 1505 data->BeginPhaseKind("lowering"); |
| 1503 | 1506 |
| 1504 // Lower JSOperators where we can determine types. | 1507 // Lower JSOperators where we can determine types. |
| 1505 Run<TypedLoweringPhase>(); | 1508 Run<TypedLoweringPhase>(); |
| 1506 RunPrintAndVerify("Lowered typed"); | 1509 RunPrintAndVerify("Lowered typed"); |
| 1507 | 1510 |
| 1508 if (FLAG_turbo_loop_peeling) { | 1511 if (data->info()->is_loop_peeling_enabled()) { |
| 1509 Run<LoopPeelingPhase>(); | 1512 Run<LoopPeelingPhase>(); |
| 1510 RunPrintAndVerify("Loops peeled", true); | 1513 RunPrintAndVerify("Loops peeled", true); |
| 1511 } else { | 1514 } else { |
| 1512 Run<LoopExitEliminationPhase>(); | 1515 Run<LoopExitEliminationPhase>(); |
| 1513 RunPrintAndVerify("Loop exits eliminated", true); | 1516 RunPrintAndVerify("Loop exits eliminated", true); |
| 1514 } | 1517 } |
| 1515 | 1518 |
| 1516 if (FLAG_turbo_stress_loop_peeling) { | 1519 if (FLAG_turbo_stress_loop_peeling) { |
| 1517 Run<StressLoopPeelingPhase>(); | 1520 Run<StressLoopPeelingPhase>(); |
| 1518 RunPrintAndVerify("Loop peeled"); | 1521 RunPrintAndVerify("Loop peeled"); |
| (...skipping 426 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1945 data->DeleteRegisterAllocationZone(); | 1948 data->DeleteRegisterAllocationZone(); |
| 1946 } | 1949 } |
| 1947 | 1950 |
| 1948 CompilationInfo* PipelineImpl::info() const { return data_->info(); } | 1951 CompilationInfo* PipelineImpl::info() const { return data_->info(); } |
| 1949 | 1952 |
| 1950 Isolate* PipelineImpl::isolate() const { return info()->isolate(); } | 1953 Isolate* PipelineImpl::isolate() const { return info()->isolate(); } |
| 1951 | 1954 |
| 1952 } // namespace compiler | 1955 } // namespace compiler |
| 1953 } // namespace internal | 1956 } // namespace internal |
| 1954 } // namespace v8 | 1957 } // namespace v8 |
| OLD | NEW |