equal
deleted
inserted
replaced
19 * questions. |
19 * questions. |
20 * |
20 * |
21 */ |
21 */ |
22 |
22 |
23 #include "precompiled.hpp" |
23 #include "precompiled.hpp" |
|
24 #include "gc/shenandoah/shenandoahConcurrentRoots.hpp" |
24 #include "gc/shenandoah/shenandoahNormalMode.hpp" |
25 #include "gc/shenandoah/shenandoahNormalMode.hpp" |
25 #include "gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.hpp" |
26 #include "gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.hpp" |
26 #include "gc/shenandoah/heuristics/shenandoahAggressiveHeuristics.hpp" |
27 #include "gc/shenandoah/heuristics/shenandoahAggressiveHeuristics.hpp" |
27 #include "gc/shenandoah/heuristics/shenandoahCompactHeuristics.hpp" |
28 #include "gc/shenandoah/heuristics/shenandoahCompactHeuristics.hpp" |
28 #include "gc/shenandoah/heuristics/shenandoahStaticHeuristics.hpp" |
29 #include "gc/shenandoah/heuristics/shenandoahStaticHeuristics.hpp" |
30 #include "logging/logTag.hpp" |
31 #include "logging/logTag.hpp" |
31 |
32 |
32 void ShenandoahNormalMode::initialize_flags() const { |
33 void ShenandoahNormalMode::initialize_flags() const { |
33 SHENANDOAH_ERGO_ENABLE_FLAG(ExplicitGCInvokesConcurrent); |
34 SHENANDOAH_ERGO_ENABLE_FLAG(ExplicitGCInvokesConcurrent); |
34 SHENANDOAH_ERGO_ENABLE_FLAG(ShenandoahImplicitGCInvokesConcurrent); |
35 SHENANDOAH_ERGO_ENABLE_FLAG(ShenandoahImplicitGCInvokesConcurrent); |
|
36 if (ShenandoahConcurrentRoots::can_do_concurrent_class_unloading()) { |
|
37 SHENANDOAH_ERGO_ENABLE_FLAG(ShenandoahSuspendibleWorkers); |
|
38 } |
35 |
39 |
36 // Final configuration checks |
40 // Final configuration checks |
37 SHENANDOAH_CHECK_FLAG_SET(ShenandoahLoadRefBarrier); |
41 SHENANDOAH_CHECK_FLAG_SET(ShenandoahLoadRefBarrier); |
38 SHENANDOAH_CHECK_FLAG_SET(ShenandoahSATBBarrier); |
42 SHENANDOAH_CHECK_FLAG_SET(ShenandoahSATBBarrier); |
39 SHENANDOAH_CHECK_FLAG_SET(ShenandoahKeepAliveBarrier); |
43 SHENANDOAH_CHECK_FLAG_SET(ShenandoahKeepAliveBarrier); |