6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp

Mon, 27 Aug 2012 15:17:17 -0700

author
twisti
date
Mon, 27 Aug 2012 15:17:17 -0700
changeset 4020
a5dd6e3ef9f3
parent 4019
a1c7f6472621
child 4021
7f813940ac35

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>

src/cpu/sparc/vm/globals_sparc.hpp file | annotate | diff | comparison | revisions
src/cpu/x86/vm/globals_x86.hpp file | annotate | diff | comparison | revisions
src/cpu/zero/vm/globals_zero.hpp file | annotate | diff | comparison | revisions
src/share/vm/c1/c1_globals.hpp file | annotate | diff | comparison | revisions
src/share/vm/opto/c2_globals.hpp file | annotate | diff | comparison | revisions
src/share/vm/opto/runtime.cpp file | annotate | diff | comparison | revisions
src/share/vm/runtime/globals.cpp file | annotate | diff | comparison | revisions
src/share/vm/runtime/globals.hpp file | annotate | diff | comparison | revisions
src/share/vm/runtime/globals_extension.hpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/cpu/sparc/vm/globals_sparc.hpp	Mon Aug 27 09:46:38 2012 -0700
     1.2 +++ b/src/cpu/sparc/vm/globals_sparc.hpp	Mon Aug 27 15:17:17 2012 -0700
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -75,4 +75,43 @@
    1.11  
    1.12  // GC Ergo Flags
    1.13  define_pd_global(intx, CMSYoungGenPerWorker, 16*M);  // default max size of CMS young gen, per GC worker thread
    1.14 +
    1.15 +#define ARCH_FLAGS(develop, product, diagnostic, experimental, notproduct) \
    1.16 +                                                                            \
    1.17 +  product(intx, UseVIS, 99,                                                 \
    1.18 +          "Highest supported VIS instructions set on Sparc")                \
    1.19 +                                                                            \
    1.20 +  product(bool, UseCBCond, false,                                           \
    1.21 +          "Use compare and branch instruction on SPARC")                    \
    1.22 +                                                                            \
    1.23 +  product(bool, UseBlockZeroing, false,                                     \
    1.24 +          "Use special cpu instructions for block zeroing")                 \
    1.25 +                                                                            \
    1.26 +  product(intx, BlockZeroingLowLimit, 2048,                                 \
    1.27 +          "Minimum size in bytes when block zeroing will be used")          \
    1.28 +                                                                            \
    1.29 +  product(bool, UseBlockCopy, false,                                        \
    1.30 +          "Use special cpu instructions for block copy")                    \
    1.31 +                                                                            \
    1.32 +  product(intx, BlockCopyLowLimit, 2048,                                    \
    1.33 +          "Minimum size in bytes when block copy will be used")             \
    1.34 +                                                                            \
    1.35 +  develop(bool, UseV8InstrsOnly, false,                                     \
    1.36 +          "Use SPARC-V8 Compliant instruction subset")                      \
    1.37 +                                                                            \
    1.38 +  product(bool, UseNiagaraInstrs, false,                                    \
    1.39 +          "Use Niagara-efficient instruction subset")                       \
    1.40 +                                                                            \
    1.41 +  develop(bool, UseCASForSwap, false,                                       \
    1.42 +          "Do not use swap instructions, but only CAS (in a loop) on SPARC")\
    1.43 +                                                                            \
    1.44 +  product(uintx,  ArraycopySrcPrefetchDistance, 0,                          \
    1.45 +          "Distance to prefetch source array in arracopy")                  \
    1.46 +                                                                            \
    1.47 +  product(uintx,  ArraycopyDstPrefetchDistance, 0,                          \
    1.48 +          "Distance to prefetch destination array in arracopy")             \
    1.49 +                                                                            \
    1.50 +  develop(intx, V8AtomicOperationUnderLockSpinCount,    50,                 \
    1.51 +          "Number of times to spin wait on a v8 atomic operation lock")     \
    1.52 +
    1.53  #endif // CPU_SPARC_VM_GLOBALS_SPARC_HPP
     2.1 --- a/src/cpu/x86/vm/globals_x86.hpp	Mon Aug 27 09:46:38 2012 -0700
     2.2 +++ b/src/cpu/x86/vm/globals_x86.hpp	Mon Aug 27 15:17:17 2012 -0700
     2.3 @@ -1,5 +1,5 @@
     2.4  /*
     2.5 - * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
     2.6 + * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
     2.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     2.8   *
     2.9   * This code is free software; you can redistribute it and/or modify it
    2.10 @@ -78,4 +78,53 @@
    2.11  
    2.12  // GC Ergo Flags
    2.13  define_pd_global(intx, CMSYoungGenPerWorker, 64*M);  // default max size of CMS young gen, per GC worker thread
    2.14 +
    2.15 +#define ARCH_FLAGS(develop, product, diagnostic, experimental, notproduct) \
    2.16 +                                                                            \
    2.17 +  develop(bool, IEEEPrecision, true,                                        \
    2.18 +          "Enables IEEE precision (for INTEL only)")                        \
    2.19 +                                                                            \
    2.20 +  product(intx, FenceInstruction, 0,                                        \
    2.21 +          "(Unsafe,Unstable) Experimental")                                 \
    2.22 +                                                                            \
    2.23 +  product(intx,  ReadPrefetchInstr, 0,                                      \
    2.24 +          "Prefetch instruction to prefetch ahead")                         \
    2.25 +                                                                            \
    2.26 +  product(bool, UseStoreImmI16, true,                                       \
    2.27 +          "Use store immediate 16-bits value instruction on x86")           \
    2.28 +                                                                            \
    2.29 +  product(intx, UseAVX, 99,                                                 \
    2.30 +          "Highest supported AVX instructions set on x86/x64")              \
    2.31 +                                                                            \
    2.32 +  diagnostic(bool, UseIncDec, true,                                         \
    2.33 +          "Use INC, DEC instructions on x86")                               \
    2.34 +                                                                            \
    2.35 +  product(bool, UseNewLongLShift, false,                                    \
    2.36 +          "Use optimized bitwise shift left")                               \
    2.37 +                                                                            \
    2.38 +  product(bool, UseAddressNop, false,                                       \
    2.39 +          "Use '0F 1F [addr]' NOP instructions on x86 cpus")                \
    2.40 +                                                                            \
    2.41 +  product(bool, UseXmmLoadAndClearUpper, true,                              \
    2.42 +          "Load low part of XMM register and clear upper part")             \
    2.43 +                                                                            \
    2.44 +  product(bool, UseXmmRegToRegMoveAll, false,                               \
    2.45 +          "Copy all XMM register bits when moving value between registers") \
    2.46 +                                                                            \
    2.47 +  product(bool, UseXmmI2D, false,                                           \
    2.48 +          "Use SSE2 CVTDQ2PD instruction to convert Integer to Double")     \
    2.49 +                                                                            \
    2.50 +  product(bool, UseXmmI2F, false,                                           \
    2.51 +          "Use SSE2 CVTDQ2PS instruction to convert Integer to Float")      \
    2.52 +                                                                            \
    2.53 +  product(bool, UseUnalignedLoadStores, false,                              \
    2.54 +          "Use SSE2 MOVDQU instruction for Arraycopy")                      \
    2.55 +                                                                            \
    2.56 +  /* assembler */                                                           \
    2.57 +  product(bool, Use486InstrsOnly, false,                                    \
    2.58 +          "Use 80486 Compliant instruction subset")                         \
    2.59 +                                                                            \
    2.60 +  product(bool, UseCountLeadingZerosInstruction, false,                     \
    2.61 +          "Use count leading zeros instruction")                            \
    2.62 +
    2.63  #endif // CPU_X86_VM_GLOBALS_X86_HPP
     3.1 --- a/src/cpu/zero/vm/globals_zero.hpp	Mon Aug 27 09:46:38 2012 -0700
     3.2 +++ b/src/cpu/zero/vm/globals_zero.hpp	Mon Aug 27 15:17:17 2012 -0700
     3.3 @@ -1,5 +1,5 @@
     3.4  /*
     3.5 - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
     3.6 + * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
     3.7   * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
     3.8   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3.9   *
    3.10 @@ -60,4 +60,7 @@
    3.11  
    3.12  // GC Ergo Flags
    3.13  define_pd_global(intx, CMSYoungGenPerWorker, 16*M);  // default max size of CMS young gen, per GC worker thread
    3.14 +
    3.15 +#define ARCH_FLAGS(develop, product, diagnostic, experimental, notproduct)
    3.16 +
    3.17  #endif // CPU_ZERO_VM_GLOBALS_ZERO_HPP
     4.1 --- a/src/share/vm/c1/c1_globals.hpp	Mon Aug 27 09:46:38 2012 -0700
     4.2 +++ b/src/share/vm/c1/c1_globals.hpp	Mon Aug 27 15:17:17 2012 -0700
     4.3 @@ -1,5 +1,5 @@
     4.4  /*
     4.5 - * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
     4.6 + * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
     4.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4.8   *
     4.9   * This code is free software; you can redistribute it and/or modify it
    4.10 @@ -156,18 +156,12 @@
    4.11    develop(bool, CanonicalizeNodes, true,                                    \
    4.12            "Canonicalize graph nodes")                                       \
    4.13                                                                              \
    4.14 -  develop(bool, CanonicalizeExperimental, false,                            \
    4.15 -          "Canonicalize graph nodes, experimental code")                    \
    4.16 -                                                                            \
    4.17    develop(bool, PrintCanonicalization, false,                               \
    4.18            "Print graph node canonicalization")                              \
    4.19                                                                              \
    4.20    develop(bool, UseTableRanges, true,                                       \
    4.21            "Faster versions of lookup table using ranges")                   \
    4.22                                                                              \
    4.23 -  develop(bool, UseFastExceptionHandling, true,                             \
    4.24 -          "Faster handling of exceptions")                                  \
    4.25 -                                                                            \
    4.26    develop_pd(bool, RoundFPResults,                                          \
    4.27            "Indicates whether rounding is needed for floating point results")\
    4.28                                                                              \
    4.29 @@ -224,9 +218,6 @@
    4.30    develop(bool, PinAllInstructions, false,                                  \
    4.31            "All instructions are pinned")                                    \
    4.32                                                                              \
    4.33 -  develop(bool, ValueStackPinStackAll, true,                                \
    4.34 -          "Pinning in ValueStack pin everything")                           \
    4.35 -                                                                            \
    4.36    develop(bool, UseFastNewInstance, true,                                   \
    4.37            "Use fast inlined instance allocation")                           \
    4.38                                                                              \
     5.1 --- a/src/share/vm/opto/c2_globals.hpp	Mon Aug 27 09:46:38 2012 -0700
     5.2 +++ b/src/share/vm/opto/c2_globals.hpp	Mon Aug 27 15:17:17 2012 -0700
     5.3 @@ -353,27 +353,9 @@
     5.4    develop(bool, StressRecompilation, false,                                 \
     5.5            "Recompile each compiled method without subsuming loads or escape analysis.") \
     5.6                                                                              \
     5.7 -  /* controls for tier 1 compilations */                                    \
     5.8 -                                                                            \
     5.9 -  develop(bool, Tier1CountInvocations, true,                                \
    5.10 -          "Generate code, during tier 1, to update invocation counter")     \
    5.11 -                                                                            \
    5.12 -  product(intx, Tier1Inline, false,                                         \
    5.13 -          "enable inlining during tier 1")                                  \
    5.14 -                                                                            \
    5.15 -  product(intx, Tier1MaxInlineSize, 8,                                      \
    5.16 -          "maximum bytecode size of a method to be inlined, during tier 1") \
    5.17 -                                                                            \
    5.18 -  product(intx, Tier1FreqInlineSize, 35,                                    \
    5.19 -          "max bytecode size of a frequent method to be inlined, tier 1")   \
    5.20 -                                                                            \
    5.21    develop(intx, ImplicitNullCheckThreshold, 3,                              \
    5.22            "Don't do implicit null checks if NPE's in a method exceeds limit") \
    5.23                                                                              \
    5.24 - /* controls for loop optimization */                                       \
    5.25 -  product(intx, Tier1LoopOptsCount, 0,                                      \
    5.26 -          "Set level of loop optimization for tier 1 compiles")             \
    5.27 -                                                                            \
    5.28    product(intx, LoopOptsCount, 43,                                          \
    5.29            "Set level of loop optimization for tier 1 compiles")             \
    5.30                                                                              \
    5.31 @@ -505,6 +487,116 @@
    5.32                                                                              \
    5.33    product(bool, BlockLayoutRotateLoops, true,                               \
    5.34            "Allow back branches to be fall throughs in the block layour")    \
    5.35 +                                                                            \
    5.36 +  develop(bool, InlineReflectionGetCallerClass, true,                       \
    5.37 +          "inline sun.reflect.Reflection.getCallerClass(), known to be part "\
    5.38 +          "of base library DLL")                                            \
    5.39 +                                                                            \
    5.40 +  develop(bool, InlineObjectCopy, true,                                     \
    5.41 +          "inline Object.clone and Arrays.copyOf[Range] intrinsics")        \
    5.42 +                                                                            \
    5.43 +  develop(bool, SpecialStringCompareTo, true,                               \
    5.44 +          "special version of string compareTo")                            \
    5.45 +                                                                            \
    5.46 +  develop(bool, SpecialStringIndexOf, true,                                 \
    5.47 +          "special version of string indexOf")                              \
    5.48 +                                                                            \
    5.49 +  develop(bool, SpecialStringEquals, true,                                  \
    5.50 +          "special version of string equals")                               \
    5.51 +                                                                            \
    5.52 +  develop(bool, SpecialArraysEquals, true,                                  \
    5.53 +          "special version of Arrays.equals(char[],char[])")                \
    5.54 +                                                                            \
    5.55 +  develop(bool, BailoutToInterpreterForThrows, false,                       \
    5.56 +          "Compiled methods which throws/catches exceptions will be "       \
    5.57 +          "deopt and intp.")                                                \
    5.58 +                                                                            \
    5.59 +  develop(bool, ConvertCmpD2CmpF, true,                                     \
    5.60 +          "Convert cmpD to cmpF when one input is constant in float range") \
    5.61 +                                                                            \
    5.62 +  develop(bool, ConvertFloat2IntClipping, true,                             \
    5.63 +          "Convert float2int clipping idiom to integer clipping")           \
    5.64 +                                                                            \
    5.65 +  develop(bool, Use24BitFPMode, true,                                       \
    5.66 +          "Set 24-bit FPU mode on a per-compile basis ")                    \
    5.67 +                                                                            \
    5.68 +  develop(bool, Use24BitFP, true,                                           \
    5.69 +          "use FP instructions that produce 24-bit precise results")        \
    5.70 +                                                                            \
    5.71 +  develop(bool, MonomorphicArrayCheck, true,                                \
    5.72 +          "Uncommon-trap array store checks that require full type check")  \
    5.73 +                                                                            \
    5.74 +  notproduct(bool, TracePhaseCCP, false,                                    \
    5.75 +          "Print progress during Conditional Constant Propagation")         \
    5.76 +                                                                            \
    5.77 +  develop(bool, PrintDominators, false,                                     \
    5.78 +          "Print out dominator trees for GVN")                              \
    5.79 +                                                                            \
    5.80 +  notproduct(bool, TraceSpilling, false,                                    \
    5.81 +          "Trace spilling")                                                 \
    5.82 +                                                                            \
    5.83 +  notproduct(bool, TraceTypeProfile, false,                                 \
    5.84 +          "Trace type profile")                                             \
    5.85 +                                                                            \
    5.86 +  develop(bool, PoisonOSREntry, true,                                       \
    5.87 +           "Detect abnormal calls to OSR code")                             \
    5.88 +                                                                            \
    5.89 +  product(bool, UseCondCardMark, false,                                     \
    5.90 +          "Check for already marked card before updating card table")       \
    5.91 +                                                                            \
    5.92 +  develop(bool, SoftMatchFailure, trueInProduct,                            \
    5.93 +          "If the DFA fails to match a node, print a message and bail out") \
    5.94 +                                                                            \
    5.95 +  develop(bool, InlineAccessors, true,                                      \
    5.96 +          "inline accessor methods (get/set)")                              \
    5.97 +                                                                            \
    5.98 +  product(intx, TypeProfileMajorReceiverPercent, 90,                        \
    5.99 +          "% of major receiver type to all profiled receivers")             \
   5.100 +                                                                            \
   5.101 +  notproduct(bool, TimeCompiler2, false,                                    \
   5.102 +          "detailed time the compiler (requires +TimeCompiler)")            \
   5.103 +                                                                            \
   5.104 +  diagnostic(bool, PrintIntrinsics, false,                                  \
   5.105 +          "prints attempted and successful inlining of intrinsics")         \
   5.106 +                                                                            \
   5.107 +  diagnostic(ccstrlist, DisableIntrinsic, "",                               \
   5.108 +          "do not expand intrinsics whose (internal) names appear here")    \
   5.109 +                                                                            \
   5.110 +  develop(bool, StressReflectiveCode, false,                                \
   5.111 +          "Use inexact types at allocations, etc., to test reflection")     \
   5.112 +                                                                            \
   5.113 +  diagnostic(bool, DebugInlinedCalls, true,                                 \
   5.114 +         "If false, restricts profiled locations to the root method only")  \
   5.115 +                                                                            \
   5.116 +  notproduct(bool, VerifyLoopOptimizations, false,                          \
   5.117 +          "verify major loop optimizations")                                \
   5.118 +                                                                            \
   5.119 +  diagnostic(bool, ProfileDynamicTypes, true,                               \
   5.120 +          "do extra type profiling and use it more aggressively")           \
   5.121 +                                                                            \
   5.122 +  develop(bool, TraceIterativeGVN, false,                                   \
   5.123 +          "Print progress during Iterative Global Value Numbering")         \
   5.124 +                                                                            \
   5.125 +  develop(bool, VerifyIterativeGVN, false,                                  \
   5.126 +          "Verify Def-Use modifications during sparse Iterative Global "    \
   5.127 +          "Value Numbering")                                                \
   5.128 +                                                                            \
   5.129 +  notproduct(bool, TraceCISCSpill, false,                                   \
   5.130 +          "Trace allocators use of cisc spillable instructions")            \
   5.131 +                                                                            \
   5.132 +  product(bool, SplitIfBlocks, true,                                        \
   5.133 +          "Clone compares and control flow through merge points to fold "   \
   5.134 +          "some branches")                                                  \
   5.135 +                                                                            \
   5.136 +  develop(intx, FreqCountInvocations,  1,                                   \
   5.137 +          "Scaling factor for branch frequencies (deprecated)")             \
   5.138 +                                                                            \
   5.139 +  product(intx, AliasLevel,     3,                                          \
   5.140 +          "0 for no aliasing, 1 for oop/field/static/array split, "         \
   5.141 +          "2 for class split, 3 for unique instances")                      \
   5.142 +                                                                            \
   5.143 +  develop(bool, VerifyAliases, false,                                       \
   5.144 +          "perform extra checks on the results of alias analysis")          \
   5.145  
   5.146  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)
   5.147  
     6.1 --- a/src/share/vm/opto/runtime.cpp	Mon Aug 27 09:46:38 2012 -0700
     6.2 +++ b/src/share/vm/opto/runtime.cpp	Mon Aug 27 15:17:17 2012 -0700
     6.3 @@ -880,46 +880,6 @@
     6.4    }
     6.5  JRT_END
     6.6  
     6.7 -//-----------------------------------------------------------------------------
     6.8 -// implicit exception support.
     6.9 -
    6.10 -static void report_null_exception_in_code_cache(address exception_pc) {
    6.11 -  ResourceMark rm;
    6.12 -  CodeBlob* n = CodeCache::find_blob(exception_pc);
    6.13 -  if (n != NULL) {
    6.14 -    tty->print_cr("#");
    6.15 -    tty->print_cr("# HotSpot Runtime Error, null exception in generated code");
    6.16 -    tty->print_cr("#");
    6.17 -    tty->print_cr("# pc where exception happened = " INTPTR_FORMAT, exception_pc);
    6.18 -
    6.19 -    if (n->is_nmethod()) {
    6.20 -      methodOop method = ((nmethod*)n)->method();
    6.21 -      tty->print_cr("# Method where it happened %s.%s ", Klass::cast(method->method_holder())->name()->as_C_string(), method->name()->as_C_string());
    6.22 -      tty->print_cr("#");
    6.23 -      if (ShowMessageBoxOnError && UpdateHotSpotCompilerFileOnError &&
    6.24 -          CompilerOracle::has_command_file()) {
    6.25 -        const char* title    = "HotSpot Runtime Error";
    6.26 -        const char* question = "Do you want to exclude compilation of this method in future runs?";
    6.27 -        if (os::message_box(title, question)) {
    6.28 -          CompilerOracle::append_comment_to_file("");
    6.29 -          CompilerOracle::append_comment_to_file("Null exception in compiled code resulted in the following exclude");
    6.30 -          CompilerOracle::append_comment_to_file("");
    6.31 -          CompilerOracle::append_exclude_to_file(method);
    6.32 -          tty->print_cr("#");
    6.33 -          tty->print_cr("# %s has been updated to exclude the specified method", CompileCommandFile);
    6.34 -          tty->print_cr("#");
    6.35 -        }
    6.36 -      }
    6.37 -      fatal("Implicit null exception happened in compiled method");
    6.38 -    } else {
    6.39 -      n->print();
    6.40 -      fatal("Implicit null exception happened in generated stub");
    6.41 -    }
    6.42 -  }
    6.43 -  fatal("Implicit null exception at wrong place");
    6.44 -}
    6.45 -
    6.46 -
    6.47  //-------------------------------------------------------------------------------------
    6.48  // register policy
    6.49  
     7.1 --- a/src/share/vm/runtime/globals.cpp	Mon Aug 27 09:46:38 2012 -0700
     7.2 +++ b/src/share/vm/runtime/globals.cpp	Mon Aug 27 15:17:17 2012 -0700
     7.3 @@ -43,7 +43,6 @@
     7.4  #include "shark/shark_globals.hpp"
     7.5  #endif
     7.6  
     7.7 -
     7.8  RUNTIME_FLAGS(MATERIALIZE_DEVELOPER_FLAG, MATERIALIZE_PD_DEVELOPER_FLAG, \
     7.9                MATERIALIZE_PRODUCT_FLAG, MATERIALIZE_PD_PRODUCT_FLAG, \
    7.10                MATERIALIZE_DIAGNOSTIC_FLAG, MATERIALIZE_EXPERIMENTAL_FLAG, \
    7.11 @@ -55,6 +54,10 @@
    7.12                   MATERIALIZE_PRODUCT_FLAG, MATERIALIZE_PD_PRODUCT_FLAG, \
    7.13                   MATERIALIZE_DIAGNOSTIC_FLAG, MATERIALIZE_NOTPRODUCT_FLAG)
    7.14  
    7.15 +ARCH_FLAGS(MATERIALIZE_DEVELOPER_FLAG, MATERIALIZE_PRODUCT_FLAG, \
    7.16 +           MATERIALIZE_DIAGNOSTIC_FLAG, MATERIALIZE_EXPERIMENTAL_FLAG, \
    7.17 +           MATERIALIZE_NOTPRODUCT_FLAG)
    7.18 +
    7.19  MATERIALIZE_FLAGS_EXT
    7.20  
    7.21  
    7.22 @@ -212,7 +215,6 @@
    7.23    #define C1_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, doc, "{C1 notproduct}", DEFAULT },
    7.24  #endif
    7.25  
    7.26 -
    7.27  #define C2_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{C2 product}", DEFAULT },
    7.28  #define C2_PD_PRODUCT_FLAG_STRUCT(type, name, doc)     { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{C2 pd product}", DEFAULT },
    7.29  #define C2_DIAGNOSTIC_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{C2 diagnostic}", DEFAULT },
    7.30 @@ -227,6 +229,17 @@
    7.31    #define C2_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, doc, "{C2 notproduct}", DEFAULT },
    7.32  #endif
    7.33  
    7.34 +#define ARCH_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{ARCH product}", DEFAULT },
    7.35 +#define ARCH_DIAGNOSTIC_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{ARCH diagnostic}", DEFAULT },
    7.36 +#define ARCH_EXPERIMENTAL_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{ARCH experimental}", DEFAULT },
    7.37 +#ifdef PRODUCT
    7.38 +  #define ARCH_DEVELOP_FLAG_STRUCT(type, name, value, doc) /* flag is constant */
    7.39 +  #define ARCH_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc)
    7.40 +#else
    7.41 +  #define ARCH_DEVELOP_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, doc, "{ARCH}", DEFAULT },
    7.42 +  #define ARCH_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, doc, "{ARCH notproduct}", DEFAULT },
    7.43 +#endif
    7.44 +
    7.45  #define SHARK_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{Shark product}", DEFAULT },
    7.46  #define SHARK_PD_PRODUCT_FLAG_STRUCT(type, name, doc)     { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{Shark pd product}", DEFAULT },
    7.47  #define SHARK_DIAGNOSTIC_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{Shark diagnostic}", DEFAULT },
    7.48 @@ -255,6 +268,7 @@
    7.49  #ifdef SHARK
    7.50   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)
    7.51  #endif
    7.52 + ARCH_FLAGS(ARCH_DEVELOP_FLAG_STRUCT, ARCH_PRODUCT_FLAG_STRUCT, ARCH_DIAGNOSTIC_FLAG_STRUCT, ARCH_EXPERIMENTAL_FLAG_STRUCT, ARCH_NOTPRODUCT_FLAG_STRUCT)
    7.53   FLAGTABLE_EXT
    7.54   {0, NULL, NULL}
    7.55  };
     8.1 --- a/src/share/vm/runtime/globals.hpp	Mon Aug 27 09:46:38 2012 -0700
     8.2 +++ b/src/share/vm/runtime/globals.hpp	Mon Aug 27 15:17:17 2012 -0700
     8.3 @@ -530,12 +530,6 @@
     8.4    product(intx, UseSSE, 99,                                                 \
     8.5            "Highest supported SSE instructions set on x86/x64")              \
     8.6                                                                              \
     8.7 -  product(intx, UseAVX, 99,                                                 \
     8.8 -          "Highest supported AVX instructions set on x86/x64")              \
     8.9 -                                                                            \
    8.10 -  product(intx, UseVIS, 99,                                                 \
    8.11 -          "Highest supported VIS instructions set on Sparc")                \
    8.12 -                                                                            \
    8.13    product(uintx, LargePageSizeInBytes, 0,                                   \
    8.14            "Large page size (0 to let VM choose the page size")              \
    8.15                                                                              \
    8.16 @@ -572,10 +566,6 @@
    8.17    product(bool, PrintVMQWaitTime, false,                                    \
    8.18            "Prints out the waiting time in VM operation queue")              \
    8.19                                                                              \
    8.20 -  develop(bool, BailoutToInterpreterForThrows, false,                       \
    8.21 -          "Compiled methods which throws/catches exceptions will be "       \
    8.22 -          "deopt and intp.")                                                \
    8.23 -                                                                            \
    8.24    develop(bool, NoYieldsInMicrolock, false,                                 \
    8.25            "Disable yields in microlock")                                    \
    8.26                                                                              \
    8.27 @@ -618,9 +608,6 @@
    8.28            "inline Object::hashCode() native that is known to be part "      \
    8.29            "of base library DLL")                                            \
    8.30                                                                              \
    8.31 -  develop(bool, InlineObjectCopy, true,                                     \
    8.32 -          "inline Object.clone and Arrays.copyOf[Range] intrinsics")        \
    8.33 -                                                                            \
    8.34    develop(bool, InlineNatives, true,                                        \
    8.35            "inline natives that are known to be part of base library DLL")   \
    8.36                                                                              \
    8.37 @@ -633,31 +620,9 @@
    8.38    develop(bool, InlineThreadNatives, true,                                  \
    8.39            "inline Thread.currentThread, etc")                               \
    8.40                                                                              \
    8.41 -  develop(bool, InlineReflectionGetCallerClass, true,                       \
    8.42 -          "inline sun.reflect.Reflection.getCallerClass(), known to be part "\
    8.43 -          "of base library DLL")                                            \
    8.44 -                                                                            \
    8.45    develop(bool, InlineUnsafeOps, true,                                      \
    8.46            "inline memory ops (native methods) from sun.misc.Unsafe")        \
    8.47                                                                              \
    8.48 -  develop(bool, ConvertCmpD2CmpF, true,                                     \
    8.49 -          "Convert cmpD to cmpF when one input is constant in float range") \
    8.50 -                                                                            \
    8.51 -  develop(bool, ConvertFloat2IntClipping, true,                             \
    8.52 -          "Convert float2int clipping idiom to integer clipping")           \
    8.53 -                                                                            \
    8.54 -  develop(bool, SpecialStringCompareTo, true,                               \
    8.55 -          "special version of string compareTo")                            \
    8.56 -                                                                            \
    8.57 -  develop(bool, SpecialStringIndexOf, true,                                 \
    8.58 -          "special version of string indexOf")                              \
    8.59 -                                                                            \
    8.60 -  develop(bool, SpecialStringEquals, true,                                  \
    8.61 -          "special version of string equals")                               \
    8.62 -                                                                            \
    8.63 -  develop(bool, SpecialArraysEquals, true,                                  \
    8.64 -          "special version of Arrays.equals(char[],char[])")                \
    8.65 -                                                                            \
    8.66    product(bool, CriticalJNINatives, true,                                   \
    8.67            "check for critical JNI entry points")                            \
    8.68                                                                              \
    8.69 @@ -667,9 +632,6 @@
    8.70    product(bool, UseSSE42Intrinsics, false,                                  \
    8.71            "SSE4.2 versions of intrinsics")                                  \
    8.72                                                                              \
    8.73 -  product(bool, UseCondCardMark, false,                                     \
    8.74 -          "Check for already marked card before updating card table")       \
    8.75 -                                                                            \
    8.76    develop(bool, TraceCallFixup, false,                                      \
    8.77            "traces all call fixups")                                         \
    8.78                                                                              \
    8.79 @@ -756,9 +718,6 @@
    8.80    develop(bool, ForceFloatExceptions, trueInDebug,                          \
    8.81            "Force exceptions on FP stack under/overflow")                    \
    8.82                                                                              \
    8.83 -  develop(bool, SoftMatchFailure, trueInProduct,                            \
    8.84 -          "If the DFA fails to match a node, print a message and bail out") \
    8.85 -                                                                            \
    8.86    develop(bool, VerifyStackAtCalls, false,                                  \
    8.87            "Verify that the stack pointer is unchanged after calls")         \
    8.88                                                                              \
    8.89 @@ -915,15 +874,6 @@
    8.90               "1: allow scavenging from the code cache; "                    \
    8.91               "2: emit as many constants as the compiler can see")           \
    8.92                                                                              \
    8.93 -  diagnostic(bool, TraceOSRBreakpoint, false,                               \
    8.94 -             "Trace OSR Breakpoint ")                                       \
    8.95 -                                                                            \
    8.96 -  diagnostic(bool, TraceCompileTriggered, false,                            \
    8.97 -             "Trace compile triggered")                                     \
    8.98 -                                                                            \
    8.99 -  diagnostic(bool, TraceTriggers, false,                                    \
   8.100 -             "Trace triggers")                                              \
   8.101 -                                                                            \
   8.102    product(bool, AlwaysRestoreFPU, false,                                    \
   8.103            "Restore the FPU control word after every JNI call (expensive)")  \
   8.104                                                                              \
   8.105 @@ -1037,9 +987,6 @@
   8.106    develop(bool, UsePrivilegedStack, true,                                   \
   8.107            "Enable the security JVM functions")                              \
   8.108                                                                              \
   8.109 -  develop(bool, IEEEPrecision, true,                                        \
   8.110 -          "Enables IEEE precision (for INTEL only)")                        \
   8.111 -                                                                            \
   8.112    develop(bool, ProtectionDomainVerification, true,                         \
   8.113            "Verifies protection domain before resolution in system "         \
   8.114            "dictionary")                                                     \
   8.115 @@ -1109,8 +1056,6 @@
   8.116            "(Unsafe,Unstable) "                                              \
   8.117            " Controls emission of inline sync fast-path code")               \
   8.118                                                                              \
   8.119 -  product(intx, AlwaysInflate, 0, "(Unstable) Force inflation")             \
   8.120 -                                                                            \
   8.121    product(intx, MonitorBound, 0, "Bound Monitor population")                \
   8.122                                                                              \
   8.123    product(bool, MonitorInUseLists, false, "Track Monitors for Deflation")   \
   8.124 @@ -1118,9 +1063,6 @@
   8.125    product(intx, Atomics, 0,                                                 \
   8.126            "(Unsafe,Unstable) Diagnostic - Controls emission of atomics")    \
   8.127                                                                              \
   8.128 -  product(intx, FenceInstruction, 0,                                        \
   8.129 -          "(Unsafe,Unstable) Experimental")                                 \
   8.130 -                                                                            \
   8.131    product(intx, SyncFlags, 0, "(Unsafe,Unstable) Experimental Sync flags" ) \
   8.132                                                                              \
   8.133    product(intx, SyncVerbose, 0, "(Unstable)" )                              \
   8.134 @@ -1150,10 +1092,6 @@
   8.135            "call thr_setconcurrency at thread create time to avoid "         \
   8.136            "LWP starvation on MP systems (For Solaris Only)")                \
   8.137                                                                              \
   8.138 -  develop(bool, UpdateHotSpotCompilerFileOnError, true,                     \
   8.139 -          "Should the system attempt to update the compiler file when "     \
   8.140 -          "an error occurs?")                                               \
   8.141 -                                                                            \
   8.142    product(bool, ReduceSignalUsage, false,                                   \
   8.143            "Reduce the use of OS signals in Java and/or the VM")             \
   8.144                                                                              \
   8.145 @@ -1188,15 +1126,6 @@
   8.146            "Use alternate signals instead of SIGUSR1 & SIGUSR2 for VM "      \
   8.147            "internal signals (Solaris only)")                                \
   8.148                                                                              \
   8.149 -  product(bool, UseSpinning, false,                                         \
   8.150 -          "Use spinning in monitor inflation and before entry")             \
   8.151 -                                                                            \
   8.152 -  product(bool, PreSpinYield, false,                                        \
   8.153 -          "Yield before inner spinning loop")                               \
   8.154 -                                                                            \
   8.155 -  product(bool, PostSpinYield, true,                                        \
   8.156 -          "Yield after inner spinning loop")                                \
   8.157 -                                                                            \
   8.158    product(bool, AllowJNIEnvProxy, false,                                    \
   8.159            "Allow JNIEnv proxies for jdbx")                                  \
   8.160                                                                              \
   8.161 @@ -1225,39 +1154,9 @@
   8.162    product(bool, LazyBootClassLoader, true,                                  \
   8.163            "Enable/disable lazy opening of boot class path entries")         \
   8.164                                                                              \
   8.165 -  diagnostic(bool, UseIncDec, true,                                         \
   8.166 -          "Use INC, DEC instructions on x86")                               \
   8.167 -                                                                            \
   8.168 -  product(bool, UseNewLongLShift, false,                                    \
   8.169 -          "Use optimized bitwise shift left")                               \
   8.170 -                                                                            \
   8.171 -  product(bool, UseStoreImmI16, true,                                       \
   8.172 -          "Use store immediate 16-bits value instruction on x86")           \
   8.173 -                                                                            \
   8.174 -  product(bool, UseAddressNop, false,                                       \
   8.175 -          "Use '0F 1F [addr]' NOP instructions on x86 cpus")                \
   8.176 -                                                                            \
   8.177 -  product(bool, UseXmmLoadAndClearUpper, true,                              \
   8.178 -          "Load low part of XMM register and clear upper part")             \
   8.179 -                                                                            \
   8.180 -  product(bool, UseXmmRegToRegMoveAll, false,                               \
   8.181 -          "Copy all XMM register bits when moving value between registers") \
   8.182 -                                                                            \
   8.183 -  product(bool, UseXmmI2D, false,                                           \
   8.184 -          "Use SSE2 CVTDQ2PD instruction to convert Integer to Double")     \
   8.185 -                                                                            \
   8.186 -  product(bool, UseXmmI2F, false,                                           \
   8.187 -          "Use SSE2 CVTDQ2PS instruction to convert Integer to Float")      \
   8.188 -                                                                            \
   8.189    product(bool, UseXMMForArrayCopy, false,                                  \
   8.190            "Use SSE2 MOVQ instruction for Arraycopy")                        \
   8.191                                                                              \
   8.192 -  product(bool, UseUnalignedLoadStores, false,                              \
   8.193 -          "Use SSE2 MOVDQU instruction for Arraycopy")                      \
   8.194 -                                                                            \
   8.195 -  product(bool, UseCBCond, false,                                           \
   8.196 -          "Use compare and branch instruction on SPARC")                    \
   8.197 -                                                                            \
   8.198    product(intx, FieldsAllocationStyle, 1,                                   \
   8.199            "0 - type based with oops first, 1 - with oops last, "            \
   8.200            "2 - oops in super and sub classes are together")                 \
   8.201 @@ -1387,9 +1286,6 @@
   8.202    develop(bool, TraceStartupTime, false,                                    \
   8.203            "Trace setup time")                                               \
   8.204                                                                              \
   8.205 -  product(ccstr, HPILibPath, NULL,                                          \
   8.206 -          "Specify alternate path to HPI library")                          \
   8.207 -                                                                            \
   8.208    develop(bool, TraceProtectionDomainVerification, false,                   \
   8.209            "Trace protection domain verifcation")                            \
   8.210                                                                              \
   8.211 @@ -1405,10 +1301,6 @@
   8.212    product(bool, TraceMonitorInflation, false,                               \
   8.213            "Trace monitor inflation in JVM")                                 \
   8.214                                                                              \
   8.215 -  /* assembler */                                                           \
   8.216 -  product(bool, Use486InstrsOnly, false,                                    \
   8.217 -          "Use 80486 Compliant instruction subset")                         \
   8.218 -                                                                            \
   8.219    /* gc */                                                                  \
   8.220                                                                              \
   8.221    product(bool, UseSerialGC, false,                                         \
   8.222 @@ -1467,9 +1359,6 @@
   8.223    develop(uintx, ParallelOldGCSplitInterval, 3,                             \
   8.224            "How often to provoke splitting a young gen space")               \
   8.225                                                                              \
   8.226 -  develop(bool, TraceRegionTasksQueuing, false,                             \
   8.227 -          "Trace the queuing of the region tasks")                          \
   8.228 -                                                                            \
   8.229    product(uintx, ConcGCThreads, 0,                                          \
   8.230            "Number of threads concurrent gc will use")                       \
   8.231                                                                              \
   8.232 @@ -1621,10 +1510,6 @@
   8.233            "The gain in the feedback loop for on-the-fly PLAB resizing"      \
   8.234            " during a scavenge")                                             \
   8.235                                                                              \
   8.236 -  product(uintx, CMSOldPLABReactivityCeiling, 10,                           \
   8.237 -          "The clamping of the gain in the feedback loop for on-the-fly"    \
   8.238 -          " PLAB resizing during a scavenge")                               \
   8.239 -                                                                            \
   8.240    product(bool, AlwaysPreTouch, false,                                      \
   8.241            "It forces all freshly committed pages to be pre-touched.")       \
   8.242                                                                              \
   8.243 @@ -1632,12 +1517,6 @@
   8.244            "The maximum size of young gen chosen by default per GC worker "  \
   8.245            "thread available")                                               \
   8.246                                                                              \
   8.247 -  product(bool, GCOverheadReporting, false,                                 \
   8.248 -         "Enables the GC overhead reporting facility")                      \
   8.249 -                                                                            \
   8.250 -  product(intx, GCOverheadReportingPeriodMS, 100,                           \
   8.251 -          "Reporting period for conc GC overhead reporting, in ms ")        \
   8.252 -                                                                            \
   8.253    product(bool, CMSIncrementalMode, false,                                  \
   8.254            "Whether CMS GC should operate in \"incremental\" mode")          \
   8.255                                                                              \
   8.256 @@ -2017,9 +1896,6 @@
   8.257    experimental(uintx, WorkStealingSpinToYieldRatio, 10,                     \
   8.258            "Ratio of hard spins to calls to yield")                          \
   8.259                                                                              \
   8.260 -  product(uintx, PreserveMarkStackSize, 1024,                               \
   8.261 -          "Size for stack used in promotion failure handling")              \
   8.262 -                                                                            \
   8.263    develop(uintx, ObjArrayMarkingStride, 512,                                \
   8.264            "Number of ObjArray elements to push onto the marking stack"      \
   8.265            "before pushing a continuation entry")                            \
   8.266 @@ -2044,18 +1920,6 @@
   8.267    product(bool, TLABStats, true,                                            \
   8.268            "Print various TLAB related information")                         \
   8.269                                                                              \
   8.270 -  product(bool, UseBlockZeroing, false,                                     \
   8.271 -          "Use special cpu instructions for block zeroing")                 \
   8.272 -                                                                            \
   8.273 -  product(intx, BlockZeroingLowLimit, 2048,                                 \
   8.274 -          "Minimum size in bytes when block zeroing will be used")          \
   8.275 -                                                                            \
   8.276 -  product(bool, UseBlockCopy, false,                                        \
   8.277 -          "Use special cpu instructions for block copy")                    \
   8.278 -                                                                            \
   8.279 -  product(intx, BlockCopyLowLimit, 2048,                                    \
   8.280 -          "Minimum size in bytes when block copy will be used")             \
   8.281 -                                                                            \
   8.282    product(bool, PrintRevisitStats, false,                                   \
   8.283            "Print revisit (klass and MDO) stack related information")        \
   8.284                                                                              \
   8.285 @@ -2248,9 +2112,6 @@
   8.286    product(intx, PrefetchFieldsAhead, -1,                                    \
   8.287            "How many fields ahead to prefetch in oop scan (<= 0 means off)") \
   8.288                                                                              \
   8.289 -  develop(bool, UsePrefetchQueue, true,                                     \
   8.290 -          "Use the prefetch queue during PS promotion")                     \
   8.291 -                                                                            \
   8.292    diagnostic(bool, VerifyBeforeExit, trueInDebug,                           \
   8.293            "Verify system before exiting")                                   \
   8.294                                                                              \
   8.295 @@ -2486,27 +2347,9 @@
   8.296    develop(bool, CITraceTypeFlow, false,                                     \
   8.297            "detailed per-bytecode tracing of ciTypeFlow analysis")           \
   8.298                                                                              \
   8.299 -  develop(intx, CICloneLoopTestLimit, 100,                                  \
   8.300 -          "size limit for blocks heuristically cloned in ciTypeFlow")       \
   8.301 -                                                                            \
   8.302    develop(intx, OSROnlyBCI, -1,                                             \
   8.303            "OSR only at this bci.  Negative values mean exclude that bci")   \
   8.304                                                                              \
   8.305 -  /* temp diagnostics */                                                    \
   8.306 -                                                                            \
   8.307 -  diagnostic(bool, TraceRedundantCompiles, false,                           \
   8.308 -          "Have compile broker print when a request already in the queue is"\
   8.309 -          " requested again")                                               \
   8.310 -                                                                            \
   8.311 -  diagnostic(bool, InitialCompileFast, false,                               \
   8.312 -          "Initial compile at CompLevel_fast_compile")                      \
   8.313 -                                                                            \
   8.314 -  diagnostic(bool, InitialCompileReallyFast, false,                         \
   8.315 -          "Initial compile at CompLevel_really_fast_compile (no profile)")  \
   8.316 -                                                                            \
   8.317 -  diagnostic(bool, FullProfileOnReInterpret, true,                          \
   8.318 -          "On re-interpret unc-trap compile next at CompLevel_fast_compile")\
   8.319 -                                                                            \
   8.320    /* compiler */                                                            \
   8.321                                                                              \
   8.322    product(intx, CICompilerCount, CI_COMPILER_COUNT,                         \
   8.323 @@ -2520,12 +2363,6 @@
   8.324            "proper StackOverflow handling; disable only to measure cost "    \
   8.325            "of stackbanging)")                                               \
   8.326                                                                              \
   8.327 -  develop(bool, Use24BitFPMode, true,                                       \
   8.328 -          "Set 24-bit FPU mode on a per-compile basis ")                    \
   8.329 -                                                                            \
   8.330 -  develop(bool, Use24BitFP, true,                                           \
   8.331 -          "use FP instructions that produce 24-bit precise results")        \
   8.332 -                                                                            \
   8.333    develop(bool, UseStrictFP, true,                                          \
   8.334            "use strict fp if modifier strictfp is set")                      \
   8.335                                                                              \
   8.336 @@ -2557,9 +2394,6 @@
   8.337            "print the break down of clean up tasks performed during"         \
   8.338            " safepoint")                                                     \
   8.339                                                                              \
   8.340 -  develop(bool, InlineAccessors, true,                                      \
   8.341 -          "inline accessor methods (get/set)")                              \
   8.342 -                                                                            \
   8.343    product(bool, Inline, true,                                               \
   8.344            "enable inlining")                                                \
   8.345                                                                              \
   8.346 @@ -2572,33 +2406,15 @@
   8.347    product(bool, UseTypeProfile, true,                                       \
   8.348            "Check interpreter profile for historically monomorphic calls")   \
   8.349                                                                              \
   8.350 -  product(intx, TypeProfileMajorReceiverPercent, 90,                        \
   8.351 -          "% of major receiver type to all profiled receivers")             \
   8.352 -                                                                            \
   8.353    notproduct(bool, TimeCompiler, false,                                     \
   8.354            "time the compiler")                                              \
   8.355                                                                              \
   8.356 -  notproduct(bool, TimeCompiler2, false,                                    \
   8.357 -          "detailed time the compiler (requires +TimeCompiler)")            \
   8.358 -                                                                            \
   8.359    diagnostic(bool, PrintInlining, false,                                    \
   8.360            "prints inlining optimizations")                                  \
   8.361                                                                              \
   8.362 -  diagnostic(bool, PrintIntrinsics, false,                                  \
   8.363 -          "prints attempted and successful inlining of intrinsics")         \
   8.364 -                                                                            \
   8.365 -  product(bool, UseCountLeadingZerosInstruction, false,                     \
   8.366 -          "Use count leading zeros instruction")                            \
   8.367 -                                                                            \
   8.368    product(bool, UsePopCountInstruction, false,                              \
   8.369            "Use population count instruction")                               \
   8.370                                                                              \
   8.371 -  diagnostic(ccstrlist, DisableIntrinsic, "",                               \
   8.372 -          "do not expand intrinsics whose (internal) names appear here")    \
   8.373 -                                                                            \
   8.374 -  develop(bool, StressReflectiveCode, false,                                \
   8.375 -          "Use inexact types at allocations, etc., to test reflection")     \
   8.376 -                                                                            \
   8.377    develop(bool, EagerInitialization, false,                                 \
   8.378            "Eagerly initialize classes if possible")                         \
   8.379                                                                              \
   8.380 @@ -2608,10 +2424,6 @@
   8.381    develop(bool, PrintMethodFlushing, false,                                 \
   8.382            "print the nmethods being flushed")                               \
   8.383                                                                              \
   8.384 -  notproduct(bool, LogMultipleMutexLocking, false,                          \
   8.385 -          "log locking and unlocking of mutexes (only if multiple locks "   \
   8.386 -          "are held)")                                                      \
   8.387 -                                                                            \
   8.388    develop(bool, UseRelocIndex, false,                                       \
   8.389           "use an index to speed random access to relocations")              \
   8.390                                                                              \
   8.391 @@ -2621,9 +2433,6 @@
   8.392    diagnostic(bool, DebugNonSafepoints, trueInDebug,                         \
   8.393           "Generate extra debugging info for non-safepoints in nmethods")    \
   8.394                                                                              \
   8.395 -  diagnostic(bool, DebugInlinedCalls, true,                                 \
   8.396 -         "If false, restricts profiled locations to the root method only")  \
   8.397 -                                                                            \
   8.398    product(bool, PrintVMOptions, false,                                      \
   8.399           "Print flags that appeared on the command line")                   \
   8.400                                                                              \
   8.401 @@ -2700,9 +2509,6 @@
   8.402    notproduct(bool, IgnoreLockingAssertions, false,                          \
   8.403            "disable locking assertions (for speed)")                         \
   8.404                                                                              \
   8.405 -  notproduct(bool, VerifyLoopOptimizations, false,                          \
   8.406 -          "verify major loop optimizations")                                \
   8.407 -                                                                            \
   8.408    product(bool, RangeCheckElimination, true,                                \
   8.409            "Split loop iterations to eliminate range checks")                \
   8.410                                                                              \
   8.411 @@ -2712,12 +2518,6 @@
   8.412    develop(bool, TypeProfileCasts,  true,                                    \
   8.413            "treat casts like calls for purposes of type profiling")          \
   8.414                                                                              \
   8.415 -  develop(bool, MonomorphicArrayCheck, true,                                \
   8.416 -          "Uncommon-trap array store checks that require full type check")  \
   8.417 -                                                                            \
   8.418 -  diagnostic(bool, ProfileDynamicTypes, true,                               \
   8.419 -          "do extra type profiling and use it more aggressively")           \
   8.420 -                                                                            \
   8.421    develop(bool, DelayCompilationDuringStartup, true,                        \
   8.422            "Delay invoking the compiler until main application class is "    \
   8.423            "loaded")                                                         \
   8.424 @@ -2732,19 +2532,9 @@
   8.425    notproduct(intx, CompileTheWorldSafepointInterval, 100,                   \
   8.426            "Force a safepoint every n compiles so sweeper can keep up")      \
   8.427                                                                              \
   8.428 -  develop(bool, TraceIterativeGVN, false,                                   \
   8.429 -          "Print progress during Iterative Global Value Numbering")         \
   8.430 -                                                                            \
   8.431    develop(bool, FillDelaySlots, true,                                       \
   8.432            "Fill delay slots (on SPARC only)")                               \
   8.433                                                                              \
   8.434 -  develop(bool, VerifyIterativeGVN, false,                                  \
   8.435 -          "Verify Def-Use modifications during sparse Iterative Global "    \
   8.436 -          "Value Numbering")                                                \
   8.437 -                                                                            \
   8.438 -  notproduct(bool, TracePhaseCCP, false,                                    \
   8.439 -          "Print progress during Conditional Constant Propagation")         \
   8.440 -                                                                            \
   8.441    develop(bool, TimeLivenessAnalysis, false,                                \
   8.442            "Time computation of bytecode liveness analysis")                 \
   8.443                                                                              \
   8.444 @@ -2757,22 +2547,9 @@
   8.445    notproduct(bool, CollectIndexSetStatistics, false,                        \
   8.446            "Collect information about IndexSets")                            \
   8.447                                                                              \
   8.448 -  develop(bool, PrintDominators, false,                                     \
   8.449 -          "Print out dominator trees for GVN")                              \
   8.450 -                                                                            \
   8.451    develop(bool, UseLoopSafepoints, true,                                    \
   8.452            "Generate Safepoint nodes in every loop")                         \
   8.453                                                                              \
   8.454 -  notproduct(bool, TraceCISCSpill, false,                                   \
   8.455 -          "Trace allocators use of cisc spillable instructions")            \
   8.456 -                                                                            \
   8.457 -  notproduct(bool, TraceSpilling, false,                                    \
   8.458 -          "Trace spilling")                                                 \
   8.459 -                                                                            \
   8.460 -  product(bool, SplitIfBlocks, true,                                        \
   8.461 -          "Clone compares and control flow through merge points to fold "   \
   8.462 -          "some branches")                                                  \
   8.463 -                                                                            \
   8.464    develop(intx, FastAllocateSizeLimit, 128*K,                               \
   8.465            /* Note:  This value is zero mod 1<<13 for a cheap sparc set. */  \
   8.466            "Inline allocations larger than this in doublewords must go slow")\
   8.467 @@ -2829,15 +2606,6 @@
   8.468    develop(bool, UseFastSignatureHandlers, true,                             \
   8.469            "Use fast signature handlers for native calls")                   \
   8.470                                                                              \
   8.471 -  develop(bool, UseV8InstrsOnly, false,                                     \
   8.472 -          "Use SPARC-V8 Compliant instruction subset")                      \
   8.473 -                                                                            \
   8.474 -  product(bool, UseNiagaraInstrs, false,                                    \
   8.475 -          "Use Niagara-efficient instruction subset")                       \
   8.476 -                                                                            \
   8.477 -  develop(bool, UseCASForSwap, false,                                       \
   8.478 -          "Do not use swap instructions, but only CAS (in a loop) on SPARC")\
   8.479 -                                                                            \
   8.480    product(bool, UseLoopCounter, true,                                       \
   8.481            "Increment invocation counter on backward branch")                \
   8.482                                                                              \
   8.483 @@ -2854,9 +2622,6 @@
   8.484    notproduct(bool, TraceOnStackReplacement, false,                          \
   8.485            "Trace on stack replacement")                                     \
   8.486                                                                              \
   8.487 -  develop(bool, PoisonOSREntry, true,                                       \
   8.488 -           "Detect abnormal calls to OSR code")                             \
   8.489 -                                                                            \
   8.490    product_pd(bool, PreferInterpreterNativeStubs,                            \
   8.491            "Use always interpreter stubs for native methods invoked via "    \
   8.492            "interpreter")                                                    \
   8.493 @@ -2899,9 +2664,6 @@
   8.494    develop(bool, TraceFrequencyInlining, false,                              \
   8.495            "Trace frequency based inlining")                                 \
   8.496                                                                              \
   8.497 -  notproduct(bool, TraceTypeProfile, false,                                 \
   8.498 -          "Trace type profile")                                             \
   8.499 -                                                                            \
   8.500    develop_pd(bool, InlineIntrinsics,                                        \
   8.501             "Inline intrinsics that can be statically resolved")             \
   8.502                                                                              \
   8.503 @@ -2989,15 +2751,6 @@
   8.504    product(intx,  AllocatePrefetchInstr, 0,                                  \
   8.505            "Prefetch instruction to prefetch ahead of allocation pointer")   \
   8.506                                                                              \
   8.507 -  product(intx,  ReadPrefetchInstr, 0,                                      \
   8.508 -          "Prefetch instruction to prefetch ahead")                         \
   8.509 -                                                                            \
   8.510 -  product(uintx,  ArraycopySrcPrefetchDistance, 0,                          \
   8.511 -          "Distance to prefetch source array in arracopy")                  \
   8.512 -                                                                            \
   8.513 -  product(uintx,  ArraycopyDstPrefetchDistance, 0,                          \
   8.514 -          "Distance to prefetch destination array in arracopy")             \
   8.515 -                                                                            \
   8.516    /* deoptimization */                                                      \
   8.517    develop(bool, TraceDeoptimization, false,                                 \
   8.518            "Trace deoptimization")                                           \
   8.519 @@ -3088,9 +2841,6 @@
   8.520    product(intx, MinInliningThreshold, 250,                                  \
   8.521            "min. invocation count a method needs to have to be inlined")     \
   8.522                                                                              \
   8.523 -  develop(intx, AlignEntryCode, 4,                                          \
   8.524 -          "aligns entry code to specified value (in bytes)")                \
   8.525 -                                                                            \
   8.526    develop(intx, MethodHistogramCutoff, 100,                                 \
   8.527            "cutoff value for method invoc. histogram (+CountCalls)")         \
   8.528                                                                              \
   8.529 @@ -3130,9 +2880,6 @@
   8.530            "Minimum sleep() interval (milliseconds) when "                   \
   8.531            "ConvertSleepToYield is off (used for SOLARIS)")                  \
   8.532                                                                              \
   8.533 -  product(intx, EventLogLength,  2000,                                      \
   8.534 -          "maximum nof events in event log")                                \
   8.535 -                                                                            \
   8.536    develop(intx, ProfilerPCTickThreshold,    15,                             \
   8.537            "Number of ticks in a PC buckets to be a hotspot")                \
   8.538                                                                              \
   8.539 @@ -3171,9 +2918,6 @@
   8.540    product(intx, PerBytecodeTrapLimit,  4,                                   \
   8.541            "Limit on traps (of one kind) at a particular BCI")               \
   8.542                                                                              \
   8.543 -  develop(intx, FreqCountInvocations,  1,                                   \
   8.544 -          "Scaling factor for branch frequencies (deprecated)")             \
   8.545 -                                                                            \
   8.546    develop(intx, InlineFrequencyRatio,    20,                                \
   8.547            "Ratio of call site execution to caller method invocation")       \
   8.548                                                                              \
   8.549 @@ -3187,29 +2931,12 @@
   8.550    develop(intx, InlineThrowMaxSize,   200,                                  \
   8.551            "Force inlining of throwing methods smaller than this")           \
   8.552                                                                              \
   8.553 -  product(intx, AliasLevel,     3,                                          \
   8.554 -          "0 for no aliasing, 1 for oop/field/static/array split, "         \
   8.555 -          "2 for class split, 3 for unique instances")                      \
   8.556 -                                                                            \
   8.557 -  develop(bool, VerifyAliases, false,                                       \
   8.558 -          "perform extra checks on the results of alias analysis")          \
   8.559 -                                                                            \
   8.560    develop(intx, ProfilerNodeSize,  1024,                                    \
   8.561            "Size in K to allocate for the Profile Nodes of each thread")     \
   8.562                                                                              \
   8.563 -  develop(intx, V8AtomicOperationUnderLockSpinCount,    50,                 \
   8.564 -          "Number of times to spin wait on a v8 atomic operation lock")     \
   8.565 -                                                                            \
   8.566 -  product(intx, ReadSpinIterations,   100,                                  \
   8.567 -          "Number of read attempts before a yield (spin inner loop)")       \
   8.568 -                                                                            \
   8.569    product_pd(intx, PreInflateSpin,                                          \
   8.570            "Number of times to spin wait before inflation")                  \
   8.571                                                                              \
   8.572 -  product(intx, PreBlockSpin,    10,                                        \
   8.573 -          "Number of times to spin in an inflated lock before going to "    \
   8.574 -          "an OS lock")                                                     \
   8.575 -                                                                            \
   8.576    /* gc parameters */                                                       \
   8.577    product(uintx, InitialHeapSize, 0,                                        \
   8.578            "Initial heap size (in bytes); zero means OldSize + NewSize")     \
   8.579 @@ -3466,10 +3193,6 @@
   8.580            "(non-negative value throws OOM after this many CI accesses "     \
   8.581            "in each compile)")                                               \
   8.582                                                                              \
   8.583 -  develop(intx, CIFireOOMAtDelay, -1,                                       \
   8.584 -          "Wait for this many CI accesses to occur in all compiles before " \
   8.585 -          "beginning to throw OutOfMemoryErrors in each compile")           \
   8.586 -                                                                            \
   8.587    notproduct(bool, CIObjectFactoryVerify, false,                            \
   8.588            "enable potentially expensive verification in ciObjectFactory")   \
   8.589                                                                              \
   8.590 @@ -3663,9 +3386,6 @@
   8.591    product(bool, PrintTieredEvents, false,                                   \
   8.592            "Print tiered events notifications")                              \
   8.593                                                                              \
   8.594 -  product(bool, StressTieredRuntime, false,                                 \
   8.595 -          "Alternate client and server compiler on compile requests")       \
   8.596 -                                                                            \
   8.597    product_pd(intx, OnStackReplacePercentage,                                \
   8.598            "NON_TIERED number of method invocations/branches (expressed as %"\
   8.599            "of CompileThreshold) before (re-)compiling OSR code")            \
   8.600 @@ -3835,9 +3555,6 @@
   8.601            "support JSR 292 (method handles, invokedynamic, "                \
   8.602            "anonymous classes")                                              \
   8.603                                                                              \
   8.604 -  product(bool, AnonymousClasses, false,                                    \
   8.605 -          "support sun.misc.Unsafe.defineAnonymousClass (deprecated)")      \
   8.606 -                                                                            \
   8.607    diagnostic(bool, PrintMethodHandleStubs, false,                           \
   8.608            "Print generated stub code for method handles")                   \
   8.609                                                                              \
   8.610 @@ -3952,6 +3669,8 @@
   8.611  
   8.612  RUNTIME_OS_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_NOTPRODUCT_FLAG)
   8.613  
   8.614 +ARCH_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_EXPERIMENTAL_FLAG, DECLARE_NOTPRODUCT_FLAG)
   8.615 +
   8.616  // Extensions
   8.617  
   8.618  #include "runtime/globals_ext.hpp"
     9.1 --- a/src/share/vm/runtime/globals_extension.hpp	Mon Aug 27 09:46:38 2012 -0700
     9.2 +++ b/src/share/vm/runtime/globals_extension.hpp	Mon Aug 27 15:17:17 2012 -0700
     9.3 @@ -1,5 +1,5 @@
     9.4  /*
     9.5 - * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
     9.6 + * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
     9.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     9.8   *
     9.9   * This code is free software; you can redistribute it and/or modify it
    9.10 @@ -66,7 +66,6 @@
    9.11    #define C1_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc)    FLAG_MEMBER(name),
    9.12  #endif
    9.13  
    9.14 -
    9.15  #define C2_PRODUCT_FLAG_MEMBER(type, name, value, doc)         FLAG_MEMBER(name),
    9.16  #define C2_PD_PRODUCT_FLAG_MEMBER(type, name, doc)             FLAG_MEMBER(name),
    9.17  #define C2_DIAGNOSTIC_FLAG_MEMBER(type, name, value, doc)      FLAG_MEMBER(name),
    9.18 @@ -81,6 +80,17 @@
    9.19    #define C2_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc)    FLAG_MEMBER(name),
    9.20  #endif
    9.21  
    9.22 +#define ARCH_PRODUCT_FLAG_MEMBER(type, name, value, doc)         FLAG_MEMBER(name),
    9.23 +#define ARCH_DIAGNOSTIC_FLAG_MEMBER(type, name, value, doc)      FLAG_MEMBER(name),
    9.24 +#define ARCH_EXPERIMENTAL_FLAG_MEMBER(type, name, value, doc)    FLAG_MEMBER(name),
    9.25 +#ifdef PRODUCT
    9.26 +  #define ARCH_DEVELOP_FLAG_MEMBER(type, name, value, doc)       /* flag is constant */
    9.27 +  #define ARCH_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc)
    9.28 +#else
    9.29 +  #define ARCH_DEVELOP_FLAG_MEMBER(type, name, value, doc)       FLAG_MEMBER(name),
    9.30 +  #define ARCH_NOTPRODUCT_FLAG_MEMBER(type, name, value, doc)    FLAG_MEMBER(name),
    9.31 +#endif
    9.32 +
    9.33  typedef enum {
    9.34   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)
    9.35   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)
    9.36 @@ -93,6 +103,7 @@
    9.37  #ifdef COMPILER2
    9.38   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)
    9.39  #endif
    9.40 + ARCH_FLAGS(ARCH_DEVELOP_FLAG_MEMBER, ARCH_PRODUCT_FLAG_MEMBER, ARCH_DIAGNOSTIC_FLAG_MEMBER, ARCH_EXPERIMENTAL_FLAG_MEMBER, ARCH_NOTPRODUCT_FLAG_MEMBER)
    9.41   COMMANDLINEFLAG_EXT
    9.42   NUM_CommandLineFlag
    9.43  } CommandLineFlag;
    9.44 @@ -134,7 +145,6 @@
    9.45  #define RUNTIME_LP64_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc)    /* flag is constant */
    9.46  #endif // _LP64
    9.47  
    9.48 -
    9.49  #define C2_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc)         FLAG_MEMBER_WITH_TYPE(name,type),
    9.50  #define C2_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, doc)             FLAG_MEMBER_WITH_TYPE(name,type),
    9.51  #define C2_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE(type, name, value, doc)      FLAG_MEMBER_WITH_TYPE(name,type),
    9.52 @@ -149,6 +159,17 @@
    9.53    #define C2_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc)    FLAG_MEMBER_WITH_TYPE(name,type),
    9.54  #endif
    9.55  
    9.56 +#define ARCH_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc)         FLAG_MEMBER_WITH_TYPE(name,type),
    9.57 +#define ARCH_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE(type, name, value, doc)      FLAG_MEMBER_WITH_TYPE(name,type),
    9.58 +#define ARCH_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE(type, name, value, doc)      FLAG_MEMBER_WITH_TYPE(name,type),
    9.59 +#ifdef PRODUCT
    9.60 +  #define ARCH_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc)       /* flag is constant */
    9.61 +  #define ARCH_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc)
    9.62 +#else
    9.63 +  #define ARCH_DEVELOP_FLAG_MEMBER_WITH_TYPE(type, name, value, doc)       FLAG_MEMBER_WITH_TYPE(name,type),
    9.64 +  #define ARCH_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc)    FLAG_MEMBER_WITH_TYPE(name,type),
    9.65 +#endif
    9.66 +
    9.67  typedef enum {
    9.68   RUNTIME_FLAGS(RUNTIME_DEVELOP_FLAG_MEMBER_WITH_TYPE,
    9.69                 RUNTIME_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE,
    9.70 @@ -193,6 +214,11 @@
    9.71            C2_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE,
    9.72            C2_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE)
    9.73  #endif
    9.74 + ARCH_FLAGS(ARCH_DEVELOP_FLAG_MEMBER_WITH_TYPE,
    9.75 +          ARCH_PRODUCT_FLAG_MEMBER_WITH_TYPE,
    9.76 +          ARCH_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE,
    9.77 +          ARCH_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE,
    9.78 +          ARCH_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE)
    9.79   COMMANDLINEFLAGWITHTYPE_EXT
    9.80   NUM_CommandLineFlagWithType
    9.81  } CommandLineFlagWithType;

mercurial