comparison src/share/vm/gc_implementation/g1/vmStructs_g1.hpp @ 12305:a19bea467577

7163191: G1: introduce a "heap spanning table" abstraction Summary: Add G1BiasedArray<T> that is an array where each element represents a fixed-sized subdivision of the heap. Use this abstraction to refactor the HeapRegionSeq class. Reviewed-by: brutisso
author tschatzl
date Wed, 25 Sep 2013 13:25:24 +0200
parents 69f26e8e09f9
children 6b8e10e585df de6a9e811145
comparison
equal deleted inserted replaced
12304:10cc3b624f8f 12305:a19bea467577
32 #define VM_STRUCTS_G1(nonstatic_field, static_field) \ 32 #define VM_STRUCTS_G1(nonstatic_field, static_field) \
33 \ 33 \
34 static_field(HeapRegion, GrainBytes, size_t) \ 34 static_field(HeapRegion, GrainBytes, size_t) \
35 static_field(HeapRegion, LogOfHRGrainBytes, int) \ 35 static_field(HeapRegion, LogOfHRGrainBytes, int) \
36 \ 36 \
37 nonstatic_field(HeapRegionSeq, _regions, HeapRegion**) \ 37 nonstatic_field(G1HeapRegionTable, _base, address) \
38 nonstatic_field(HeapRegionSeq, _length, uint) \ 38 nonstatic_field(G1HeapRegionTable, _length, size_t) \
39 nonstatic_field(G1HeapRegionTable, _biased_base, address) \
40 nonstatic_field(G1HeapRegionTable, _bias, size_t) \
41 nonstatic_field(G1HeapRegionTable, _shift_by, uint) \
42 \
43 nonstatic_field(HeapRegionSeq, _regions, G1HeapRegionTable) \
44 nonstatic_field(HeapRegionSeq, _committed_length, uint) \
39 \ 45 \
40 nonstatic_field(G1CollectedHeap, _hrs, HeapRegionSeq) \ 46 nonstatic_field(G1CollectedHeap, _hrs, HeapRegionSeq) \
41 nonstatic_field(G1CollectedHeap, _g1_committed, MemRegion) \ 47 nonstatic_field(G1CollectedHeap, _g1_committed, MemRegion) \
42 nonstatic_field(G1CollectedHeap, _summary_bytes_used, size_t) \ 48 nonstatic_field(G1CollectedHeap, _summary_bytes_used, size_t) \
43 nonstatic_field(G1CollectedHeap, _g1mm, G1MonitoringSupport*) \ 49 nonstatic_field(G1CollectedHeap, _g1mm, G1MonitoringSupport*) \
56 nonstatic_field(HeapRegionSetBase, _total_used_bytes, size_t) \ 62 nonstatic_field(HeapRegionSetBase, _total_used_bytes, size_t) \
57 63
58 64
59 #define VM_TYPES_G1(declare_type, declare_toplevel_type) \ 65 #define VM_TYPES_G1(declare_type, declare_toplevel_type) \
60 \ 66 \
67 declare_toplevel_type(G1HeapRegionTable) \
68 \
61 declare_type(G1CollectedHeap, SharedHeap) \ 69 declare_type(G1CollectedHeap, SharedHeap) \
62 \ 70 \
63 declare_type(HeapRegion, ContiguousSpace) \ 71 declare_type(HeapRegion, ContiguousSpace) \
64 declare_toplevel_type(HeapRegionSeq) \ 72 declare_toplevel_type(HeapRegionSeq) \
65 declare_toplevel_type(HeapRegionSetBase) \ 73 declare_toplevel_type(HeapRegionSetBase) \