hotspot/src/share/vm/ci/ciMethod.cpp
changeset 3910 67050ceda719
parent 2867 69187054225f
child 4566 b363f6ef4068
equal deleted inserted replaced
3909:2e59fa985601 3910:67050ceda719
   323   return NULL;
   323   return NULL;
   324 #endif // COMPILER2
   324 #endif // COMPILER2
   325 }
   325 }
   326 
   326 
   327 // ------------------------------------------------------------------
   327 // ------------------------------------------------------------------
   328 // ciMethod::liveness_at_bci
   328 // ciMethod::raw_liveness_at_bci
   329 //
   329 //
   330 // Which local variables are live at a specific bci?
   330 // Which local variables are live at a specific bci?
   331 MethodLivenessResult ciMethod::liveness_at_bci(int bci) {
   331 MethodLivenessResult ciMethod::raw_liveness_at_bci(int bci) {
   332   check_is_loaded();
   332   check_is_loaded();
   333   if (_liveness == NULL) {
   333   if (_liveness == NULL) {
   334     // Create the liveness analyzer.
   334     // Create the liveness analyzer.
   335     Arena* arena = CURRENT_ENV->arena();
   335     Arena* arena = CURRENT_ENV->arena();
   336     _liveness = new (arena) MethodLiveness(arena, this);
   336     _liveness = new (arena) MethodLiveness(arena, this);
   337     _liveness->compute_liveness();
   337     _liveness->compute_liveness();
   338   }
   338   }
   339   MethodLivenessResult result = _liveness->get_liveness_at(bci);
   339   return _liveness->get_liveness_at(bci);
       
   340 }
       
   341 
       
   342 // ------------------------------------------------------------------
       
   343 // ciMethod::liveness_at_bci
       
   344 //
       
   345 // Which local variables are live at a specific bci?  When debugging
       
   346 // will return true for all locals in some cases to improve debug
       
   347 // information.
       
   348 MethodLivenessResult ciMethod::liveness_at_bci(int bci) {
       
   349   MethodLivenessResult result = raw_liveness_at_bci(bci);
   340   if (CURRENT_ENV->jvmti_can_access_local_variables() || DeoptimizeALot || CompileTheWorld) {
   350   if (CURRENT_ENV->jvmti_can_access_local_variables() || DeoptimizeALot || CompileTheWorld) {
   341     // Keep all locals live for the user's edification and amusement.
   351     // Keep all locals live for the user's edification and amusement.
   342     result.at_put_range(0, result.size(), true);
   352     result.at_put_range(0, result.size(), true);
   343   }
   353   }
   344   return result;
   354   return result;