6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
Reviewed-by: kvn, dholmes, coleenp
Contributed-by: Tao Mao <tao.mao@oracle.com>
--- a/hotspot/src/cpu/sparc/vm/globals_sparc.hpp Mon Aug 27 09:46:38 2012 -0700
+++ b/hotspot/src/cpu/sparc/vm/globals_sparc.hpp Mon Aug 27 15:17:17 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -75,4 +75,43 @@
// GC Ergo Flags
define_pd_global(intx, CMSYoungGenPerWorker, 16*M); // default max size of CMS young gen, per GC worker thread
+
+#define ARCH_FLAGS(develop, product, diagnostic, experimental, notproduct) \
+ \
+ product(intx, UseVIS, 99, \
+ "Highest supported VIS instructions set on Sparc") \
+ \
+ product(bool, UseCBCond, false, \
+ "Use compare and branch instruction on SPARC") \
+ \
+ product(bool, UseBlockZeroing, false, \
+ "Use special cpu instructions for block zeroing") \
+ \
+ product(intx, BlockZeroingLowLimit, 2048, \
+ "Minimum size in bytes when block zeroing will be used") \
+ \
+ product(bool, UseBlockCopy, false, \
+ "Use special cpu instructions for block copy") \
+ \
+ product(intx, BlockCopyLowLimit, 2048, \
+ "Minimum size in bytes when block copy will be used") \
+ \
+ develop(bool, UseV8InstrsOnly, false, \
+ "Use SPARC-V8 Compliant instruction subset") \
+ \
+ product(bool, UseNiagaraInstrs, false, \
+ "Use Niagara-efficient instruction subset") \
+ \
+ develop(bool, UseCASForSwap, false, \
+ "Do not use swap instructions, but only CAS (in a loop) on SPARC")\
+ \
+ product(uintx, ArraycopySrcPrefetchDistance, 0, \
+ "Distance to prefetch source array in arracopy") \
+ \
+ product(uintx, ArraycopyDstPrefetchDistance, 0, \
+ "Distance to prefetch destination array in arracopy") \
+ \
+ develop(intx, V8AtomicOperationUnderLockSpinCount, 50, \
+ "Number of times to spin wait on a v8 atomic operation lock") \
+
#endif // CPU_SPARC_VM_GLOBALS_SPARC_HPP
--- a/hotspot/src/cpu/x86/vm/globals_x86.hpp Mon Aug 27 09:46:38 2012 -0700
+++ b/hotspot/src/cpu/x86/vm/globals_x86.hpp Mon Aug 27 15:17:17 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -78,4 +78,53 @@
// GC Ergo Flags
define_pd_global(intx, CMSYoungGenPerWorker, 64*M); // default max size of CMS young gen, per GC worker thread
+
+#define ARCH_FLAGS(develop, product, diagnostic, experimental, notproduct) \
+ \
+ develop(bool, IEEEPrecision, true, \
+ "Enables IEEE precision (for INTEL only)") \
+ \
+ product(intx, FenceInstruction, 0, \
+ "(Unsafe,Unstable) Experimental") \
+ \
+ product(intx, ReadPrefetchInstr, 0, \
+ "Prefetch instruction to prefetch ahead") \
+ \
+ product(bool, UseStoreImmI16, true, \
+ "Use store immediate 16-bits value instruction on x86") \
+ \
+ product(intx, UseAVX, 99, \
+ "Highest supported AVX instructions set on x86/x64") \
+ \
+ diagnostic(bool, UseIncDec, true, \
+ "Use INC, DEC instructions on x86") \
+ \
+ product(bool, UseNewLongLShift, false, \
+ "Use optimized bitwise shift left") \
+ \
+ product(bool, UseAddressNop, false, \
+ "Use '0F 1F [addr]' NOP instructions on x86 cpus") \
+ \
+ product(bool, UseXmmLoadAndClearUpper, true, \
+ "Load low part of XMM register and clear upper part") \
+ \
+ product(bool, UseXmmRegToRegMoveAll, false, \
+ "Copy all XMM register bits when moving value between registers") \
+ \
+ product(bool, UseXmmI2D, false, \
+ "Use SSE2 CVTDQ2PD instruction to convert Integer to Double") \
+ \
+ product(bool, UseXmmI2F, false, \
+ "Use SSE2 CVTDQ2PS instruction to convert Integer to Float") \
+ \
+ product(bool, UseUnalignedLoadStores, false, \
+ "Use SSE2 MOVDQU instruction for Arraycopy") \
+ \
+ /* assembler */ \
+ product(bool, Use486InstrsOnly, false, \
+ "Use 80486 Compliant instruction subset") \
+ \
+ product(bool, UseCountLeadingZerosInstruction, false, \
+ "Use count leading zeros instruction") \
+
#endif // CPU_X86_VM_GLOBALS_X86_HPP
--- a/hotspot/src/cpu/zero/vm/globals_zero.hpp Mon Aug 27 09:46:38 2012 -0700
+++ b/hotspot/src/cpu/zero/vm/globals_zero.hpp Mon Aug 27 15:17:17 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -60,4 +60,7 @@
// GC Ergo Flags
define_pd_global(intx, CMSYoungGenPerWorker, 16*M); // default max size of CMS young gen, per GC worker thread
+
+#define ARCH_FLAGS(develop, product, diagnostic, experimental, notproduct)
+
#endif // CPU_ZERO_VM_GLOBALS_ZERO_HPP
--- a/hotspot/src/share/vm/c1/c1_globals.hpp Mon Aug 27 09:46:38 2012 -0700
+++ b/hotspot/src/share/vm/c1/c1_globals.hpp Mon Aug 27 15:17:17 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -156,18 +156,12 @@
develop(bool, CanonicalizeNodes, true, \
"Canonicalize graph nodes") \
\
- develop(bool, CanonicalizeExperimental, false, \
- "Canonicalize graph nodes, experimental code") \
- \
develop(bool, PrintCanonicalization, false, \
"Print graph node canonicalization") \
\
develop(bool, UseTableRanges, true, \
"Faster versions of lookup table using ranges") \
\
- develop(bool, UseFastExceptionHandling, true, \
- "Faster handling of exceptions") \
- \
develop_pd(bool, RoundFPResults, \
"Indicates whether rounding is needed for floating point results")\
\
@@ -224,9 +218,6 @@
develop(bool, PinAllInstructions, false, \
"All instructions are pinned") \
\
- develop(bool, ValueStackPinStackAll, true, \
- "Pinning in ValueStack pin everything") \
- \
develop(bool, UseFastNewInstance, true, \
"Use fast inlined instance allocation") \
\
--- a/hotspot/src/share/vm/opto/c2_globals.hpp Mon Aug 27 09:46:38 2012 -0700
+++ b/hotspot/src/share/vm/opto/c2_globals.hpp Mon Aug 27 15:17:17 2012 -0700
@@ -353,27 +353,9 @@
develop(bool, StressRecompilation, false, \
"Recompile each compiled method without subsuming loads or escape analysis.") \
\
- /* controls for tier 1 compilations */ \
- \
- develop(bool, Tier1CountInvocations, true, \
- "Generate code, during tier 1, to update invocation counter") \
- \
- product(intx, Tier1Inline, false, \
- "enable inlining during tier 1") \
- \
- product(intx, Tier1MaxInlineSize, 8, \
- "maximum bytecode size of a method to be inlined, during tier 1") \
- \
- product(intx, Tier1FreqInlineSize, 35, \
- "max bytecode size of a frequent method to be inlined, tier 1") \
- \
develop(intx, ImplicitNullCheckThreshold, 3, \
"Don't do implicit null checks if NPE's in a method exceeds limit") \
\
- /* controls for loop optimization */ \
- product(intx, Tier1LoopOptsCount, 0, \
- "Set level of loop optimization for tier 1 compiles") \
- \
product(intx, LoopOptsCount, 43, \
"Set level of loop optimization for tier 1 compiles") \
\
@@ -505,6 +487,116 @@
\
product(bool, BlockLayoutRotateLoops, true, \
"Allow back branches to be fall throughs in the block layour") \
+ \
+ develop(bool, InlineReflectionGetCallerClass, true, \
+ "inline sun.reflect.Reflection.getCallerClass(), known to be part "\
+ "of base library DLL") \
+ \
+ develop(bool, InlineObjectCopy, true, \
+ "inline Object.clone and Arrays.copyOf[Range] intrinsics") \
+ \
+ develop(bool, SpecialStringCompareTo, true, \
+ "special version of string compareTo") \
+ \
+ develop(bool, SpecialStringIndexOf, true, \
+ "special version of string indexOf") \
+ \
+ develop(bool, SpecialStringEquals, true, \
+ "special version of string equals") \
+ \
+ develop(bool, SpecialArraysEquals, true, \
+ "special version of Arrays.equals(char[],char[])") \
+ \
+ develop(bool, BailoutToInterpreterForThrows, false, \
+ "Compiled methods which throws/catches exceptions will be " \
+ "deopt and intp.") \
+ \
+ develop(bool, ConvertCmpD2CmpF, true, \
+ "Convert cmpD to cmpF when one input is constant in float range") \
+ \
+ develop(bool, ConvertFloat2IntClipping, true, \
+ "Convert float2int clipping idiom to integer clipping") \
+ \
+ develop(bool, Use24BitFPMode, true, \
+ "Set 24-bit FPU mode on a per-compile basis ") \
+ \
+ develop(bool, Use24BitFP, true, \
+ "use FP instructions that produce 24-bit precise results") \
+ \
+ develop(bool, MonomorphicArrayCheck, true, \
+ "Uncommon-trap array store checks that require full type check") \
+ \
+ notproduct(bool, TracePhaseCCP, false, \
+ "Print progress during Conditional Constant Propagation") \
+ \
+ develop(bool, PrintDominators, false, \
+ "Print out dominator trees for GVN") \
+ \
+ notproduct(bool, TraceSpilling, false, \
+ "Trace spilling") \
+ \
+ notproduct(bool, TraceTypeProfile, false, \
+ "Trace type profile") \
+ \
+ develop(bool, PoisonOSREntry, true, \
+ "Detect abnormal calls to OSR code") \
+ \
+ product(bool, UseCondCardMark, false, \
+ "Check for already marked card before updating card table") \
+ \
+ develop(bool, SoftMatchFailure, trueInProduct, \
+ "If the DFA fails to match a node, print a message and bail out") \
+ \
+ develop(bool, InlineAccessors, true, \
+ "inline accessor methods (get/set)") \
+ \
+ product(intx, TypeProfileMajorReceiverPercent, 90, \
+ "% of major receiver type to all profiled receivers") \
+ \
+ notproduct(bool, TimeCompiler2, false, \
+ "detailed time the compiler (requires +TimeCompiler)") \
+ \
+ diagnostic(bool, PrintIntrinsics, false, \
+ "prints attempted and successful inlining of intrinsics") \
+ \
+ diagnostic(ccstrlist, DisableIntrinsic, "", \
+ "do not expand intrinsics whose (internal) names appear here") \
+ \
+ develop(bool, StressReflectiveCode, false, \
+ "Use inexact types at allocations, etc., to test reflection") \
+ \
+ diagnostic(bool, DebugInlinedCalls, true, \
+ "If false, restricts profiled locations to the root method only") \
+ \
+ notproduct(bool, VerifyLoopOptimizations, false, \
+ "verify major loop optimizations") \
+ \
+ diagnostic(bool, ProfileDynamicTypes, true, \
+ "do extra type profiling and use it more aggressively") \
+ \
+ develop(bool, TraceIterativeGVN, false, \
+ "Print progress during Iterative Global Value Numbering") \
+ \
+ develop(bool, VerifyIterativeGVN, false, \
+ "Verify Def-Use modifications during sparse Iterative Global " \
+ "Value Numbering") \
+ \
+ notproduct(bool, TraceCISCSpill, false, \
+ "Trace allocators use of cisc spillable instructions") \
+ \
+ product(bool, SplitIfBlocks, true, \
+ "Clone compares and control flow through merge points to fold " \
+ "some branches") \
+ \
+ develop(intx, FreqCountInvocations, 1, \
+ "Scaling factor for branch frequencies (deprecated)") \
+ \
+ product(intx, AliasLevel, 3, \
+ "0 for no aliasing, 1 for oop/field/static/array split, " \
+ "2 for class split, 3 for unique instances") \
+ \
+ develop(bool, VerifyAliases, false, \
+ "perform extra checks on the results of alias analysis") \
C2_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_EXPERIMENTAL_FLAG, DECLARE_NOTPRODUCT_FLAG)
--- a/hotspot/src/share/vm/opto/runtime.cpp Mon Aug 27 09:46:38 2012 -0700
+++ b/hotspot/src/share/vm/opto/runtime.cpp Mon Aug 27 15:17:17 2012 -0700
@@ -880,46 +880,6 @@
}
JRT_END
-//-----------------------------------------------------------------------------
-// implicit exception support.
-
-static void report_null_exception_in_code_cache(address exception_pc) {
- ResourceMark rm;
- CodeBlob* n = CodeCache::find_blob(exception_pc);
- if (n != NULL) {
- tty->print_cr("#");
- tty->print_cr("# HotSpot Runtime Error, null exception in generated code");
- tty->print_cr("#");
- tty->print_cr("# pc where exception happened = " INTPTR_FORMAT, exception_pc);
-
- if (n->is_nmethod()) {
- methodOop method = ((nmethod*)n)->method();
- tty->print_cr("# Method where it happened %s.%s ", Klass::cast(method->method_holder())->name()->as_C_string(), method->name()->as_C_string());
- tty->print_cr("#");
- if (ShowMessageBoxOnError && UpdateHotSpotCompilerFileOnError &&
- CompilerOracle::has_command_file()) {
- const char* title = "HotSpot Runtime Error";
- const char* question = "Do you want to exclude compilation of this method in future runs?";
- if (os::message_box(title, question)) {
- CompilerOracle::append_comment_to_file("");
- CompilerOracle::append_comment_to_file("Null exception in compiled code resulted in the following exclude");
- CompilerOracle::append_comment_to_file("");
- CompilerOracle::append_exclude_to_file(method);
- tty->print_cr("#");
- tty->print_cr("# %s has been updated to exclude the specified method", CompileCommandFile);
- tty->print_cr("#");
- }
- }
- fatal("Implicit null exception happened in compiled method");
- } else {
- n->print();
- fatal("Implicit null exception happened in generated stub");
- }
- }
- fatal("Implicit null exception at wrong place");
-}
-
-
//-------------------------------------------------------------------------------------
// register policy
--- a/hotspot/src/share/vm/runtime/globals.cpp Mon Aug 27 09:46:38 2012 -0700
+++ b/hotspot/src/share/vm/runtime/globals.cpp Mon Aug 27 15:17:17 2012 -0700
@@ -43,7 +43,6 @@
#include "shark/shark_globals.hpp"
#endif
-
RUNTIME_FLAGS(MATERIALIZE_DEVELOPER_FLAG, MATERIALIZE_PD_DEVELOPER_FLAG, \
MATERIALIZE_PRODUCT_FLAG, MATERIALIZE_PD_PRODUCT_FLAG, \
MATERIALIZE_DIAGNOSTIC_FLAG, MATERIALIZE_EXPERIMENTAL_FLAG, \
@@ -55,6 +54,10 @@
MATERIALIZE_PRODUCT_FLAG, MATERIALIZE_PD_PRODUCT_FLAG, \
MATERIALIZE_DIAGNOSTIC_FLAG, MATERIALIZE_NOTPRODUCT_FLAG)
+ARCH_FLAGS(MATERIALIZE_DEVELOPER_FLAG, MATERIALIZE_PRODUCT_FLAG, \
+ MATERIALIZE_DIAGNOSTIC_FLAG, MATERIALIZE_EXPERIMENTAL_FLAG, \
+ MATERIALIZE_NOTPRODUCT_FLAG)
+
MATERIALIZE_FLAGS_EXT
@@ -212,7 +215,6 @@
#define C1_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, doc, "{C1 notproduct}", DEFAULT },
#endif
-
#define C2_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{C2 product}", DEFAULT },
#define C2_PD_PRODUCT_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{C2 pd product}", DEFAULT },
#define C2_DIAGNOSTIC_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{C2 diagnostic}", DEFAULT },
@@ -227,6 +229,17 @@
#define C2_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, doc, "{C2 notproduct}", DEFAULT },
#endif
+#define ARCH_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{ARCH product}", DEFAULT },
+#define ARCH_DIAGNOSTIC_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{ARCH diagnostic}", DEFAULT },
+#define ARCH_EXPERIMENTAL_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{ARCH experimental}", DEFAULT },
+#ifdef PRODUCT
+ #define ARCH_DEVELOP_FLAG_STRUCT(type, name, value, doc) /* flag is constant */
+ #define ARCH_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc)
+#else
+ #define ARCH_DEVELOP_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, doc, "{ARCH}", DEFAULT },
+ #define ARCH_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, doc, "{ARCH notproduct}", DEFAULT },
+#endif
+
#define SHARK_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{Shark product}", DEFAULT },
#define SHARK_PD_PRODUCT_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{Shark pd product}", DEFAULT },
#define SHARK_DIAGNOSTIC_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{Shark diagnostic}", DEFAULT },
@@ -255,6 +268,7 @@
#ifdef SHARK
SHARK_FLAGS(SHARK_DEVELOP_FLAG_STRUCT, SHARK_PD_DEVELOP_FLAG_STRUCT, SHARK_PRODUCT_FLAG_STRUCT, SHARK_PD_PRODUCT_FLAG_STRUCT, SHARK_DIAGNOSTIC_FLAG_STRUCT, SHARK_NOTPRODUCT_FLAG_STRUCT)
#endif
+ ARCH_FLAGS(ARCH_DEVELOP_FLAG_STRUCT, ARCH_PRODUCT_FLAG_STRUCT, ARCH_DIAGNOSTIC_FLAG_STRUCT, ARCH_EXPERIMENTAL_FLAG_STRUCT, ARCH_NOTPRODUCT_FLAG_STRUCT)
FLAGTABLE_EXT
{0, NULL, NULL}
};
--- a/hotspot/src/share/vm/runtime/globals.hpp Mon Aug 27 09:46:38 2012 -0700
+++ b/hotspot/src/share/vm/runtime/globals.hpp Mon Aug 27 15:17:17 2012 -0700
@@ -530,12 +530,6 @@
product(intx, UseSSE, 99, \
"Highest supported SSE instructions set on x86/x64") \
\
- product(intx, UseAVX, 99, \
- "Highest supported AVX instructions set on x86/x64") \
- \
- product(intx, UseVIS, 99, \
- "Highest supported VIS instructions set on Sparc") \
- \
product(uintx, LargePageSizeInBytes, 0, \
"Large page size (0 to let VM choose the page size") \
\
@@ -572,10 +566,6 @@
product(bool, PrintVMQWaitTime, false, \
"Prints out the waiting time in VM operation queue") \
\
- develop(bool, BailoutToInterpreterForThrows, false, \
- "Compiled methods which throws/catches exceptions will be " \
- "deopt and intp.") \
- \
develop(bool, NoYieldsInMicrolock, false, \
"Disable yields in microlock") \
\
@@ -618,9 +608,6 @@
"inline Object::hashCode() native that is known to be part " \
"of base library DLL") \
\
- develop(bool, InlineObjectCopy, true, \
- "inline Object.clone and Arrays.copyOf[Range] intrinsics") \
- \
develop(bool, InlineNatives, true, \
"inline natives that are known to be part of base library DLL") \
\
@@ -633,31 +620,9 @@
develop(bool, InlineThreadNatives, true, \
"inline Thread.currentThread, etc") \
\
- develop(bool, InlineReflectionGetCallerClass, true, \
- "inline sun.reflect.Reflection.getCallerClass(), known to be part "\
- "of base library DLL") \
- \
develop(bool, InlineUnsafeOps, true, \
"inline memory ops (native methods) from sun.misc.Unsafe") \
\
- develop(bool, ConvertCmpD2CmpF, true, \
- "Convert cmpD to cmpF when one input is constant in float range") \
- \
- develop(bool, ConvertFloat2IntClipping, true, \
- "Convert float2int clipping idiom to integer clipping") \
- \
- develop(bool, SpecialStringCompareTo, true, \
- "special version of string compareTo") \
- \
- develop(bool, SpecialStringIndexOf, true, \
- "special version of string indexOf") \
- \
- develop(bool, SpecialStringEquals, true, \
- "special version of string equals") \
- \
- develop(bool, SpecialArraysEquals, true, \
- "special version of Arrays.equals(char[],char[])") \
- \
product(bool, CriticalJNINatives, true, \
"check for critical JNI entry points") \
\
@@ -667,9 +632,6 @@
product(bool, UseSSE42Intrinsics, false, \
"SSE4.2 versions of intrinsics") \
\
- product(bool, UseCondCardMark, false, \
- "Check for already marked card before updating card table") \
- \
develop(bool, TraceCallFixup, false, \
"traces all call fixups") \
\
@@ -756,9 +718,6 @@
develop(bool, ForceFloatExceptions, trueInDebug, \
"Force exceptions on FP stack under/overflow") \
\
- develop(bool, SoftMatchFailure, trueInProduct, \
- "If the DFA fails to match a node, print a message and bail out") \
- \
develop(bool, VerifyStackAtCalls, false, \
"Verify that the stack pointer is unchanged after calls") \
\
@@ -915,15 +874,6 @@
"1: allow scavenging from the code cache; " \
"2: emit as many constants as the compiler can see") \
\
- diagnostic(bool, TraceOSRBreakpoint, false, \
- "Trace OSR Breakpoint ") \
- \
- diagnostic(bool, TraceCompileTriggered, false, \
- "Trace compile triggered") \
- \
- diagnostic(bool, TraceTriggers, false, \
- "Trace triggers") \
- \
product(bool, AlwaysRestoreFPU, false, \
"Restore the FPU control word after every JNI call (expensive)") \
\
@@ -1037,9 +987,6 @@
develop(bool, UsePrivilegedStack, true, \
"Enable the security JVM functions") \
\
- develop(bool, IEEEPrecision, true, \
- "Enables IEEE precision (for INTEL only)") \
- \
develop(bool, ProtectionDomainVerification, true, \
"Verifies protection domain before resolution in system " \
"dictionary") \
@@ -1109,8 +1056,6 @@
"(Unsafe,Unstable) " \
" Controls emission of inline sync fast-path code") \
\
- product(intx, AlwaysInflate, 0, "(Unstable) Force inflation") \
- \
product(intx, MonitorBound, 0, "Bound Monitor population") \
\
product(bool, MonitorInUseLists, false, "Track Monitors for Deflation") \
@@ -1118,9 +1063,6 @@
product(intx, Atomics, 0, \
"(Unsafe,Unstable) Diagnostic - Controls emission of atomics") \
\
- product(intx, FenceInstruction, 0, \
- "(Unsafe,Unstable) Experimental") \
- \
product(intx, SyncFlags, 0, "(Unsafe,Unstable) Experimental Sync flags" ) \
\
product(intx, SyncVerbose, 0, "(Unstable)" ) \
@@ -1150,10 +1092,6 @@
"call thr_setconcurrency at thread create time to avoid " \
"LWP starvation on MP systems (For Solaris Only)") \
\
- develop(bool, UpdateHotSpotCompilerFileOnError, true, \
- "Should the system attempt to update the compiler file when " \
- "an error occurs?") \
- \
product(bool, ReduceSignalUsage, false, \
"Reduce the use of OS signals in Java and/or the VM") \
\
@@ -1188,15 +1126,6 @@
"Use alternate signals instead of SIGUSR1 & SIGUSR2 for VM " \
"internal signals (Solaris only)") \
\
- product(bool, UseSpinning, false, \
- "Use spinning in monitor inflation and before entry") \
- \
- product(bool, PreSpinYield, false, \
- "Yield before inner spinning loop") \
- \
- product(bool, PostSpinYield, true, \
- "Yield after inner spinning loop") \
- \
product(bool, AllowJNIEnvProxy, false, \
"Allow JNIEnv proxies for jdbx") \
\
@@ -1225,39 +1154,9 @@
product(bool, LazyBootClassLoader, true, \
"Enable/disable lazy opening of boot class path entries") \
\
- diagnostic(bool, UseIncDec, true, \
- "Use INC, DEC instructions on x86") \
- \
- product(bool, UseNewLongLShift, false, \
- "Use optimized bitwise shift left") \
- \
- product(bool, UseStoreImmI16, true, \
- "Use store immediate 16-bits value instruction on x86") \
- \
- product(bool, UseAddressNop, false, \
- "Use '0F 1F [addr]' NOP instructions on x86 cpus") \
- \
- product(bool, UseXmmLoadAndClearUpper, true, \
- "Load low part of XMM register and clear upper part") \
- \
- product(bool, UseXmmRegToRegMoveAll, false, \
- "Copy all XMM register bits when moving value between registers") \
- \
- product(bool, UseXmmI2D, false, \
- "Use SSE2 CVTDQ2PD instruction to convert Integer to Double") \
- \
- product(bool, UseXmmI2F, false, \
- "Use SSE2 CVTDQ2PS instruction to convert Integer to Float") \
- \
product(bool, UseXMMForArrayCopy, false, \
"Use SSE2 MOVQ instruction for Arraycopy") \
\
- product(bool, UseUnalignedLoadStores, false, \
- "Use SSE2 MOVDQU instruction for Arraycopy") \
- \
- product(bool, UseCBCond, false, \
- "Use compare and branch instruction on SPARC") \
- \
product(intx, FieldsAllocationStyle, 1, \
"0 - type based with oops first, 1 - with oops last, " \
"2 - oops in super and sub classes are together") \
@@ -1387,9 +1286,6 @@
develop(bool, TraceStartupTime, false, \
"Trace setup time") \
\
- product(ccstr, HPILibPath, NULL, \
- "Specify alternate path to HPI library") \
- \
develop(bool, TraceProtectionDomainVerification, false, \
"Trace protection domain verifcation") \
\
@@ -1405,10 +1301,6 @@
product(bool, TraceMonitorInflation, false, \
"Trace monitor inflation in JVM") \
\
- /* assembler */ \
- product(bool, Use486InstrsOnly, false, \
- "Use 80486 Compliant instruction subset") \
- \
/* gc */ \
\
product(bool, UseSerialGC, false, \
@@ -1467,9 +1359,6 @@
develop(uintx, ParallelOldGCSplitInterval, 3, \
"How often to provoke splitting a young gen space") \
\
- develop(bool, TraceRegionTasksQueuing, false, \
- "Trace the queuing of the region tasks") \
- \
product(uintx, ConcGCThreads, 0, \
"Number of threads concurrent gc will use") \
\
@@ -1621,10 +1510,6 @@
"The gain in the feedback loop for on-the-fly PLAB resizing" \
" during a scavenge") \
\
- product(uintx, CMSOldPLABReactivityCeiling, 10, \
- "The clamping of the gain in the feedback loop for on-the-fly" \
- " PLAB resizing during a scavenge") \
- \
product(bool, AlwaysPreTouch, false, \
"It forces all freshly committed pages to be pre-touched.") \
\
@@ -1632,12 +1517,6 @@
"The maximum size of young gen chosen by default per GC worker " \
"thread available") \
\
- product(bool, GCOverheadReporting, false, \
- "Enables the GC overhead reporting facility") \
- \
- product(intx, GCOverheadReportingPeriodMS, 100, \
- "Reporting period for conc GC overhead reporting, in ms ") \
- \
product(bool, CMSIncrementalMode, false, \
"Whether CMS GC should operate in \"incremental\" mode") \
\
@@ -2017,9 +1896,6 @@
experimental(uintx, WorkStealingSpinToYieldRatio, 10, \
"Ratio of hard spins to calls to yield") \
\
- product(uintx, PreserveMarkStackSize, 1024, \
- "Size for stack used in promotion failure handling") \
- \
develop(uintx, ObjArrayMarkingStride, 512, \
"Number of ObjArray elements to push onto the marking stack" \
"before pushing a continuation entry") \
@@ -2044,18 +1920,6 @@
product(bool, TLABStats, true, \
"Print various TLAB related information") \
\
- product(bool, UseBlockZeroing, false, \
- "Use special cpu instructions for block zeroing") \
- \
- product(intx, BlockZeroingLowLimit, 2048, \
- "Minimum size in bytes when block zeroing will be used") \
- \
- product(bool, UseBlockCopy, false, \
- "Use special cpu instructions for block copy") \
- \
- product(intx, BlockCopyLowLimit, 2048, \
- "Minimum size in bytes when block copy will be used") \
- \
product(bool, PrintRevisitStats, false, \
"Print revisit (klass and MDO) stack related information") \
\
@@ -2248,9 +2112,6 @@
product(intx, PrefetchFieldsAhead, -1, \
"How many fields ahead to prefetch in oop scan (<= 0 means off)") \
\
- develop(bool, UsePrefetchQueue, true, \
- "Use the prefetch queue during PS promotion") \
- \
diagnostic(bool, VerifyBeforeExit, trueInDebug, \
"Verify system before exiting") \
\
@@ -2486,27 +2347,9 @@
develop(bool, CITraceTypeFlow, false, \
"detailed per-bytecode tracing of ciTypeFlow analysis") \
\
- develop(intx, CICloneLoopTestLimit, 100, \
- "size limit for blocks heuristically cloned in ciTypeFlow") \
- \
develop(intx, OSROnlyBCI, -1, \
"OSR only at this bci. Negative values mean exclude that bci") \
\
- /* temp diagnostics */ \
- \
- diagnostic(bool, TraceRedundantCompiles, false, \
- "Have compile broker print when a request already in the queue is"\
- " requested again") \
- \
- diagnostic(bool, InitialCompileFast, false, \
- "Initial compile at CompLevel_fast_compile") \
- \
- diagnostic(bool, InitialCompileReallyFast, false, \
- "Initial compile at CompLevel_really_fast_compile (no profile)") \
- \
- diagnostic(bool, FullProfileOnReInterpret, true, \
- "On re-interpret unc-trap compile next at CompLevel_fast_compile")\
- \
/* compiler */ \
\
product(intx, CICompilerCount, CI_COMPILER_COUNT, \
@@ -2520,12 +2363,6 @@
"proper StackOverflow handling; disable only to measure cost " \
"of stackbanging)") \
\
- develop(bool, Use24BitFPMode, true, \
- "Set 24-bit FPU mode on a per-compile basis ") \
- \
- develop(bool, Use24BitFP, true, \
- "use FP instructions that produce 24-bit precise results") \
- \
develop(bool, UseStrictFP, true, \
"use strict fp if modifier strictfp is set") \
\
@@ -2557,9 +2394,6 @@
"print the break down of clean up tasks performed during" \
" safepoint") \
\
- develop(bool, InlineAccessors, true, \
- "inline accessor methods (get/set)") \
- \
product(bool, Inline, true, \
"enable inlining") \
\
@@ -2572,33 +2406,15 @@
product(bool, UseTypeProfile, true, \
"Check interpreter profile for historically monomorphic calls") \
\
- product(intx, TypeProfileMajorReceiverPercent, 90, \
- "% of major receiver type to all profiled receivers") \
- \
notproduct(bool, TimeCompiler, false, \
"time the compiler") \
\
- notproduct(bool, TimeCompiler2, false, \
- "detailed time the compiler (requires +TimeCompiler)") \
- \
diagnostic(bool, PrintInlining, false, \
"prints inlining optimizations") \
\
- diagnostic(bool, PrintIntrinsics, false, \
- "prints attempted and successful inlining of intrinsics") \
- \
- product(bool, UseCountLeadingZerosInstruction, false, \
- "Use count leading zeros instruction") \
- \
product(bool, UsePopCountInstruction, false, \
"Use population count instruction") \
\
- diagnostic(ccstrlist, DisableIntrinsic, "", \
- "do not expand intrinsics whose (internal) names appear here") \
- \
- develop(bool, StressReflectiveCode, false, \
- "Use inexact types at allocations, etc., to test reflection") \
- \
develop(bool, EagerInitialization, false, \
"Eagerly initialize classes if possible") \
\
@@ -2608,10 +2424,6 @@
develop(bool, PrintMethodFlushing, false, \
"print the nmethods being flushed") \
\
- notproduct(bool, LogMultipleMutexLocking, false, \
- "log locking and unlocking of mutexes (only if multiple locks " \
- "are held)") \
- \
develop(bool, UseRelocIndex, false, \
"use an index to speed random access to relocations") \
\
@@ -2621,9 +2433,6 @@
diagnostic(bool, DebugNonSafepoints, trueInDebug, \
"Generate extra debugging info for non-safepoints in nmethods") \
\
- diagnostic(bool, DebugInlinedCalls, true, \
- "If false, restricts profiled locations to the root method only") \
- \
product(bool, PrintVMOptions, false, \
"Print flags that appeared on the command line") \
\
@@ -2700,9 +2509,6 @@
notproduct(bool, IgnoreLockingAssertions, false, \
"disable locking assertions (for speed)") \
\
- notproduct(bool, VerifyLoopOptimizations, false, \
- "verify major loop optimizations") \
- \
product(bool, RangeCheckElimination, true, \
"Split loop iterations to eliminate range checks") \
\
@@ -2712,12 +2518,6 @@
develop(bool, TypeProfileCasts, true, \
"treat casts like calls for purposes of type profiling") \
\
- develop(bool, MonomorphicArrayCheck, true, \
- "Uncommon-trap array store checks that require full type check") \
- \
- diagnostic(bool, ProfileDynamicTypes, true, \
- "do extra type profiling and use it more aggressively") \
- \
develop(bool, DelayCompilationDuringStartup, true, \
"Delay invoking the compiler until main application class is " \
"loaded") \
@@ -2732,19 +2532,9 @@
notproduct(intx, CompileTheWorldSafepointInterval, 100, \
"Force a safepoint every n compiles so sweeper can keep up") \
\
- develop(bool, TraceIterativeGVN, false, \
- "Print progress during Iterative Global Value Numbering") \
- \
develop(bool, FillDelaySlots, true, \
"Fill delay slots (on SPARC only)") \
\
- develop(bool, VerifyIterativeGVN, false, \
- "Verify Def-Use modifications during sparse Iterative Global " \
- "Value Numbering") \
- \
- notproduct(bool, TracePhaseCCP, false, \
- "Print progress during Conditional Constant Propagation") \
- \
develop(bool, TimeLivenessAnalysis, false, \
"Time computation of bytecode liveness analysis") \
\
@@ -2757,22 +2547,9 @@
notproduct(bool, CollectIndexSetStatistics, false, \
"Collect information about IndexSets") \
\
- develop(bool, PrintDominators, false, \
- "Print out dominator trees for GVN") \
- \
develop(bool, UseLoopSafepoints, true, \
"Generate Safepoint nodes in every loop") \
\
- notproduct(bool, TraceCISCSpill, false, \
- "Trace allocators use of cisc spillable instructions") \
- \
- notproduct(bool, TraceSpilling, false, \
- "Trace spilling") \
- \
- product(bool, SplitIfBlocks, true, \
- "Clone compares and control flow through merge points to fold " \
- "some branches") \
- \
develop(intx, FastAllocateSizeLimit, 128*K, \
/* Note: This value is zero mod 1<<13 for a cheap sparc set. */ \
"Inline allocations larger than this in doublewords must go slow")\
@@ -2829,15 +2606,6 @@
develop(bool, UseFastSignatureHandlers, true, \
"Use fast signature handlers for native calls") \
\
- develop(bool, UseV8InstrsOnly, false, \
- "Use SPARC-V8 Compliant instruction subset") \
- \
- product(bool, UseNiagaraInstrs, false, \
- "Use Niagara-efficient instruction subset") \
- \
- develop(bool, UseCASForSwap, false, \
- "Do not use swap instructions, but only CAS (in a loop) on SPARC")\
- \
product(bool, UseLoopCounter, true, \
"Increment invocation counter on backward branch") \
\
@@ -2854,9 +2622,6 @@
notproduct(bool, TraceOnStackReplacement, false, \
"Trace on stack replacement") \
\
- develop(bool, PoisonOSREntry, true, \
- "Detect abnormal calls to OSR code") \
- \
product_pd(bool, PreferInterpreterNativeStubs, \
"Use always interpreter stubs for native methods invoked via " \
"interpreter") \
@@ -2899,9 +2664,6 @@
develop(bool, TraceFrequencyInlining, false, \
"Trace frequency based inlining") \
\
- notproduct(bool, TraceTypeProfile, false, \
- "Trace type profile") \
- \
develop_pd(bool, InlineIntrinsics, \
"Inline intrinsics that can be statically resolved") \
\
@@ -2989,15 +2751,6 @@
product(intx, AllocatePrefetchInstr, 0, \
"Prefetch instruction to prefetch ahead of allocation pointer") \
\
- product(intx, ReadPrefetchInstr, 0, \
- "Prefetch instruction to prefetch ahead") \
- \
- product(uintx, ArraycopySrcPrefetchDistance, 0, \
- "Distance to prefetch source array in arracopy") \
- \
- product(uintx, ArraycopyDstPrefetchDistance, 0, \
- "Distance to prefetch destination array in arracopy") \
- \
/* deoptimization */ \
develop(bool, TraceDeoptimization, false, \
"Trace deoptimization") \
@@ -3088,9 +2841,6 @@
product(intx, MinInliningThreshold, 250, \
"min. invocation count a method needs to have to be inlined") \
\
- develop(intx, AlignEntryCode, 4, \
- "aligns entry code to specified value (in bytes)") \
- \
develop(intx, MethodHistogramCutoff, 100, \
"cutoff value for method invoc. histogram (+CountCalls)") \
\
@@ -3130,9 +2880,6 @@
"Minimum sleep() interval (milliseconds) when " \
"ConvertSleepToYield is off (used for SOLARIS)") \
\
- product(intx, EventLogLength, 2000, \
- "maximum nof events in event log") \
- \
develop(intx, ProfilerPCTickThreshold, 15, \
"Number of ticks in a PC buckets to be a hotspot") \
\
@@ -3171,9 +2918,6 @@
product(intx, PerBytecodeTrapLimit, 4, \
"Limit on traps (of one kind) at a particular BCI") \
\
- develop(intx, FreqCountInvocations, 1, \
- "Scaling factor for branch frequencies (deprecated)") \
- \
develop(intx, InlineFrequencyRatio, 20, \
"Ratio of call site execution to caller method invocation") \
\
@@ -3187,29 +2931,12 @@
develop(intx, InlineThrowMaxSize, 200, \
"Force inlining of throwing methods smaller than this") \
\
- product(intx, AliasLevel, 3, \
- "0 for no aliasing, 1 for oop/field/static/array split, " \
- "2 for class split, 3 for unique instances") \
- \
- develop(bool, VerifyAliases, false, \
- "perform extra checks on the results of alias analysis") \
- \
develop(intx, ProfilerNodeSize, 1024, \
"Size in K to allocate for the Profile Nodes of each thread") \
\
- develop(intx, V8AtomicOperationUnderLockSpinCount, 50, \
- "Number of times to spin wait on a v8 atomic operation lock") \
- \
- product(intx, ReadSpinIterations, 100, \
- "Number of read attempts before a yield (spin inner loop)") \
- \
product_pd(intx, PreInflateSpin, \
"Number of times to spin wait before inflation") \
\
- product(intx, PreBlockSpin, 10, \
- "Number of times to spin in an inflated lock before going to " \
- "an OS lock") \
- \
/* gc parameters */ \
product(uintx, InitialHeapSize, 0, \
"Initial heap size (in bytes); zero means OldSize + NewSize") \
@@ -3466,10 +3193,6 @@
"(non-negative value throws OOM after this many CI accesses " \
"in each compile)") \
\
- develop(intx, CIFireOOMAtDelay, -1, \
- "Wait for this many CI accesses to occur in all compiles before " \
- "beginning to throw OutOfMemoryErrors in each compile") \
- \
notproduct(bool, CIObjectFactoryVerify, false, \
"enable potentially expensive verification in ciObjectFactory") \
\
@@ -3663,9 +3386,6 @@
product(bool, PrintTieredEvents, false, \
"Print tiered events notifications") \
\
- product(bool, StressTieredRuntime, false, \
- "Alternate client and server compiler on compile requests") \
- \
product_pd(intx, OnStackReplacePercentage, \
"NON_TIERED number of method invocations/branches (expressed as %"\
"of CompileThreshold) before (re-)compiling OSR code") \
@@ -3835,9 +3555,6 @@
"support JSR 292 (method handles, invokedynamic, " \
"anonymous classes") \
\
- product(bool, AnonymousClasses, false, \
- "support sun.misc.Unsafe.defineAnonymousClass (deprecated)") \
- \
diagnostic(bool, PrintMethodHandleStubs, false, \
"Print generated stub code for method handles") \
\
@@ -3952,6 +3669,8 @@
RUNTIME_OS_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_NOTPRODUCT_FLAG)
+ARCH_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_EXPERIMENTAL_FLAG, DECLARE_NOTPRODUCT_FLAG)
+
// Extensions
#include "runtime/globals_ext.hpp"
--- a/hotspot/src/share/vm/runtime/globals_extension.hpp Mon Aug 27 09:46:38 2012 -0700
+++ b/hotspot/src/share/vm/runtime/globals_extension.hpp Mon Aug 27 15:17:17 2012 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -66,7 +66,6 @@
#define C1_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
#endif
-
#define C2_PRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
#define C2_PD_PRODUCT_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name),
#define C2_DIAGNOSTIC_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
@@ -81,6 +80,17 @@
#define C2_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
#endif
+#define ARCH_PRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
+#define ARCH_DIAGNOSTIC_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
+#define ARCH_EXPERIMENTAL_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
+#ifdef PRODUCT
+ #define ARCH_DEVELOP_FLAG_MEMBER(type, name, value, doc) /* flag is constant */
+ #define ARCH_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc)
+#else
+ #define ARCH_DEVELOP_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
+ #define ARCH_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
+#endif
+
typedef enum {
RUNTIME_FLAGS(RUNTIME_DEVELOP_FLAG_MEMBER, RUNTIME_PD_DEVELOP_FLAG_MEMBER, RUNTIME_PRODUCT_FLAG_MEMBER, RUNTIME_PD_PRODUCT_FLAG_MEMBER, RUNTIME_DIAGNOSTIC_FLAG_MEMBER, RUNTIME_EXPERIMENTAL_FLAG_MEMBER, RUNTIME_NOTPRODUCT_FLAG_MEMBER, RUNTIME_MANAGEABLE_FLAG_MEMBER, RUNTIME_PRODUCT_RW_FLAG_MEMBER, RUNTIME_LP64_PRODUCT_FLAG_MEMBER)
RUNTIME_OS_FLAGS(RUNTIME_DEVELOP_FLAG_MEMBER, RUNTIME_PD_DEVELOP_FLAG_MEMBER, RUNTIME_PRODUCT_FLAG_MEMBER, RUNTIME_PD_PRODUCT_FLAG_MEMBER, RUNTIME_DIAGNOSTIC_FLAG_MEMBER, RUNTIME_NOTPRODUCT_FLAG_MEMBER)
@@ -93,6 +103,7 @@
#ifdef COMPILER2
C2_FLAGS(C2_DEVELOP_FLAG_MEMBER, C2_PD_DEVELOP_FLAG_MEMBER, C2_PRODUCT_FLAG_MEMBER, C2_PD_PRODUCT_FLAG_MEMBER, C2_DIAGNOSTIC_FLAG_MEMBER, C2_EXPERIMENTAL_FLAG_MEMBER, C2_NOTPRODUCT_FLAG_MEMBER)
#endif
+ ARCH_FLAGS(ARCH_DEVELOP_FLAG_MEMBER, ARCH_PRODUCT_FLAG_MEMBER, ARCH_DIAGNOSTIC_FLAG_MEMBER, ARCH_EXPERIMENTAL_FLAG_MEMBER, ARCH_NOTPRODUCT_FLAG_MEMBER)
COMMANDLINEFLAG_EXT
NUM_CommandLineFlag
} CommandLineFlag;
@@ -134,7 +145,6 @@
#define RUNTIME_LP64_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) /* flag is constant */
#endif // _LP64
-
#define C2_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
#define C2_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type),
#define C2_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
@@ -149,6 +159,17 @@
#define C2_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
#endif
+#define ARCH_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
+#define ARCH_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
+#define ARCH_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
+#ifdef PRODUCT
+ #define ARCH_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) /* flag is constant */
+ #define ARCH_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc)
+#else
+ #define ARCH_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
+ #define ARCH_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
+#endif
+
typedef enum {
RUNTIME_FLAGS(RUNTIME_DEVELOP_FLAG_MEMBER_WITH_TYPE,
RUNTIME_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE,
@@ -193,6 +214,11 @@
C2_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE,
C2_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE)
#endif
+ ARCH_FLAGS(ARCH_DEVELOP_FLAG_MEMBER_WITH_TYPE,
+ ARCH_PRODUCT_FLAG_MEMBER_WITH_TYPE,
+ ARCH_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE,
+ ARCH_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE,
+ ARCH_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE)
COMMANDLINEFLAGWITHTYPE_EXT
NUM_CommandLineFlagWithType
} CommandLineFlagWithType;