OLD | NEW |
---|---|
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 518 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
529 | 529 |
530 // Find a lifetime position in the interval [start, end] which | 530 // Find a lifetime position in the interval [start, end] which |
531 // is optimal for splitting: it is either header of the outermost | 531 // is optimal for splitting: it is either header of the outermost |
532 // loop covered by this interval or the latest possible position. | 532 // loop covered by this interval or the latest possible position. |
533 LifetimePosition FindOptimalSplitPos(LifetimePosition start, | 533 LifetimePosition FindOptimalSplitPos(LifetimePosition start, |
534 LifetimePosition end); | 534 LifetimePosition end); |
535 | 535 |
536 // Spill the given life range after position pos. | 536 // Spill the given life range after position pos. |
537 void SpillAfter(LiveRange* range, LifetimePosition pos); | 537 void SpillAfter(LiveRange* range, LifetimePosition pos); |
538 | 538 |
539 // Spill the given life range after position start and up to position end. | 539 // Spill the given life range after position [start] and up to position [end]. |
540 void SpillBetween(LiveRange* range, | 540 void SpillBetween(LiveRange* range, |
541 LifetimePosition start, | 541 LifetimePosition start, |
542 LifetimePosition end); | 542 LifetimePosition end); |
543 | 543 |
544 // Spill the given life range after position [start] and up to position [end]. | |
545 // Range is guaranteed to be spilled at least until position [until]. | |
546 void SpillBetweenUntil(LiveRange* range, | |
547 LifetimePosition start, | |
548 LifetimePosition util, | |
Sven Panne
2013/04/16 06:52:12
Throw in an 'n'... ;-)
| |
549 LifetimePosition end); | |
550 | |
544 void SplitAndSpillIntersecting(LiveRange* range); | 551 void SplitAndSpillIntersecting(LiveRange* range); |
545 | 552 |
546 // If we are trying to spill a range inside the loop try to | 553 // If we are trying to spill a range inside the loop try to |
547 // hoist spill position out to the point just before the loop. | 554 // hoist spill position out to the point just before the loop. |
548 LifetimePosition FindOptimalSpillingPos(LiveRange* range, | 555 LifetimePosition FindOptimalSpillingPos(LiveRange* range, |
549 LifetimePosition pos); | 556 LifetimePosition pos); |
550 | 557 |
551 void Spill(LiveRange* range); | 558 void Spill(LiveRange* range); |
552 bool IsBlockBoundary(LifetimePosition pos); | 559 bool IsBlockBoundary(LifetimePosition pos); |
553 | 560 |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
618 BitVector* assigned_registers_; | 625 BitVector* assigned_registers_; |
619 BitVector* assigned_double_registers_; | 626 BitVector* assigned_double_registers_; |
620 | 627 |
621 HGraph* graph_; | 628 HGraph* graph_; |
622 | 629 |
623 bool has_osr_entry_; | 630 bool has_osr_entry_; |
624 | 631 |
625 // Indicates success or failure during register allocation. | 632 // Indicates success or failure during register allocation. |
626 bool allocation_ok_; | 633 bool allocation_ok_; |
627 | 634 |
635 #ifdef DEBUG | |
636 LifetimePosition allocation_finger_; | |
637 #endif | |
638 | |
628 DISALLOW_COPY_AND_ASSIGN(LAllocator); | 639 DISALLOW_COPY_AND_ASSIGN(LAllocator); |
629 }; | 640 }; |
630 | 641 |
631 | 642 |
632 } } // namespace v8::internal | 643 } } // namespace v8::internal |
633 | 644 |
634 #endif // V8_LITHIUM_ALLOCATOR_H_ | 645 #endif // V8_LITHIUM_ALLOCATOR_H_ |
OLD | NEW |