16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 #ifndef SHARE_VM_JVMCI_JVMCI_COMPILER_HPP
25 #define SHARE_VM_JVMCI_JVMCI_COMPILER_HPP
26
27 #include "compiler/abstractCompiler.hpp"
28 #include "jvmci/jvmciEnv.hpp"
29 #include "utilities/exceptions.hpp"
30
31 class JVMCICompiler : public AbstractCompiler {
32 private:
33 bool _bootstrapping;
34
35 /**
36 * Number of methods successfully compiled by a call to
37 * JVMCICompiler::compile_method().
38 */
39 volatile int _methods_compiled;
40
41 static JVMCICompiler* _instance;
42
43 static elapsedTimer _codeInstallTimer;
44
45 static void abort_on_pending_exception(Handle exception, const char* message, bool dump_core = false);
46
47 public:
48 JVMCICompiler();
49
50 static JVMCICompiler* instance(TRAPS) {
51 if (!EnableJVMCI) {
52 THROW_MSG_NULL(vmSymbols::java_lang_InternalError(), "JVMCI is not enabled")
53 }
54 return _instance;
55 }
|
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 #ifndef SHARE_VM_JVMCI_JVMCI_COMPILER_HPP
25 #define SHARE_VM_JVMCI_JVMCI_COMPILER_HPP
26
27 #include "compiler/abstractCompiler.hpp"
28 #include "jvmci/jvmciEnv.hpp"
29 #include "utilities/exceptions.hpp"
30
31 class JVMCICompiler : public AbstractCompiler {
32 private:
33 bool _bootstrapping;
34
35 /**
36 * True if we have seen a bootstrap compilation request.
37 */
38 volatile bool _bootstrap_compilation_request_seen;
39
40 /**
41 * Number of methods successfully compiled by a call to
42 * JVMCICompiler::compile_method().
43 */
44 volatile int _methods_compiled;
45
46 static JVMCICompiler* _instance;
47
48 static elapsedTimer _codeInstallTimer;
49
50 static void abort_on_pending_exception(Handle exception, const char* message, bool dump_core = false);
51
52 public:
53 JVMCICompiler();
54
55 static JVMCICompiler* instance(TRAPS) {
56 if (!EnableJVMCI) {
57 THROW_MSG_NULL(vmSymbols::java_lang_InternalError(), "JVMCI is not enabled")
58 }
59 return _instance;
60 }
|