18 * or visit www.oracle.com if you need additional information or have any
19 * questions.
20 *
21 */
22
23 #include "precompiled.hpp"
24 #include "gc_implementation/shenandoah/shenandoahNormalMode.hpp"
25 #include "gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.hpp"
26 #include "gc_implementation/shenandoah/heuristics/shenandoahAggressiveHeuristics.hpp"
27 #include "gc_implementation/shenandoah/heuristics/shenandoahCompactHeuristics.hpp"
28 #include "gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.hpp"
29 #include "gc_implementation/shenandoah/shenandoahLogging.hpp"
30
31 void ShenandoahNormalMode::initialize_flags() const {
32 SHENANDOAH_ERGO_ENABLE_FLAG(ExplicitGCInvokesConcurrent);
33 SHENANDOAH_ERGO_ENABLE_FLAG(ShenandoahImplicitGCInvokesConcurrent);
34
35 // Final configuration checks
36 SHENANDOAH_CHECK_FLAG_SET(ShenandoahLoadRefBarrier);
37 SHENANDOAH_CHECK_FLAG_SET(ShenandoahSATBBarrier);
38 SHENANDOAH_CHECK_FLAG_SET(ShenandoahCASBarrier);
39 SHENANDOAH_CHECK_FLAG_SET(ShenandoahCloneBarrier);
40 }
41
42 ShenandoahHeuristics* ShenandoahNormalMode::initialize_heuristics() const {
43 if (ShenandoahGCHeuristics != NULL) {
44 if (strcmp(ShenandoahGCHeuristics, "aggressive") == 0) {
45 return new ShenandoahAggressiveHeuristics();
46 } else if (strcmp(ShenandoahGCHeuristics, "static") == 0) {
47 return new ShenandoahStaticHeuristics();
48 } else if (strcmp(ShenandoahGCHeuristics, "adaptive") == 0) {
49 return new ShenandoahAdaptiveHeuristics();
50 } else if (strcmp(ShenandoahGCHeuristics, "compact") == 0) {
51 return new ShenandoahCompactHeuristics();
52 } else {
53 vm_exit_during_initialization("Unknown -XX:ShenandoahGCHeuristics option");
54 }
55 }
56 ShouldNotReachHere();
57 return NULL;
|
18 * or visit www.oracle.com if you need additional information or have any
19 * questions.
20 *
21 */
22
23 #include "precompiled.hpp"
24 #include "gc_implementation/shenandoah/shenandoahNormalMode.hpp"
25 #include "gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.hpp"
26 #include "gc_implementation/shenandoah/heuristics/shenandoahAggressiveHeuristics.hpp"
27 #include "gc_implementation/shenandoah/heuristics/shenandoahCompactHeuristics.hpp"
28 #include "gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.hpp"
29 #include "gc_implementation/shenandoah/shenandoahLogging.hpp"
30
31 void ShenandoahNormalMode::initialize_flags() const {
32 SHENANDOAH_ERGO_ENABLE_FLAG(ExplicitGCInvokesConcurrent);
33 SHENANDOAH_ERGO_ENABLE_FLAG(ShenandoahImplicitGCInvokesConcurrent);
34
35 // Final configuration checks
36 SHENANDOAH_CHECK_FLAG_SET(ShenandoahLoadRefBarrier);
37 SHENANDOAH_CHECK_FLAG_SET(ShenandoahSATBBarrier);
38 SHENANDOAH_CHECK_FLAG_SET(ShenandoahKeepAliveBarrier);
39 SHENANDOAH_CHECK_FLAG_SET(ShenandoahCASBarrier);
40 SHENANDOAH_CHECK_FLAG_SET(ShenandoahCloneBarrier);
41 }
42
43 ShenandoahHeuristics* ShenandoahNormalMode::initialize_heuristics() const {
44 if (ShenandoahGCHeuristics != NULL) {
45 if (strcmp(ShenandoahGCHeuristics, "aggressive") == 0) {
46 return new ShenandoahAggressiveHeuristics();
47 } else if (strcmp(ShenandoahGCHeuristics, "static") == 0) {
48 return new ShenandoahStaticHeuristics();
49 } else if (strcmp(ShenandoahGCHeuristics, "adaptive") == 0) {
50 return new ShenandoahAdaptiveHeuristics();
51 } else if (strcmp(ShenandoahGCHeuristics, "compact") == 0) {
52 return new ShenandoahCompactHeuristics();
53 } else {
54 vm_exit_during_initialization("Unknown -XX:ShenandoahGCHeuristics option");
55 }
56 }
57 ShouldNotReachHere();
58 return NULL;
|