Mercurial > hg > truffle
annotate src/share/vm/gc_implementation/g1/g1BiasedArray.cpp @ 20211:82693fb204a5
8038930: G1CodeRootSet::test fails with assert(_num_chunks_handed_out == 0) failed: No elements must have been handed out yet
Summary: The test incorrectly assumed that it had been started with no other previous compilation activity. Fix this by allowing multiple code root free chunk lists, and use one separate from the global one to perform the test.
Reviewed-by: brutisso
author | tschatzl |
---|---|
date | Wed, 16 Apr 2014 10:14:50 +0200 |
parents | 78bbf4d43a14 |
children |
rev | line source |
---|---|
12305
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
1 /* |
17937
78bbf4d43a14
8037816: Fix for 8036122 breaks build with Xcode5/clang
drchase
parents:
17760
diff
changeset
|
2 * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. |
12305
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
4 * |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
5 * This code is free software; you can redistribute it and/or modify it |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
6 * under the terms of the GNU General Public License version 2 only, as |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
7 * published by the Free Software Foundation. |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
8 * |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
9 * This code is distributed in the hope that it will be useful, but WITHOUT |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
12 * version 2 for more details (a copy is included in the LICENSE file that |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
13 * accompanied this code). |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
14 * |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
15 * You should have received a copy of the GNU General Public License version |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
16 * 2 along with this work; if not, write to the Free Software Foundation, |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
18 * |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
21 * questions. |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
22 * |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
23 */ |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
24 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
25 #include "precompiled.hpp" |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
26 #include "gc_implementation/g1/g1BiasedArray.hpp" |
17760
5479cb006184
8036860: Pad and cache-align the BiasedMappedArray
tschatzl
parents:
12305
diff
changeset
|
27 #include "memory/padded.inline.hpp" |
5479cb006184
8036860: Pad and cache-align the BiasedMappedArray
tschatzl
parents:
12305
diff
changeset
|
28 |
5479cb006184
8036860: Pad and cache-align the BiasedMappedArray
tschatzl
parents:
12305
diff
changeset
|
29 // Allocate a new array, generic version. |
5479cb006184
8036860: Pad and cache-align the BiasedMappedArray
tschatzl
parents:
12305
diff
changeset
|
30 address G1BiasedMappedArrayBase::create_new_base_array(size_t length, size_t elem_size) { |
5479cb006184
8036860: Pad and cache-align the BiasedMappedArray
tschatzl
parents:
12305
diff
changeset
|
31 assert(length > 0, "just checking"); |
5479cb006184
8036860: Pad and cache-align the BiasedMappedArray
tschatzl
parents:
12305
diff
changeset
|
32 assert(elem_size > 0, "just checking"); |
5479cb006184
8036860: Pad and cache-align the BiasedMappedArray
tschatzl
parents:
12305
diff
changeset
|
33 return PaddedPrimitiveArray<u_char, mtGC>::create_unfreeable(length * elem_size); |
5479cb006184
8036860: Pad and cache-align the BiasedMappedArray
tschatzl
parents:
12305
diff
changeset
|
34 } |
12305
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
35 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
36 #ifndef PRODUCT |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
37 void G1BiasedMappedArrayBase::verify_index(idx_t index) const { |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
38 guarantee(_base != NULL, "Array not initialized"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
39 guarantee(index < length(), err_msg("Index out of bounds index: "SIZE_FORMAT" length: "SIZE_FORMAT, index, length())); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
40 } |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
41 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
42 void G1BiasedMappedArrayBase::verify_biased_index(idx_t biased_index) const { |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
43 guarantee(_biased_base != NULL, "Array not initialized"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
44 guarantee(biased_index >= bias() && biased_index < (bias() + length()), |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
45 err_msg("Biased index out of bounds, index: "SIZE_FORMAT" bias: "SIZE_FORMAT" length: "SIZE_FORMAT, biased_index, bias(), length())); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
46 } |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
47 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
48 void G1BiasedMappedArrayBase::verify_biased_index_inclusive_end(idx_t biased_index) const { |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
49 guarantee(_biased_base != NULL, "Array not initialized"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
50 guarantee(biased_index >= bias() && biased_index <= (bias() + length()), |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
51 err_msg("Biased index out of inclusive bounds, index: "SIZE_FORMAT" bias: "SIZE_FORMAT" length: "SIZE_FORMAT, biased_index, bias(), length())); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
52 } |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
53 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
54 class TestMappedArray : public G1BiasedMappedArray<int> { |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
55 protected: |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
56 virtual int default_value() const { return 0xBAADBABE; } |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
57 public: |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
58 static void test_biasedarray() { |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
59 const size_t REGION_SIZE_IN_WORDS = 512; |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
60 const size_t NUM_REGIONS = 20; |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
61 HeapWord* fake_heap = (HeapWord*)LP64_ONLY(0xBAAA00000) NOT_LP64(0xBA000000); // Any value that is non-zero |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
62 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
63 TestMappedArray array; |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
64 array.initialize(fake_heap, fake_heap + REGION_SIZE_IN_WORDS * NUM_REGIONS, |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
65 REGION_SIZE_IN_WORDS * HeapWordSize); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
66 // Check address calculation (bounds) |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
67 assert(array.bottom_address_mapped() == fake_heap, |
17937
78bbf4d43a14
8037816: Fix for 8036122 breaks build with Xcode5/clang
drchase
parents:
17760
diff
changeset
|
68 err_msg("bottom mapped address should be " PTR_FORMAT ", but is " PTR_FORMAT, p2i(fake_heap), p2i(array.bottom_address_mapped()))); |
12305
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
69 assert(array.end_address_mapped() == (fake_heap + REGION_SIZE_IN_WORDS * NUM_REGIONS), "must be"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
70 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
71 int* bottom = array.address_mapped_to(fake_heap); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
72 assert((void*)bottom == (void*) array.base(), "must be"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
73 int* end = array.address_mapped_to(fake_heap + REGION_SIZE_IN_WORDS * NUM_REGIONS); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
74 assert((void*)end == (void*)(array.base() + array.length()), "must be"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
75 // The entire array should contain default value elements |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
76 for (int* current = bottom; current < end; current++) { |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
77 assert(*current == array.default_value(), "must be"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
78 } |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
79 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
80 // Test setting values in the table |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
81 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
82 HeapWord* region_start_address = fake_heap + REGION_SIZE_IN_WORDS * (NUM_REGIONS / 2); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
83 HeapWord* region_end_address = fake_heap + (REGION_SIZE_IN_WORDS * (NUM_REGIONS / 2) + REGION_SIZE_IN_WORDS - 1); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
84 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
85 // Set/get by address tests: invert some value; first retrieve one |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
86 int actual_value = array.get_by_index(NUM_REGIONS / 2); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
87 array.set_by_index(NUM_REGIONS / 2, ~actual_value); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
88 // Get the same value by address, should correspond to the start of the "region" |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
89 int value = array.get_by_address(region_start_address); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
90 assert(value == ~actual_value, "must be"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
91 // Get the same value by address, at one HeapWord before the start |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
92 value = array.get_by_address(region_start_address - 1); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
93 assert(value == array.default_value(), "must be"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
94 // Get the same value by address, at the end of the "region" |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
95 value = array.get_by_address(region_end_address); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
96 assert(value == ~actual_value, "must be"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
97 // Make sure the next value maps to another index |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
98 value = array.get_by_address(region_end_address + 1); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
99 assert(value == array.default_value(), "must be"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
100 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
101 // Reset the value in the array |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
102 array.set_by_address(region_start_address + (region_end_address - region_start_address) / 2, actual_value); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
103 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
104 // The entire array should have the default value again |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
105 for (int* current = bottom; current < end; current++) { |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
106 assert(*current == array.default_value(), "must be"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
107 } |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
108 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
109 // Set/get by index tests: invert some value |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
110 idx_t index = NUM_REGIONS / 2; |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
111 actual_value = array.get_by_index(index); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
112 array.set_by_index(index, ~actual_value); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
113 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
114 value = array.get_by_index(index); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
115 assert(value == ~actual_value, "must be"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
116 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
117 value = array.get_by_index(index - 1); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
118 assert(value == array.default_value(), "must be"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
119 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
120 value = array.get_by_index(index + 1); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
121 assert(value == array.default_value(), "must be"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
122 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
123 array.set_by_index(0, 0); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
124 value = array.get_by_index(0); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
125 assert(value == 0, "must be"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
126 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
127 array.set_by_index(array.length() - 1, 0); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
128 value = array.get_by_index(array.length() - 1); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
129 assert(value == 0, "must be"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
130 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
131 array.set_by_index(index, 0); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
132 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
133 // The array should have three zeros, and default values otherwise |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
134 size_t num_zeros = 0; |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
135 for (int* current = bottom; current < end; current++) { |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
136 assert(*current == array.default_value() || *current == 0, "must be"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
137 if (*current == 0) { |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
138 num_zeros++; |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
139 } |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
140 } |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
141 assert(num_zeros == 3, "must be"); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
142 } |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
143 }; |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
144 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
145 void TestG1BiasedArray_test() { |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
146 TestMappedArray::test_biasedarray(); |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
147 } |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
148 |
a19bea467577
7163191: G1: introduce a "heap spanning table" abstraction
tschatzl
parents:
diff
changeset
|
149 #endif |