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