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 |