494 // If clear_space is true, clear the HeapRegion's memory.
495 // Callers must ensure this is not called by multiple threads at the same time.
496 void hr_clear(bool clear_space);
497 // Clear the card table corresponding to this region.
498 void clear_cardtable();
499
500 // Returns the "evacuation_failed" property of the region.
501 bool evacuation_failed() { return _evacuation_failed; }
502
503 // Sets the "evacuation_failed" property of the region.
504 void set_evacuation_failed(bool b) {
505 _evacuation_failed = b;
506
507 if (b) {
508 _next_marked_bytes = 0;
509 }
510 }
511
512 // Notify the region that we are about to start processing
513 // self-forwarded objects during evac failure handling.
514 void note_self_forwarding_removal_start(bool during_initial_mark,
515 bool during_conc_mark);
516
517 // Notify the region that we have finished processing self-forwarded
518 // objects during evac failure handling.
519 void note_self_forwarding_removal_end(size_t marked_bytes);
520
521 uint index_in_opt_cset() const {
522 assert(has_index_in_opt_cset(), "Opt cset index not set.");
523 return _index_in_opt_cset;
524 }
525 bool has_index_in_opt_cset() const { return _index_in_opt_cset != InvalidCSetIndex; }
526 void set_index_in_opt_cset(uint index) { _index_in_opt_cset = index; }
527 void clear_index_in_opt_cset() { _index_in_opt_cset = InvalidCSetIndex; }
528
529 void calc_gc_efficiency(void);
530 double gc_efficiency() const { return _gc_efficiency;}
531
532 uint young_index_in_cset() const { return _young_index_in_cset; }
533 void clear_young_index_in_cset() { _young_index_in_cset = 0; }
534 void set_young_index_in_cset(uint index) {
|
494 // If clear_space is true, clear the HeapRegion's memory.
495 // Callers must ensure this is not called by multiple threads at the same time.
496 void hr_clear(bool clear_space);
497 // Clear the card table corresponding to this region.
498 void clear_cardtable();
499
500 // Returns the "evacuation_failed" property of the region.
501 bool evacuation_failed() { return _evacuation_failed; }
502
503 // Sets the "evacuation_failed" property of the region.
504 void set_evacuation_failed(bool b) {
505 _evacuation_failed = b;
506
507 if (b) {
508 _next_marked_bytes = 0;
509 }
510 }
511
512 // Notify the region that we are about to start processing
513 // self-forwarded objects during evac failure handling.
514 void note_self_forwarding_removal_start(bool during_concurrent_start,
515 bool during_conc_mark);
516
517 // Notify the region that we have finished processing self-forwarded
518 // objects during evac failure handling.
519 void note_self_forwarding_removal_end(size_t marked_bytes);
520
521 uint index_in_opt_cset() const {
522 assert(has_index_in_opt_cset(), "Opt cset index not set.");
523 return _index_in_opt_cset;
524 }
525 bool has_index_in_opt_cset() const { return _index_in_opt_cset != InvalidCSetIndex; }
526 void set_index_in_opt_cset(uint index) { _index_in_opt_cset = index; }
527 void clear_index_in_opt_cset() { _index_in_opt_cset = InvalidCSetIndex; }
528
529 void calc_gc_efficiency(void);
530 double gc_efficiency() const { return _gc_efficiency;}
531
532 uint young_index_in_cset() const { return _young_index_in_cset; }
533 void clear_young_index_in_cset() { _young_index_in_cset = 0; }
534 void set_young_index_in_cset(uint index) {
|