23 *
24 */
25
26 #ifndef SHARE_VM_SHARK_SHARKCOMPILER_HPP
27 #define SHARE_VM_SHARK_SHARKCOMPILER_HPP
28
29 #include "ci/ciEnv.hpp"
30 #include "ci/ciMethod.hpp"
31 #include "compiler/abstractCompiler.hpp"
32 #include "compiler/compileBroker.hpp"
33 #include "shark/llvmHeaders.hpp"
34 #include "shark/sharkMemoryManager.hpp"
35
36 class SharkContext;
37
38 class SharkCompiler : public AbstractCompiler {
39 public:
40 // Creation
41 SharkCompiler();
42
43 // Name of this compiler
44 const char *name() { return "shark"; }
45
46 // Missing feature tests
47 bool supports_native() { return true; }
48 bool supports_osr() { return true; }
49 bool can_compile_method(methodHandle method) {
50 return ! (method->is_method_handle_intrinsic() || method->is_compiled_lambda_form());
51 }
52
53 // Initialization
54 void initialize();
55
56 // Compile a normal (bytecode) method and install it in the VM
57 void compile_method(ciEnv* env, ciMethod* target, int entry_bci);
58
59 // Print compilation timers and statistics
60 void print_timers();
61
62 // Generate a wrapper for a native (JNI) method
|
23 *
24 */
25
26 #ifndef SHARE_VM_SHARK_SHARKCOMPILER_HPP
27 #define SHARE_VM_SHARK_SHARKCOMPILER_HPP
28
29 #include "ci/ciEnv.hpp"
30 #include "ci/ciMethod.hpp"
31 #include "compiler/abstractCompiler.hpp"
32 #include "compiler/compileBroker.hpp"
33 #include "shark/llvmHeaders.hpp"
34 #include "shark/sharkMemoryManager.hpp"
35
36 class SharkContext;
37
38 class SharkCompiler : public AbstractCompiler {
39 public:
40 // Creation
41 SharkCompiler();
42
43 void init_llvm();
44
45 // Name of this compiler
46 const char *name() { return "shark"; }
47
48 // Missing feature tests
49 bool supports_native() { return true; }
50 bool supports_osr() { return true; }
51 bool can_compile_method(methodHandle method) {
52 return ! (method->is_method_handle_intrinsic() || method->is_compiled_lambda_form());
53 }
54
55 // Initialization
56 void initialize();
57
58 // Compile a normal (bytecode) method and install it in the VM
59 void compile_method(ciEnv* env, ciMethod* target, int entry_bci);
60
61 // Print compilation timers and statistics
62 void print_timers();
63
64 // Generate a wrapper for a native (JNI) method
|