src/hotspot/share/runtime/globals.cpp
changeset 54982 b18c8301b8c2
parent 50289 0195ee80e530
child 58044 3277a7454dc5
--- a/src/hotspot/share/runtime/globals.cpp	Wed May 22 07:12:18 2019 -0400
+++ b/src/hotspot/share/runtime/globals.cpp	Wed May 22 13:05:37 2019 +0200
@@ -30,6 +30,7 @@
 #include "runtime/arguments.hpp"
 #include "runtime/globals.hpp"
 #include "runtime/globals_extension.hpp"
+#include "runtime/globals_shared.hpp"
 #include "runtime/flags/jvmFlagConstraintList.hpp"
 #include "runtime/flags/jvmFlagWriteableList.hpp"
 #include "runtime/os.hpp"
@@ -38,49 +39,44 @@
 #include "utilities/macros.hpp"
 #include "utilities/ostream.hpp"
 #include "utilities/stringUtils.hpp"
-#ifdef COMPILER1
-#include "c1/c1_globals.hpp"
-#endif
-#if INCLUDE_JVMCI
-#include "jvmci/jvmci_globals.hpp"
-#endif
-#ifdef COMPILER2
-#include "opto/c2_globals.hpp"
-#endif
 
-VM_FLAGS(MATERIALIZE_DEVELOPER_FLAG, \
-         MATERIALIZE_PD_DEVELOPER_FLAG, \
-         MATERIALIZE_PRODUCT_FLAG, \
-         MATERIALIZE_PD_PRODUCT_FLAG, \
-         MATERIALIZE_DIAGNOSTIC_FLAG, \
-         MATERIALIZE_PD_DIAGNOSTIC_FLAG, \
-         MATERIALIZE_EXPERIMENTAL_FLAG, \
-         MATERIALIZE_NOTPRODUCT_FLAG, \
-         MATERIALIZE_MANAGEABLE_FLAG, \
-         MATERIALIZE_PRODUCT_RW_FLAG, \
-         MATERIALIZE_LP64_PRODUCT_FLAG, \
-         IGNORE_RANGE, \
-         IGNORE_CONSTRAINT, \
-         IGNORE_WRITEABLE)
+// Implementation macros
+#define MATERIALIZE_PRODUCT_FLAG(type, name, value, doc)      type name = value;
+#define MATERIALIZE_PD_PRODUCT_FLAG(type, name, doc)          type name = pd_##name;
+#define MATERIALIZE_DIAGNOSTIC_FLAG(type, name, value, doc)   type name = value;
+#define MATERIALIZE_PD_DIAGNOSTIC_FLAG(type, name, doc)       type name = pd_##name;
+#define MATERIALIZE_EXPERIMENTAL_FLAG(type, name, value, doc) type name = value;
+#define MATERIALIZE_MANAGEABLE_FLAG(type, name, value, doc)   type name = value;
+#define MATERIALIZE_PRODUCT_RW_FLAG(type, name, value, doc)   type name = value;
+#ifdef PRODUCT
+#define MATERIALIZE_DEVELOPER_FLAG(type, name, value, doc)
+#define MATERIALIZE_PD_DEVELOPER_FLAG(type, name, doc)
+#define MATERIALIZE_NOTPRODUCT_FLAG(type, name, value, doc)
+#else
+#define MATERIALIZE_DEVELOPER_FLAG(type, name, value, doc)    type name = value;
+#define MATERIALIZE_PD_DEVELOPER_FLAG(type, name, doc)        type name = pd_##name;
+#define MATERIALIZE_NOTPRODUCT_FLAG(type, name, value, doc)   type name = value;
+#endif // PRODUCT
+#ifdef _LP64
+#define MATERIALIZE_LP64_PRODUCT_FLAG(type, name, value, doc) type name = value;
+#else
+#define MATERIALIZE_LP64_PRODUCT_FLAG(type, name, value, doc) /* flag is constant */
+#endif // _LP64
 
-RUNTIME_OS_FLAGS(MATERIALIZE_DEVELOPER_FLAG, \
-                 MATERIALIZE_PD_DEVELOPER_FLAG, \
-                 MATERIALIZE_PRODUCT_FLAG, \
-                 MATERIALIZE_PD_PRODUCT_FLAG, \
-                 MATERIALIZE_DIAGNOSTIC_FLAG, \
-                 MATERIALIZE_PD_DIAGNOSTIC_FLAG, \
-                 MATERIALIZE_NOTPRODUCT_FLAG, \
-                 IGNORE_RANGE, \
-                 IGNORE_CONSTRAINT, \
-                 IGNORE_WRITEABLE)
 
-ARCH_FLAGS(MATERIALIZE_DEVELOPER_FLAG, \
-           MATERIALIZE_PRODUCT_FLAG, \
-           MATERIALIZE_DIAGNOSTIC_FLAG, \
-           MATERIALIZE_EXPERIMENTAL_FLAG, \
-           MATERIALIZE_NOTPRODUCT_FLAG, \
-           IGNORE_RANGE, \
-           IGNORE_CONSTRAINT, \
-           IGNORE_WRITEABLE)
+ALL_FLAGS(MATERIALIZE_DEVELOPER_FLAG,     \
+          MATERIALIZE_PD_DEVELOPER_FLAG,  \
+          MATERIALIZE_PRODUCT_FLAG,       \
+          MATERIALIZE_PD_PRODUCT_FLAG,    \
+          MATERIALIZE_DIAGNOSTIC_FLAG,    \
+          MATERIALIZE_PD_DIAGNOSTIC_FLAG, \
+          MATERIALIZE_EXPERIMENTAL_FLAG,  \
+          MATERIALIZE_NOTPRODUCT_FLAG,    \
+          MATERIALIZE_MANAGEABLE_FLAG,    \
+          MATERIALIZE_PRODUCT_RW_FLAG,    \
+          MATERIALIZE_LP64_PRODUCT_FLAG,  \
+          IGNORE_RANGE,                   \
+          IGNORE_CONSTRAINT,              \
+          IGNORE_WRITEABLE)
 
 MATERIALIZE_FLAGS_EXT