Mercurial > hg > graal-jvmci-8
comparison src/share/vm/gc_implementation/g1/heapRegion.hpp @ 17773:8ee855b4e667
8036025: Sort the freelist in order to shrink the heap
Summary: The free list is being maintained in a sorted fashion and old and humongous regions are allocated from the bottom of the heap while young regions are allocated at the top.
Reviewed-by: tschatzl, mgerdin
Contributed-by: jesper.wilhelmsson@oracle.com, staffan.friberg@oracle.com
author | jwilhelm |
---|---|
date | Fri, 28 Feb 2014 15:27:09 +0100 |
parents | 96b1c2e06e25 |
children | 78bbf4d43a14 |
comparison
equal
deleted
inserted
replaced
17763:6e7e363c5a8f | 17773:8ee855b4e667 |
---|---|
269 // Next region whose cards need cleaning | 269 // Next region whose cards need cleaning |
270 HeapRegion* _next_dirty_cards_region; | 270 HeapRegion* _next_dirty_cards_region; |
271 | 271 |
272 // Fields used by the HeapRegionSetBase class and subclasses. | 272 // Fields used by the HeapRegionSetBase class and subclasses. |
273 HeapRegion* _next; | 273 HeapRegion* _next; |
274 HeapRegion* _prev; | |
274 #ifdef ASSERT | 275 #ifdef ASSERT |
275 HeapRegionSetBase* _containing_set; | 276 HeapRegionSetBase* _containing_set; |
276 #endif // ASSERT | 277 #endif // ASSERT |
277 bool _pending_removal; | 278 bool _pending_removal; |
278 | 279 |
529 _next_in_special_set = r; | 530 _next_in_special_set = r; |
530 } | 531 } |
531 | 532 |
532 // Methods used by the HeapRegionSetBase class and subclasses. | 533 // Methods used by the HeapRegionSetBase class and subclasses. |
533 | 534 |
534 // Getter and setter for the next field used to link regions into | 535 // Getter and setter for the next and prev fields used to link regions into |
535 // linked lists. | 536 // linked lists. |
536 HeapRegion* next() { return _next; } | 537 HeapRegion* next() { return _next; } |
538 HeapRegion* prev() { return _prev; } | |
537 | 539 |
538 void set_next(HeapRegion* next) { _next = next; } | 540 void set_next(HeapRegion* next) { _next = next; } |
541 void set_prev(HeapRegion* prev) { _prev = prev; } | |
539 | 542 |
540 // Every region added to a set is tagged with a reference to that | 543 // Every region added to a set is tagged with a reference to that |
541 // set. This is used for doing consistency checking to make sure that | 544 // set. This is used for doing consistency checking to make sure that |
542 // the contents of a set are as they should be and it's only | 545 // the contents of a set are as they should be and it's only |
543 // available in non-product builds. | 546 // available in non-product builds. |