234 } 235 bool profile_inlined_calls() { 236 return profile_calls() && C1ProfileInlinedCalls; 237 } 238 bool profile_checkcasts() { 239 return env()->comp_level() == CompLevel_full_profile && 240 C1UpdateMethodData && C1ProfileCheckcasts; 241 } 242 bool profile_parameters() { 243 return env()->comp_level() == CompLevel_full_profile && 244 C1UpdateMethodData && MethodData::profile_parameters(); 245 } 246 bool profile_arguments() { 247 return env()->comp_level() == CompLevel_full_profile && 248 C1UpdateMethodData && MethodData::profile_arguments(); 249 } 250 bool profile_return() { 251 return env()->comp_level() == CompLevel_full_profile && 252 C1UpdateMethodData && MethodData::profile_return(); 253 } 254 // will compilation make optimistic assumptions that might lead to 255 // deoptimization and that the runtime will account for? 256 bool is_optimistic() const { 257 return !TieredCompilation && 258 (RangeCheckElimination || UseLoopInvariantCodeMotion) && 259 method()->method_data()->trap_count(Deoptimization::Reason_none) == 0; 260 } 261 262 ciKlass* cha_exact_type(ciType* type); 263 264 // Dump inlining replay data to the stream. 265 void dump_inline_data(outputStream* out) { /* do nothing now */ } 266 267 // How much stack space would the interpreter need in case of a 268 // deoptimization (worst case) 269 void update_interpreter_frame_size(int size) { 270 if (_interpreter_frame_size < size) { 271 _interpreter_frame_size = size; 272 } 273 } | 234 } 235 bool profile_inlined_calls() { 236 return profile_calls() && C1ProfileInlinedCalls; 237 } 238 bool profile_checkcasts() { 239 return env()->comp_level() == CompLevel_full_profile && 240 C1UpdateMethodData && C1ProfileCheckcasts; 241 } 242 bool profile_parameters() { 243 return env()->comp_level() == CompLevel_full_profile && 244 C1UpdateMethodData && MethodData::profile_parameters(); 245 } 246 bool profile_arguments() { 247 return env()->comp_level() == CompLevel_full_profile && 248 C1UpdateMethodData && MethodData::profile_arguments(); 249 } 250 bool profile_return() { 251 return env()->comp_level() == CompLevel_full_profile && 252 C1UpdateMethodData && MethodData::profile_return(); 253 } 254 bool age_code() const { 255 return MethodCounters::should_nmethod_age(_method->nmethod_age()); 256 } 257 258 // will compilation make optimistic assumptions that might lead to 259 // deoptimization and that the runtime will account for? 260 bool is_optimistic() const { 261 return !TieredCompilation && 262 (RangeCheckElimination || UseLoopInvariantCodeMotion) && 263 method()->method_data()->trap_count(Deoptimization::Reason_none) == 0; 264 } 265 266 ciKlass* cha_exact_type(ciType* type); 267 268 // Dump inlining replay data to the stream. 269 void dump_inline_data(outputStream* out) { /* do nothing now */ } 270 271 // How much stack space would the interpreter need in case of a 272 // deoptimization (worst case) 273 void update_interpreter_frame_size(int size) { 274 if (_interpreter_frame_size < size) { 275 _interpreter_frame_size = size; 276 } 277 } |