84 // If a JVMCI native library is present,
85 // we enable UseJVMCINativeLibrary by default.
86 FLAG_SET_DEFAULT(UseJVMCINativeLibrary, true);
87 }
88 }
89 if (!FLAG_IS_DEFAULT(EnableJVMCI) && !EnableJVMCI) {
90 jio_fprintf(defaultStream::error_stream(),
91 "Improperly specified VM option UseJVMCICompiler: EnableJVMCI cannot be disabled\n");
92 return false;
93 }
94 FLAG_SET_DEFAULT(EnableJVMCI, true);
95 if (BootstrapJVMCI && UseJVMCINativeLibrary) {
96 jio_fprintf(defaultStream::error_stream(), "-XX:+BootstrapJVMCI is not compatible with -XX:+UseJVMCINativeLibrary\n");
97 return false;
98 }
99 if (BootstrapJVMCI && (TieredStopAtLevel < CompLevel_full_optimization)) {
100 jio_fprintf(defaultStream::error_stream(),
101 "-XX:+BootstrapJVMCI is not compatible with -XX:TieredStopAtLevel=%d\n", TieredStopAtLevel);
102 return false;
103 }
104 }
105
106 if (!EnableJVMCI) {
107 // Switch off eager JVMCI initialization if JVMCI is disabled.
108 // Don't throw error if EagerJVMCI is set to allow testing.
109 if (EagerJVMCI) {
110 FLAG_SET_DEFAULT(EagerJVMCI, false);
111 }
112 }
113 JVMCI_FLAG_CHECKED(EagerJVMCI)
114
115 CHECK_NOT_SET(JVMCIEventLogLevel, EnableJVMCI)
116 CHECK_NOT_SET(JVMCITraceLevel, EnableJVMCI)
117 CHECK_NOT_SET(JVMCICounterSize, EnableJVMCI)
118 CHECK_NOT_SET(JVMCICountersExcludeCompiler, EnableJVMCI)
119 CHECK_NOT_SET(JVMCIUseFastLocking, EnableJVMCI)
120 CHECK_NOT_SET(JVMCINMethodSizeLimit, EnableJVMCI)
121 CHECK_NOT_SET(JVMCIPrintProperties, EnableJVMCI)
122 CHECK_NOT_SET(UseJVMCINativeLibrary, EnableJVMCI)
123 CHECK_NOT_SET(JVMCILibPath, EnableJVMCI)
124 CHECK_NOT_SET(JVMCILibDumpJNIConfig, EnableJVMCI)
125
126 #ifndef COMPILER2
127 JVMCI_FLAG_CHECKED(MaxVectorSize)
128 JVMCI_FLAG_CHECKED(ReduceInitialCardMarks)
129 JVMCI_FLAG_CHECKED(UseMultiplyToLenIntrinsic)
130 JVMCI_FLAG_CHECKED(UseSquareToLenIntrinsic)
131 JVMCI_FLAG_CHECKED(UseMulAddIntrinsic)
132 JVMCI_FLAG_CHECKED(UseMontgomeryMultiplyIntrinsic)
133 JVMCI_FLAG_CHECKED(UseMontgomerySquareIntrinsic)
134 #endif // !COMPILER2
135
136 #ifndef PRODUCT
137 #define JVMCI_CHECK4(type, name, value, ...) assert(name##checked, #name " flag not checked");
138 #define JVMCI_CHECK3(type, name, ...) assert(name##checked, #name " flag not checked");
139 // Ensures that all JVMCI flags are checked by this method.
|
84 // If a JVMCI native library is present,
85 // we enable UseJVMCINativeLibrary by default.
86 FLAG_SET_DEFAULT(UseJVMCINativeLibrary, true);
87 }
88 }
89 if (!FLAG_IS_DEFAULT(EnableJVMCI) && !EnableJVMCI) {
90 jio_fprintf(defaultStream::error_stream(),
91 "Improperly specified VM option UseJVMCICompiler: EnableJVMCI cannot be disabled\n");
92 return false;
93 }
94 FLAG_SET_DEFAULT(EnableJVMCI, true);
95 if (BootstrapJVMCI && UseJVMCINativeLibrary) {
96 jio_fprintf(defaultStream::error_stream(), "-XX:+BootstrapJVMCI is not compatible with -XX:+UseJVMCINativeLibrary\n");
97 return false;
98 }
99 if (BootstrapJVMCI && (TieredStopAtLevel < CompLevel_full_optimization)) {
100 jio_fprintf(defaultStream::error_stream(),
101 "-XX:+BootstrapJVMCI is not compatible with -XX:TieredStopAtLevel=%d\n", TieredStopAtLevel);
102 return false;
103 }
104 if (UseCompactObjectHeaders) {
105 log_warning(jvmci)("-XX:+UseCompactObjectHeaders not supported by JVMCI, disabling UseCompactObjectHeaders");
106 FLAG_SET_DEFAULT(UseCompactObjectHeaders, false);
107 }
108 }
109
110 if (!EnableJVMCI) {
111 // Switch off eager JVMCI initialization if JVMCI is disabled.
112 // Don't throw error if EagerJVMCI is set to allow testing.
113 if (EagerJVMCI) {
114 FLAG_SET_DEFAULT(EagerJVMCI, false);
115 }
116 }
117 JVMCI_FLAG_CHECKED(EagerJVMCI)
118
119 CHECK_NOT_SET(JVMCIEventLogLevel, EnableJVMCI)
120 CHECK_NOT_SET(JVMCITraceLevel, EnableJVMCI)
121 CHECK_NOT_SET(JVMCICounterSize, EnableJVMCI)
122 CHECK_NOT_SET(JVMCICountersExcludeCompiler, EnableJVMCI)
123 CHECK_NOT_SET(JVMCINMethodSizeLimit, EnableJVMCI)
124 CHECK_NOT_SET(JVMCIPrintProperties, EnableJVMCI)
125 CHECK_NOT_SET(UseJVMCINativeLibrary, EnableJVMCI)
126 CHECK_NOT_SET(JVMCILibPath, EnableJVMCI)
127 CHECK_NOT_SET(JVMCILibDumpJNIConfig, EnableJVMCI)
128
129 #ifndef COMPILER2
130 JVMCI_FLAG_CHECKED(MaxVectorSize)
131 JVMCI_FLAG_CHECKED(ReduceInitialCardMarks)
132 JVMCI_FLAG_CHECKED(UseMultiplyToLenIntrinsic)
133 JVMCI_FLAG_CHECKED(UseSquareToLenIntrinsic)
134 JVMCI_FLAG_CHECKED(UseMulAddIntrinsic)
135 JVMCI_FLAG_CHECKED(UseMontgomeryMultiplyIntrinsic)
136 JVMCI_FLAG_CHECKED(UseMontgomerySquareIntrinsic)
137 #endif // !COMPILER2
138
139 #ifndef PRODUCT
140 #define JVMCI_CHECK4(type, name, value, ...) assert(name##checked, #name " flag not checked");
141 #define JVMCI_CHECK3(type, name, ...) assert(name##checked, #name " flag not checked");
142 // Ensures that all JVMCI flags are checked by this method.
|