src/hotspot/share/gc/g1/g1_specialized_oop_closures.hpp
author tschatzl
Mon, 26 Mar 2018 16:51:43 +0200
changeset 49607 acffe6ff3ae7
parent 47885 5caa1d5f74c1
permissions -rw-r--r--
8180415: Rebuild remembered sets during the concurrent cycle Summary: In general maintain remembered sets of old regions only from the start of the concurrent cycle to the mixed gc they are used, at most until the end of the mixed phase. Reviewed-by: sjohanss, sangheki
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1374
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
     1
/*
49607
acffe6ff3ae7 8180415: Rebuild remembered sets during the concurrent cycle
tschatzl
parents: 47885
diff changeset
     2
 * Copyright (c) 2001, 2018, Oracle and/or its affiliates. All rights reserved.
1374
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
     4
 *
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
     7
 * published by the Free Software Foundation.
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
     8
 *
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    13
 * accompanied this code).
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    14
 *
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    18
 *
5547
f4b087cbb361 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 4902
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
f4b087cbb361 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 4902
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
f4b087cbb361 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 4902
diff changeset
    21
 * questions.
1374
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    22
 *
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    23
 */
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    24
30764
fec48bf5a827 8079792: GC directory structure cleanup
pliden
parents: 29688
diff changeset
    25
#ifndef SHARE_VM_GC_G1_G1_SPECIALIZED_OOP_CLOSURES_HPP
fec48bf5a827 8079792: GC directory structure cleanup
pliden
parents: 29688
diff changeset
    26
#define SHARE_VM_GC_G1_G1_SPECIALIZED_OOP_CLOSURES_HPP
7397
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 5547
diff changeset
    27
1374
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    28
// The following OopClosure types get specialized versions of
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    29
// "oop_oop_iterate" that invoke the closures' do_oop methods
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    30
// non-virtually, using a mechanism defined in this file.  Extend these
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    31
// macros in the obvious way to add specializations for new closures.
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    32
25492
d27050bdfb04 8049421: G1 Class Unloading after completing a concurrent mark cycle
stefank
parents: 25491
diff changeset
    33
// Forward declarations.
d27050bdfb04 8049421: G1 Class Unloading after completing a concurrent mark cycle
stefank
parents: 25491
diff changeset
    34
46572
fef0d64b2263 8175554: Improve G1UpdateRSOrPushRefClosure
tschatzl
parents: 46519
diff changeset
    35
class G1ScanEvacuatedObjClosure;
1374
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    36
46572
fef0d64b2263 8175554: Improve G1UpdateRSOrPushRefClosure
tschatzl
parents: 46519
diff changeset
    37
class G1ScanObjsDuringUpdateRSClosure;
fef0d64b2263 8175554: Improve G1UpdateRSOrPushRefClosure
tschatzl
parents: 46519
diff changeset
    38
class G1ScanObjsDuringScanRSClosure;
46519
40c9c132f961 8177707: Specialize G1RemSet::refine_card for concurrent/during safepoint refinement
tschatzl
parents: 46307
diff changeset
    39
class G1ConcurrentRefineOopClosure;
40c9c132f961 8177707: Specialize G1RemSet::refine_card for concurrent/during safepoint refinement
tschatzl
parents: 46307
diff changeset
    40
9994
efb74fdbd46e 7046558: G1: concurrent marking optimizations
tonyp
parents: 9988
diff changeset
    41
class G1CMOopClosure;
11586
ccc217c177ee 7133038: G1: Some small profile based optimizations
johnc
parents: 10495
diff changeset
    42
class G1RootRegionScanClosure;
ccc217c177ee 7133038: G1: Some small profile based optimizations
johnc
parents: 10495
diff changeset
    43
47885
5caa1d5f74c1 8186571: Implementation: JEP 307: Parallel Full GC for G1
sjohanss
parents: 47216
diff changeset
    44
class G1MarkAndPushClosure;
49607
acffe6ff3ae7 8180415: Rebuild remembered sets during the concurrent cycle
tschatzl
parents: 47885
diff changeset
    45
class G1AdjustClosure;
acffe6ff3ae7 8180415: Rebuild remembered sets during the concurrent cycle
tschatzl
parents: 47885
diff changeset
    46
acffe6ff3ae7 8180415: Rebuild remembered sets during the concurrent cycle
tschatzl
parents: 47885
diff changeset
    47
class G1RebuildRemSetClosure;
47885
5caa1d5f74c1 8186571: Implementation: JEP 307: Parallel Full GC for G1
sjohanss
parents: 47216
diff changeset
    48
29688
2a0cad173059 8075247: Cleanup specialized_oop_closures.hpp
stefank
parents: 25492
diff changeset
    49
#define SPECIALIZED_OOP_OOP_ITERATE_CLOSURES_G1(f) \
46572
fef0d64b2263 8175554: Improve G1UpdateRSOrPushRefClosure
tschatzl
parents: 46519
diff changeset
    50
      f(G1ScanEvacuatedObjClosure,_nv)             \
fef0d64b2263 8175554: Improve G1UpdateRSOrPushRefClosure
tschatzl
parents: 46519
diff changeset
    51
      f(G1ScanObjsDuringUpdateRSClosure,_nv)       \
fef0d64b2263 8175554: Improve G1UpdateRSOrPushRefClosure
tschatzl
parents: 46519
diff changeset
    52
      f(G1ScanObjsDuringScanRSClosure,_nv)         \
46519
40c9c132f961 8177707: Specialize G1RemSet::refine_card for concurrent/during safepoint refinement
tschatzl
parents: 46307
diff changeset
    53
      f(G1ConcurrentRefineOopClosure,_nv)          \
29688
2a0cad173059 8075247: Cleanup specialized_oop_closures.hpp
stefank
parents: 25492
diff changeset
    54
      f(G1CMOopClosure,_nv)                        \
49607
acffe6ff3ae7 8180415: Rebuild remembered sets during the concurrent cycle
tschatzl
parents: 47885
diff changeset
    55
      f(G1RootRegionScanClosure,_nv)               \
acffe6ff3ae7 8180415: Rebuild remembered sets during the concurrent cycle
tschatzl
parents: 47885
diff changeset
    56
      f(G1RebuildRemSetClosure,_nv)
1374
4c24294029a9 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
    57
47885
5caa1d5f74c1 8186571: Implementation: JEP 307: Parallel Full GC for G1
sjohanss
parents: 47216
diff changeset
    58
#define SPECIALIZED_OOP_OOP_ITERATE_CLOSURES_G1FULL(f) \
5caa1d5f74c1 8186571: Implementation: JEP 307: Parallel Full GC for G1
sjohanss
parents: 47216
diff changeset
    59
      f(G1MarkAndPushClosure,_nv)                      \
49607
acffe6ff3ae7 8180415: Rebuild remembered sets during the concurrent cycle
tschatzl
parents: 47885
diff changeset
    60
      f(G1AdjustClosure,_nv)
47885
5caa1d5f74c1 8186571: Implementation: JEP 307: Parallel Full GC for G1
sjohanss
parents: 47216
diff changeset
    61
30764
fec48bf5a827 8079792: GC directory structure cleanup
pliden
parents: 29688
diff changeset
    62
#endif // SHARE_VM_GC_G1_G1_SPECIALIZED_OOP_CLOSURES_HPP