< prev index next >
src/hotspot/share/gc/g1/heapRegion.inline.hpp
Print this page
rev 56939 : [mq]: 8233306-heapregion-sorting
rev 56952 : [mq]: 8233588-cleanup-survrategroup
*** 26,35 ****
--- 26,36 ----
#define SHARE_GC_G1_HEAPREGION_INLINE_HPP
#include "gc/g1/g1BlockOffsetTable.inline.hpp"
#include "gc/g1/g1CollectedHeap.inline.hpp"
#include "gc/g1/g1ConcurrentMarkBitMap.inline.hpp"
+ #include "gc/g1/g1Predictions.hpp"
#include "gc/g1/heapRegion.hpp"
#include "oops/oop.inline.hpp"
#include "runtime/atomic.hpp"
#include "runtime/prefetch.inline.hpp"
#include "utilities/align.hpp"
*** 368,373 ****
--- 369,417 ----
return is_precise ? end : cur;
}
}
}
+ inline int HeapRegion::age_in_surv_rate_group() const {
+ assert(has_surv_rate_group(), "pre-condition");
+ assert(SurvRateGroup::is_valid_age_index(_age_index), "pre-condition");
+ return _surv_rate_group->age_in_group(_age_index);
+ }
+
+ inline bool HeapRegion::has_surv_rate_group() const {
+ return _surv_rate_group != NULL;
+ }
+
+ inline double HeapRegion::surv_rate_prediction(G1Predictions const& predictor) const {
+ assert(has_surv_rate_group(), "pre-condition");
+ return _surv_rate_group->surv_rate_pred(predictor, age_in_surv_rate_group());
+ }
+
+ inline void HeapRegion::install_surv_rate_group(SurvRateGroup* surv_rate_group) {
+ assert(surv_rate_group != NULL, "pre-condition");
+ assert(!has_surv_rate_group(), "pre-condition");
+ assert(is_young(), "pre-condition");
+
+ _surv_rate_group = surv_rate_group;
+ _age_index = surv_rate_group->next_age_index();
+ }
+
+ inline void HeapRegion::uninstall_surv_rate_group() {
+ if (has_surv_rate_group()) {
+ assert(SurvRateGroup::is_valid_age_index(_age_index), "pre-condition");
+ assert(is_young(), "pre-condition");
+
+ _surv_rate_group = NULL;
+ _age_index = SurvRateGroup::InvalidAgeIndex;
+ } else {
+ assert(!SurvRateGroup::is_valid_age_index(_age_index), "pre-condition");
+ }
+ }
+
+ inline void HeapRegion::record_surv_words_in_group(size_t words_survived) {
+ assert(has_surv_rate_group(), "pre-condition");
+ assert(SurvRateGroup::is_valid_age_index(_age_index), "pre-condition");
+ int age_in_group = age_in_surv_rate_group();
+ _surv_rate_group->record_surviving_words(age_in_group, words_survived);
+ }
+
#endif // SHARE_GC_G1_HEAPREGION_INLINE_HPP
< prev index next >