From 7fc610f07311ecbbbdf163e5bcb45c636b87c983 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Wed, 12 Nov 2008 23:24:15 +0000 Subject: [PATCH] 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 --- include/llvm/CodeGen/LiveVariables.h | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/include/llvm/CodeGen/LiveVariables.h b/include/llvm/CodeGen/LiveVariables.h index f6bc83162ea..346fd9661d8 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, -- 2.34.1