src/share/vm/ci/ciMethod.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 6854812 Cdiff src/share/vm/ci/ciMethod.cpp

src/share/vm/ci/ciMethod.cpp

Print this page

        

*** 323,345 **** return NULL; #endif // COMPILER2 } // ------------------------------------------------------------------ ! // ciMethod::liveness_at_bci // // Which local variables are live at a specific bci? ! MethodLivenessResult ciMethod::liveness_at_bci(int bci) { check_is_loaded(); if (_liveness == NULL) { // Create the liveness analyzer. Arena* arena = CURRENT_ENV->arena(); _liveness = new (arena) MethodLiveness(arena, this); _liveness->compute_liveness(); } ! MethodLivenessResult result = _liveness->get_liveness_at(bci); ! if (CURRENT_ENV->jvmti_can_access_local_variables() || DeoptimizeALot || CompileTheWorld) { // Keep all locals live for the user's edification and amusement. result.at_put_range(0, result.size(), true); } return result; } --- 323,354 ---- return NULL; #endif // COMPILER2 } // ------------------------------------------------------------------ ! // ciMethod::raw_liveness_at_bci // // Which local variables are live at a specific bci? ! MethodLivenessResult ciMethod::raw_liveness_at_bci(int bci) { check_is_loaded(); if (_liveness == NULL) { // Create the liveness analyzer. Arena* arena = CURRENT_ENV->arena(); _liveness = new (arena) MethodLiveness(arena, this); _liveness->compute_liveness(); } ! return _liveness->get_liveness_at(bci); ! } ! ! // ------------------------------------------------------------------ ! // ciMethod::liveness_at_bci ! // ! // Which local variables are live at a specific bci? Will return true ! // for all locals in some cases to improve debug information. ! MethodLivenessResult ciMethod::liveness_at_bci(int bci) { ! MethodLivenessResult result = raw_liveness_at_bci(bci); ! if ((CURRENT_ENV->jvmti_can_access_local_variables() || DeoptimizeALot || CompileTheWorld)) { // Keep all locals live for the user's edification and amusement. result.at_put_range(0, result.size(), true); } return result; }
src/share/vm/ci/ciMethod.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File