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/zone-containers.h" | 9 #include "src/zone-containers.h" |
10 | 10 |
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 return (parent_ == NULL) ? this : parent_; | 189 return (parent_ == NULL) ? this : parent_; |
190 } | 190 } |
191 LiveRange* next() const { return next_; } | 191 LiveRange* next() const { return next_; } |
192 bool IsChild() const { return parent() != NULL; } | 192 bool IsChild() const { return parent() != NULL; } |
193 int id() const { return id_; } | 193 int id() const { return id_; } |
194 bool IsFixed() const { return id_ < 0; } | 194 bool IsFixed() const { return id_ < 0; } |
195 bool IsEmpty() const { return first_interval() == NULL; } | 195 bool IsEmpty() const { return first_interval() == NULL; } |
196 InstructionOperand* CreateAssignedOperand(Zone* zone) const; | 196 InstructionOperand* CreateAssignedOperand(Zone* zone) const; |
197 int assigned_register() const { return assigned_register_; } | 197 int assigned_register() const { return assigned_register_; } |
198 int spill_start_index() const { return spill_start_index_; } | 198 int spill_start_index() const { return spill_start_index_; } |
199 void set_assigned_register(int reg); | 199 void set_assigned_register(int reg, Zone* zone); |
200 void MakeSpilled(); | 200 void MakeSpilled(); |
201 bool is_phi() const { return is_phi_; } | 201 bool is_phi() const { return is_phi_; } |
202 void set_is_phi(bool is_phi) { is_phi_ = is_phi; } | 202 void set_is_phi(bool is_phi) { is_phi_ = is_phi; } |
203 bool is_non_loop_phi() const { return is_non_loop_phi_; } | 203 bool is_non_loop_phi() const { return is_non_loop_phi_; } |
204 void set_is_non_loop_phi(bool is_non_loop_phi) { | 204 void set_is_non_loop_phi(bool is_non_loop_phi) { |
205 is_non_loop_phi_ = is_non_loop_phi; | 205 is_non_loop_phi_ = is_non_loop_phi; |
206 } | 206 } |
207 | 207 |
208 // Returns use position in this live range that follows both start | 208 // Returns use position in this live range that follows both start |
209 // and last processed use position. | 209 // and last processed use position. |
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
631 #endif | 631 #endif |
632 | 632 |
633 DISALLOW_COPY_AND_ASSIGN(RegisterAllocator); | 633 DISALLOW_COPY_AND_ASSIGN(RegisterAllocator); |
634 }; | 634 }; |
635 | 635 |
636 } // namespace compiler | 636 } // namespace compiler |
637 } // namespace internal | 637 } // namespace internal |
638 } // namespace v8 | 638 } // namespace v8 |
639 | 639 |
640 #endif // V8_REGISTER_ALLOCATOR_H_ | 640 #endif // V8_REGISTER_ALLOCATOR_H_ |
OLD | NEW |