31 #include "gc_implementation/g1/g1CollectorPolicy.hpp" |
31 #include "gc_implementation/g1/g1CollectorPolicy.hpp" |
32 #include "gc_implementation/g1/g1RemSet.inline.hpp" |
32 #include "gc_implementation/g1/g1RemSet.inline.hpp" |
33 #include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" |
33 #include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp" |
34 #include "gc_implementation/g1/heapRegionSet.inline.hpp" |
34 #include "gc_implementation/g1/heapRegionSet.inline.hpp" |
35 #include "gc_implementation/g1/heapRegionSeq.inline.hpp" |
35 #include "gc_implementation/g1/heapRegionSeq.inline.hpp" |
|
36 #include "runtime/orderAccess.inline.hpp" |
36 #include "utilities/taskqueue.hpp" |
37 #include "utilities/taskqueue.hpp" |
37 |
38 |
38 // Inline functions for G1CollectedHeap |
39 // Inline functions for G1CollectedHeap |
39 |
40 |
40 // Return the region with the given index. It assumes the index is valid. |
41 // Return the region with the given index. It assumes the index is valid. |
55 inline HeapRegion* |
56 inline HeapRegion* |
56 G1CollectedHeap::heap_region_containing_raw(const T addr) const { |
57 G1CollectedHeap::heap_region_containing_raw(const T addr) const { |
57 assert(_g1_reserved.contains((const void*) addr), "invariant"); |
58 assert(_g1_reserved.contains((const void*) addr), "invariant"); |
58 HeapRegion* res = _hrs.addr_to_region_unsafe((HeapWord*) addr); |
59 HeapRegion* res = _hrs.addr_to_region_unsafe((HeapWord*) addr); |
59 return res; |
60 return res; |
|
61 } |
|
62 |
|
63 inline void G1CollectedHeap::reset_gc_time_stamp() { |
|
64 _gc_time_stamp = 0; |
|
65 OrderAccess::fence(); |
|
66 // Clear the cached CSet starting regions and time stamps. |
|
67 // Their validity is dependent on the GC timestamp. |
|
68 clear_cset_start_regions(); |
|
69 } |
|
70 |
|
71 inline void G1CollectedHeap::increment_gc_time_stamp() { |
|
72 ++_gc_time_stamp; |
|
73 OrderAccess::fence(); |
60 } |
74 } |
61 |
75 |
62 inline void G1CollectedHeap::old_set_remove(HeapRegion* hr) { |
76 inline void G1CollectedHeap::old_set_remove(HeapRegion* hr) { |
63 _old_set.remove(hr); |
77 _old_set.remove(hr); |
64 } |
78 } |