src/hotspot/share/gc/shenandoah/shenandoahVerifier.hpp
changeset 54848 5d8c5c7bca95
parent 54687 df2b3565f343
child 54882 b99e97bc5040
equal deleted inserted replaced
54847:59ea39bb2809 54848:5d8c5c7bca95
    71 
    71 
    72     // Objects should be marked in "next" bitmap.
    72     // Objects should be marked in "next" bitmap.
    73     _verify_marked_incomplete,
    73     _verify_marked_incomplete,
    74 
    74 
    75     // Objects should be marked in "complete" bitmap.
    75     // Objects should be marked in "complete" bitmap.
    76     _verify_marked_complete,
    76     _verify_marked_complete
    77   } VerifyMarked;
    77   } VerifyMarked;
    78 
    78 
    79   typedef enum {
    79   typedef enum {
    80     // Disable forwarded objects verification.
    80     // Disable forwarded objects verification.
    81     _verify_forwarded_disable,
    81     _verify_forwarded_disable,
    82 
    82 
    83     // Objects should not have forwardees.
    83     // Objects should not have forwardees.
    84     _verify_forwarded_none,
    84     _verify_forwarded_none,
    85 
    85 
    86     // Objects may have forwardees.
    86     // Objects may have forwardees.
    87     _verify_forwarded_allow,
    87     _verify_forwarded_allow
    88   } VerifyForwarded;
    88   } VerifyForwarded;
    89 
    89 
    90   typedef enum {
    90   typedef enum {
    91     // Disable collection set verification.
    91     // Disable collection set verification.
    92     _verify_cset_disable,
    92     _verify_cset_disable,
    95     _verify_cset_none,
    95     _verify_cset_none,
    96 
    96 
    97     // May have references to cset, all should be forwarded.
    97     // May have references to cset, all should be forwarded.
    98     // Note: Allowing non-forwarded references to cset is equivalent
    98     // Note: Allowing non-forwarded references to cset is equivalent
    99     // to _verify_cset_disable.
    99     // to _verify_cset_disable.
   100     _verify_cset_forwarded,
   100     _verify_cset_forwarded
   101   } VerifyCollectionSet;
   101   } VerifyCollectionSet;
   102 
   102 
   103   typedef enum {
   103   typedef enum {
   104     // Disable liveness verification
   104     // Disable liveness verification
   105     _verify_liveness_disable,
   105     _verify_liveness_disable,
   107     // All objects should belong to live regions
   107     // All objects should belong to live regions
   108     _verify_liveness_conservative,
   108     _verify_liveness_conservative,
   109 
   109 
   110     // All objects should belong to live regions,
   110     // All objects should belong to live regions,
   111     // and liveness data should be accurate
   111     // and liveness data should be accurate
   112     _verify_liveness_complete,
   112     _verify_liveness_complete
   113   } VerifyLiveness;
   113   } VerifyLiveness;
   114 
   114 
   115   typedef enum {
   115   typedef enum {
   116     // Disable region verification
   116     // Disable region verification
   117     _verify_regions_disable,
   117     _verify_regions_disable,
   121 
   121 
   122     // No collection set regions allowed
   122     // No collection set regions allowed
   123     _verify_regions_nocset,
   123     _verify_regions_nocset,
   124 
   124 
   125     // No trash and no cset regions allowed
   125     // No trash and no cset regions allowed
   126     _verify_regions_notrash_nocset,
   126     _verify_regions_notrash_nocset
   127   } VerifyRegions;
   127   } VerifyRegions;
   128 
   128 
   129   typedef enum {
   129   typedef enum {
   130     // Disable gc-state verification
   130     // Disable gc-state verification
   131     _verify_gcstate_disable,
   131     _verify_gcstate_disable,
   135 
   135 
   136     // Nothing is in progress, some objects are forwarded
   136     // Nothing is in progress, some objects are forwarded
   137     _verify_gcstate_forwarded,
   137     _verify_gcstate_forwarded,
   138 
   138 
   139     // Evacuation is in progress, some objects are forwarded
   139     // Evacuation is in progress, some objects are forwarded
   140     _verify_gcstate_evacuation,
   140     _verify_gcstate_evacuation
   141   } VerifyGCState;
   141   } VerifyGCState;
   142 
   142 
   143   struct VerifyOptions {
   143   struct VerifyOptions {
   144     VerifyForwarded     _verify_forwarded;
   144     VerifyForwarded     _verify_forwarded;
   145     VerifyMarked        _verify_marked;
   145     VerifyMarked        _verify_marked;