< prev index next >

src/hotspot/share/gc/g1/heapRegion.inline.hpp

Print this page
rev 57038 : imported patch 8233306-heapregion-sorting
rev 57051 : imported patch 8233588-cleanup-survrategroup
rev 57052 : imported patch 8233588-kbarrett-review
rev 57058 : imported patch 8234587-rename-g1survrategroup


 361       if (!obj->is_objArray() || (((HeapWord*)obj) >= start && cur <= end)) {
 362         obj->oop_iterate(cl);
 363       } else {
 364         obj->oop_iterate(cl, mr);
 365         is_precise = true;
 366       }
 367     }
 368     if (cur >= end) {
 369       return is_precise ? end : cur;
 370     }
 371   }
 372 }
 373 
 374 inline int HeapRegion::age_in_surv_rate_group() const {
 375   assert(has_surv_rate_group(), "pre-condition");
 376   assert(has_valid_age_in_surv_rate(), "pre-condition");
 377   return _surv_rate_group->age_in_group(_age_index);
 378 }
 379 
 380 inline bool HeapRegion::has_valid_age_in_surv_rate() const {
 381   return SurvRateGroup::is_valid_age_index(_age_index);
 382 }
 383 
 384 inline bool HeapRegion::has_surv_rate_group() const {
 385   return _surv_rate_group != NULL;
 386 }
 387   
 388 inline double HeapRegion::surv_rate_prediction(G1Predictions const& predictor) const {
 389   assert(has_surv_rate_group(), "pre-condition");
 390   return _surv_rate_group->surv_rate_pred(predictor, age_in_surv_rate_group());
 391 }
 392 
 393 inline void HeapRegion::install_surv_rate_group(SurvRateGroup* surv_rate_group) {
 394   assert(surv_rate_group != NULL, "pre-condition");
 395   assert(!has_surv_rate_group(), "pre-condition");
 396   assert(is_young(), "pre-condition");
 397 
 398   _surv_rate_group = surv_rate_group;
 399   _age_index = surv_rate_group->next_age_index();
 400 }
 401 
 402 inline void HeapRegion::uninstall_surv_rate_group() {
 403   if (has_surv_rate_group()) {
 404     assert(has_valid_age_in_surv_rate(), "pre-condition");
 405     assert(is_young(), "pre-condition");
 406 
 407     _surv_rate_group = NULL;
 408     _age_index = SurvRateGroup::InvalidAgeIndex;
 409   } else {
 410     assert(!has_valid_age_in_surv_rate(), "pre-condition");
 411   }
 412 }
 413 
 414 inline void HeapRegion::record_surv_words_in_group(size_t words_survived) {
 415   assert(has_surv_rate_group(), "pre-condition");
 416   assert(has_valid_age_in_surv_rate(), "pre-condition");
 417   int age_in_group = age_in_surv_rate_group();
 418   _surv_rate_group->record_surviving_words(age_in_group, words_survived);
 419 }
 420 
 421 #endif // SHARE_GC_G1_HEAPREGION_INLINE_HPP


 361       if (!obj->is_objArray() || (((HeapWord*)obj) >= start && cur <= end)) {
 362         obj->oop_iterate(cl);
 363       } else {
 364         obj->oop_iterate(cl, mr);
 365         is_precise = true;
 366       }
 367     }
 368     if (cur >= end) {
 369       return is_precise ? end : cur;
 370     }
 371   }
 372 }
 373 
 374 inline int HeapRegion::age_in_surv_rate_group() const {
 375   assert(has_surv_rate_group(), "pre-condition");
 376   assert(has_valid_age_in_surv_rate(), "pre-condition");
 377   return _surv_rate_group->age_in_group(_age_index);
 378 }
 379 
 380 inline bool HeapRegion::has_valid_age_in_surv_rate() const {
 381   return G1SurvRateGroup::is_valid_age_index(_age_index);
 382 }
 383 
 384 inline bool HeapRegion::has_surv_rate_group() const {
 385   return _surv_rate_group != NULL;
 386 }
 387   
 388 inline double HeapRegion::surv_rate_prediction(G1Predictions const& predictor) const {
 389   assert(has_surv_rate_group(), "pre-condition");
 390   return _surv_rate_group->surv_rate_pred(predictor, age_in_surv_rate_group());
 391 }
 392 
 393 inline void HeapRegion::install_surv_rate_group(G1SurvRateGroup* surv_rate_group) {
 394   assert(surv_rate_group != NULL, "pre-condition");
 395   assert(!has_surv_rate_group(), "pre-condition");
 396   assert(is_young(), "pre-condition");
 397 
 398   _surv_rate_group = surv_rate_group;
 399   _age_index = surv_rate_group->next_age_index();
 400 }
 401 
 402 inline void HeapRegion::uninstall_surv_rate_group() {
 403   if (has_surv_rate_group()) {
 404     assert(has_valid_age_in_surv_rate(), "pre-condition");
 405     assert(is_young(), "pre-condition");
 406 
 407     _surv_rate_group = NULL;
 408     _age_index = G1SurvRateGroup::InvalidAgeIndex;
 409   } else {
 410     assert(!has_valid_age_in_surv_rate(), "pre-condition");
 411   }
 412 }
 413 
 414 inline void HeapRegion::record_surv_words_in_group(size_t words_survived) {
 415   assert(has_surv_rate_group(), "pre-condition");
 416   assert(has_valid_age_in_surv_rate(), "pre-condition");
 417   int age_in_group = age_in_surv_rate_group();
 418   _surv_rate_group->record_surviving_words(age_in_group, words_survived);
 419 }
 420 
 421 #endif // SHARE_GC_G1_HEAPREGION_INLINE_HPP
< prev index next >