Mercurial > hg > truffle
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) { |