annotate src/share/vm/jvmci/jvmci_globals.hpp @ 23760:655fd63024d0

move jvmci flag handling to JVMCIGlobals
author David Leopoldseder <david.d.leopoldseder@oracle.com>
date Fri, 23 Sep 2016 16:33:12 +0200
parents 1051fbaca88b
children d66c74920c43
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
1 /*
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
2 * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
4 *
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
7 * published by the Free Software Foundation.
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
8 *
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
13 * accompanied this code).
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
14 *
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
18 *
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
21 * questions.
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
22 *
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
23 */
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
24
22495
740feb10d15a rename jvmciGlobals to be consistent with c1_globals and c2_globals
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22482
diff changeset
25 #ifndef SHARE_VM_JVMCI_JVMCI_GLOBALS_HPP
740feb10d15a rename jvmciGlobals to be consistent with c1_globals and c2_globals
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22482
diff changeset
26 #define SHARE_VM_JVMCI_JVMCI_GLOBALS_HPP
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
27
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
28 #include "runtime/globals.hpp"
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
29 #ifdef TARGET_ARCH_x86
22495
740feb10d15a rename jvmciGlobals to be consistent with c1_globals and c2_globals
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22482
diff changeset
30 # include "jvmci_globals_x86.hpp"
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
31 #endif
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
32 #ifdef TARGET_ARCH_sparc
22495
740feb10d15a rename jvmciGlobals to be consistent with c1_globals and c2_globals
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22482
diff changeset
33 # include "jvmci_globals_sparc.hpp"
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
34 #endif
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
35 #ifdef TARGET_ARCH_arm
22495
740feb10d15a rename jvmciGlobals to be consistent with c1_globals and c2_globals
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22482
diff changeset
36 # include "jvmci_globals_arm.hpp"
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
37 #endif
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
38 #ifdef TARGET_ARCH_ppc
22495
740feb10d15a rename jvmciGlobals to be consistent with c1_globals and c2_globals
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22482
diff changeset
39 # include "jvmci_globals_ppc.hpp"
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
40 #endif
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
41
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
42 //
21559
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21124
diff changeset
43 // Defines all global flags used by the JVMCI compiler. Only flags that need
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21124
diff changeset
44 // to be accessible to the JVMCI C++ code should be defined here. All other
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21124
diff changeset
45 // JVMCI flags should be defined in JVMCIOptions.java.
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
46 //
21559
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21124
diff changeset
47 #define JVMCI_FLAGS(develop, develop_pd, product, product_pd, notproduct) \
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
48 \
23404
3ef45d0a6d77 Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents: 22744
diff changeset
49 product(bool, EnableJVMCI, true, \
3ef45d0a6d77 Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents: 22744
diff changeset
50 "Enable JVMCI") \
3ef45d0a6d77 Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents: 22744
diff changeset
51 \
3ef45d0a6d77 Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents: 22744
diff changeset
52 product(bool, UseJVMCICompiler, false, \
3ef45d0a6d77 Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents: 22744
diff changeset
53 "Use JVMCI as the default compiler") \
3ef45d0a6d77 Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents: 22744
diff changeset
54 \
21559
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21124
diff changeset
55 product(bool, UseJVMCIClassLoader, true, \
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21124
diff changeset
56 "Load JVMCI classes with separate class loader") \
16395
ad431bf0de07 added support to load classes from graal.jar with a separate class loader
Doug Simon <doug.simon@oracle.com>
parents: 16146
diff changeset
57 \
23404
3ef45d0a6d77 Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents: 22744
diff changeset
58 product(bool, BootstrapJVMCI, false, \
3ef45d0a6d77 Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents: 22744
diff changeset
59 "Bootstrap JVMCI before running Java main method") \
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
60 \
23404
3ef45d0a6d77 Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents: 22744
diff changeset
61 product(bool, PrintBootstrap, true, \
3ef45d0a6d77 Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents: 22744
diff changeset
62 "Print JVMCI bootstrap progress and summary") \
16146
9b27e69f7cec added -XX:+PrintBootstrap option to mirror -G:+PrintBoostrap option
Doug Simon <doug.simon@oracle.com>
parents: 16142
diff changeset
63 \
23404
3ef45d0a6d77 Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents: 22744
diff changeset
64 product(intx, JVMCIThreads, 1, \
3ef45d0a6d77 Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents: 22744
diff changeset
65 "Force number of JVMCI compiler threads to use") \
16142
a87f6927d73e added -XX:GraalThreads to mimic -G:Threads when using native compilation queue for Graal
Doug Simon <doug.simon@oracle.com>
parents: 16113
diff changeset
66 \
23404
3ef45d0a6d77 Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents: 22744
diff changeset
67 product(intx, JVMCIHostThreads, 1, \
3ef45d0a6d77 Remove jvmci VM configuration, and backport UseJVMCICompiler flag.
Roland Schatz <roland.schatz@oracle.com>
parents: 22744
diff changeset
68 "Force number of compiler threads for JVMCI host compiler") \
19895
c3d9637c98ed Add GraalHostThreads flag to overwrite the number of threads spawned for the baseline compiler.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18929
diff changeset
69 \
23705
1051fbaca88b the client VM build is broken when INCLUDE_JVMCI is defined (JDK-8159888)
Doug Simon <doug.simon@oracle.com>
parents: 23408
diff changeset
70 product(bool, CodeInstallSafepointChecks, true, \
1051fbaca88b the client VM build is broken when INCLUDE_JVMCI is defined (JDK-8159888)
Doug Simon <doug.simon@oracle.com>
parents: 23408
diff changeset
71 "Perform explicit safepoint checks while installing code") \
17241
6fcb6691fe5f Add safepoint checks during code installation
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 16624
diff changeset
72 \
22401
31e0737e2fce added -XX:JVMCIServicesDir for specifying an alternative to <jre>/lib/jvmci/services
Doug Simon <doug.simon@oracle.com>
parents: 21559
diff changeset
73 NOT_COMPILER2(product_pd(intx, MaxVectorSize, \
21074
2e35a4ea22ac Add MaxVectorSize to Graal globals
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 19945
diff changeset
74 "Max vector size in bytes, " \
2e35a4ea22ac Add MaxVectorSize to Graal globals
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 19945
diff changeset
75 "actual size could be less depending on elements type")) \
2e35a4ea22ac Add MaxVectorSize to Graal globals
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 19945
diff changeset
76 \
22447
ecbf949a9dcd replace JVMCIDeferredInitBarriers with ReduceInitialCardMarks
Doug Simon <doug.simon@oracle.com>
parents: 22401
diff changeset
77 NOT_COMPILER2(product(bool, ReduceInitialCardMarks, true, \
ecbf949a9dcd replace JVMCIDeferredInitBarriers with ReduceInitialCardMarks
Doug Simon <doug.simon@oracle.com>
parents: 22401
diff changeset
78 "Defer write barriers of young objects")) \
ecbf949a9dcd replace JVMCIDeferredInitBarriers with ReduceInitialCardMarks
Doug Simon <doug.simon@oracle.com>
parents: 22401
diff changeset
79 \
22544
b87d1bf3cd9a renamed TraceJVMCI option to JVMCITraceLevel and ensured all tracing controlled by this option uses the TRACE_jvmci_* macros
Doug Simon <doug.simon@oracle.com>
parents: 22527
diff changeset
80 product(intx, JVMCITraceLevel, 0, \
22482
da68ca58b271 Adjust meaning of TraceJVMCI levels
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22457
diff changeset
81 "Trace level for JVMCI: " \
22544
b87d1bf3cd9a renamed TraceJVMCI option to JVMCITraceLevel and ensured all tracing controlled by this option uses the TRACE_jvmci_* macros
Doug Simon <doug.simon@oracle.com>
parents: 22527
diff changeset
82 "1 means emit a message for each CompilerToVM call," \
b87d1bf3cd9a renamed TraceJVMCI option to JVMCITraceLevel and ensured all tracing controlled by this option uses the TRACE_jvmci_* macros
Doug Simon <doug.simon@oracle.com>
parents: 22527
diff changeset
83 "levels greater than 1 provide progressively greater detail") \
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
84 \
21559
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21124
diff changeset
85 product(intx, JVMCICounterSize, 0, \
13796
8cd953e97e2d rework of benchmark counters: fix size at VM entry, not at build time
Lukas Stadler <lukas.stadler@jku.at>
parents: 13731
diff changeset
86 "Reserved size for benchmark counters") \
8cd953e97e2d rework of benchmark counters: fix size at VM entry, not at build time
Lukas Stadler <lukas.stadler@jku.at>
parents: 13731
diff changeset
87 \
21559
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21124
diff changeset
88 product(bool, JVMCICountersExcludeCompiler, true, \
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21124
diff changeset
89 "Exclude JVMCI compiler threads from benchmark counters") \
13796
8cd953e97e2d rework of benchmark counters: fix size at VM entry, not at build time
Lukas Stadler <lukas.stadler@jku.at>
parents: 13731
diff changeset
90 \
21559
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21124
diff changeset
91 develop(bool, JVMCIUseFastLocking, true, \
7154
5d0bb7d52783 changes to support Graal co-existing with the other HotSpot compiler(s) and being used for explicit compilation requests and code installation via the Graal API
Doug Simon <doug.simon@oracle.com>
parents: 7125
diff changeset
92 "Use fast inlined locking code") \
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
93 \
21559
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21124
diff changeset
94 product(intx, JVMCINMethodSizeLimit, (80*K)*wordSize, \
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
95 "Maximum size of a compiled method.") \
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
96 \
13642
10f943c778f6 Add code to trace uncollected speculations
Gilles Duboscq <duboscq@ssw.jku.at>
parents: 12739
diff changeset
97 develop(bool, TraceUncollectedSpeculations, false, \
23408
f84a5ac3be22 make JVMCI JDK immutable and sharable among different JVMCI clients
Doug Simon <doug.simon@oracle.com>
parents: 23404
diff changeset
98 "Print message when a failed speculation was not collected")
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
99
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
100
21559
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21124
diff changeset
101 // Read default values for JVMCI globals
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
102
21559
be896a1983c0 recast all Graal native code as JVMCI code (JBS:GRAAL-53)
Doug Simon <doug.simon@oracle.com>
parents: 21124
diff changeset
103 JVMCI_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_NOTPRODUCT_FLAG)
7125
1baf7f1e3f23 decoupled C++ Graal runtime from C1
Doug Simon <doug.simon@oracle.com>
parents:
diff changeset
104
23760
655fd63024d0 move jvmci flag handling to JVMCIGlobals
David Leopoldseder <david.d.leopoldseder@oracle.com>
parents: 23705
diff changeset
105
655fd63024d0 move jvmci flag handling to JVMCIGlobals
David Leopoldseder <david.d.leopoldseder@oracle.com>
parents: 23705
diff changeset
106 class JVMCIGlobals {
655fd63024d0 move jvmci flag handling to JVMCIGlobals
David Leopoldseder <david.d.leopoldseder@oracle.com>
parents: 23705
diff changeset
107 public:
655fd63024d0 move jvmci flag handling to JVMCIGlobals
David Leopoldseder <david.d.leopoldseder@oracle.com>
parents: 23705
diff changeset
108 static void set_jvmci_specific_flags();
655fd63024d0 move jvmci flag handling to JVMCIGlobals
David Leopoldseder <david.d.leopoldseder@oracle.com>
parents: 23705
diff changeset
109 // Return true if jvmci flags are consistent. If not consistent,
655fd63024d0 move jvmci flag handling to JVMCIGlobals
David Leopoldseder <david.d.leopoldseder@oracle.com>
parents: 23705
diff changeset
110 // an error message describing the inconsistency is printed before
655fd63024d0 move jvmci flag handling to JVMCIGlobals
David Leopoldseder <david.d.leopoldseder@oracle.com>
parents: 23705
diff changeset
111 // returning false.
655fd63024d0 move jvmci flag handling to JVMCIGlobals
David Leopoldseder <david.d.leopoldseder@oracle.com>
parents: 23705
diff changeset
112 static bool check_jvmci_flags_are_consistent();
655fd63024d0 move jvmci flag handling to JVMCIGlobals
David Leopoldseder <david.d.leopoldseder@oracle.com>
parents: 23705
diff changeset
113 };
655fd63024d0 move jvmci flag handling to JVMCIGlobals
David Leopoldseder <david.d.leopoldseder@oracle.com>
parents: 23705
diff changeset
114
22495
740feb10d15a rename jvmciGlobals to be consistent with c1_globals and c2_globals
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 22482
diff changeset
115 #endif // SHARE_VM_JVMCI_JVMCI_GLOBALS_HPP