< prev index next >

src/hotspot/cpu/arm/c1_Runtime1_arm.cpp

Print this page
rev 51052 : 8207252: C1 still does eden allocations when TLAB is enabled
Summary: Only do eden allocations when TLAB is disabled
Reviewed-by: kbarrett, jrose, tschatzl
Contributed-by: jcbeyler@google.com

*** 544,556 **** case fast_new_instance_init_check_id: { const Register result = R0; const Register klass = R1; ! if (UseTLAB && Universe::heap()->supports_inline_contig_alloc() && id != new_instance_id) { ! // We come here when TLAB allocation failed. ! // In this case we try to allocate directly from eden. Label slow_case, slow_case_no_pop; // Make sure the class is fully initialized if (id == fast_new_instance_init_check_id) { __ ldrb(result, Address(klass, InstanceKlass::init_state_offset())); --- 544,557 ---- case fast_new_instance_init_check_id: { const Register result = R0; const Register klass = R1; ! // If TLAB is disabled, see if there is support for inlining contiguous ! // allocations. ! // Otherwise, just go to the slow path. ! if (!UseTLAB && Universe::heap()->supports_inline_contig_alloc() && id != new_instance_id) { Label slow_case, slow_case_no_pop; // Make sure the class is fully initialized if (id == fast_new_instance_init_check_id) { __ ldrb(result, Address(klass, InstanceKlass::init_state_offset()));
*** 614,626 **** const Register result = R0; const Register klass = R1; const Register length = R2; ! if (UseTLAB && Universe::heap()->supports_inline_contig_alloc()) { ! // We come here when TLAB allocation failed. ! // In this case we try to allocate directly from eden. Label slow_case, slow_case_no_pop; #ifdef AARCH64 __ mov_slow(Rtemp, C1_MacroAssembler::max_array_allocation_length); __ cmp_32(length, Rtemp); --- 615,628 ---- const Register result = R0; const Register klass = R1; const Register length = R2; ! // If TLAB is disabled, see if there is support for inlining contiguous ! // allocations. ! // Otherwise, just go to the slow path. ! if (!UseTLAB && Universe::heap()->supports_inline_contig_alloc()) { Label slow_case, slow_case_no_pop; #ifdef AARCH64 __ mov_slow(Rtemp, C1_MacroAssembler::max_array_allocation_length); __ cmp_32(length, Rtemp);
< prev index next >