Mercurial > hg > truffle
diff src/share/vm/ci/ciMethod.cpp @ 1000:a1423fe86a18
Merge
author | trims |
---|---|
date | Fri, 09 Oct 2009 15:18:52 -0700 |
parents | 3a2aa26bdc58 |
children | 97125851f396 |
line wrap: on
line diff
--- a/src/share/vm/ci/ciMethod.cpp Fri Oct 02 11:26:25 2009 -0700 +++ b/src/share/vm/ci/ciMethod.cpp Fri Oct 09 15:18:52 2009 -0700 @@ -325,10 +325,10 @@ } // ------------------------------------------------------------------ -// ciMethod::liveness_at_bci +// ciMethod::raw_liveness_at_bci // // Which local variables are live at a specific bci? -MethodLivenessResult ciMethod::liveness_at_bci(int bci) { +MethodLivenessResult ciMethod::raw_liveness_at_bci(int bci) { check_is_loaded(); if (_liveness == NULL) { // Create the liveness analyzer. @@ -336,7 +336,17 @@ _liveness = new (arena) MethodLiveness(arena, this); _liveness->compute_liveness(); } - MethodLivenessResult result = _liveness->get_liveness_at(bci); + return _liveness->get_liveness_at(bci); +} + +// ------------------------------------------------------------------ +// ciMethod::liveness_at_bci +// +// Which local variables are live at a specific bci? When debugging +// 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);