hotspot/src/share/vm/opto/compile.cpp
changeset 28912 27fac2f8fdbe
parent 28395 fbe08d791778
child 29337 ef2be52deeaf
child 29083 5e7bce2712ac
equal deleted inserted replaced
28730:106944a21769 28912:27fac2f8fdbe
  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;