--- old/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp 2013-06-26 14:23:19.263889943 -0700 +++ new/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp 2013-06-26 14:23:18.908048901 -0700 @@ -63,6 +63,7 @@ class ConcurrentMarkThread; class ConcurrentG1Refine; class GenerationCounters; +class nmethod; typedef OverflowTaskQueue RefToScanQueue; typedef GenericTaskQueueSet RefToScanQueueSet; @@ -1629,6 +1630,28 @@ void push_dirty_cards_region(HeapRegion* hr); HeapRegion* pop_dirty_cards_region(); + // Optimized nmethod scanning support routines + + // Register the given nmethod with the G1 heap + virtual void register_nmethod(nmethod* nm); + + // Unregister the given nmethod from the G1 heap + virtual void unregister_nmethod(nmethod* nm); + + // Migrate the nmethods in the code root lists of the regions + // in the collection set to regions in to-space. In the event + // of an evacuation failure, nmethods that reference objects + // that were not successfullly evacuated are not migrated. + void migrate_strong_code_roots(); + + // During an initial mark pause, mark all the code roots that + // point into regions *not* in the collection set. + void mark_strong_code_roots(uint worker_id); + + // Rebuild the stong code root lists for each region + // after a full GC + void rebuild_strong_code_roots(); + // Verification // The following is just to alert the verification code