Mercurial > hg > graal-compiler
diff src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp @ 113:ba764ed4b6f2
6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv
Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
author | coleenp |
---|---|
date | Sun, 13 Apr 2008 17:43:42 -0400 |
parents | a61af66fc99e |
children | d1605aabd0a1 |
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp Fri Apr 11 09:56:35 2008 -0400 +++ b/src/share/vm/gc_implementation/parNew/parGCAllocBuffer.cpp Sun Apr 13 17:43:42 2008 -0400 @@ -32,18 +32,19 @@ _allocated(0), _wasted(0) { assert (min_size() > AlignmentReserve, "Inconsistency!"); + // arrayOopDesc::header_size depends on command line initialization. + FillerHeaderSize = align_object_size(arrayOopDesc::header_size(T_INT)); + AlignmentReserve = oopDesc::header_size() > MinObjAlignment ? FillerHeaderSize : 0; } -const size_t ParGCAllocBuffer::FillerHeaderSize = - align_object_size(arrayOopDesc::header_size(T_INT)); +size_t ParGCAllocBuffer::FillerHeaderSize; // If the minimum object size is greater than MinObjAlignment, we can // end up with a shard at the end of the buffer that's smaller than // the smallest object. We can't allow that because the buffer must // look like it's full of objects when we retire it, so we make // sure we have enough space for a filler int array object. -const size_t ParGCAllocBuffer::AlignmentReserve = - oopDesc::header_size() > MinObjAlignment ? FillerHeaderSize : 0; +size_t ParGCAllocBuffer::AlignmentReserve; void ParGCAllocBuffer::retire(bool end_of_gc, bool retain) { assert(!retain || end_of_gc, "Can only retain at GC end.");