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