Remove allocatable registers vector. It is already provided by
authorAlkis Evlogimenos <alkis@evlogimenos.com>
Tue, 13 Jan 2004 22:10:43 +0000 (22:10 +0000)
committerAlkis Evlogimenos <alkis@evlogimenos.com>
Tue, 13 Jan 2004 22:10:43 +0000 (22:10 +0000)
LiveVariables.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10830 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/LiveIntervalAnalysis.h
include/llvm/CodeGen/LiveIntervals.h
lib/CodeGen/LiveIntervalAnalysis.cpp
lib/CodeGen/LiveIntervalAnalysis.h

index 8f5fd3a648d94f56ebcc5a5609b678cd9cccb818..2e238085734800cda028055210a921d44744d100 100644 (file)
@@ -94,8 +94,6 @@ namespace llvm {
         MachineBasicBlock::iterator currentInstr_;
         LiveVariables* lv_;
 
-        std::vector<bool> allocatableRegisters_;
-
         typedef std::map<unsigned, MachineBasicBlock*> MbbIndex2MbbMap;
         MbbIndex2MbbMap mbbi2mbbMap_;
 
index 8f5fd3a648d94f56ebcc5a5609b678cd9cccb818..2e238085734800cda028055210a921d44744d100 100644 (file)
@@ -94,8 +94,6 @@ namespace llvm {
         MachineBasicBlock::iterator currentInstr_;
         LiveVariables* lv_;
 
-        std::vector<bool> allocatableRegisters_;
-
         typedef std::map<unsigned, MachineBasicBlock*> MbbIndex2MbbMap;
         MbbIndex2MbbMap mbbi2mbbMap_;
 
index bbc708238ac384ba3d6d5e6244bf00fd516f431b..4929a56e691c38752b8345194df9574ec619ec90 100644 (file)
@@ -65,27 +65,12 @@ bool LiveIntervals::runOnMachineFunction(MachineFunction &fn) {
     tm_ = &fn.getTarget();
     mri_ = tm_->getRegisterInfo();
     lv_ = &getAnalysis<LiveVariables>();
-    allocatableRegisters_.clear();
     mbbi2mbbMap_.clear();
     mi2iMap_.clear();
     r2iMap_.clear();
     r2iMap_.clear();
     intervals_.clear();
 
-    // mark allocatable registers
-    allocatableRegisters_.resize(MRegisterInfo::FirstVirtualRegister);
-    // Loop over all of the register classes...
-    for (MRegisterInfo::regclass_iterator
-             rci = mri_->regclass_begin(), rce = mri_->regclass_end();
-         rci != rce; ++rci) {
-        // Loop over all of the allocatable registers in the function...
-        for (TargetRegisterClass::iterator
-                 i = (*rci)->allocation_order_begin(*mf_),
-                 e = (*rci)->allocation_order_end(*mf_); i != e; ++i) {
-            allocatableRegisters_[*i] = true;  // The reg is allocatable!
-        }
-    }
-
     // number MachineInstrs
     unsigned miIndex = 0;
     for (MachineFunction::iterator mbb = mf_->begin(), mbbEnd = mf_->end();
@@ -206,11 +191,7 @@ void LiveIntervals::handlePhysicalRegisterDef(MachineBasicBlock* mbb,
                                               MachineBasicBlock::iterator mi,
                                               unsigned reg)
 {
-    DEBUG(std::cerr << "\t\tregister: ";printRegName(reg); std::cerr << '\n');
-    if (!lv_->getAllocatablePhysicalRegisters()[reg]) {
-        DEBUG(std::cerr << "\t\t\tnon allocatable register: ignoring\n");
-        return;
-    }
+    DEBUG(std::cerr << "\t\tregister: "; printRegName(reg));
 
     unsigned start = getInstructionIndex(*mi);
     unsigned end = start;
@@ -259,7 +240,7 @@ void LiveIntervals::handleRegisterDef(MachineBasicBlock* mbb,
                                       unsigned reg)
 {
     if (reg < MRegisterInfo::FirstVirtualRegister) {
-        if (allocatableRegisters_[reg]) {
+        if (lv_->getAllocatablePhysicalRegisters()[reg]) {
             handlePhysicalRegisterDef(mbb, mi, reg);
             for (const unsigned* as = mri_->getAliasSet(reg); *as; ++as)
                 handlePhysicalRegisterDef(mbb, mi, *as);
index 8f5fd3a648d94f56ebcc5a5609b678cd9cccb818..2e238085734800cda028055210a921d44744d100 100644 (file)
@@ -94,8 +94,6 @@ namespace llvm {
         MachineBasicBlock::iterator currentInstr_;
         LiveVariables* lv_;
 
-        std::vector<bool> allocatableRegisters_;
-
         typedef std::map<unsigned, MachineBasicBlock*> MbbIndex2MbbMap;
         MbbIndex2MbbMap mbbi2mbbMap_;