src/hotspot/share/gc/g1/c2/g1BarrierSetC2.cpp
changeset 59053 ba6c248cae19
parent 57697 2e38a71e6038
equal deleted inserted replaced
59051:f0312c7d5b37 59053:ba6c248cae19
     1 /*
     1 /*
     2  * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
   296  * the object is newly allocated and that no safepoint exists between the
   296  * the object is newly allocated and that no safepoint exists between the
   297  * allocation and the store.
   297  * allocation and the store.
   298  *
   298  *
   299  * In the case of slow allocation the allocation code must handle the barrier
   299  * In the case of slow allocation the allocation code must handle the barrier
   300  * as part of the allocation in the case the allocated object is not located
   300  * as part of the allocation in the case the allocated object is not located
   301  * in the nursery, this would happen for humongous objects. This is similar to
   301  * in the nursery; this would happen for humongous objects.
   302  * how CMS is required to handle this case, see the comments for the method
       
   303  * CollectedHeap::new_deferred_store_barrier and OptoRuntime::new_deferred_store_barrier.
       
   304  * A deferred card mark is required for these objects and handled in the above
       
   305  * mentioned methods.
       
   306  *
   302  *
   307  * Returns true if the post barrier can be removed
   303  * Returns true if the post barrier can be removed
   308  */
   304  */
   309 bool G1BarrierSetC2::g1_can_remove_post_barrier(GraphKit* kit,
   305 bool G1BarrierSetC2::g1_can_remove_post_barrier(GraphKit* kit,
   310                                                 PhaseTransform* phase, Node* store,
   306                                                 PhaseTransform* phase, Node* store,