Mercurial > hg > truffle
comparison src/share/vm/c1/c1_Compilation.hpp @ 1783:d5d065957597
6953144: Tiered compilation
Summary: Infrastructure for tiered compilation support (interpreter + c1 + c2) for 32 and 64 bit. Simple tiered policy implementation.
Reviewed-by: kvn, never, phh, twisti
author | iveresov |
---|---|
date | Fri, 03 Sep 2010 17:51:07 -0700 |
parents | 4a665be40fd3 |
children | f02a8bbe6ed4 |
comparison
equal
deleted
inserted
replaced
1782:f353275af40e | 1783:d5d065957597 |
---|---|
67 FrameMap* _frame_map; | 67 FrameMap* _frame_map; |
68 C1_MacroAssembler* _masm; | 68 C1_MacroAssembler* _masm; |
69 bool _has_exception_handlers; | 69 bool _has_exception_handlers; |
70 bool _has_fpu_code; | 70 bool _has_fpu_code; |
71 bool _has_unsafe_access; | 71 bool _has_unsafe_access; |
72 bool _would_profile; | |
72 bool _has_method_handle_invokes; // True if this method has MethodHandle invokes. | 73 bool _has_method_handle_invokes; // True if this method has MethodHandle invokes. |
73 const char* _bailout_msg; | 74 const char* _bailout_msg; |
74 ExceptionInfoList* _exception_info_list; | 75 ExceptionInfoList* _exception_info_list; |
75 ExceptionHandlerTable _exception_handler_table; | 76 ExceptionHandlerTable _exception_handler_table; |
76 ImplicitExceptionTable _implicit_exception_table; | 77 ImplicitExceptionTable _implicit_exception_table; |
141 | 142 |
142 // setters | 143 // setters |
143 void set_has_exception_handlers(bool f) { _has_exception_handlers = f; } | 144 void set_has_exception_handlers(bool f) { _has_exception_handlers = f; } |
144 void set_has_fpu_code(bool f) { _has_fpu_code = f; } | 145 void set_has_fpu_code(bool f) { _has_fpu_code = f; } |
145 void set_has_unsafe_access(bool f) { _has_unsafe_access = f; } | 146 void set_has_unsafe_access(bool f) { _has_unsafe_access = f; } |
147 void set_would_profile(bool f) { _would_profile = f; } | |
146 // Add a set of exception handlers covering the given PC offset | 148 // Add a set of exception handlers covering the given PC offset |
147 void add_exception_handlers_for_pco(int pco, XHandlers* exception_handlers); | 149 void add_exception_handlers_for_pco(int pco, XHandlers* exception_handlers); |
148 // Statistics gathering | 150 // Statistics gathering |
149 void notice_inlined_method(ciMethod* method); | 151 void notice_inlined_method(ciMethod* method); |
150 | 152 |
200 // The file can be passed to the command line option -XX:Flags=<filename> | 202 // The file can be passed to the command line option -XX:Flags=<filename> |
201 void compile_only_this_method(); | 203 void compile_only_this_method(); |
202 void compile_only_this_scope(outputStream* st, IRScope* scope); | 204 void compile_only_this_scope(outputStream* st, IRScope* scope); |
203 void exclude_this_method(); | 205 void exclude_this_method(); |
204 #endif // PRODUCT | 206 #endif // PRODUCT |
207 | |
208 bool is_profiling() { | |
209 return env()->comp_level() == CompLevel_full_profile || | |
210 env()->comp_level() == CompLevel_limited_profile; | |
211 } | |
212 bool count_invocations() { return is_profiling(); } | |
213 bool count_backedges() { return is_profiling(); } | |
214 | |
215 // Helpers for generation of profile information | |
216 bool profile_branches() { | |
217 return env()->comp_level() == CompLevel_full_profile && | |
218 C1UpdateMethodData && C1ProfileBranches; | |
219 } | |
220 bool profile_calls() { | |
221 return env()->comp_level() == CompLevel_full_profile && | |
222 C1UpdateMethodData && C1ProfileCalls; | |
223 } | |
224 bool profile_inlined_calls() { | |
225 return profile_calls() && C1ProfileInlinedCalls; | |
226 } | |
227 bool profile_checkcasts() { | |
228 return env()->comp_level() == CompLevel_full_profile && | |
229 C1UpdateMethodData && C1ProfileCheckcasts; | |
230 } | |
205 }; | 231 }; |
206 | 232 |
207 | 233 |
208 // Macro definitions for unified bailout-support | 234 // Macro definitions for unified bailout-support |
209 // The methods bailout() and bailed_out() are present in all classes | 235 // The methods bailout() and bailed_out() are present in all classes |