| 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/base/adapters.h" |
| 5 #include "src/compiler/linkage.h" | 6 #include "src/compiler/linkage.h" |
| 6 #include "src/compiler/register-allocator.h" | 7 #include "src/compiler/register-allocator.h" |
| 7 #include "src/string-stream.h" | 8 #include "src/string-stream.h" |
| 8 | 9 |
| 9 namespace v8 { | 10 namespace v8 { |
| 10 namespace internal { | 11 namespace internal { |
| 11 namespace compiler { | 12 namespace compiler { |
| 12 | 13 |
| 13 #define TRACE(...) \ | 14 #define TRACE(...) \ |
| 14 do { \ | 15 do { \ |
| (...skipping 1389 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1404 | 1405 |
| 1405 void RegisterAllocator::MeetRegisterConstraints() { | 1406 void RegisterAllocator::MeetRegisterConstraints() { |
| 1406 for (auto block : code()->instruction_blocks()) { | 1407 for (auto block : code()->instruction_blocks()) { |
| 1407 MeetRegisterConstraints(block); | 1408 MeetRegisterConstraints(block); |
| 1408 } | 1409 } |
| 1409 } | 1410 } |
| 1410 | 1411 |
| 1411 | 1412 |
| 1412 void RegisterAllocator::ResolvePhis() { | 1413 void RegisterAllocator::ResolvePhis() { |
| 1413 // Process the blocks in reverse order. | 1414 // Process the blocks in reverse order. |
| 1414 for (auto i = code()->instruction_blocks().rbegin(); | 1415 for (InstructionBlock* block : base::Reversed(code()->instruction_blocks())) { |
| 1415 i != code()->instruction_blocks().rend(); ++i) { | 1416 ResolvePhis(block); |
| 1416 ResolvePhis(*i); | |
| 1417 } | 1417 } |
| 1418 } | 1418 } |
| 1419 | 1419 |
| 1420 | 1420 |
| 1421 const InstructionBlock* RegisterAllocator::GetInstructionBlock( | 1421 const InstructionBlock* RegisterAllocator::GetInstructionBlock( |
| 1422 LifetimePosition pos) { | 1422 LifetimePosition pos) { |
| 1423 return code()->GetInstructionBlock(pos.ToInstructionIndex()); | 1423 return code()->GetInstructionBlock(pos.ToInstructionIndex()); |
| 1424 } | 1424 } |
| 1425 | 1425 |
| 1426 | 1426 |
| (...skipping 1085 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2512 range->set_assigned_register(reg); | 2512 range->set_assigned_register(reg); |
| 2513 auto assignment = range->GetAssignedOperand(); | 2513 auto assignment = range->GetAssignedOperand(); |
| 2514 // TODO(dcarney): stop aliasing hint operands. | 2514 // TODO(dcarney): stop aliasing hint operands. |
| 2515 range->ConvertUsesToOperand(assignment, nullptr); | 2515 range->ConvertUsesToOperand(assignment, nullptr); |
| 2516 if (range->is_phi()) AssignPhiInput(range, assignment); | 2516 if (range->is_phi()) AssignPhiInput(range, assignment); |
| 2517 } | 2517 } |
| 2518 | 2518 |
| 2519 } // namespace compiler | 2519 } // namespace compiler |
| 2520 } // namespace internal | 2520 } // namespace internal |
| 2521 } // namespace v8 | 2521 } // namespace v8 |
| OLD | NEW |