Mercurial > hg > graal-jvmci-8
comparison src/share/vm/gc_implementation/g1/g1MarkSweep.cpp @ 22294:d86b226e331a
Enable derived oop processing by the GC with JVMCI
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Tue, 21 Jul 2015 15:00:07 -0700 |
parents | 7848fc12602b |
children | c28cb37b2e1d |
comparison
equal
deleted
inserted
replaced
22272:b6d504612b3f | 22294:d86b226e331a |
---|---|
87 | 87 |
88 mark_sweep_phase1(marked_for_unloading, clear_all_softrefs); | 88 mark_sweep_phase1(marked_for_unloading, clear_all_softrefs); |
89 | 89 |
90 mark_sweep_phase2(); | 90 mark_sweep_phase2(); |
91 | 91 |
92 #if defined(COMPILER2) || defined(JVMCI) | |
92 // Don't add any more derived pointers during phase3 | 93 // Don't add any more derived pointers during phase3 |
93 COMPILER2_PRESENT(DerivedPointerTable::set_active(false)); | 94 DerivedPointerTable::set_active(false); |
95 #endif | |
94 | 96 |
95 mark_sweep_phase3(); | 97 mark_sweep_phase3(); |
96 | 98 |
97 mark_sweep_phase4(); | 99 mark_sweep_phase4(); |
98 | 100 |
168 // Delete entries for dead interned string and clean up unreferenced symbols in symbol table. | 170 // Delete entries for dead interned string and clean up unreferenced symbols in symbol table. |
169 G1CollectedHeap::heap()->unlink_string_and_symbol_table(&GenMarkSweep::is_alive); | 171 G1CollectedHeap::heap()->unlink_string_and_symbol_table(&GenMarkSweep::is_alive); |
170 | 172 |
171 if (VerifyDuringGC) { | 173 if (VerifyDuringGC) { |
172 HandleMark hm; // handle scope | 174 HandleMark hm; // handle scope |
173 COMPILER2_PRESENT(DerivedPointerTableDeactivate dpt_deact); | 175 #if defined(COMPILER2) || defined(JVMCI) |
176 DerivedPointerTableDeactivate dpt_deact; | |
177 #endif | |
174 Universe::heap()->prepare_for_verify(); | 178 Universe::heap()->prepare_for_verify(); |
175 // Note: we can verify only the heap here. When an object is | 179 // Note: we can verify only the heap here. When an object is |
176 // marked, the previous value of the mark word (including | 180 // marked, the previous value of the mark word (including |
177 // identity hash values, ages, etc) is preserved, and the mark | 181 // identity hash values, ages, etc) is preserved, and the mark |
178 // word is set to markOop::marked_value - effectively removing | 182 // word is set to markOop::marked_value - effectively removing |