< 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 >