| 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 #ifndef V8_REGISTER_ALLOCATOR_H_ | 5 #ifndef V8_REGISTER_ALLOCATOR_H_ |
| 6 #define V8_REGISTER_ALLOCATOR_H_ | 6 #define V8_REGISTER_ALLOCATOR_H_ |
| 7 | 7 |
| 8 #include "src/compiler/instruction.h" | 8 #include "src/compiler/instruction.h" |
| 9 #include "src/ostreams.h" | 9 #include "src/ostreams.h" |
| 10 #include "src/zone-containers.h" | 10 #include "src/zone-containers.h" |
| (...skipping 665 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 676 ZoneVector<TopLevelLiveRange*>& fixed_live_ranges() { | 676 ZoneVector<TopLevelLiveRange*>& fixed_live_ranges() { |
| 677 return fixed_live_ranges_; | 677 return fixed_live_ranges_; |
| 678 } | 678 } |
| 679 ZoneVector<TopLevelLiveRange*>& fixed_double_live_ranges() { | 679 ZoneVector<TopLevelLiveRange*>& fixed_double_live_ranges() { |
| 680 return fixed_double_live_ranges_; | 680 return fixed_double_live_ranges_; |
| 681 } | 681 } |
| 682 const ZoneVector<TopLevelLiveRange*>& fixed_double_live_ranges() const { | 682 const ZoneVector<TopLevelLiveRange*>& fixed_double_live_ranges() const { |
| 683 return fixed_double_live_ranges_; | 683 return fixed_double_live_ranges_; |
| 684 } | 684 } |
| 685 ZoneVector<BitVector*>& live_in_sets() { return live_in_sets_; } | 685 ZoneVector<BitVector*>& live_in_sets() { return live_in_sets_; } |
| 686 ZoneSet<SpillRange*>& spill_ranges() { return spill_ranges_; } | 686 ZoneVector<BitVector*>& live_out_sets() { return live_out_sets_; } |
| 687 ZoneVector<SpillRange*>& spill_ranges() { return spill_ranges_; } |
| 687 DelayedReferences& delayed_references() { return delayed_references_; } | 688 DelayedReferences& delayed_references() { return delayed_references_; } |
| 688 InstructionSequence* code() const { return code_; } | 689 InstructionSequence* code() const { return code_; } |
| 689 // This zone is for datastructures only needed during register allocation | 690 // This zone is for datastructures only needed during register allocation |
| 690 // phases. | 691 // phases. |
| 691 Zone* allocation_zone() const { return allocation_zone_; } | 692 Zone* allocation_zone() const { return allocation_zone_; } |
| 692 // This zone is for InstructionOperands and moves that live beyond register | 693 // This zone is for InstructionOperands and moves that live beyond register |
| 693 // allocation. | 694 // allocation. |
| 694 Zone* code_zone() const { return code()->zone(); } | 695 Zone* code_zone() const { return code()->zone(); } |
| 695 Frame* frame() const { return frame_; } | 696 Frame* frame() const { return frame_; } |
| 696 const char* debug_name() const { return debug_name_; } | 697 const char* debug_name() const { return debug_name_; } |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 734 private: | 735 private: |
| 735 int GetNextLiveRangeId(); | 736 int GetNextLiveRangeId(); |
| 736 | 737 |
| 737 Zone* const allocation_zone_; | 738 Zone* const allocation_zone_; |
| 738 Frame* const frame_; | 739 Frame* const frame_; |
| 739 InstructionSequence* const code_; | 740 InstructionSequence* const code_; |
| 740 const char* const debug_name_; | 741 const char* const debug_name_; |
| 741 const RegisterConfiguration* const config_; | 742 const RegisterConfiguration* const config_; |
| 742 PhiMap phi_map_; | 743 PhiMap phi_map_; |
| 743 ZoneVector<BitVector*> live_in_sets_; | 744 ZoneVector<BitVector*> live_in_sets_; |
| 745 ZoneVector<BitVector*> live_out_sets_; |
| 744 ZoneVector<TopLevelLiveRange*> live_ranges_; | 746 ZoneVector<TopLevelLiveRange*> live_ranges_; |
| 745 ZoneVector<TopLevelLiveRange*> fixed_live_ranges_; | 747 ZoneVector<TopLevelLiveRange*> fixed_live_ranges_; |
| 746 ZoneVector<TopLevelLiveRange*> fixed_double_live_ranges_; | 748 ZoneVector<TopLevelLiveRange*> fixed_double_live_ranges_; |
| 747 ZoneSet<SpillRange*> spill_ranges_; | 749 ZoneVector<SpillRange*> spill_ranges_; |
| 748 DelayedReferences delayed_references_; | 750 DelayedReferences delayed_references_; |
| 749 BitVector* assigned_registers_; | 751 BitVector* assigned_registers_; |
| 750 BitVector* assigned_double_registers_; | 752 BitVector* assigned_double_registers_; |
| 751 int virtual_register_count_; | 753 int virtual_register_count_; |
| 752 | 754 |
| 753 DISALLOW_COPY_AND_ASSIGN(RegisterAllocationData); | 755 DISALLOW_COPY_AND_ASSIGN(RegisterAllocationData); |
| 754 }; | 756 }; |
| 755 | 757 |
| 756 | 758 |
| 757 class ConstraintBuilder final : public ZoneObject { | 759 class ConstraintBuilder final : public ZoneObject { |
| (...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1045 RegisterAllocationData* const data_; | 1047 RegisterAllocationData* const data_; |
| 1046 | 1048 |
| 1047 DISALLOW_COPY_AND_ASSIGN(LiveRangeConnector); | 1049 DISALLOW_COPY_AND_ASSIGN(LiveRangeConnector); |
| 1048 }; | 1050 }; |
| 1049 | 1051 |
| 1050 } // namespace compiler | 1052 } // namespace compiler |
| 1051 } // namespace internal | 1053 } // namespace internal |
| 1052 } // namespace v8 | 1054 } // namespace v8 |
| 1053 | 1055 |
| 1054 #endif // V8_REGISTER_ALLOCATOR_H_ | 1056 #endif // V8_REGISTER_ALLOCATOR_H_ |
| OLD | NEW |