Mon, 27 Aug 2012 15:17:17 -0700
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>
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;