Mercurial > hg > graal-jvmci-8
comparison src/share/vm/jvmci/jvmci_globals.cpp @ 23760:655fd63024d0
move jvmci flag handling to JVMCIGlobals
author | David Leopoldseder <david.d.leopoldseder@oracle.com> |
---|---|
date | Fri, 23 Sep 2016 16:33:12 +0200 |
parents | 740feb10d15a |
children | 1fece5f8307c |
comparison
equal
deleted
inserted
replaced
23759:561a3f3a9b99 | 23760:655fd63024d0 |
---|---|
22 * | 22 * |
23 */ | 23 */ |
24 | 24 |
25 #include "precompiled.hpp" | 25 #include "precompiled.hpp" |
26 #include "jvmci/jvmci_globals.hpp" | 26 #include "jvmci/jvmci_globals.hpp" |
27 #include "utilities/defaultStream.hpp" | |
28 #include "runtime/globals_extension.hpp" | |
27 | 29 |
28 JVMCI_FLAGS(MATERIALIZE_DEVELOPER_FLAG, MATERIALIZE_PD_DEVELOPER_FLAG, MATERIALIZE_PRODUCT_FLAG, MATERIALIZE_PD_PRODUCT_FLAG, MATERIALIZE_NOTPRODUCT_FLAG) | 30 JVMCI_FLAGS(MATERIALIZE_DEVELOPER_FLAG, MATERIALIZE_PD_DEVELOPER_FLAG, MATERIALIZE_PRODUCT_FLAG, MATERIALIZE_PD_PRODUCT_FLAG, MATERIALIZE_NOTPRODUCT_FLAG) |
31 | |
32 bool JVMCIGlobals::check_jvmci_flags_are_consistent() { | |
33 bool status = true; | |
34 if (!EnableJVMCI) { | |
35 #define JVMCI_CHECK3(type, name, doc) JVMCI_CHECK_FLAG(name) | |
36 #define JVMCI_CHECK4(type, name, value, doc) JVMCI_CHECK_FLAG(name) | |
37 #define JVMCI_CHECK_FLAG(FLAG) \ | |
38 if (strcmp(#FLAG, "EnableJVMCI") && !FLAG_IS_DEFAULT(FLAG)) { \ | |
39 jio_fprintf(defaultStream::error_stream(), "EnableJVMCI must be enabled to use VM option '%s'\n", #FLAG); \ | |
40 status = false; \ | |
41 } | |
42 JVMCI_FLAGS(JVMCI_CHECK4, JVMCI_CHECK3, JVMCI_CHECK4, JVMCI_CHECK3, JVMCI_CHECK4) | |
43 #undef JVMCI_CHECK3 | |
44 #undef JVMCI_CHECK4 | |
45 #undef JVMCI_CHECK_FLAG | |
46 } else { | |
47 #ifndef TIERED | |
48 // JVMCI is only usable as a jit compiler if the VM supports tiered compilation. | |
49 #define JVMCI_CHECK_FLAG(FLAG) \ | |
50 if (!FLAG_IS_DEFAULT(FLAG)) { \ | |
51 jio_fprintf(defaultStream::error_stream(), "VM option '%s' cannot be set in non-tiered VM\n", #FLAG); \ | |
52 status = false; \ | |
53 } | |
54 JVMCI_CHECK_FLAG(UseJVMCICompiler) | |
55 JVMCI_CHECK_FLAG(BootstrapJVMCI) | |
56 JVMCI_CHECK_FLAG(PrintBootstrap) | |
57 JVMCI_CHECK_FLAG(JVMCIThreads) | |
58 JVMCI_CHECK_FLAG(JVMCIHostThreads) | |
59 JVMCI_CHECK_FLAG(JVMCICountersExcludeCompiler) | |
60 #undef JVMCI_CHECK_FLAG | |
61 #endif | |
62 if (BootstrapJVMCI && !UseJVMCICompiler) { | |
63 warning("BootstrapJVMCI has no effect if UseJVMCICompiler is disabled"); | |
64 } | |
65 } | |
66 if (UseJVMCICompiler) { | |
67 if(JVMCIThreads < 1) { | |
68 // Check the minimum number of JVMCI compiler threads | |
69 jio_fprintf(defaultStream::error_stream(), "JVMCIThreads of " INTX_FORMAT " is invalid; must be at least 1\n"); | |
70 status = false; | |
71 } | |
72 } | |
73 return status; | |
74 } | |
75 | |
76 void JVMCIGlobals::set_jvmci_specific_flags() { | |
77 if (UseJVMCICompiler) { | |
78 if (FLAG_IS_DEFAULT(TypeProfileWidth)) { | |
79 FLAG_SET_DEFAULT(TypeProfileWidth, 8); | |
80 } | |
81 if (FLAG_IS_DEFAULT(OnStackReplacePercentage)) { | |
82 FLAG_SET_DEFAULT(OnStackReplacePercentage, 933); | |
83 } | |
84 if (FLAG_IS_DEFAULT(ReservedCodeCacheSize)) { | |
85 FLAG_SET_DEFAULT(ReservedCodeCacheSize, 64*M); | |
86 } | |
87 if (FLAG_IS_DEFAULT(InitialCodeCacheSize)) { | |
88 FLAG_SET_DEFAULT(InitialCodeCacheSize, 16*M); | |
89 } | |
90 if (FLAG_IS_DEFAULT(MetaspaceSize)) { | |
91 FLAG_SET_DEFAULT(MetaspaceSize, 12*M); | |
92 } | |
93 if (FLAG_IS_DEFAULT(NewSizeThreadIncrease)) { | |
94 FLAG_SET_DEFAULT(NewSizeThreadIncrease, 4*K); | |
95 } | |
96 } | |
97 if (!ScavengeRootsInCode) { | |
98 warning("forcing ScavengeRootsInCode non-zero because JVMCI is enabled"); | |
99 ScavengeRootsInCode = 1; | |
100 } | |
101 } |