aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-03-01 02:19:39 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-03-01 02:19:39 +0000
commita3756ee7fe384210eddcfd66e2934439960b13a1 (patch)
tree90a1cc536b0f20ce11fe5c98ab0e81e2c1441667
parent28654b6205acc56863cdf988eed3e345da11eca3 (diff)
Interface clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34770 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/CodeGen/RegisterScavenging.cpp20
1 files changed, 7 insertions, 13 deletions
diff --git a/lib/CodeGen/RegisterScavenging.cpp b/lib/CodeGen/RegisterScavenging.cpp
index c921e201b9..8f5f4408ac 100644
--- a/lib/CodeGen/RegisterScavenging.cpp
+++ b/lib/CodeGen/RegisterScavenging.cpp
@@ -25,7 +25,7 @@
#include "llvm/ADT/STLExtras.h"
using namespace llvm;
-void RegScavenger::init(MachineBasicBlock *mbb) {
+void RegScavenger::enterBasicBlock(MachineBasicBlock *mbb) {
const MachineFunction &MF = *mbb->getParent();
const TargetMachine &TM = MF.getTarget();
const MRegisterInfo *RegInfo = TM.getRegisterInfo();
@@ -35,9 +35,11 @@ void RegScavenger::init(MachineBasicBlock *mbb) {
if (!MBB) {
NumPhysRegs = RegInfo->getNumRegs();
- ReservedRegs = RegInfo->getReservedRegs(MF);
RegStates.resize(NumPhysRegs);
+ // Create reserved registers bitvector.
+ ReservedRegs = RegInfo->getReservedRegs(MF);
+
// Create callee-saved registers bitvector.
CalleeSavedRegs.resize(NumPhysRegs);
const unsigned *CSRegs = RegInfo->getCalleeSavedRegs();
@@ -51,7 +53,7 @@ void RegScavenger::init(MachineBasicBlock *mbb) {
// All registers started out unused.
RegStates.set();
- // Create reserved registers bitvector.
+ // Reserved registers are always used.
RegStates ^= ReservedRegs;
// Live-in registers are in use.
@@ -59,6 +61,8 @@ void RegScavenger::init(MachineBasicBlock *mbb) {
for (MachineBasicBlock::const_livein_iterator I = MBB->livein_begin(),
E = MBB->livein_end(); I != E; ++I)
setUsed(*I);
+
+ Tracking = false;
}
void RegScavenger::forward() {
@@ -168,13 +172,3 @@ unsigned RegScavenger::FindUnusedReg(const TargetRegisterClass *RegClass,
int Reg = RegStatesCopy.find_first();
return (Reg == -1) ? 0 : Reg;
}
-
-void RegScavenger::clear() {
- if (MBB) {
- MBBI = MBB->end();
- MBB = NULL;
- }
-
- Tracking = false;
- RegStates.clear();
-}