2707 \
2708 develop(bool, TraceFrequencyInlining, false, \
2709 "Trace frequency based inlining") \
2710 \
2711 develop_pd(bool, InlineIntrinsics, \
2712 "Inline intrinsics that can be statically resolved") \
2713 \
2714 product_pd(bool, ProfileInterpreter, \
2715 "Profile at the bytecode level during interpretation") \
2716 \
2717 develop_pd(bool, ProfileTraps, \
2718 "Profile deoptimization traps at the bytecode level") \
2719 \
2720 product(intx, ProfileMaturityPercentage, 20, \
2721 "number of method invocations/branches (expressed as % of " \
2722 "CompileThreshold) before using the method's profile") \
2723 \
2724 develop(bool, PrintMethodData, false, \
2725 "Print the results of +ProfileInterpreter at end of run") \
2726 \
2727 develop(bool, VerifyDataPointer, trueInDebug, \
2728 "Verify the method data pointer during interpreter profiling") \
2729 \
2730 develop(bool, VerifyCompiledCode, false, \
2731 "Include miscellaneous runtime verifications in nmethod code; " \
2732 "default off because it disturbs nmethod size heuristics") \
2733 \
2734 notproduct(bool, CrashGCForDumpingJavaThread, false, \
2735 "Manually make GC thread crash then dump java stack trace; " \
2736 "Test only") \
2737 \
2738 /* compilation */ \
2739 product(bool, UseCompiler, true, \
2740 "use compilation") \
2741 \
2742 develop(bool, TraceCompilationPolicy, false, \
2743 "Trace compilation policy") \
2744 \
2745 develop(bool, TimeCompilationPolicy, false, \
2746 "Time the compilation policy") \
3702 diagnostic(bool, WhiteBoxAPI, false, \
3703 "Enable internal testing APIs") \
3704 \
3705 product(bool, PrintGCCause, true, \
3706 "Include GC cause in GC logging") \
3707 \
3708 product(bool , AllowNonVirtualCalls, false, \
3709 "Obey the ACC_SUPER flag and allow invokenonvirtual calls") \
3710 \
3711 diagnostic(ccstr, SharedArchiveFile, NULL, \
3712 "Override the default location of the CDS archive file") \
3713 \
3714 experimental(uintx, ArrayAllocatorMallocLimit, \
3715 SOLARIS_ONLY(64*K) NOT_SOLARIS(max_uintx), \
3716 "Allocation less than this value will be allocated " \
3717 "using malloc. Larger allocations will use mmap.") \
3718 \
3719 product(bool, EnableTracing, false, \
3720 "Enable event-based tracing") \
3721 product(bool, UseLockedTracing, false, \
3722 "Use locked-tracing when doing event-based tracing")
3723
3724
3725 /*
3726 * Macros for factoring of globals
3727 */
3728
3729 // Interface macros
3730 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name;
3731 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name;
3732 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name;
3733 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name;
3734 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name;
3735 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name;
3736 #ifdef PRODUCT
3737 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) const type name = value;
3738 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) const type name = pd_##name;
3739 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc)
3740 #else
3741 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name;
3742 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type name;
3743 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type name;
|
2707 \
2708 develop(bool, TraceFrequencyInlining, false, \
2709 "Trace frequency based inlining") \
2710 \
2711 develop_pd(bool, InlineIntrinsics, \
2712 "Inline intrinsics that can be statically resolved") \
2713 \
2714 product_pd(bool, ProfileInterpreter, \
2715 "Profile at the bytecode level during interpretation") \
2716 \
2717 develop_pd(bool, ProfileTraps, \
2718 "Profile deoptimization traps at the bytecode level") \
2719 \
2720 product(intx, ProfileMaturityPercentage, 20, \
2721 "number of method invocations/branches (expressed as % of " \
2722 "CompileThreshold) before using the method's profile") \
2723 \
2724 develop(bool, PrintMethodData, false, \
2725 "Print the results of +ProfileInterpreter at end of run") \
2726 \
2727 develop(bool, PrintMethodDataStats, false, \
2728 "Print size statistics for profiling") \
2729 \
2730 develop(bool, VerifyDataPointer, trueInDebug, \
2731 "Verify the method data pointer during interpreter profiling") \
2732 \
2733 develop(bool, VerifyCompiledCode, false, \
2734 "Include miscellaneous runtime verifications in nmethod code; " \
2735 "default off because it disturbs nmethod size heuristics") \
2736 \
2737 notproduct(bool, CrashGCForDumpingJavaThread, false, \
2738 "Manually make GC thread crash then dump java stack trace; " \
2739 "Test only") \
2740 \
2741 /* compilation */ \
2742 product(bool, UseCompiler, true, \
2743 "use compilation") \
2744 \
2745 develop(bool, TraceCompilationPolicy, false, \
2746 "Trace compilation policy") \
2747 \
2748 develop(bool, TimeCompilationPolicy, false, \
2749 "Time the compilation policy") \
3705 diagnostic(bool, WhiteBoxAPI, false, \
3706 "Enable internal testing APIs") \
3707 \
3708 product(bool, PrintGCCause, true, \
3709 "Include GC cause in GC logging") \
3710 \
3711 product(bool , AllowNonVirtualCalls, false, \
3712 "Obey the ACC_SUPER flag and allow invokenonvirtual calls") \
3713 \
3714 diagnostic(ccstr, SharedArchiveFile, NULL, \
3715 "Override the default location of the CDS archive file") \
3716 \
3717 experimental(uintx, ArrayAllocatorMallocLimit, \
3718 SOLARIS_ONLY(64*K) NOT_SOLARIS(max_uintx), \
3719 "Allocation less than this value will be allocated " \
3720 "using malloc. Larger allocations will use mmap.") \
3721 \
3722 product(bool, EnableTracing, false, \
3723 "Enable event-based tracing") \
3724 product(bool, UseLockedTracing, false, \
3725 "Use locked-tracing when doing event-based tracing") \
3726 \
3727 product_pd(uintx, TypeProfile, \
3728 "Type profiling of arguments at call:" \
3729 "0->off ; 1->js292 only; 2->all methods") \
3730 product(intx, TypeProfileArgsLimit, 2, \
3731 "max number of call arguments to consider for type profiling") \
3732 \
3733
3734 /*
3735 * Macros for factoring of globals
3736 */
3737
3738 // Interface macros
3739 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name;
3740 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name;
3741 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name;
3742 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name;
3743 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name;
3744 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name;
3745 #ifdef PRODUCT
3746 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) const type name = value;
3747 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) const type name = pd_##name;
3748 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc)
3749 #else
3750 #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name;
3751 #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type name;
3752 #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type name;
|