3290 // Report if there are too many traps at the current method and bci. |
3290 // Report if there are too many traps at the current method and bci. |
3291 // Return true if there was a trap, and/or PerMethodTrapLimit is exceeded. |
3291 // Return true if there was a trap, and/or PerMethodTrapLimit is exceeded. |
3292 bool Compile::too_many_traps(ciMethod* method, |
3292 bool Compile::too_many_traps(ciMethod* method, |
3293 int bci, |
3293 int bci, |
3294 Deoptimization::DeoptReason reason) { |
3294 Deoptimization::DeoptReason reason) { |
3295 if (method->has_injected_profile()) { |
|
3296 return false; |
|
3297 } |
|
3298 ciMethodData* md = method->method_data(); |
3295 ciMethodData* md = method->method_data(); |
3299 if (md->is_empty()) { |
3296 if (md->is_empty()) { |
3300 // Assume the trap has not occurred, or that it occurred only |
3297 // Assume the trap has not occurred, or that it occurred only |
3301 // because of a transient condition during start-up in the interpreter. |
3298 // because of a transient condition during start-up in the interpreter. |
3302 return false; |
3299 return false; |
3342 // Is not eager to return true, since this will cause the compiler to use |
3339 // Is not eager to return true, since this will cause the compiler to use |
3343 // Action_none for a trap point, to avoid too many recompilations. |
3340 // Action_none for a trap point, to avoid too many recompilations. |
3344 bool Compile::too_many_recompiles(ciMethod* method, |
3341 bool Compile::too_many_recompiles(ciMethod* method, |
3345 int bci, |
3342 int bci, |
3346 Deoptimization::DeoptReason reason) { |
3343 Deoptimization::DeoptReason reason) { |
3347 if (method->has_injected_profile()) { |
|
3348 return false; |
|
3349 } |
|
3350 ciMethodData* md = method->method_data(); |
3344 ciMethodData* md = method->method_data(); |
3351 if (md->is_empty()) { |
3345 if (md->is_empty()) { |
3352 // Assume the trap has not occurred, or that it occurred only |
3346 // Assume the trap has not occurred, or that it occurred only |
3353 // because of a transient condition during start-up in the interpreter. |
3347 // because of a transient condition during start-up in the interpreter. |
3354 return false; |
3348 return false; |