| 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/common-operator.h" | 5 #include "src/compiler/common-operator.h" |
| 6 #include "src/compiler/graph.h" | 6 #include "src/compiler/graph.h" |
| 7 #include "src/compiler/instruction.h" | 7 #include "src/compiler/instruction.h" |
| 8 #include "src/compiler/schedule.h" | 8 #include "src/compiler/schedule.h" |
| 9 | 9 |
| 10 namespace v8 { | 10 namespace v8 { |
| (...skipping 548 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 559 reference_maps_.push_back(reference_map); | 559 reference_maps_.push_back(reference_map); |
| 560 } | 560 } |
| 561 return index; | 561 return index; |
| 562 } | 562 } |
| 563 | 563 |
| 564 | 564 |
| 565 InstructionBlock* InstructionSequence::GetInstructionBlock( | 565 InstructionBlock* InstructionSequence::GetInstructionBlock( |
| 566 int instruction_index) const { | 566 int instruction_index) const { |
| 567 DCHECK(instruction_blocks_->size() == block_starts_.size()); | 567 DCHECK(instruction_blocks_->size() == block_starts_.size()); |
| 568 auto begin = block_starts_.begin(); | 568 auto begin = block_starts_.begin(); |
| 569 auto end = std::lower_bound(begin, block_starts_.end(), instruction_index, | 569 auto end = std::lower_bound(begin, block_starts_.end(), instruction_index); |
| 570 std::less_equal<int>()); | 570 // Post condition of std::lower_bound: |
| 571 size_t index = std::distance(begin, end) - 1; | 571 DCHECK(end == block_starts_.end() || *end >= instruction_index); |
| 572 if (end == block_starts_.end() || *end > instruction_index) --end; |
| 573 DCHECK(*end <= instruction_index); |
| 574 size_t index = std::distance(begin, end); |
| 572 auto block = instruction_blocks_->at(index); | 575 auto block = instruction_blocks_->at(index); |
| 573 DCHECK(block->code_start() <= instruction_index && | 576 DCHECK(block->code_start() <= instruction_index && |
| 574 instruction_index < block->code_end()); | 577 instruction_index < block->code_end()); |
| 575 return block; | 578 return block; |
| 576 } | 579 } |
| 577 | 580 |
| 578 | 581 |
| 579 static MachineType FilterRepresentation(MachineType rep) { | 582 static MachineType FilterRepresentation(MachineType rep) { |
| 580 DCHECK_EQ(rep, RepresentationOf(rep)); | 583 DCHECK_EQ(rep, RepresentationOf(rep)); |
| 581 switch (rep) { | 584 switch (rep) { |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 805 os << " B" << succ.ToInt(); | 808 os << " B" << succ.ToInt(); |
| 806 } | 809 } |
| 807 os << "\n"; | 810 os << "\n"; |
| 808 } | 811 } |
| 809 return os; | 812 return os; |
| 810 } | 813 } |
| 811 | 814 |
| 812 } // namespace compiler | 815 } // namespace compiler |
| 813 } // namespace internal | 816 } // namespace internal |
| 814 } // namespace v8 | 817 } // namespace v8 |
| OLD | NEW |