35 public:
36 C2Compiler() : AbstractCompiler(compiler_c2) {}
37
38 // Name
39 const char *name() { return "C2"; }
40 void initialize();
41
42 // Compilation entry point for methods
43 void compile_method(ciEnv* env,
44 ciMethod* target,
45 int entry_bci,
46 bool install_code,
47 DirectiveSet* directive);
48
49 // sentinel value used to trigger backtracking in compile_method().
50 static const char* retry_no_subsuming_loads();
51 static const char* retry_no_escape_analysis();
52 static const char* retry_no_iterative_escape_analysis();
53 static const char* retry_no_reduce_allocation_merges();
54 static const char* retry_no_locks_coarsening();
55 static const char* retry_no_superword();
56
57 // Print compilation timers and statistics
58 void print_timers();
59
60 // Return true if the intrinsification of a method supported by the compiler
61 // assuming a non-virtual dispatch. (A virtual dispatch is
62 // possible for only a limited set of available intrinsics whereas
63 // a non-virtual dispatch is possible for all available intrinsics.)
64 // Return false otherwise.
65 virtual bool is_intrinsic_supported(const methodHandle& method);
66
67 // Return true if the intrinsic `id` is supported by C2
68 static bool is_intrinsic_supported(vmIntrinsics::ID id);
69 // Initial size of the code buffer (may be increased at runtime)
70 static int initial_code_buffer_size(int const_size = initial_const_capacity);
71 };
72
73 #endif // SHARE_OPTO_C2COMPILER_HPP
|
35 public:
36 C2Compiler() : AbstractCompiler(compiler_c2) {}
37
38 // Name
39 const char *name() { return "C2"; }
40 void initialize();
41
42 // Compilation entry point for methods
43 void compile_method(ciEnv* env,
44 ciMethod* target,
45 int entry_bci,
46 bool install_code,
47 DirectiveSet* directive);
48
49 // sentinel value used to trigger backtracking in compile_method().
50 static const char* retry_no_subsuming_loads();
51 static const char* retry_no_escape_analysis();
52 static const char* retry_no_iterative_escape_analysis();
53 static const char* retry_no_reduce_allocation_merges();
54 static const char* retry_no_locks_coarsening();
55 static const char* retry_no_clinit_barriers();
56 static const char* retry_no_superword();
57
58 // Print compilation timers and statistics
59 void print_timers();
60
61 // Return true if the intrinsification of a method supported by the compiler
62 // assuming a non-virtual dispatch. (A virtual dispatch is
63 // possible for only a limited set of available intrinsics whereas
64 // a non-virtual dispatch is possible for all available intrinsics.)
65 // Return false otherwise.
66 virtual bool is_intrinsic_supported(const methodHandle& method);
67
68 // Return true if the intrinsic `id` is supported by C2
69 static bool is_intrinsic_supported(vmIntrinsics::ID id);
70 // Initial size of the code buffer (may be increased at runtime)
71 static int initial_code_buffer_size(int const_size = initial_const_capacity);
72 };
73
74 #endif // SHARE_OPTO_C2COMPILER_HPP
|