The last use in a block that doesn't have successors

(return or unreachable) is a kill.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67357 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman 2009-03-20 01:28:21 +00:00
parent 23d8539d1e
commit 654c98c4f3

View File

@ -131,6 +131,11 @@ LiveValues::Memo &LiveValues::compute(const Value *V) {
// Note the block in which this use occurs.
M.Used.insert(UseBB);
// If the use block doesn't have successors, the value can be
// considered killed.
if (succ_begin(UseBB) == succ_end(UseBB))
M.Killed.insert(UseBB);
// Observe whether the value is used outside of the loop in which
// it is defined. Switch to an enclosing loop if necessary.
for (; L; L = L->getParentLoop())