[llvm-commits] [llvm] r59145 - /llvm/trunk/include/llvm/CodeGen/LiveVariables.h
Dan Gohman
gohman at apple.com
Wed Nov 12 09:02:38 PST 2008
Author: djg
Date: Wed Nov 12 11:02:24 2008
New Revision: 59145
URL: http://llvm.org/viewvc/llvm-project?rev=59145&view=rev
Log:
Update VarInfo's comments to reflect the current code. LiveVar
no longer records a unique defining instruction, and virtual
registers may have multiple kills while still being defined
and killed in the same block.
Modified:
llvm/trunk/include/llvm/CodeGen/LiveVariables.h
Modified: llvm/trunk/include/llvm/CodeGen/LiveVariables.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/LiveVariables.h?rev=59145&r1=59144&r2=59145&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CodeGen/LiveVariables.h (original)
+++ llvm/trunk/include/llvm/CodeGen/LiveVariables.h Wed Nov 12 11:02:24 2008
@@ -47,20 +47,17 @@
/// VarInfo - This represents the regions where a virtual register is live in
/// the program. We represent this with three different pieces of
- /// information: the instruction that uniquely defines the value, the set of
- /// blocks the instruction is live into and live out of, and the set of
- /// non-phi instructions that are the last users of the value.
+ /// information: the set of blocks in which the instruction is live
+ /// 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.
///
- /// 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
- /// across 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.
+ /// 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,
@@ -72,13 +69,13 @@
/// included). This is sensical because the value must be live to the end of
/// the block, but is not live in any successor blocks.
struct VarInfo {
- /// AliveBlocks - Set of blocks of which this value is alive completely
+ /// AliveBlocks - Set of blocks in which this value is alive completely
/// through. This is a bit set which uses the basic block number as an
/// index.
///
BitVector AliveBlocks;
- /// UsedBlocks - Set of blocks of which this value is actually used. This
+ /// UsedBlocks - Set of blocks in which this value is actually used. This
/// is a bit set which uses the basic block number as an index.
BitVector UsedBlocks;
More information about the llvm-commits
mailing list