From 38b7ca6651643f1f98e1f7b0e7f8a3499883804b Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Tue, 17 Apr 2007 20:22:11 +0000 Subject: [PATCH] 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 --- include/llvm/CodeGen/LiveVariables.h | 6 +++++- lib/CodeGen/LiveVariables.cpp | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/include/llvm/CodeGen/LiveVariables.h b/include/llvm/CodeGen/LiveVariables.h index d98ad347354..6c58815e273 100644 --- a/include/llvm/CodeGen/LiveVariables.h +++ b/include/llvm/CodeGen/LiveVariables.h @@ -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 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 diff --git a/lib/CodeGen/LiveVariables.cpp b/lib/CodeGen/LiveVariables.cpp index 977bc5b6d64..8a8185c55f8 100644 --- a/lib/CodeGen/LiveVariables.cpp +++ b/lib/CodeGen/LiveVariables.cpp @@ -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) { -- 2.34.1