< prev index next >

src/share/vm/gc/g1/heapRegion.hpp

Print this page
rev 13047 : imported patch 8071280-specialize-heapregion-oops-on-card-seq-iterate
rev 13048 : imported patch 8071280-kim-review
rev 13049 : imported patch 8071280-kim-sangheon-review
rev 13050 : imported patch 8071280-erikh-review

*** 249,261 **** void report_region_type_change(G1HeapRegionTraceType::Type to); // Returns whether the given object address refers to a dead object, and either the // size of the object (if live) or the size of the block (if dead) in size. ! // Performs some optimizations if is_gc_active is set. ! template <bool is_gc_active> ! inline bool is_obj_dead_with_size(const oop obj, G1CMBitMapRO* bitmap, size_t* size) const; protected: // The index of this region in the heap region sequence. uint _hrm_index; --- 249,262 ---- void report_region_type_change(G1HeapRegionTraceType::Type to); // Returns whether the given object address refers to a dead object, and either the // size of the object (if live) or the size of the block (if dead) in size. ! // May ! // - only called with obj < top() ! // - not called on humongous objects or archive regions ! inline bool is_obj_dead_with_size(const oop obj, G1CMBitMapRO* prev_bitmap, size_t* size) const; protected: // The index of this region in the heap region sequence. uint _hrm_index;
*** 327,337 **** Closure* cl, G1CollectedHeap* g1h); // Returns the block size of the given (dead, potentially having its class unloaded) object // starting at p extending to at most the prev TAMS using the given mark bitmap. ! inline size_t block_size_using_bitmap(const HeapWord* p, const G1CMBitMapRO* bitmap) const; public: HeapRegion(uint hrm_index, G1BlockOffsetTable* bot, MemRegion mr); --- 328,338 ---- Closure* cl, G1CollectedHeap* g1h); // Returns the block size of the given (dead, potentially having its class unloaded) object // starting at p extending to at most the prev TAMS using the given mark bitmap. ! inline size_t block_size_using_bitmap(const HeapWord* p, const G1CMBitMapRO* prev_bitmap) const; public: HeapRegion(uint hrm_index, G1BlockOffsetTable* bot, MemRegion mr);
*** 374,389 **** static void setup_heap_region_size(size_t initial_heap_size, size_t max_heap_size); // All allocated blocks are occupied by objects in a HeapRegion bool block_is_obj(const HeapWord* p) const; ! // Returns the object size for valid block starts for potentially unloaded dead ! // objects. Must only be called during scanning cards during GC. Expects the ! // following preconditions: ! // - only called on p < top() ! // - not called on humongous objects or archive regions ! size_t block_size_during_gc(const HeapWord* p, const G1CMBitMapRO* bitmap) const; // Returns the object size for all valid block starts // and the amount of unallocated words if called on top() size_t block_size(const HeapWord* p) const; --- 375,386 ---- static void setup_heap_region_size(size_t initial_heap_size, size_t max_heap_size); // All allocated blocks are occupied by objects in a HeapRegion bool block_is_obj(const HeapWord* p) const; ! // Returns whether the given object is dead based on TAMS and bitmap. ! bool is_obj_dead(const oop obj, const G1CMBitMapRO* prev_bitmap) const; // Returns the object size for all valid block starts // and the amount of unallocated words if called on top() size_t block_size(const HeapWord* p) const;
*** 676,687 **** } } // Iterate over the objects overlapping part of a card, applying cl // to all references in the region. This is a helper for ! // G1RemSet::refine_card, and is tightly coupled with it. ! // mr: the memory region covered by the card, trimmed to the // allocated space for this region. Must not be empty. // This region must be old or humongous. // Returns true if the designated objects were successfully // processed, false if an unparsable part of the heap was // encountered; that only happens when invoked concurrently with the --- 673,684 ---- } } // Iterate over the objects overlapping part of a card, applying cl // to all references in the region. This is a helper for ! // G1RemSet::refine_card*, and is tightly coupled with them. ! // mr is the memory region covered by the card, trimmed to the // allocated space for this region. Must not be empty. // This region must be old or humongous. // Returns true if the designated objects were successfully // processed, false if an unparsable part of the heap was // encountered; that only happens when invoked concurrently with the
< prev index next >