Mercurial > hg > graal-jvmci-8
comparison src/share/vm/memory/genCollectedHeap.cpp @ 642:660978a2a31a
6791178: Specialize for zero as the compressed oop vm heap base
Summary: Use zero based compressed oops if java heap is below 32gb and unscaled compressed oops if java heap is below 4gb.
Reviewed-by: never, twisti, jcoomes, coleenp
author | kvn |
---|---|
date | Thu, 12 Mar 2009 10:37:46 -0700 |
parents | c6c601a0f2d6 |
children | bd441136a5ce |
comparison
equal
deleted
inserted
replaced
641:6af0a709d52b | 642:660978a2a31a |
---|---|
216 | 216 |
217 // Calculate the address of the first word of the heap. | 217 // Calculate the address of the first word of the heap. |
218 heap_address -= total_reserved; | 218 heap_address -= total_reserved; |
219 } else { | 219 } else { |
220 heap_address = NULL; // any address will do. | 220 heap_address = NULL; // any address will do. |
221 if (UseCompressedOops) { | |
222 heap_address = Universe::preferred_heap_base(total_reserved, Universe::UnscaledNarrowOop); | |
223 *_total_reserved = total_reserved; | |
224 *_n_covered_regions = n_covered_regions; | |
225 *heap_rs = ReservedHeapSpace(total_reserved, alignment, | |
226 UseLargePages, heap_address); | |
227 | |
228 if (heap_address != NULL && !heap_rs->is_reserved()) { | |
229 // Failed to reserve at specified address - the requested memory | |
230 // region is taken already, for example, by 'java' launcher. | |
231 // Try again to reserver heap higher. | |
232 heap_address = Universe::preferred_heap_base(total_reserved, Universe::ZeroBasedNarrowOop); | |
233 *heap_rs = ReservedHeapSpace(total_reserved, alignment, | |
234 UseLargePages, heap_address); | |
235 | |
236 if (heap_address != NULL && !heap_rs->is_reserved()) { | |
237 // Failed to reserve at specified address again - give up. | |
238 heap_address = Universe::preferred_heap_base(total_reserved, Universe::HeapBasedNarrowOop); | |
239 assert(heap_address == NULL, ""); | |
240 *heap_rs = ReservedHeapSpace(total_reserved, alignment, | |
241 UseLargePages, heap_address); | |
242 } | |
243 } | |
244 return heap_address; | |
245 } | |
221 } | 246 } |
222 | 247 |
223 *_total_reserved = total_reserved; | 248 *_total_reserved = total_reserved; |
224 *_n_covered_regions = n_covered_regions; | 249 *_n_covered_regions = n_covered_regions; |
225 *heap_rs = ReservedHeapSpace(total_reserved, alignment, | 250 *heap_rs = ReservedHeapSpace(total_reserved, alignment, |