equal
deleted
inserted
replaced
3103 } |
3103 } |
3104 break; |
3104 break; |
3105 default: |
3105 default: |
3106 assert( !n->is_Call(), "" ); |
3106 assert( !n->is_Call(), "" ); |
3107 assert( !n->is_Mem(), "" ); |
3107 assert( !n->is_Mem(), "" ); |
|
3108 assert( nop != Op_ProfileBoolean, "should be eliminated during IGVN"); |
3108 break; |
3109 break; |
3109 } |
3110 } |
3110 |
3111 |
3111 // Collect CFG split points |
3112 // Collect CFG split points |
3112 if (n->is_MultiBranch()) |
3113 if (n->is_MultiBranch()) |
3319 // Report if there are too many traps at the current method and bci. |
3320 // Report if there are too many traps at the current method and bci. |
3320 // Return true if there was a trap, and/or PerMethodTrapLimit is exceeded. |
3321 // Return true if there was a trap, and/or PerMethodTrapLimit is exceeded. |
3321 bool Compile::too_many_traps(ciMethod* method, |
3322 bool Compile::too_many_traps(ciMethod* method, |
3322 int bci, |
3323 int bci, |
3323 Deoptimization::DeoptReason reason) { |
3324 Deoptimization::DeoptReason reason) { |
|
3325 if (method->has_injected_profile()) { |
|
3326 return false; |
|
3327 } |
3324 ciMethodData* md = method->method_data(); |
3328 ciMethodData* md = method->method_data(); |
3325 if (md->is_empty()) { |
3329 if (md->is_empty()) { |
3326 // Assume the trap has not occurred, or that it occurred only |
3330 // Assume the trap has not occurred, or that it occurred only |
3327 // because of a transient condition during start-up in the interpreter. |
3331 // because of a transient condition during start-up in the interpreter. |
3328 return false; |
3332 return false; |
3368 // Is not eager to return true, since this will cause the compiler to use |
3372 // Is not eager to return true, since this will cause the compiler to use |
3369 // Action_none for a trap point, to avoid too many recompilations. |
3373 // Action_none for a trap point, to avoid too many recompilations. |
3370 bool Compile::too_many_recompiles(ciMethod* method, |
3374 bool Compile::too_many_recompiles(ciMethod* method, |
3371 int bci, |
3375 int bci, |
3372 Deoptimization::DeoptReason reason) { |
3376 Deoptimization::DeoptReason reason) { |
|
3377 if (method->has_injected_profile()) { |
|
3378 return false; |
|
3379 } |
3373 ciMethodData* md = method->method_data(); |
3380 ciMethodData* md = method->method_data(); |
3374 if (md->is_empty()) { |
3381 if (md->is_empty()) { |
3375 // Assume the trap has not occurred, or that it occurred only |
3382 // Assume the trap has not occurred, or that it occurred only |
3376 // because of a transient condition during start-up in the interpreter. |
3383 // because of a transient condition during start-up in the interpreter. |
3377 return false; |
3384 return false; |