1386
1387 // Refinement
1388
1389 ConcurrentG1Refine* concurrent_g1_refine() const { return _cg1r; }
1390
1391 // Optimized nmethod scanning support routines
1392
1393 // Register the given nmethod with the G1 heap.
1394 virtual void register_nmethod(nmethod* nm);
1395
1396 // Unregister the given nmethod from the G1 heap.
1397 virtual void unregister_nmethod(nmethod* nm);
1398
1399 // Free up superfluous code root memory.
1400 void purge_code_root_memory();
1401
1402 // Rebuild the strong code root lists for each region
1403 // after a full GC.
1404 void rebuild_strong_code_roots();
1405
1406 // Delete entries for dead interned string and clean up unreferenced symbols
1407 // in symbol table, possibly in parallel.
1408 void unlink_string_and_symbol_table(BoolObjectClosure* is_alive, bool unlink_strings = true, bool unlink_symbols = true);
1409
1410 // Parallel phase of unloading/cleaning after G1 concurrent mark.
1411 void parallel_cleaning(BoolObjectClosure* is_alive, bool process_strings, bool process_symbols, bool class_unloading_occurred);
1412
1413 // Redirty logged cards in the refinement queue.
1414 void redirty_logged_cards();
1415 // Verification
1416
1417 // Perform any cleanup actions necessary before allowing a verification.
1418 virtual void prepare_for_verify();
1419
1420 // Perform verification.
1421
1422 // vo == UsePrevMarking -> use "prev" marking information,
1423 // vo == UseNextMarking -> use "next" marking information
1424 // vo == UseMarkWord -> use the mark word in the object header
1425 //
1426 // NOTE: Only the "prev" marking information is guaranteed to be
1427 // consistent most of the time, so most calls to this should use
1428 // vo == UsePrevMarking.
1429 // Currently, there is only one case where this is called with
1430 // vo == UseNextMarking, which is to verify the "next" marking
1431 // information at the end of remark.
|
1386
1387 // Refinement
1388
1389 ConcurrentG1Refine* concurrent_g1_refine() const { return _cg1r; }
1390
1391 // Optimized nmethod scanning support routines
1392
1393 // Register the given nmethod with the G1 heap.
1394 virtual void register_nmethod(nmethod* nm);
1395
1396 // Unregister the given nmethod from the G1 heap.
1397 virtual void unregister_nmethod(nmethod* nm);
1398
1399 // Free up superfluous code root memory.
1400 void purge_code_root_memory();
1401
1402 // Rebuild the strong code root lists for each region
1403 // after a full GC.
1404 void rebuild_strong_code_roots();
1405
1406 // Partial cleaning used when class unloading is disabled.
1407 // Let the caller choose what structures to clean out:
1408 // - StringTable
1409 // - SymbolTable
1410 // - StringDeduplication structures
1411 void partial_cleaning(BoolObjectClosure* is_alive, bool unlink_strings, bool unlink_symbols, bool unlink_string_dedup);
1412
1413 // Complete cleaning used when class unloading is enabled.
1414 // Cleans out all structures handled by partial_cleaning and also the CodeCache.
1415 void complete_cleaning(BoolObjectClosure* is_alive, bool class_unloading_occurred);
1416
1417 // Redirty logged cards in the refinement queue.
1418 void redirty_logged_cards();
1419 // Verification
1420
1421 // Perform any cleanup actions necessary before allowing a verification.
1422 virtual void prepare_for_verify();
1423
1424 // Perform verification.
1425
1426 // vo == UsePrevMarking -> use "prev" marking information,
1427 // vo == UseNextMarking -> use "next" marking information
1428 // vo == UseMarkWord -> use the mark word in the object header
1429 //
1430 // NOTE: Only the "prev" marking information is guaranteed to be
1431 // consistent most of the time, so most calls to this should use
1432 // vo == UsePrevMarking.
1433 // Currently, there is only one case where this is called with
1434 // vo == UseNextMarking, which is to verify the "next" marking
1435 // information at the end of remark.
|