src/share/vm/runtime/globals.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8076112 Sdiff src/share/vm/runtime

src/share/vm/runtime/globals.hpp

Print this page
rev 8621 : 8076112: Add @HotSpotIntrinsicCandidate annotation to indicate methods for which Java Runtime has intrinsics
Summary: Annotate possibly intrinsified methods with @HotSpotIntrinsicCandidate. Add checks omitted by intrinsics to the library code. Add CheckIntrinsics flags to check consistency of intrinsics.
Reviewed-by: jrose, kvn, thartmann, vlivanov, abuckley, darcy, ascarpino, briangoetz, alanb, aph, dnsimon


4103                                                                             \
4104   experimental(size_t, ArrayAllocatorMallocLimit,                           \
4105           SOLARIS_ONLY(64*K) NOT_SOLARIS((size_t)-1),                       \
4106           "Allocation less than this value will be allocated "              \
4107           "using malloc. Larger allocations will use mmap.")                \
4108                                                                             \
4109   experimental(bool, AlwaysAtomicAccesses, false,                           \
4110           "Accesses to all variables should always be atomic")              \
4111                                                                             \
4112   product(bool, EnableTracing, false,                                       \
4113           "Enable event-based tracing")                                     \
4114                                                                             \
4115   product(bool, UseLockedTracing, false,                                    \
4116           "Use locked-tracing when doing event-based tracing")              \
4117                                                                             \
4118   diagnostic(bool, UseUnalignedAccesses, false,                             \
4119           "Use unaligned memory accesses in sun.misc.Unsafe")               \
4120                                                                             \
4121   product_pd(bool, PreserveFramePointer,                                    \
4122              "Use the FP register for holding the frame pointer "           \
4123              "and not as a general purpose register.")









4124 
4125 /*
4126  *  Macros for factoring of globals
4127  */
4128 
4129 // Interface macros
4130 #define DECLARE_PRODUCT_FLAG(type, name, value, doc)      extern "C" type name;
4131 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc)          extern "C" type name;
4132 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc)   extern "C" type name;
4133 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name;
4134 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc)   extern "C" type name;
4135 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc)   extern "C" type name;
4136 #ifdef PRODUCT
4137 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc)    extern "C" type CONST_##name; const type name = value;
4138 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc)        extern "C" type CONST_##name; const type name = pd_##name;
4139 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc)   extern "C" type CONST_##name;
4140 #else
4141 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc)    extern "C" type name;
4142 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc)        extern "C" type name;
4143 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc)   extern "C" type name;




4103                                                                             \
4104   experimental(size_t, ArrayAllocatorMallocLimit,                           \
4105           SOLARIS_ONLY(64*K) NOT_SOLARIS((size_t)-1),                       \
4106           "Allocation less than this value will be allocated "              \
4107           "using malloc. Larger allocations will use mmap.")                \
4108                                                                             \
4109   experimental(bool, AlwaysAtomicAccesses, false,                           \
4110           "Accesses to all variables should always be atomic")              \
4111                                                                             \
4112   product(bool, EnableTracing, false,                                       \
4113           "Enable event-based tracing")                                     \
4114                                                                             \
4115   product(bool, UseLockedTracing, false,                                    \
4116           "Use locked-tracing when doing event-based tracing")              \
4117                                                                             \
4118   diagnostic(bool, UseUnalignedAccesses, false,                             \
4119           "Use unaligned memory accesses in sun.misc.Unsafe")               \
4120                                                                             \
4121   product_pd(bool, PreserveFramePointer,                                    \
4122              "Use the FP register for holding the frame pointer "           \
4123              "and not as a general purpose register.")                      \
4124                                                                             \
4125   diagnostic(bool, CheckIntrinsics, trueInDebug,                            \
4126              "When a class C is loaded, check that "                        \
4127              "(1) all intrinsics defined by the VM for class C are present "\
4128              "in the loaded class file and are marked with the "            \
4129              "@HotSpotIntrinsicCandidate annotation and also that "         \
4130              "(2) there is an intrinsic registered for all loaded methods " \
4131              "that are annotated with the @HotSpotIntrinsicCandidate "      \
4132              "annotation.")
4133 
4134 /*
4135  *  Macros for factoring of globals
4136  */
4137 
4138 // Interface macros
4139 #define DECLARE_PRODUCT_FLAG(type, name, value, doc)      extern "C" type name;
4140 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc)          extern "C" type name;
4141 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc)   extern "C" type name;
4142 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name;
4143 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc)   extern "C" type name;
4144 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc)   extern "C" type name;
4145 #ifdef PRODUCT
4146 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc)    extern "C" type CONST_##name; const type name = value;
4147 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc)        extern "C" type CONST_##name; const type name = pd_##name;
4148 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc)   extern "C" type CONST_##name;
4149 #else
4150 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc)    extern "C" type name;
4151 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc)        extern "C" type name;
4152 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc)   extern "C" type name;


src/share/vm/runtime/globals.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File