82 size_t desired_word_size,
83 size_t* actual_word_size);
84 public:
85 G1Allocator(G1CollectedHeap* heap);
86
87 #ifdef ASSERT
88 // Do we currently have an active mutator region to allocate into?
89 bool has_mutator_alloc_region() { return mutator_alloc_region()->get() != NULL; }
90 #endif
91
92 void init_mutator_alloc_region();
93 void release_mutator_alloc_region();
94
95 void init_gc_alloc_regions(EvacuationInfo& evacuation_info);
96 void release_gc_alloc_regions(EvacuationInfo& evacuation_info);
97 void abandon_gc_alloc_regions();
98 bool is_retained_old_region(HeapRegion* hr);
99
100 // Allocate blocks of memory during mutator time.
101
102 inline HeapWord* attempt_allocation(size_t word_size);
103 inline HeapWord* attempt_allocation_locked(size_t word_size);
104 inline HeapWord* attempt_allocation_force(size_t word_size);
105
106 size_t unsafe_max_tlab_alloc();
107 size_t used_in_alloc_regions();
108
109 // Allocate blocks of memory during garbage collection. Will ensure an
110 // allocation region, either by picking one or expanding the
111 // heap, and then allocate a block of the given size. The block
112 // may not be a humongous - it must fit into a single heap region.
113 HeapWord* par_allocate_during_gc(InCSetState dest,
114 size_t word_size);
115
116 HeapWord* par_allocate_during_gc(InCSetState dest,
117 size_t min_word_size,
118 size_t desired_word_size,
119 size_t* actual_word_size);
120 };
121
122 // Manages the PLABs used during garbage collection. Interface for allocation from PLABs.
|
82 size_t desired_word_size,
83 size_t* actual_word_size);
84 public:
85 G1Allocator(G1CollectedHeap* heap);
86
87 #ifdef ASSERT
88 // Do we currently have an active mutator region to allocate into?
89 bool has_mutator_alloc_region() { return mutator_alloc_region()->get() != NULL; }
90 #endif
91
92 void init_mutator_alloc_region();
93 void release_mutator_alloc_region();
94
95 void init_gc_alloc_regions(EvacuationInfo& evacuation_info);
96 void release_gc_alloc_regions(EvacuationInfo& evacuation_info);
97 void abandon_gc_alloc_regions();
98 bool is_retained_old_region(HeapRegion* hr);
99
100 // Allocate blocks of memory during mutator time.
101
102 inline HeapWord* attempt_allocation(size_t min_word_size,
103 size_t desired_word_size,
104 size_t* actual_word_size);
105 inline HeapWord* attempt_allocation_locked(size_t word_size);
106 inline HeapWord* attempt_allocation_force(size_t word_size);
107
108 size_t unsafe_max_tlab_alloc();
109 size_t used_in_alloc_regions();
110
111 // Allocate blocks of memory during garbage collection. Will ensure an
112 // allocation region, either by picking one or expanding the
113 // heap, and then allocate a block of the given size. The block
114 // may not be a humongous - it must fit into a single heap region.
115 HeapWord* par_allocate_during_gc(InCSetState dest,
116 size_t word_size);
117
118 HeapWord* par_allocate_during_gc(InCSetState dest,
119 size_t min_word_size,
120 size_t desired_word_size,
121 size_t* actual_word_size);
122 };
123
124 // Manages the PLABs used during garbage collection. Interface for allocation from PLABs.
|