44
45 class VM_ShenandoahOperation : public VM_Operation {
46 protected:
47 uint _gc_id;
48 public:
49 VM_ShenandoahOperation() : _gc_id(GCId::current()) {};
50 virtual bool skip_thread_oop_barriers() const { return true; }
51 };
52
53 class VM_ShenandoahReferenceOperation : public VM_ShenandoahOperation {
54 public:
55 VM_ShenandoahReferenceOperation() : VM_ShenandoahOperation() {};
56 bool doit_prologue();
57 void doit_epilogue();
58 };
59
60 class VM_ShenandoahInitMark: public VM_ShenandoahOperation {
61 private:
62 ShenandoahConcurrentGC* const _gc;
63 public:
64 VM_ShenandoahInitMark(ShenandoahConcurrentGC* gc) :
65 VM_ShenandoahOperation(),
66 _gc(gc) {};
67 VM_Operation::VMOp_Type type() const { return VMOp_ShenandoahInitMark; }
68 const char* name() const { return "Shenandoah Init Marking"; }
69 virtual void doit();
70 };
71
72 class VM_ShenandoahFinalMarkStartEvac: public VM_ShenandoahOperation {
73 private:
74 ShenandoahConcurrentGC* const _gc;
75 public:
76 VM_ShenandoahFinalMarkStartEvac(ShenandoahConcurrentGC* gc) :
77 VM_ShenandoahOperation(),
78 _gc(gc) {};
79 VM_Operation::VMOp_Type type() const { return VMOp_ShenandoahFinalMarkStartEvac; }
80 const char* name() const { return "Shenandoah Final Mark and Start Evacuation"; }
81 virtual void doit();
82 };
83
84 class VM_ShenandoahDegeneratedGC: public VM_ShenandoahReferenceOperation {
85 private:
86 ShenandoahDegenGC* const _gc;
87 public:
88 VM_ShenandoahDegeneratedGC(ShenandoahDegenGC* gc) :
89 VM_ShenandoahReferenceOperation(),
90 _gc(gc) {};
91
92 VM_Operation::VMOp_Type type() const { return VMOp_ShenandoahDegeneratedGC; }
93 const char* name() const { return "Shenandoah Degenerated GC"; }
94 virtual void doit();
95 };
96
115 VM_ShenandoahOperation(),
116 _gc(gc) {};
117 VM_Operation::VMOp_Type type() const { return VMOp_ShenandoahInitUpdateRefs; }
118 const char* name() const { return "Shenandoah Init Update References"; }
119 virtual void doit();
120 };
121
122 class VM_ShenandoahFinalUpdateRefs: public VM_ShenandoahOperation {
123 ShenandoahConcurrentGC* const _gc;
124 public:
125 VM_ShenandoahFinalUpdateRefs(ShenandoahConcurrentGC* gc) :
126 VM_ShenandoahOperation(),
127 _gc(gc) {};
128 VM_Operation::VMOp_Type type() const { return VMOp_ShenandoahFinalUpdateRefs; }
129 const char* name() const { return "Shenandoah Final Update References"; }
130 virtual void doit();
131 };
132
133 class VM_ShenandoahFinalRoots: public VM_ShenandoahOperation {
134 ShenandoahConcurrentGC* const _gc;
135 public:
136 VM_ShenandoahFinalRoots(ShenandoahConcurrentGC* gc) :
137 VM_ShenandoahOperation(),
138 _gc(gc) {};
139 VM_Operation::VMOp_Type type() const { return VMOp_ShenandoahFinalRoots; }
140 const char* name() const { return "Shenandoah Final Roots"; }
141 virtual void doit();
142 };
143
144 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHVMOPERATIONS_HPP
|
44
45 class VM_ShenandoahOperation : public VM_Operation {
46 protected:
47 uint _gc_id;
48 public:
49 VM_ShenandoahOperation() : _gc_id(GCId::current()) {};
50 virtual bool skip_thread_oop_barriers() const { return true; }
51 };
52
53 class VM_ShenandoahReferenceOperation : public VM_ShenandoahOperation {
54 public:
55 VM_ShenandoahReferenceOperation() : VM_ShenandoahOperation() {};
56 bool doit_prologue();
57 void doit_epilogue();
58 };
59
60 class VM_ShenandoahInitMark: public VM_ShenandoahOperation {
61 private:
62 ShenandoahConcurrentGC* const _gc;
63 public:
64 explicit VM_ShenandoahInitMark(ShenandoahConcurrentGC* gc) :
65 VM_ShenandoahOperation(),
66 _gc(gc) {};
67 VM_Operation::VMOp_Type type() const { return VMOp_ShenandoahInitMark; }
68 const char* name() const { return "Shenandoah Init Marking"; }
69 virtual void doit();
70 };
71
72 class VM_ShenandoahFinalMarkStartEvac: public VM_ShenandoahOperation {
73 private:
74 ShenandoahConcurrentGC* const _gc;
75 public:
76 explicit VM_ShenandoahFinalMarkStartEvac(ShenandoahConcurrentGC* gc) :
77 VM_ShenandoahOperation(),
78 _gc(gc) {};
79 VM_Operation::VMOp_Type type() const { return VMOp_ShenandoahFinalMarkStartEvac; }
80 const char* name() const { return "Shenandoah Final Mark and Start Evacuation"; }
81 virtual void doit();
82 };
83
84 class VM_ShenandoahDegeneratedGC: public VM_ShenandoahReferenceOperation {
85 private:
86 ShenandoahDegenGC* const _gc;
87 public:
88 VM_ShenandoahDegeneratedGC(ShenandoahDegenGC* gc) :
89 VM_ShenandoahReferenceOperation(),
90 _gc(gc) {};
91
92 VM_Operation::VMOp_Type type() const { return VMOp_ShenandoahDegeneratedGC; }
93 const char* name() const { return "Shenandoah Degenerated GC"; }
94 virtual void doit();
95 };
96
115 VM_ShenandoahOperation(),
116 _gc(gc) {};
117 VM_Operation::VMOp_Type type() const { return VMOp_ShenandoahInitUpdateRefs; }
118 const char* name() const { return "Shenandoah Init Update References"; }
119 virtual void doit();
120 };
121
122 class VM_ShenandoahFinalUpdateRefs: public VM_ShenandoahOperation {
123 ShenandoahConcurrentGC* const _gc;
124 public:
125 VM_ShenandoahFinalUpdateRefs(ShenandoahConcurrentGC* gc) :
126 VM_ShenandoahOperation(),
127 _gc(gc) {};
128 VM_Operation::VMOp_Type type() const { return VMOp_ShenandoahFinalUpdateRefs; }
129 const char* name() const { return "Shenandoah Final Update References"; }
130 virtual void doit();
131 };
132
133 class VM_ShenandoahFinalRoots: public VM_ShenandoahOperation {
134 ShenandoahConcurrentGC* const _gc;
135 bool _incr_region_ages;
136 public:
137 VM_ShenandoahFinalRoots(ShenandoahConcurrentGC* gc, bool incr_region_ages) :
138 VM_ShenandoahOperation(),
139 _gc(gc), _incr_region_ages(incr_region_ages) {};
140 VM_Operation::VMOp_Type type() const { return VMOp_ShenandoahFinalRoots; }
141 const char* name() const { return "Shenandoah Final Roots"; }
142 virtual void doit();
143 };
144
145 #endif // SHARE_GC_SHENANDOAH_SHENANDOAHVMOPERATIONS_HPP
|