OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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_LITHIUM_ALLOCATOR_H_ | 5 #ifndef V8_LITHIUM_ALLOCATOR_H_ |
6 #define V8_LITHIUM_ALLOCATOR_H_ | 6 #define V8_LITHIUM_ALLOCATOR_H_ |
7 | 7 |
8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
9 #include "src/lithium.h" | 9 #include "src/lithium.h" |
10 #include "src/zone.h" | 10 #include "src/zone.h" |
(...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
513 LPlatformChunk* chunk_; | 513 LPlatformChunk* chunk_; |
514 | 514 |
515 // During liveness analysis keep a mapping from block id to live_in sets | 515 // During liveness analysis keep a mapping from block id to live_in sets |
516 // for blocks already analyzed. | 516 // for blocks already analyzed. |
517 ZoneList<BitVector*> live_in_sets_; | 517 ZoneList<BitVector*> live_in_sets_; |
518 | 518 |
519 // Liveness analysis results. | 519 // Liveness analysis results. |
520 ZoneList<LiveRange*> live_ranges_; | 520 ZoneList<LiveRange*> live_ranges_; |
521 | 521 |
522 // Lists of live ranges | 522 // Lists of live ranges |
523 EmbeddedVector<LiveRange*, Register::kNumRegisters> fixed_live_ranges_; | 523 EmbeddedVector<LiveRange*, Register::kMaxNumAllocatableRegisters> |
524 EmbeddedVector<LiveRange*, DoubleRegister::kMaxNumRegisters> | 524 fixed_live_ranges_; |
| 525 EmbeddedVector<LiveRange*, DoubleRegister::kMaxNumAllocatableRegisters> |
525 fixed_double_live_ranges_; | 526 fixed_double_live_ranges_; |
526 ZoneList<LiveRange*> unhandled_live_ranges_; | 527 ZoneList<LiveRange*> unhandled_live_ranges_; |
527 ZoneList<LiveRange*> active_live_ranges_; | 528 ZoneList<LiveRange*> active_live_ranges_; |
528 ZoneList<LiveRange*> inactive_live_ranges_; | 529 ZoneList<LiveRange*> inactive_live_ranges_; |
529 ZoneList<LiveRange*> reusable_slots_; | 530 ZoneList<LiveRange*> reusable_slots_; |
530 | 531 |
531 // Next virtual register number to be assigned to temporaries. | 532 // Next virtual register number to be assigned to temporaries. |
532 int next_virtual_register_; | 533 int next_virtual_register_; |
533 int first_artificial_register_; | 534 int first_artificial_register_; |
534 GrowableBitVector double_artificial_registers_; | 535 GrowableBitVector double_artificial_registers_; |
535 | 536 |
536 RegisterKind mode_; | 537 RegisterKind mode_; |
537 int num_registers_; | 538 int num_registers_; |
538 const int* allocatable_register_codes_; | |
539 | 539 |
540 BitVector* assigned_registers_; | 540 BitVector* assigned_registers_; |
541 BitVector* assigned_double_registers_; | 541 BitVector* assigned_double_registers_; |
542 | 542 |
543 HGraph* graph_; | 543 HGraph* graph_; |
544 | 544 |
545 bool has_osr_entry_; | 545 bool has_osr_entry_; |
546 | 546 |
547 // Indicates success or failure during register allocation. | 547 // Indicates success or failure during register allocation. |
548 bool allocation_ok_; | 548 bool allocation_ok_; |
(...skipping 15 matching lines...) Expand all Loading... |
564 LAllocator* allocator_; | 564 LAllocator* allocator_; |
565 size_t allocator_zone_start_allocation_size_; | 565 size_t allocator_zone_start_allocation_size_; |
566 | 566 |
567 DISALLOW_COPY_AND_ASSIGN(LAllocatorPhase); | 567 DISALLOW_COPY_AND_ASSIGN(LAllocatorPhase); |
568 }; | 568 }; |
569 | 569 |
570 | 570 |
571 } } // namespace v8::internal | 571 } } // namespace v8::internal |
572 | 572 |
573 #endif // V8_LITHIUM_ALLOCATOR_H_ | 573 #endif // V8_LITHIUM_ALLOCATOR_H_ |
OLD | NEW |