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) { |