Mercurial > hg > truffle
comparison src/share/vm/gc_interface/collectedHeap.inline.hpp @ 3961:a92cdbac8b9e
7081933: Use zeroing elimination optimization for large array
Summary: Don't zero new typeArray during runtime call if the allocation is followed by arraycopy into it.
Reviewed-by: twisti
author | kvn |
---|---|
date | Mon, 26 Sep 2011 10:24:05 -0700 |
parents | f08d439fab8c |
children | 9a9bb0010c91 |
comparison
equal
deleted
inserted
replaced
3960:f08d439fab8c | 3961:a92cdbac8b9e |
---|---|
272 post_allocation_setup_array(klass, obj, size, length); | 272 post_allocation_setup_array(klass, obj, size, length); |
273 NOT_PRODUCT(Universe::heap()->check_for_bad_heap_word_value(obj, size)); | 273 NOT_PRODUCT(Universe::heap()->check_for_bad_heap_word_value(obj, size)); |
274 return (oop)obj; | 274 return (oop)obj; |
275 } | 275 } |
276 | 276 |
277 oop CollectedHeap::array_allocate_nozero(KlassHandle klass, | |
278 int size, | |
279 int length, | |
280 TRAPS) { | |
281 debug_only(check_for_valid_allocation_state()); | |
282 assert(!Universe::heap()->is_gc_active(), "Allocation during gc not allowed"); | |
283 assert(size >= 0, "int won't convert to size_t"); | |
284 HeapWord* obj = common_mem_allocate_noinit(size, CHECK_NULL); | |
285 ((oop)obj)->set_klass_gap(0); | |
286 post_allocation_setup_array(klass, obj, size, length); | |
287 #ifndef PRODUCT | |
288 const size_t hs = oopDesc::header_size()+1; | |
289 Universe::heap()->check_for_non_bad_heap_word_value(obj+hs, size-hs); | |
290 #endif | |
291 return (oop)obj; | |
292 } | |
293 | |
277 oop CollectedHeap::permanent_obj_allocate(KlassHandle klass, int size, TRAPS) { | 294 oop CollectedHeap::permanent_obj_allocate(KlassHandle klass, int size, TRAPS) { |
278 oop obj = permanent_obj_allocate_no_klass_install(klass, size, CHECK_NULL); | 295 oop obj = permanent_obj_allocate_no_klass_install(klass, size, CHECK_NULL); |
279 post_allocation_install_obj_klass(klass, obj, size); | 296 post_allocation_install_obj_klass(klass, obj, size); |
280 NOT_PRODUCT(Universe::heap()->check_for_bad_heap_word_value((HeapWord*) obj, | 297 NOT_PRODUCT(Universe::heap()->check_for_bad_heap_word_value((HeapWord*) obj, |
281 size)); | 298 size)); |