< prev index next >

src/hotspot/share/opto/graphKit.cpp

RFE_8195103_reduce_initial_card_marks

*** 1,7 **** /* ! * Copyright (c) 2001, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. ***************
*** 3859,3869 **** } if (use_ReduceInitialCardMarks() && obj == just_allocated_object(control())) { // We can skip marks on a freshly-allocated object in Eden. ! // Keep this code in sync with new_store_pre_barrier() in runtime.cpp. // That routine informs GC to take appropriate compensating steps, // upon a slow-path allocation, so as to make this card-mark // elision safe. return; } --- 3859,3869 ---- } if (use_ReduceInitialCardMarks() && obj == just_allocated_object(control())) { // We can skip marks on a freshly-allocated object in Eden. ! // Keep this code in sync with new_deferred_store_barrier() in runtime.cpp. // That routine informs GC to take appropriate compensating steps, // upon a slow-path allocation, so as to make this card-mark // elision safe. return; } ***************
*** 4157,4167 **** * * In the case of slow allocation the allocation code must handle the barrier * as part of the allocation in the case the allocated object is not located * in the nursery, this would happen for humongous objects. This is similar to * how CMS is required to handle this case, see the comments for the method ! * CollectedHeap::new_store_pre_barrier and OptoRuntime::new_store_pre_barrier. * A deferred card mark is required for these objects and handled in the above * mentioned methods. * * Returns true if the post barrier can be removed */ --- 4157,4167 ---- * * In the case of slow allocation the allocation code must handle the barrier * as part of the allocation in the case the allocated object is not located * in the nursery, this would happen for humongous objects. This is similar to * how CMS is required to handle this case, see the comments for the method ! * CardTableModRefBS::on_allocation_slowpath_exit and OptoRuntime::new_deferred_store_barrier. * A deferred card mark is required for these objects and handled in the above * mentioned methods. * * Returns true if the post barrier can be removed */ ***************
*** 4247,4257 **** return; } if (use_ReduceInitialCardMarks() && obj == just_allocated_object(control())) { // We can skip marks on a freshly-allocated object in Eden. ! // Keep this code in sync with new_store_pre_barrier() in runtime.cpp. // That routine informs GC to take appropriate compensating steps, // upon a slow-path allocation, so as to make this card-mark // elision safe. return; } --- 4247,4257 ---- return; } if (use_ReduceInitialCardMarks() && obj == just_allocated_object(control())) { // We can skip marks on a freshly-allocated object in Eden. ! // Keep this code in sync with new_deferred_store_barrier() in runtime.cpp. // That routine informs GC to take appropriate compensating steps, // upon a slow-path allocation, so as to make this card-mark // elision safe. return; }
< prev index next >