126 FLAG_SET_DEFAULT(LoopStripMiningIter, 1000);
127 }
128 }
129 #ifdef ASSERT
130 // C2 barrier verification is only reliable when all default barriers are enabled
131 if (ShenandoahVerifyOptoBarriers &&
132 (!FLAG_IS_DEFAULT(ShenandoahSATBBarrier) ||
133 !FLAG_IS_DEFAULT(ShenandoahLoadRefBarrier) ||
134 !FLAG_IS_DEFAULT(ShenandoahStoreValEnqueueBarrier) ||
135 !FLAG_IS_DEFAULT(ShenandoahCASBarrier) ||
136 !FLAG_IS_DEFAULT(ShenandoahCloneBarrier)
137 )) {
138 warning("Unusual barrier configuration, disabling C2 barrier verification");
139 FLAG_SET_DEFAULT(ShenandoahVerifyOptoBarriers, false);
140 }
141 #else
142 guarantee(!ShenandoahVerifyOptoBarriers, "Should be disabled");
143 #endif // ASSERT
144 #endif // COMPILER2
145
146 if (AlwaysPreTouch) {
147 // Shenandoah handles pre-touch on its own. It does not let the
148 // generic storage code to do the pre-touch before Shenandoah has
149 // a chance to do it on its own.
150 FLAG_SET_DEFAULT(AlwaysPreTouch, false);
151 FLAG_SET_DEFAULT(ShenandoahAlwaysPreTouch, true);
152 }
153
154 // Record more information about previous cycles for improved debugging pleasure
155 if (FLAG_IS_DEFAULT(LogEventsBufferEntries)) {
156 FLAG_SET_DEFAULT(LogEventsBufferEntries, 250);
157 }
158
159 if (ShenandoahAlwaysPreTouch) {
160 if (!FLAG_IS_DEFAULT(ShenandoahUncommit)) {
161 warning("AlwaysPreTouch is enabled, disabling ShenandoahUncommit");
162 }
163 FLAG_SET_DEFAULT(ShenandoahUncommit, false);
164 }
165
166 if ((InitialHeapSize == MaxHeapSize) && ShenandoahUncommit) {
167 log_info(gc)("Min heap equals to max heap, disabling ShenandoahUncommit");
168 FLAG_SET_DEFAULT(ShenandoahUncommit, false);
169 }
170
171 // If class unloading is disabled, no unloading for concurrent cycles as well.
172 if (!ClassUnloading) {
173 FLAG_SET_DEFAULT(ClassUnloadingWithConcurrentMark, false);
174 }
175
176 // AOT is not supported yet
177 if (UseAOT) {
178 if (!FLAG_IS_DEFAULT(UseAOT)) {
179 warning("Shenandoah does not support AOT at this moment, disabling UseAOT");
|
126 FLAG_SET_DEFAULT(LoopStripMiningIter, 1000);
127 }
128 }
129 #ifdef ASSERT
130 // C2 barrier verification is only reliable when all default barriers are enabled
131 if (ShenandoahVerifyOptoBarriers &&
132 (!FLAG_IS_DEFAULT(ShenandoahSATBBarrier) ||
133 !FLAG_IS_DEFAULT(ShenandoahLoadRefBarrier) ||
134 !FLAG_IS_DEFAULT(ShenandoahStoreValEnqueueBarrier) ||
135 !FLAG_IS_DEFAULT(ShenandoahCASBarrier) ||
136 !FLAG_IS_DEFAULT(ShenandoahCloneBarrier)
137 )) {
138 warning("Unusual barrier configuration, disabling C2 barrier verification");
139 FLAG_SET_DEFAULT(ShenandoahVerifyOptoBarriers, false);
140 }
141 #else
142 guarantee(!ShenandoahVerifyOptoBarriers, "Should be disabled");
143 #endif // ASSERT
144 #endif // COMPILER2
145
146 // Record more information about previous cycles for improved debugging pleasure
147 if (FLAG_IS_DEFAULT(LogEventsBufferEntries)) {
148 FLAG_SET_DEFAULT(LogEventsBufferEntries, 250);
149 }
150
151 if (AlwaysPreTouch) {
152 if (!FLAG_IS_DEFAULT(ShenandoahUncommit)) {
153 warning("AlwaysPreTouch is enabled, disabling ShenandoahUncommit");
154 }
155 FLAG_SET_DEFAULT(ShenandoahUncommit, false);
156 }
157
158 if ((InitialHeapSize == MaxHeapSize) && ShenandoahUncommit) {
159 log_info(gc)("Min heap equals to max heap, disabling ShenandoahUncommit");
160 FLAG_SET_DEFAULT(ShenandoahUncommit, false);
161 }
162
163 // If class unloading is disabled, no unloading for concurrent cycles as well.
164 if (!ClassUnloading) {
165 FLAG_SET_DEFAULT(ClassUnloadingWithConcurrentMark, false);
166 }
167
168 // AOT is not supported yet
169 if (UseAOT) {
170 if (!FLAG_IS_DEFAULT(UseAOT)) {
171 warning("Shenandoah does not support AOT at this moment, disabling UseAOT");
|