comparison src/share/vm/memory/oopFactory.cpp @ 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 c7f3d0b4570f
children 49036505ab5f
comparison
equal deleted inserted replaced
3960:f08d439fab8c 3961:a92cdbac8b9e
75 75
76 76
77 typeArrayOop oopFactory::new_typeArray(BasicType type, int length, TRAPS) { 77 typeArrayOop oopFactory::new_typeArray(BasicType type, int length, TRAPS) {
78 klassOop type_asKlassOop = Universe::typeArrayKlassObj(type); 78 klassOop type_asKlassOop = Universe::typeArrayKlassObj(type);
79 typeArrayKlass* type_asArrayKlass = typeArrayKlass::cast(type_asKlassOop); 79 typeArrayKlass* type_asArrayKlass = typeArrayKlass::cast(type_asKlassOop);
80 typeArrayOop result = type_asArrayKlass->allocate(length, THREAD); 80 typeArrayOop result = type_asArrayKlass->allocate_common(length, true, THREAD);
81 return result;
82 }
83
84 typeArrayOop oopFactory::new_typeArray_nozero(BasicType type, int length, TRAPS) {
85 klassOop type_asKlassOop = Universe::typeArrayKlassObj(type);
86 typeArrayKlass* type_asArrayKlass = typeArrayKlass::cast(type_asKlassOop);
87 typeArrayOop result = type_asArrayKlass->allocate_common(length, false, THREAD);
81 return result; 88 return result;
82 } 89 }
83 90
84 91
85 objArrayOop oopFactory::new_objArray(klassOop klass, int length, TRAPS) { 92 objArrayOop oopFactory::new_objArray(klassOop klass, int length, TRAPS) {