annotate src/cpu/sparc/vm/c2_globals_sparc.hpp @ 113:ba764ed4b6f2

6420645: Create a vm that uses compressed oops for up to 32gb heapsizes Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
author coleenp
date Sun, 13 Apr 2008 17:43:42 -0400
parents a61af66fc99e
children 473cce303f13
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a61af66fc99e Initial load
duke
parents:
diff changeset
1 /*
a61af66fc99e Initial load
duke
parents:
diff changeset
2 * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved.
a61af66fc99e Initial load
duke
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
a61af66fc99e Initial load
duke
parents:
diff changeset
4 *
a61af66fc99e Initial load
duke
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
a61af66fc99e Initial load
duke
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
a61af66fc99e Initial load
duke
parents:
diff changeset
7 * published by the Free Software Foundation.
a61af66fc99e Initial load
duke
parents:
diff changeset
8 *
a61af66fc99e Initial load
duke
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
a61af66fc99e Initial load
duke
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
a61af66fc99e Initial load
duke
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
a61af66fc99e Initial load
duke
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
a61af66fc99e Initial load
duke
parents:
diff changeset
13 * accompanied this code).
a61af66fc99e Initial load
duke
parents:
diff changeset
14 *
a61af66fc99e Initial load
duke
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
a61af66fc99e Initial load
duke
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
a61af66fc99e Initial load
duke
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
a61af66fc99e Initial load
duke
parents:
diff changeset
18 *
a61af66fc99e Initial load
duke
parents:
diff changeset
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
a61af66fc99e Initial load
duke
parents:
diff changeset
20 * CA 95054 USA or visit www.sun.com if you need additional information or
a61af66fc99e Initial load
duke
parents:
diff changeset
21 * have any questions.
a61af66fc99e Initial load
duke
parents:
diff changeset
22 *
a61af66fc99e Initial load
duke
parents:
diff changeset
23 */
a61af66fc99e Initial load
duke
parents:
diff changeset
24
a61af66fc99e Initial load
duke
parents:
diff changeset
25 // Sets the default values for platform dependent flags used by the server compiler.
a61af66fc99e Initial load
duke
parents:
diff changeset
26 // (see c2_globals.hpp). Alpha-sorted.
a61af66fc99e Initial load
duke
parents:
diff changeset
27
a61af66fc99e Initial load
duke
parents:
diff changeset
28 define_pd_global(bool, BackgroundCompilation, true);
a61af66fc99e Initial load
duke
parents:
diff changeset
29 define_pd_global(bool, CICompileOSR, true);
a61af66fc99e Initial load
duke
parents:
diff changeset
30 define_pd_global(bool, InlineIntrinsics, false);
a61af66fc99e Initial load
duke
parents:
diff changeset
31 define_pd_global(bool, PreferInterpreterNativeStubs, false);
a61af66fc99e Initial load
duke
parents:
diff changeset
32 define_pd_global(bool, ProfileTraps, true);
a61af66fc99e Initial load
duke
parents:
diff changeset
33 define_pd_global(bool, UseOnStackReplacement, true);
a61af66fc99e Initial load
duke
parents:
diff changeset
34 #ifdef CC_INTERP
a61af66fc99e Initial load
duke
parents:
diff changeset
35 define_pd_global(bool, ProfileInterpreter, false);
a61af66fc99e Initial load
duke
parents:
diff changeset
36 #else
a61af66fc99e Initial load
duke
parents:
diff changeset
37 define_pd_global(bool, ProfileInterpreter, true);
a61af66fc99e Initial load
duke
parents:
diff changeset
38 #endif // CC_INTERP
a61af66fc99e Initial load
duke
parents:
diff changeset
39 define_pd_global(bool, TieredCompilation, false);
a61af66fc99e Initial load
duke
parents:
diff changeset
40 #ifdef TIERED
a61af66fc99e Initial load
duke
parents:
diff changeset
41 define_pd_global(intx, CompileThreshold, 1000);
a61af66fc99e Initial load
duke
parents:
diff changeset
42 define_pd_global(intx, BackEdgeThreshold, 14000);
a61af66fc99e Initial load
duke
parents:
diff changeset
43 #else
a61af66fc99e Initial load
duke
parents:
diff changeset
44 define_pd_global(intx, CompileThreshold, 10000);
a61af66fc99e Initial load
duke
parents:
diff changeset
45 define_pd_global(intx, BackEdgeThreshold, 140000);
a61af66fc99e Initial load
duke
parents:
diff changeset
46 #endif // TIERED
a61af66fc99e Initial load
duke
parents:
diff changeset
47
a61af66fc99e Initial load
duke
parents:
diff changeset
48 define_pd_global(intx, Tier2CompileThreshold, 10000); // unused level
a61af66fc99e Initial load
duke
parents:
diff changeset
49 define_pd_global(intx, Tier3CompileThreshold, 10000);
a61af66fc99e Initial load
duke
parents:
diff changeset
50 define_pd_global(intx, Tier4CompileThreshold, 40000);
a61af66fc99e Initial load
duke
parents:
diff changeset
51
a61af66fc99e Initial load
duke
parents:
diff changeset
52 define_pd_global(intx, Tier2BackEdgeThreshold, 100000);
a61af66fc99e Initial load
duke
parents:
diff changeset
53 define_pd_global(intx, Tier3BackEdgeThreshold, 100000);
a61af66fc99e Initial load
duke
parents:
diff changeset
54 define_pd_global(intx, Tier4BackEdgeThreshold, 100000);
a61af66fc99e Initial load
duke
parents:
diff changeset
55
a61af66fc99e Initial load
duke
parents:
diff changeset
56 define_pd_global(intx, OnStackReplacePercentage, 140);
a61af66fc99e Initial load
duke
parents:
diff changeset
57 define_pd_global(intx, ConditionalMoveLimit, 4);
a61af66fc99e Initial load
duke
parents:
diff changeset
58 define_pd_global(intx, FLOATPRESSURE, 52); // C2 on V9 gets to use all the float/double registers
a61af66fc99e Initial load
duke
parents:
diff changeset
59 define_pd_global(intx, FreqInlineSize, 175);
a61af66fc99e Initial load
duke
parents:
diff changeset
60 define_pd_global(intx, INTPRESSURE, 48); // large register set
a61af66fc99e Initial load
duke
parents:
diff changeset
61 define_pd_global(intx, InteriorEntryAlignment, 16); // = CodeEntryAlignment
a61af66fc99e Initial load
duke
parents:
diff changeset
62 define_pd_global(intx, NewRatio, 2);
a61af66fc99e Initial load
duke
parents:
diff changeset
63 define_pd_global(intx, NewSizeThreadIncrease, ScaleForWordSize(4*K));
a61af66fc99e Initial load
duke
parents:
diff changeset
64 // The default setting 16/16 seems to work best.
a61af66fc99e Initial load
duke
parents:
diff changeset
65 // (For _228_jack 16/16 is 2% better than 4/4, 16/4, 32/32, 32/16, or 16/32.)
a61af66fc99e Initial load
duke
parents:
diff changeset
66 define_pd_global(intx, OptoLoopAlignment, 16); // = 4*wordSize
a61af66fc99e Initial load
duke
parents:
diff changeset
67 define_pd_global(intx, RegisterCostAreaRatio, 12000);
a61af66fc99e Initial load
duke
parents:
diff changeset
68 define_pd_global(bool, UseTLAB, true);
a61af66fc99e Initial load
duke
parents:
diff changeset
69 define_pd_global(bool, ResizeTLAB, true);
a61af66fc99e Initial load
duke
parents:
diff changeset
70 define_pd_global(intx, LoopUnrollLimit, 60); // Design center runs on 1.3.1
a61af66fc99e Initial load
duke
parents:
diff changeset
71
a61af66fc99e Initial load
duke
parents:
diff changeset
72 // Peephole and CISC spilling both break the graph, and so makes the
a61af66fc99e Initial load
duke
parents:
diff changeset
73 // scheduler sick.
a61af66fc99e Initial load
duke
parents:
diff changeset
74 define_pd_global(bool, OptoPeephole, false);
a61af66fc99e Initial load
duke
parents:
diff changeset
75 define_pd_global(bool, UseCISCSpill, false);
a61af66fc99e Initial load
duke
parents:
diff changeset
76 define_pd_global(bool, OptoBundling, false);
a61af66fc99e Initial load
duke
parents:
diff changeset
77 define_pd_global(bool, OptoScheduling, true);
a61af66fc99e Initial load
duke
parents:
diff changeset
78
a61af66fc99e Initial load
duke
parents:
diff changeset
79 #ifdef _LP64
a61af66fc99e Initial load
duke
parents:
diff changeset
80 // We need to make sure that all generated code is within
a61af66fc99e Initial load
duke
parents:
diff changeset
81 // 2 gigs of the libjvm.so runtime routines so we can use
a61af66fc99e Initial load
duke
parents:
diff changeset
82 // the faster "call" instruction rather than the expensive
a61af66fc99e Initial load
duke
parents:
diff changeset
83 // sequence of instructions to load a 64 bit pointer.
a61af66fc99e Initial load
duke
parents:
diff changeset
84 //
a61af66fc99e Initial load
duke
parents:
diff changeset
85 // InitialCodeCacheSize derived from specjbb2000 run.
a61af66fc99e Initial load
duke
parents:
diff changeset
86 define_pd_global(intx, InitialCodeCacheSize, 2048*K); // Integral multiple of CodeCacheExpansionSize
a61af66fc99e Initial load
duke
parents:
diff changeset
87 define_pd_global(intx, ReservedCodeCacheSize, 48*M);
a61af66fc99e Initial load
duke
parents:
diff changeset
88 define_pd_global(intx, CodeCacheExpansionSize, 64*K);
a61af66fc99e Initial load
duke
parents:
diff changeset
89
a61af66fc99e Initial load
duke
parents:
diff changeset
90 // Ergonomics related flags
a61af66fc99e Initial load
duke
parents:
diff changeset
91 define_pd_global(uintx, DefaultMaxRAM, 32*G);
a61af66fc99e Initial load
duke
parents:
diff changeset
92 #else
a61af66fc99e Initial load
duke
parents:
diff changeset
93 // InitialCodeCacheSize derived from specjbb2000 run.
a61af66fc99e Initial load
duke
parents:
diff changeset
94 define_pd_global(intx, InitialCodeCacheSize, 1536*K); // Integral multiple of CodeCacheExpansionSize
a61af66fc99e Initial load
duke
parents:
diff changeset
95 define_pd_global(intx, ReservedCodeCacheSize, 32*M);
a61af66fc99e Initial load
duke
parents:
diff changeset
96 define_pd_global(intx, CodeCacheExpansionSize, 32*K);
a61af66fc99e Initial load
duke
parents:
diff changeset
97 // Ergonomics related flags
a61af66fc99e Initial load
duke
parents:
diff changeset
98 define_pd_global(uintx, DefaultMaxRAM, 1*G);
a61af66fc99e Initial load
duke
parents:
diff changeset
99 #endif
a61af66fc99e Initial load
duke
parents:
diff changeset
100 define_pd_global(uintx,CodeCacheMinBlockLength, 4);
a61af66fc99e Initial load
duke
parents:
diff changeset
101
a61af66fc99e Initial load
duke
parents:
diff changeset
102 // Heap related flags
a61af66fc99e Initial load
duke
parents:
diff changeset
103 define_pd_global(uintx, PermSize, ScaleForWordSize(16*M));
a61af66fc99e Initial load
duke
parents:
diff changeset
104 define_pd_global(uintx, MaxPermSize, ScaleForWordSize(64*M));
a61af66fc99e Initial load
duke
parents:
diff changeset
105
a61af66fc99e Initial load
duke
parents:
diff changeset
106 // Ergonomics related flags
a61af66fc99e Initial load
duke
parents:
diff changeset
107 define_pd_global(bool, NeverActAsServerClassMachine, false);