| 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/compiler/code-generator.h" | 5 #include "src/compiler/code-generator.h" |
| 6 | 6 |
| 7 #include "src/compiler/code-generator-impl.h" | 7 #include "src/compiler/code-generator-impl.h" |
| 8 #include "src/compiler/linkage.h" | 8 #include "src/compiler/linkage.h" |
| 9 #include "src/compiler/pipeline.h" | 9 #include "src/compiler/pipeline.h" |
| 10 #include "src/snapshot/serialize.h" // TODO(turbofan): RootIndexMap | 10 #include "src/snapshot/serialize.h" // TODO(turbofan): RootIndexMap |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 inlined_function_count_ = deoptimization_literals_.size(); | 85 inlined_function_count_ = deoptimization_literals_.size(); |
| 86 | 86 |
| 87 // Assemble all non-deferred blocks, followed by deferred ones. | 87 // Assemble all non-deferred blocks, followed by deferred ones. |
| 88 for (int deferred = 0; deferred < 2; ++deferred) { | 88 for (int deferred = 0; deferred < 2; ++deferred) { |
| 89 for (auto const block : code()->instruction_blocks()) { | 89 for (auto const block : code()->instruction_blocks()) { |
| 90 if (block->IsDeferred() == (deferred == 0)) { | 90 if (block->IsDeferred() == (deferred == 0)) { |
| 91 continue; | 91 continue; |
| 92 } | 92 } |
| 93 // Align loop headers on 16-byte boundaries. | 93 // Align loop headers on 16-byte boundaries. |
| 94 if (block->IsLoopHeader()) masm()->Align(16); | 94 if (block->IsLoopHeader()) masm()->Align(16); |
| 95 // Ensure lazy deopt doesn't patch handler entry points. |
| 96 if (block->IsHandler()) EnsureSpaceForLazyDeopt(); |
| 95 // Bind a label for a block. | 97 // Bind a label for a block. |
| 96 current_block_ = block->rpo_number(); | 98 current_block_ = block->rpo_number(); |
| 97 if (FLAG_code_comments) { | 99 if (FLAG_code_comments) { |
| 98 // TODO(titzer): these code comments are a giant memory leak. | 100 // TODO(titzer): these code comments are a giant memory leak. |
| 99 Vector<char> buffer = Vector<char>::New(200); | 101 Vector<char> buffer = Vector<char>::New(200); |
| 100 SNPrintF(buffer, "-- B%d start%s%s%s%s --", block->rpo_number().ToInt(), | 102 SNPrintF(buffer, "-- B%d start%s%s%s%s --", block->rpo_number().ToInt(), |
| 101 block->IsDeferred() ? " (deferred)" : "", | 103 block->IsDeferred() ? " (deferred)" : "", |
| 102 block->needs_frame() ? "" : " (no frame)", | 104 block->needs_frame() ? "" : " (no frame)", |
| 103 block->must_construct_frame() ? " (construct frame)" : "", | 105 block->must_construct_frame() ? " (construct frame)" : "", |
| 104 block->must_deconstruct_frame() ? " (deconstruct frame)" : ""); | 106 block->must_deconstruct_frame() ? " (deconstruct frame)" : ""); |
| (...skipping 583 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 688 : masm_(gen->masm()), next_(gen->ools_) { | 690 : masm_(gen->masm()), next_(gen->ools_) { |
| 689 gen->ools_ = this; | 691 gen->ools_ = this; |
| 690 } | 692 } |
| 691 | 693 |
| 692 | 694 |
| 693 OutOfLineCode::~OutOfLineCode() {} | 695 OutOfLineCode::~OutOfLineCode() {} |
| 694 | 696 |
| 695 } // namespace compiler | 697 } // namespace compiler |
| 696 } // namespace internal | 698 } // namespace internal |
| 697 } // namespace v8 | 699 } // namespace v8 |
| OLD | NEW |