< prev index next >
src/hotspot/share/gc/g1/g1ParScanThreadState.inline.hpp
Print this page
rev 52675 : 8213890: Implementation of JEP 344: Abortable Mixed Collections for G1
Reviewed-by:
Contributed-by: erik.helin@oracle.com, stefan.johansson@oracle.com
rev 52676 : imported patch AMGC-impl
*** 24,33 ****
--- 24,34 ----
#ifndef SHARE_VM_GC_G1_G1PARSCANTHREADSTATE_INLINE_HPP
#define SHARE_VM_GC_G1_G1PARSCANTHREADSTATE_INLINE_HPP
#include "gc/g1/g1CollectedHeap.inline.hpp"
+ #include "gc/g1/g1OopStarChunkedList.inline.hpp"
#include "gc/g1/g1ParScanThreadState.hpp"
#include "gc/g1/g1RemSet.hpp"
#include "oops/access.inline.hpp"
#include "oops/oop.inline.hpp"
*** 201,206 ****
--- 202,226 ----
inline void G1ParScanThreadState::reset_trim_ticks() {
_trim_ticks = Tickspan();
}
+ template <typename T>
+ inline void G1ParScanThreadState::remember_root_into_optional_region(T* p) {
+ oop o = RawAccess<IS_NOT_NULL>::oop_load(p);
+ uint index = _g1h->heap_region_containing(o)->index_in_opt_cset();
+ _oops_into_optional_regions[index].push_root(p);
+ }
+
+ template <typename T>
+ inline void G1ParScanThreadState::remember_reference_into_optional_region(T* p) {
+ oop o = RawAccess<IS_NOT_NULL>::oop_load(p);
+ uint index = _g1h->heap_region_containing(o)->index_in_opt_cset();
+ _oops_into_optional_regions[index].push_oop(p);
+ DEBUG_ONLY(verify_ref(p);)
+ }
+
+ G1OopStarChunkedList* G1ParScanThreadState::oops_into_optional_region(const HeapRegion* hr) {
+ return &_oops_into_optional_regions[hr->index_in_opt_cset()];
+ }
+
#endif // SHARE_VM_GC_G1_G1PARSCANTHREADSTATE_INLINE_HPP
< prev index next >