Skip to content

Commit 4016667

Browse files
committed
8244739: Shenandoah: break superclass dependency on ShenandoahNormalMode
Reviewed-by: rkennke
1 parent e3138f8 commit 4016667

File tree

3 files changed

+23
-4
lines changed

3 files changed

+23
-4
lines changed

src/hotspot/share/gc/shenandoah/mode/shenandoahIUMode.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,21 @@ void ShenandoahIUMode::initialize_flags() const {
5555
SHENANDOAH_CHECK_FLAG_SET(ShenandoahCASBarrier);
5656
SHENANDOAH_CHECK_FLAG_SET(ShenandoahCloneBarrier);
5757
}
58+
59+
ShenandoahHeuristics* ShenandoahIUMode::initialize_heuristics() const {
60+
if (ShenandoahGCHeuristics != NULL) {
61+
if (strcmp(ShenandoahGCHeuristics, "aggressive") == 0) {
62+
return new ShenandoahAggressiveHeuristics();
63+
} else if (strcmp(ShenandoahGCHeuristics, "static") == 0) {
64+
return new ShenandoahStaticHeuristics();
65+
} else if (strcmp(ShenandoahGCHeuristics, "adaptive") == 0) {
66+
return new ShenandoahAdaptiveHeuristics();
67+
} else if (strcmp(ShenandoahGCHeuristics, "compact") == 0) {
68+
return new ShenandoahCompactHeuristics();
69+
} else {
70+
vm_exit_during_initialization("Unknown -XX:ShenandoahGCHeuristics option");
71+
}
72+
}
73+
ShouldNotReachHere();
74+
return NULL;
75+
}

src/hotspot/share/gc/shenandoah/mode/shenandoahIUMode.hpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,14 @@
2525
#ifndef SHARE_GC_SHENANDOAH_MODE_SHENANDOAHIUMODE_HPP
2626
#define SHARE_GC_SHENANDOAH_MODE_SHENANDOAHIUMODE_HPP
2727

28-
#include "gc/shenandoah/mode/shenandoahNormalMode.hpp"
28+
#include "gc/shenandoah/mode/shenandoahMode.hpp"
2929

3030
class ShenandoahHeuristics;
3131

32-
class ShenandoahIUMode : public ShenandoahNormalMode {
32+
class ShenandoahIUMode : public ShenandoahMode {
3333
public:
3434
virtual void initialize_flags() const;
35+
virtual ShenandoahHeuristics* initialize_heuristics() const;
3536

3637
virtual const char* name() { return "Incremental-Update"; }
3738
virtual bool is_diagnostic() { return false; }

src/hotspot/share/gc/shenandoah/mode/shenandoahPassiveMode.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
#ifndef SHARE_GC_SHENANDOAH_MODE_SHENANDOAHPASSIVEMODE_HPP
2626
#define SHARE_GC_SHENANDOAH_MODE_SHENANDOAHPASSIVEMODE_HPP
2727

28-
#include "gc/shenandoah/mode/shenandoahNormalMode.hpp"
28+
#include "gc/shenandoah/mode/shenandoahMode.hpp"
2929

30-
class ShenandoahPassiveMode : public ShenandoahNormalMode {
30+
class ShenandoahPassiveMode : public ShenandoahMode {
3131
public:
3232
virtual void initialize_flags() const;
3333
virtual ShenandoahHeuristics* initialize_heuristics() const;

0 commit comments

Comments
 (0)