Keep track of number of uses within the function per virtual register.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36214 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng 2007-04-17 20:22:11 +00:00
parent e060b5385f
commit 38b7ca6651
2 changed files with 6 additions and 1 deletions

View File

@ -83,12 +83,16 @@ public:
/// is a bit set which uses the basic block number as an index.
BitVector UsedBlocks;
/// NumUses - Number of uses of this register across the entire function.
///
unsigned NumUses;
/// Kills - List of MachineInstruction's which are the last use of this
/// virtual register (kill it) in their basic block.
///
std::vector<MachineInstr*> Kills;
VarInfo() : DefInst(0) {}
VarInfo() : DefInst(0), NumUses(0) {}
/// removeKill - Delete a kill corresponding to the specified
/// machine instruction. Returns true if there was a kill

View File

@ -141,6 +141,7 @@ void LiveVariables::HandleVirtRegUse(VarInfo &VRInfo, MachineBasicBlock *MBB,
unsigned BBNum = MBB->getNumber();
VRInfo.UsedBlocks[BBNum] = true;
VRInfo.NumUses++;
// Check to see if this basic block is already a kill block...
if (!VRInfo.Kills.empty() && VRInfo.Kills.back()->getParent() == MBB) {