@@ -424,7 +424,6 @@ class ShenandoahVerifyHeapRegionClosure : public ShenandoahHeapRegionClosure {
424
424
class ShenandoahVerifierReachableTask : public AbstractGangTask {
425
425
private:
426
426
const char * _label;
427
- ShenandoahRootVerifier* _verifier;
428
427
ShenandoahVerifier::VerifyOptions _options;
429
428
ShenandoahHeap* _heap;
430
429
ShenandoahLivenessData* _ld;
@@ -434,12 +433,10 @@ class ShenandoahVerifierReachableTask : public AbstractGangTask {
434
433
public:
435
434
ShenandoahVerifierReachableTask (MarkBitMap* bitmap,
436
435
ShenandoahLivenessData* ld,
437
- ShenandoahRootVerifier* verifier,
438
436
const char * label,
439
437
ShenandoahVerifier::VerifyOptions options) :
440
438
AbstractGangTask (" Shenandoah Verifier Reachable Objects" ),
441
439
_label (label),
442
- _verifier (verifier),
443
440
_options (options),
444
441
_heap (ShenandoahHeap::heap()),
445
442
_ld (ld),
@@ -464,9 +461,9 @@ class ShenandoahVerifierReachableTask : public AbstractGangTask {
464
461
ShenandoahMessageBuffer (" %s, Roots" , _label),
465
462
_options);
466
463
if (_heap->unload_classes ()) {
467
- _verifier-> strong_roots_do (&cl);
464
+ ShenandoahRootVerifier:: strong_roots_do (&cl);
468
465
} else {
469
- _verifier-> roots_do (&cl);
466
+ ShenandoahRootVerifier:: roots_do (&cl);
470
467
}
471
468
}
472
469
@@ -618,8 +615,7 @@ void ShenandoahVerifier::verify_at_safepoint(const char *label,
618
615
VerifyForwarded forwarded, VerifyMarked marked,
619
616
VerifyCollectionSet cset,
620
617
VerifyLiveness liveness, VerifyRegions regions,
621
- VerifyGCState gcstate,
622
- VerifyWeakRoots weak_roots) {
618
+ VerifyGCState gcstate) {
623
619
guarantee (ShenandoahSafepoint::is_at_shenandoah_safepoint (), " only when nothing else happens" );
624
620
guarantee (ShenandoahVerify, " only when enabled, and bitmap is initialized in ShenandoahHeap::initialize" );
625
621
@@ -713,8 +709,7 @@ void ShenandoahVerifier::verify_at_safepoint(const char *label,
713
709
// This verifies what application can see, since it only cares about reachable objects.
714
710
size_t count_reachable = 0 ;
715
711
if (ShenandoahVerifyLevel >= 2 ) {
716
- ShenandoahRootVerifier verifier;
717
- ShenandoahVerifierReachableTask task (_verification_bit_map, ld, &verifier, label, options);
712
+ ShenandoahVerifierReachableTask task (_verification_bit_map, ld, label, options);
718
713
_heap->workers ()->run_task (&task);
719
714
count_reachable = task.processed ();
720
715
}
@@ -780,8 +775,7 @@ void ShenandoahVerifier::verify_generic(VerifyOption vo) {
780
775
_verify_cset_disable, // cset may be inconsistent
781
776
_verify_liveness_disable, // no reliable liveness data
782
777
_verify_regions_disable, // no reliable region data
783
- _verify_gcstate_disable, // no data about gcstate
784
- _verify_all_weak_roots
778
+ _verify_gcstate_disable // no data about gcstate
785
779
);
786
780
}
787
781
@@ -793,8 +787,7 @@ void ShenandoahVerifier::verify_before_concmark() {
793
787
_verify_cset_none, // UR should have fixed this
794
788
_verify_liveness_disable, // no reliable liveness data
795
789
_verify_regions_notrash, // no trash regions
796
- _verify_gcstate_stable, // there are no forwarded objects
797
- _verify_all_weak_roots
790
+ _verify_gcstate_stable // there are no forwarded objects
798
791
);
799
792
}
800
793
@@ -806,44 +799,31 @@ void ShenandoahVerifier::verify_after_concmark() {
806
799
_verify_cset_none, // no references to cset anymore
807
800
_verify_liveness_complete, // liveness data must be complete here
808
801
_verify_regions_disable, // trash regions not yet recycled
809
- _verify_gcstate_stable, // mark should have stabilized the heap
810
- _verify_all_weak_roots
802
+ _verify_gcstate_stable // mark should have stabilized the heap
811
803
);
812
804
}
813
805
814
806
void ShenandoahVerifier::verify_before_evacuation () {
815
- // Concurrent weak roots are evacuated during concurrent phase
816
- VerifyWeakRoots verify_weak_roots = _heap->unload_classes () ?
817
- _verify_serial_weak_roots :
818
- _verify_all_weak_roots;
819
-
820
807
verify_at_safepoint (
821
808
" Before Evacuation" ,
822
809
_verify_forwarded_none, // no forwarded references
823
810
_verify_marked_complete_except_references, // walk over marked objects too
824
811
_verify_cset_disable, // non-forwarded references to cset expected
825
812
_verify_liveness_complete, // liveness data must be complete here
826
813
_verify_regions_disable, // trash regions not yet recycled
827
- _verify_gcstate_stable, // mark should have stabilized the heap
828
- verify_weak_roots
814
+ _verify_gcstate_stable // mark should have stabilized the heap
829
815
);
830
816
}
831
817
832
818
void ShenandoahVerifier::verify_during_evacuation () {
833
- // Concurrent weak roots are evacuated during concurrent phase
834
- VerifyWeakRoots verify_weak_roots = _heap->unload_classes () ?
835
- _verify_serial_weak_roots :
836
- _verify_all_weak_roots;
837
-
838
819
verify_at_safepoint (
839
820
" During Evacuation" ,
840
821
_verify_forwarded_allow, // some forwarded references are allowed
841
822
_verify_marked_disable, // walk only roots
842
823
_verify_cset_disable, // some cset references are not forwarded yet
843
824
_verify_liveness_disable, // liveness data might be already stale after pre-evacs
844
825
_verify_regions_disable, // trash regions not yet recycled
845
- _verify_gcstate_evacuation, // evacuation is in progress
846
- verify_weak_roots
826
+ _verify_gcstate_evacuation // evacuation is in progress
847
827
);
848
828
}
849
829
@@ -855,8 +835,7 @@ void ShenandoahVerifier::verify_after_evacuation() {
855
835
_verify_cset_forwarded, // all cset refs are fully forwarded
856
836
_verify_liveness_disable, // no reliable liveness data anymore
857
837
_verify_regions_notrash, // trash regions have been recycled already
858
- _verify_gcstate_forwarded, // evacuation produced some forwarded objects
859
- _verify_all_weak_roots
838
+ _verify_gcstate_forwarded // evacuation produced some forwarded objects
860
839
);
861
840
}
862
841
@@ -868,8 +847,7 @@ void ShenandoahVerifier::verify_before_updaterefs() {
868
847
_verify_cset_forwarded, // all cset refs are fully forwarded
869
848
_verify_liveness_disable, // no reliable liveness data anymore
870
849
_verify_regions_notrash, // trash regions have been recycled already
871
- _verify_gcstate_forwarded, // evacuation should have produced some forwarded objects
872
- _verify_all_weak_roots
850
+ _verify_gcstate_forwarded // evacuation should have produced some forwarded objects
873
851
);
874
852
}
875
853
@@ -881,8 +859,7 @@ void ShenandoahVerifier::verify_after_updaterefs() {
881
859
_verify_cset_none, // no cset references, all updated
882
860
_verify_liveness_disable, // no reliable liveness data anymore
883
861
_verify_regions_nocset, // no cset regions, trash regions have appeared
884
- _verify_gcstate_stable, // update refs had cleaned up forwarded objects
885
- _verify_all_weak_roots
862
+ _verify_gcstate_stable // update refs had cleaned up forwarded objects
886
863
);
887
864
}
888
865
@@ -894,8 +871,7 @@ void ShenandoahVerifier::verify_after_degenerated() {
894
871
_verify_cset_none, // no cset references
895
872
_verify_liveness_disable, // no reliable liveness data anymore
896
873
_verify_regions_notrash_nocset, // no trash, no cset
897
- _verify_gcstate_stable, // degenerated refs had cleaned up forwarded objects
898
- _verify_all_weak_roots
874
+ _verify_gcstate_stable // degenerated refs had cleaned up forwarded objects
899
875
);
900
876
}
901
877
@@ -907,8 +883,7 @@ void ShenandoahVerifier::verify_before_fullgc() {
907
883
_verify_cset_disable, // cset might be foobared
908
884
_verify_liveness_disable, // no reliable liveness data anymore
909
885
_verify_regions_disable, // no reliable region data here
910
- _verify_gcstate_disable, // no reliable gcstate data
911
- _verify_all_weak_roots
886
+ _verify_gcstate_disable // no reliable gcstate data
912
887
);
913
888
}
914
889
@@ -920,8 +895,7 @@ void ShenandoahVerifier::verify_after_fullgc() {
920
895
_verify_cset_none, // no cset references
921
896
_verify_liveness_disable, // no reliable liveness data anymore
922
897
_verify_regions_notrash_nocset, // no trash, no cset
923
- _verify_gcstate_stable, // full gc cleaned up everything
924
- _verify_all_weak_roots
898
+ _verify_gcstate_stable // full gc cleaned up everything
925
899
);
926
900
}
927
901
@@ -978,33 +952,11 @@ class ShenandoahVerifyInToSpaceClosure : public OopClosure {
978
952
};
979
953
980
954
void ShenandoahVerifier::verify_roots_in_to_space () {
981
- ShenandoahRootVerifier verifier;
982
- ShenandoahVerifyInToSpaceClosure cl;
983
- verifier.oops_do (&cl);
984
- }
985
-
986
- void ShenandoahVerifier::verify_roots_in_to_space_except (ShenandoahRootVerifier::RootTypes types) {
987
- ShenandoahRootVerifier verifier;
988
- verifier.excludes (types);
989
955
ShenandoahVerifyInToSpaceClosure cl;
990
- verifier. oops_do (&cl);
956
+ ShenandoahRootVerifier::roots_do (&cl);
991
957
}
992
958
993
959
void ShenandoahVerifier::verify_roots_no_forwarded () {
994
- ShenandoahRootVerifier verifier;
995
- ShenandoahVerifyNoForwared cl;
996
- verifier.oops_do (&cl);
997
- }
998
-
999
- void ShenandoahVerifier::verify_roots_no_forwarded (ShenandoahRootVerifier::RootTypes types) {
1000
- ShenandoahRootVerifier verifier (types);
1001
- ShenandoahVerifyNoForwared cl;
1002
- verifier.oops_do (&cl);
1003
- }
1004
-
1005
- void ShenandoahVerifier::verify_roots_no_forwarded_except (ShenandoahRootVerifier::RootTypes types) {
1006
- ShenandoahRootVerifier verifier;
1007
- verifier.excludes (types);
1008
960
ShenandoahVerifyNoForwared cl;
1009
- verifier. oops_do (&cl);
961
+ ShenandoahRootVerifier::roots_do (&cl);
1010
962
}
0 commit comments