summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2008-11-12 23:24:15 +0000
committerDan Gohman <gohman@apple.com>2008-11-12 23:24:15 +0000
commit7fc610f07311ecbbbdf163e5bcb45c636b87c983 (patch)
treee2800e2811bbc20e61d0682982d08b4344dc7c74
parentbc5cbb8be9d935240be5a57a8f37c5258a9d0563 (diff)
downloadllvm-7fc610f07311ecbbbdf163e5bcb45c636b87c983.tar.gz
llvm-7fc610f07311ecbbbdf163e5bcb45c636b87c983.tar.bz2
llvm-7fc610f07311ecbbbdf163e5bcb45c636b87c983.tar.xz
Revert the part of r59145 that changed the comment about
virtual registers possibly having multiple kills while still being defined and killed in the same block. If LiveIntervals is manually re-run after two-address lowering, it currently does add extra kills to two-address instructions, but this is considered a bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59194 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/CodeGen/LiveVariables.h17
1 files changed, 10 insertions, 7 deletions
diff --git a/include/llvm/CodeGen/LiveVariables.h b/include/llvm/CodeGen/LiveVariables.h
index f6bc83162e..346fd9661d 100644
--- a/include/llvm/CodeGen/LiveVariables.h
+++ b/include/llvm/CodeGen/LiveVariables.h
@@ -51,13 +51,16 @@ public:
/// throughout, the set of blocks in which the instruction is actually used,
/// and the set of non-phi instructions that are the last users of the value.
///
- /// If the value is live throughout any blocks, these blocks are listed in
- /// AliveBlocks. Blocks where the liveness range ends are not included in
- /// AliveBlocks, instead being captured by the Kills set. In these blocks,
- /// the value is live into the block (unless the value is defined and killed
- /// in the same block) and lives until the specified instruction. Note that
- /// there cannot ever be a value whose Kills set contains two instructions
- /// from the same basic block.
+ /// In the common case where a value is defined and killed in the same block,
+ /// There is one killing instruction, and AliveBlocks is empty.
+ ///
+ /// Otherwise, the value is live out of the block. If the value is live
+ /// throughout any blocks, these blocks are listed in AliveBlocks. Blocks
+ /// where the liveness range ends are not included in AliveBlocks, instead
+ /// being captured by the Kills set. In these blocks, the value is live into
+ /// the block (unless the value is defined and killed in the same block) and
+ /// lives until the specified instruction. Note that there cannot ever be a
+ /// value whose Kills set contains two instructions from the same basic block.
///
/// PHI nodes complicate things a bit. If a PHI node is the last user of a
/// value in one of its predecessor blocks, it is not listed in the kills set,