72 // After the Prepare phase, are there any unused (empty) regions (compaction
73 // targets) at the end of any compaction queues?
74 bool has_free_compaction_targets();
75
76 private:
77 class G1CalculatePointersClosure : public HeapRegionClosure {
78 G1CollectedHeap* _g1h;
79 G1FullCollector* _collector;
80 G1CMBitMap* _bitmap;
81 G1FullGCCompactionPoint* _cp;
82
83 void prepare_for_compaction(HeapRegion* hr);
84
85 public:
86 G1CalculatePointersClosure(G1FullCollector* collector,
87 G1FullGCCompactionPoint* cp);
88
89 bool do_heap_region(HeapRegion* hr);
90 };
91
92 class G1PrepareCompactLiveClosure : public StackObj {
93 G1FullGCCompactionPoint* _cp;
94
95 public:
96 G1PrepareCompactLiveClosure(G1FullGCCompactionPoint* cp);
97 size_t apply(oop object);
98 };
99 };
100
101 // Closure to re-prepare objects in the serial compaction point queue regions for
102 // serial compaction.
103 class G1SerialRePrepareClosure : public StackObj {
104 G1FullGCCompactionPoint* _cp;
105 HeapWord* _dense_prefix_top;
106
107 public:
108 G1SerialRePrepareClosure(G1FullGCCompactionPoint* hrcp, HeapWord* dense_prefix_top) :
109 _cp(hrcp),
110 _dense_prefix_top(dense_prefix_top) { }
111
112 inline size_t apply(oop obj);
113 };
114
115 #endif // SHARE_GC_G1_G1FULLGCPREPARETASK_HPP
|
72 // After the Prepare phase, are there any unused (empty) regions (compaction
73 // targets) at the end of any compaction queues?
74 bool has_free_compaction_targets();
75
76 private:
77 class G1CalculatePointersClosure : public HeapRegionClosure {
78 G1CollectedHeap* _g1h;
79 G1FullCollector* _collector;
80 G1CMBitMap* _bitmap;
81 G1FullGCCompactionPoint* _cp;
82
83 void prepare_for_compaction(HeapRegion* hr);
84
85 public:
86 G1CalculatePointersClosure(G1FullCollector* collector,
87 G1FullGCCompactionPoint* cp);
88
89 bool do_heap_region(HeapRegion* hr);
90 };
91
92 template <bool ALT_FWD>
93 class G1PrepareCompactLiveClosure : public StackObj {
94 G1FullGCCompactionPoint* _cp;
95
96 public:
97 G1PrepareCompactLiveClosure(G1FullGCCompactionPoint* cp);
98 size_t apply(oop object);
99 };
100 };
101
102 // Closure to re-prepare objects in the serial compaction point queue regions for
103 // serial compaction.
104 template <bool ALT_FWD>
105 class G1SerialRePrepareClosure : public StackObj {
106 G1FullGCCompactionPoint* _cp;
107 HeapWord* _dense_prefix_top;
108
109 public:
110 G1SerialRePrepareClosure(G1FullGCCompactionPoint* hrcp, HeapWord* dense_prefix_top) :
111 _cp(hrcp),
112 _dense_prefix_top(dense_prefix_top) { }
113
114 inline size_t apply(oop obj);
115 };
116
117 #endif // SHARE_GC_G1_G1FULLGCPREPARETASK_HPP
|