15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "gc/shenandoah/shenandoahTraversalMode.hpp"
27 #include "gc/shenandoah/heuristics/shenandoahTraversalAggressiveHeuristics.hpp"
28 #include "gc/shenandoah/heuristics/shenandoahTraversalHeuristics.hpp"
29 #include "logging/log.hpp"
30 #include "logging/logTag.hpp"
31
32 void ShenandoahTraversalMode::initialize_flags() const {
33 FLAG_SET_DEFAULT(ShenandoahSATBBarrier, false);
34 FLAG_SET_DEFAULT(ShenandoahStoreValEnqueueBarrier, true);
35 FLAG_SET_DEFAULT(ShenandoahKeepAliveBarrier, false);
36 FLAG_SET_DEFAULT(ShenandoahAllowMixedAllocs, false);
37
38 SHENANDOAH_ERGO_ENABLE_FLAG(ExplicitGCInvokesConcurrent);
39 SHENANDOAH_ERGO_ENABLE_FLAG(ShenandoahImplicitGCInvokesConcurrent);
40
41 // Final configuration checks
42 SHENANDOAH_CHECK_FLAG_SET(ShenandoahLoadRefBarrier);
43 SHENANDOAH_CHECK_FLAG_SET(ShenandoahStoreValEnqueueBarrier);
44 SHENANDOAH_CHECK_FLAG_SET(ShenandoahCASBarrier);
45 SHENANDOAH_CHECK_FLAG_SET(ShenandoahCloneBarrier);
46 }
47
48 ShenandoahHeuristics* ShenandoahTraversalMode::initialize_heuristics() const {
49 if (ShenandoahGCHeuristics != NULL) {
50 if (strcmp(ShenandoahGCHeuristics, "adaptive") == 0) {
51 return new ShenandoahTraversalHeuristics();
52 } else if (strcmp(ShenandoahGCHeuristics, "aggressive") == 0) {
53 return new ShenandoahTraversalAggressiveHeuristics();
54 } else {
55 vm_exit_during_initialization("Unknown -XX:ShenandoahGCHeuristics option");
|
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "gc/shenandoah/shenandoahTraversalMode.hpp"
27 #include "gc/shenandoah/heuristics/shenandoahTraversalAggressiveHeuristics.hpp"
28 #include "gc/shenandoah/heuristics/shenandoahTraversalHeuristics.hpp"
29 #include "logging/log.hpp"
30 #include "logging/logTag.hpp"
31
32 void ShenandoahTraversalMode::initialize_flags() const {
33 FLAG_SET_DEFAULT(ShenandoahSATBBarrier, false);
34 FLAG_SET_DEFAULT(ShenandoahStoreValEnqueueBarrier, true);
35 FLAG_SET_DEFAULT(ShenandoahAllowMixedAllocs, false);
36
37 SHENANDOAH_ERGO_ENABLE_FLAG(ExplicitGCInvokesConcurrent);
38 SHENANDOAH_ERGO_ENABLE_FLAG(ShenandoahImplicitGCInvokesConcurrent);
39
40 // Final configuration checks
41 SHENANDOAH_CHECK_FLAG_SET(ShenandoahLoadRefBarrier);
42 SHENANDOAH_CHECK_FLAG_SET(ShenandoahStoreValEnqueueBarrier);
43 SHENANDOAH_CHECK_FLAG_SET(ShenandoahCASBarrier);
44 SHENANDOAH_CHECK_FLAG_SET(ShenandoahCloneBarrier);
45 }
46
47 ShenandoahHeuristics* ShenandoahTraversalMode::initialize_heuristics() const {
48 if (ShenandoahGCHeuristics != NULL) {
49 if (strcmp(ShenandoahGCHeuristics, "adaptive") == 0) {
50 return new ShenandoahTraversalHeuristics();
51 } else if (strcmp(ShenandoahGCHeuristics, "aggressive") == 0) {
52 return new ShenandoahTraversalAggressiveHeuristics();
53 } else {
54 vm_exit_during_initialization("Unknown -XX:ShenandoahGCHeuristics option");
|