< prev index next >
src/hotspot/share/gc/shared/gcConfig.cpp
Print this page
*** 38,47 ****
--- 38,50 ----
#include "gc/g1/g1Arguments.hpp"
#endif
#if INCLUDE_PARALLELGC
#include "gc/parallel/parallelArguments.hpp"
#endif
+ #if INCLUDE_SHENANDOAHGC
+ #include "gc/shenandoah/shenandoahArguments.hpp"
+ #endif
#if INCLUDE_SERIALGC
#include "gc/serial/serialArguments.hpp"
#endif
#if INCLUDE_ZGC
#include "gc/z/zArguments.hpp"
*** 55,81 ****
SupportedGC(bool& flag, CollectedHeap::Name name, GCArguments& arguments, const char* hs_err_name) :
_flag(flag), _name(name), _arguments(arguments), _hs_err_name(hs_err_name) {}
};
! CMSGC_ONLY(static CMSArguments cmsArguments;)
! EPSILONGC_ONLY(static EpsilonArguments epsilonArguments;)
! G1GC_ONLY(static G1Arguments g1Arguments;)
! PARALLELGC_ONLY(static ParallelArguments parallelArguments;)
! SERIALGC_ONLY(static SerialArguments serialArguments;)
! ZGC_ONLY(static ZArguments zArguments;)
// Table of supported GCs, for translating between command
// line flag, CollectedHeap::Name and GCArguments instance.
static const SupportedGC SupportedGCs[] = {
! CMSGC_ONLY_ARG(SupportedGC(UseConcMarkSweepGC, CollectedHeap::CMS, cmsArguments, "concurrent mark sweep gc"))
! EPSILONGC_ONLY_ARG(SupportedGC(UseEpsilonGC, CollectedHeap::Epsilon, epsilonArguments, "epsilon gc"))
! G1GC_ONLY_ARG(SupportedGC(UseG1GC, CollectedHeap::G1, g1Arguments, "g1 gc"))
! PARALLELGC_ONLY_ARG(SupportedGC(UseParallelGC, CollectedHeap::Parallel, parallelArguments, "parallel gc"))
! PARALLELGC_ONLY_ARG(SupportedGC(UseParallelOldGC, CollectedHeap::Parallel, parallelArguments, "parallel gc"))
! SERIALGC_ONLY_ARG(SupportedGC(UseSerialGC, CollectedHeap::Serial, serialArguments, "serial gc"))
! ZGC_ONLY_ARG(SupportedGC(UseZGC, CollectedHeap::Z, zArguments, "z gc"))
};
#define FOR_EACH_SUPPORTED_GC(var) \
for (const SupportedGC* var = &SupportedGCs[0]; var < &SupportedGCs[ARRAY_SIZE(SupportedGCs)]; var++)
--- 58,86 ----
SupportedGC(bool& flag, CollectedHeap::Name name, GCArguments& arguments, const char* hs_err_name) :
_flag(flag), _name(name), _arguments(arguments), _hs_err_name(hs_err_name) {}
};
! CMSGC_ONLY(static CMSArguments cmsArguments;)
! EPSILONGC_ONLY(static EpsilonArguments epsilonArguments;)
! G1GC_ONLY(static G1Arguments g1Arguments;)
! PARALLELGC_ONLY(static ParallelArguments parallelArguments;)
! SERIALGC_ONLY(static SerialArguments serialArguments;)
! ZGC_ONLY(static ZArguments zArguments;)
! SHENANDOAHGC_ONLY(static ShenandoahArguments shenandoahArguments;)
// Table of supported GCs, for translating between command
// line flag, CollectedHeap::Name and GCArguments instance.
static const SupportedGC SupportedGCs[] = {
! CMSGC_ONLY_ARG(SupportedGC(UseConcMarkSweepGC, CollectedHeap::CMS, cmsArguments, "concurrent mark sweep gc"))
! EPSILONGC_ONLY_ARG(SupportedGC(UseEpsilonGC, CollectedHeap::Epsilon, epsilonArguments, "epsilon gc"))
! G1GC_ONLY_ARG(SupportedGC(UseG1GC, CollectedHeap::G1, g1Arguments, "g1 gc"))
! PARALLELGC_ONLY_ARG(SupportedGC(UseParallelGC, CollectedHeap::Parallel, parallelArguments, "parallel gc"))
! PARALLELGC_ONLY_ARG(SupportedGC(UseParallelOldGC, CollectedHeap::Parallel, parallelArguments, "parallel gc"))
! SHENANDOAHGC_ONLY_ARG(SupportedGC(UseShenandoahGC, CollectedHeap::Shenandoah, shenandoahArguments, "shenandoah gc"))
! SERIALGC_ONLY_ARG(SupportedGC(UseSerialGC, CollectedHeap::Serial, serialArguments, "serial gc"))
! ZGC_ONLY_ARG(SupportedGC(UseZGC, CollectedHeap::Z, zArguments, "z gc"))
};
#define FOR_EACH_SUPPORTED_GC(var) \
for (const SupportedGC* var = &SupportedGCs[0]; var < &SupportedGCs[ARRAY_SIZE(SupportedGCs)]; var++)
*** 88,105 ****
GCArguments* GCConfig::_arguments = NULL;
bool GCConfig::_gc_selected_ergonomically = false;
void GCConfig::fail_if_unsupported_gc_is_selected() {
! NOT_CMSGC( FAIL_IF_SELECTED(UseConcMarkSweepGC, true));
! NOT_EPSILONGC( FAIL_IF_SELECTED(UseEpsilonGC, true));
! NOT_G1GC( FAIL_IF_SELECTED(UseG1GC, true));
! NOT_PARALLELGC(FAIL_IF_SELECTED(UseParallelGC, true));
! NOT_PARALLELGC(FAIL_IF_SELECTED(UseParallelOldGC, true));
! NOT_SERIALGC( FAIL_IF_SELECTED(UseSerialGC, true));
! NOT_SERIALGC( FAIL_IF_SELECTED(UseParallelOldGC, false));
! NOT_ZGC( FAIL_IF_SELECTED(UseZGC, true));
}
void GCConfig::select_gc_ergonomically() {
if (os::is_server_class_machine()) {
#if INCLUDE_G1GC
--- 93,111 ----
GCArguments* GCConfig::_arguments = NULL;
bool GCConfig::_gc_selected_ergonomically = false;
void GCConfig::fail_if_unsupported_gc_is_selected() {
! NOT_CMSGC( FAIL_IF_SELECTED(UseConcMarkSweepGC, true));
! NOT_EPSILONGC( FAIL_IF_SELECTED(UseEpsilonGC, true));
! NOT_G1GC( FAIL_IF_SELECTED(UseG1GC, true));
! NOT_PARALLELGC( FAIL_IF_SELECTED(UseParallelGC, true));
! NOT_PARALLELGC( FAIL_IF_SELECTED(UseParallelOldGC, true));
! NOT_SERIALGC( FAIL_IF_SELECTED(UseSerialGC, true));
! NOT_SERIALGC( FAIL_IF_SELECTED(UseParallelOldGC, false));
! NOT_SHENANDOAHGC(FAIL_IF_SELECTED(UseShenandoahGC, true));
! NOT_ZGC( FAIL_IF_SELECTED(UseZGC, true));
}
void GCConfig::select_gc_ergonomically() {
if (os::is_server_class_machine()) {
#if INCLUDE_G1GC
< prev index next >