< prev index next >
src/hotspot/cpu/aarch64/c1_Runtime1_aarch64.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
*** 685,696 ****
} else {
assert(id == fast_new_instance_init_check_id, "bad StubID");
__ set_info("fast new_instance init check", dont_gc_arguments);
}
if ((id == fast_new_instance_id || id == fast_new_instance_init_check_id) &&
! UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
Label slow_path;
Register obj_size = r2;
Register t1 = r19;
Register t2 = r4;
assert_different_registers(klass, obj, obj_size, t1, t2);
--- 685,699 ----
} else {
assert(id == fast_new_instance_init_check_id, "bad StubID");
__ set_info("fast new_instance init check", dont_gc_arguments);
}
+ // If TLAB is disabled, see if there is support for inlining contiguous
+ // allocations.
+ // Otherwise, just go to the slow path.
if ((id == fast_new_instance_id || id == fast_new_instance_init_check_id) &&
! !UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
Label slow_path;
Register obj_size = r2;
Register t1 = r19;
Register t2 = r4;
assert_different_registers(klass, obj, obj_size, t1, t2);
*** 797,807 ****
__ should_not_reach_here();
__ bind(ok);
}
#endif // ASSERT
! if (UseTLAB && Universe::heap()->supports_inline_contig_alloc()) {
Register arr_size = r4;
Register t1 = r2;
Register t2 = r5;
Label slow_path;
assert_different_registers(length, klass, obj, arr_size, t1, t2);
--- 800,813 ----
__ should_not_reach_here();
__ bind(ok);
}
#endif // ASSERT
! // 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()) {
Register arr_size = r4;
Register t1 = r2;
Register t2 = r5;
Label slow_path;
assert_different_registers(length, klass, obj, arr_size, t1, t2);
< prev index next >