Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(598)

Side by Side Diff: src/lithium-allocator.h

Issue 194793002: [v8-dev] ARM: safepoints frame optimization (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 #ifdef DEBUG 454 #ifdef DEBUG
455 void Verify() const; 455 void Verify() const;
456 #endif 456 #endif
457 457
458 BitVector* assigned_registers() { 458 BitVector* assigned_registers() {
459 return assigned_registers_; 459 return assigned_registers_;
460 } 460 }
461 BitVector* assigned_double_registers() { 461 BitVector* assigned_double_registers() {
462 return assigned_double_registers_; 462 return assigned_double_registers_;
463 } 463 }
464 RegList modified_registers() {
465 return modified_registers_;
466 }
467 RegList modified_double_registers() {
468 return modified_double_registers_;
469 }
464 470
465 private: 471 private:
466 void MeetRegisterConstraints(); 472 void MeetRegisterConstraints();
467 void ResolvePhis(); 473 void ResolvePhis();
468 void BuildLiveRanges(); 474 void BuildLiveRanges();
469 void AllocateGeneralRegisters(); 475 void AllocateGeneralRegisters();
470 void AllocateDoubleRegisters(); 476 void AllocateDoubleRegisters();
471 void ConnectRanges(); 477 void ConnectRanges();
472 void ResolveControlFlow(); 478 void ResolveControlFlow();
473 void PopulatePointerMaps(); 479 void PopulatePointerMaps();
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
617 int next_virtual_register_; 623 int next_virtual_register_;
618 int first_artificial_register_; 624 int first_artificial_register_;
619 GrowableBitVector double_artificial_registers_; 625 GrowableBitVector double_artificial_registers_;
620 626
621 RegisterKind mode_; 627 RegisterKind mode_;
622 int num_registers_; 628 int num_registers_;
623 629
624 BitVector* assigned_registers_; 630 BitVector* assigned_registers_;
625 BitVector* assigned_double_registers_; 631 BitVector* assigned_double_registers_;
626 632
633 // modified_registers_ and modified_double_registers_ hold the registers
634 // which are really used by the function. assigned_registers_ and
635 // assigned_double_registers_ hold the registers which are used by the
636 // registers allocator. Each time a function is called, the register
637 // allocator tells that all the allocatable registers are used by this call.
638 // That means that, most of the time assigned_xxx are not relevant (they
639 // hold all the allocatable registers).
640 // TODO(all): check if we can use modified_xxx everywhere instead of
641 // assigned_xxx.
642 RegList modified_registers_;
643 RegList modified_double_registers_;
644
627 HGraph* graph_; 645 HGraph* graph_;
628 646
629 bool has_osr_entry_; 647 bool has_osr_entry_;
630 648
631 // Indicates success or failure during register allocation. 649 // Indicates success or failure during register allocation.
632 bool allocation_ok_; 650 bool allocation_ok_;
633 651
634 #ifdef DEBUG 652 #ifdef DEBUG
635 LifetimePosition allocation_finger_; 653 LifetimePosition allocation_finger_;
636 #endif 654 #endif
(...skipping 11 matching lines...) Expand all
648 LAllocator* allocator_; 666 LAllocator* allocator_;
649 unsigned allocator_zone_start_allocation_size_; 667 unsigned allocator_zone_start_allocation_size_;
650 668
651 DISALLOW_COPY_AND_ASSIGN(LAllocatorPhase); 669 DISALLOW_COPY_AND_ASSIGN(LAllocatorPhase);
652 }; 670 };
653 671
654 672
655 } } // namespace v8::internal 673 } } // namespace v8::internal
656 674
657 #endif // V8_LITHIUM_ALLOCATOR_H_ 675 #endif // V8_LITHIUM_ALLOCATOR_H_
OLDNEW
« src/arm/assembler-arm.h ('K') | « src/lithium.cc ('k') | src/lithium-allocator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698