src/hotspot/share/gc/shared/gcConfig.cpp
changeset 50525 767cdb97f103
parent 50523 7b7c75d87f9b
child 50629 645a5962201d
equal deleted inserted replaced
50524:04f4e983c2f7 50525:767cdb97f103
    41 #include "gc/parallel/parallelArguments.hpp"
    41 #include "gc/parallel/parallelArguments.hpp"
    42 #endif
    42 #endif
    43 #if INCLUDE_SERIALGC
    43 #if INCLUDE_SERIALGC
    44 #include "gc/serial/serialArguments.hpp"
    44 #include "gc/serial/serialArguments.hpp"
    45 #endif
    45 #endif
       
    46 #if INCLUDE_ZGC
       
    47 #include "gc/z/zArguments.hpp"
       
    48 #endif
    46 
    49 
    47 struct SupportedGC {
    50 struct SupportedGC {
    48   bool&               _flag;
    51   bool&               _flag;
    49   CollectedHeap::Name _name;
    52   CollectedHeap::Name _name;
    50   GCArguments&        _arguments;
    53   GCArguments&        _arguments;
    57      CMSGC_ONLY(static CMSArguments      cmsArguments;)
    60      CMSGC_ONLY(static CMSArguments      cmsArguments;)
    58  EPSILONGC_ONLY(static EpsilonArguments  epsilonArguments;)
    61  EPSILONGC_ONLY(static EpsilonArguments  epsilonArguments;)
    59       G1GC_ONLY(static G1Arguments       g1Arguments;)
    62       G1GC_ONLY(static G1Arguments       g1Arguments;)
    60 PARALLELGC_ONLY(static ParallelArguments parallelArguments;)
    63 PARALLELGC_ONLY(static ParallelArguments parallelArguments;)
    61   SERIALGC_ONLY(static SerialArguments   serialArguments;)
    64   SERIALGC_ONLY(static SerialArguments   serialArguments;)
       
    65        ZGC_ONLY(static ZArguments        zArguments;)
    62 
    66 
    63 // Table of supported GCs, for translating between command
    67 // Table of supported GCs, for translating between command
    64 // line flag, CollectedHeap::Name and GCArguments instance.
    68 // line flag, CollectedHeap::Name and GCArguments instance.
    65 static const SupportedGC SupportedGCs[] = {
    69 static const SupportedGC SupportedGCs[] = {
    66        CMSGC_ONLY_ARG(SupportedGC(UseConcMarkSweepGC, CollectedHeap::CMS,      cmsArguments,      "concurrent mark sweep gc"))
    70        CMSGC_ONLY_ARG(SupportedGC(UseConcMarkSweepGC, CollectedHeap::CMS,      cmsArguments,      "concurrent mark sweep gc"))
    67    EPSILONGC_ONLY_ARG(SupportedGC(UseEpsilonGC,       CollectedHeap::Epsilon,  epsilonArguments,  "epsilon gc"))
    71    EPSILONGC_ONLY_ARG(SupportedGC(UseEpsilonGC,       CollectedHeap::Epsilon,  epsilonArguments,  "epsilon gc"))
    68         G1GC_ONLY_ARG(SupportedGC(UseG1GC,            CollectedHeap::G1,       g1Arguments,       "g1 gc"))
    72         G1GC_ONLY_ARG(SupportedGC(UseG1GC,            CollectedHeap::G1,       g1Arguments,       "g1 gc"))
    69   PARALLELGC_ONLY_ARG(SupportedGC(UseParallelGC,      CollectedHeap::Parallel, parallelArguments, "parallel gc"))
    73   PARALLELGC_ONLY_ARG(SupportedGC(UseParallelGC,      CollectedHeap::Parallel, parallelArguments, "parallel gc"))
    70   PARALLELGC_ONLY_ARG(SupportedGC(UseParallelOldGC,   CollectedHeap::Parallel, parallelArguments, "parallel gc"))
    74   PARALLELGC_ONLY_ARG(SupportedGC(UseParallelOldGC,   CollectedHeap::Parallel, parallelArguments, "parallel gc"))
    71     SERIALGC_ONLY_ARG(SupportedGC(UseSerialGC,        CollectedHeap::Serial,   serialArguments,   "serial gc"))
    75     SERIALGC_ONLY_ARG(SupportedGC(UseSerialGC,        CollectedHeap::Serial,   serialArguments,   "serial gc"))
       
    76          ZGC_ONLY_ARG(SupportedGC(UseZGC,             CollectedHeap::Z,        zArguments,        "z gc"))
    72 };
    77 };
    73 
    78 
    74 #define FOR_EACH_SUPPORTED_GC(var) \
    79 #define FOR_EACH_SUPPORTED_GC(var) \
    75   for (const SupportedGC* var = &SupportedGCs[0]; var < &SupportedGCs[ARRAY_SIZE(SupportedGCs)]; var++)
    80   for (const SupportedGC* var = &SupportedGCs[0]; var < &SupportedGCs[ARRAY_SIZE(SupportedGCs)]; var++)
    76 
    81 
    96   NOT_EPSILONGC( UNSUPPORTED_OPTION(UseEpsilonGC);)
   101   NOT_EPSILONGC( UNSUPPORTED_OPTION(UseEpsilonGC);)
    97   NOT_G1GC(      UNSUPPORTED_OPTION(UseG1GC);)
   102   NOT_G1GC(      UNSUPPORTED_OPTION(UseG1GC);)
    98   NOT_PARALLELGC(UNSUPPORTED_OPTION(UseParallelGC);)
   103   NOT_PARALLELGC(UNSUPPORTED_OPTION(UseParallelGC);)
    99   NOT_PARALLELGC(UNSUPPORTED_OPTION(UseParallelOldGC));
   104   NOT_PARALLELGC(UNSUPPORTED_OPTION(UseParallelOldGC));
   100   NOT_SERIALGC(  UNSUPPORTED_OPTION(UseSerialGC);)
   105   NOT_SERIALGC(  UNSUPPORTED_OPTION(UseSerialGC);)
       
   106   NOT_ZGC(       UNSUPPORTED_OPTION(UseZGC);)
   101 }
   107 }
   102 
   108 
   103 bool GCConfig::is_no_gc_selected() {
   109 bool GCConfig::is_no_gc_selected() {
   104   FOR_EACH_SUPPORTED_GC(gc) {
   110   FOR_EACH_SUPPORTED_GC(gc) {
   105     if (gc->_flag) {
   111     if (gc->_flag) {