Improve code comments.
authorAlkis Evlogimenos <alkis@evlogimenos.com>
Fri, 9 Jul 2004 11:10:00 +0000 (11:10 +0000)
committerAlkis Evlogimenos <alkis@evlogimenos.com>
Fri, 9 Jul 2004 11:10:00 +0000 (11:10 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14719 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/LiveIntervalAnalysis.cpp

index 4f17e31f7165caaca34f935e4040640df0076de2..8c2558af78792fba0f59129a38630540b0ef72ca 100644 (file)
@@ -286,9 +286,9 @@ void LiveIntervals::handleVirtualRegisterDef(MachineBasicBlock* mbb,
     DEBUG(std::cerr << "\t\tregister: "; printRegName(interval.reg));
     LiveVariables::VarInfo& vi = lv_->getVarInfo(interval.reg);
 
-    // iterate over all of the blocks that the variable is completely
-    // live in, adding them to the live interval. obviously we only
-    // need to do this once.
+    // Iterate over all of the blocks that the variable is completely
+    // live in, adding [insrtIndex(begin), instrIndex(end)+4) to the
+    // live interval. Obviously we only need to do this once.
     if (interval.empty()) {
         for (unsigned i = 0, e = vi.AliveBlocks.size(); i != e; ++i) {
             if (vi.AliveBlocks[i]) {
@@ -337,6 +337,8 @@ void LiveIntervals::handlePhysicalRegisterDef(MachineBasicBlock* mbb,
                                               MachineBasicBlock::iterator mi,
                                               LiveInterval& interval)
 {
+    // A physical register cannot be live across basic block, so its
+    // lifetime must end somewhere in its defining basic block.
     DEBUG(std::cerr << "\t\tregister: "; printRegName(interval.reg));
     typedef LiveVariables::killed_iterator KillIter;
 
@@ -345,7 +347,9 @@ void LiveIntervals::handlePhysicalRegisterDef(MachineBasicBlock* mbb,
     unsigned start = getDefIndex(baseIndex);
     unsigned end = start;
 
-    // a variable can be dead by the instruction defining it
+    // If it is not used after definition, it is considered dead at
+    // the instruction defining it. Hence its interval is:
+    // [defSlot(def), defSlot(def)+1)
     for (KillIter ki = lv_->dead_begin(mi), ke = lv_->dead_end(mi);
          ki != ke; ++ki) {
         if (interval.reg == ki->second) {
@@ -355,7 +359,9 @@ void LiveIntervals::handlePhysicalRegisterDef(MachineBasicBlock* mbb,
         }
     }
 
-    // a variable can only be killed by subsequent instructions
+    // If it is not dead on definition, it must be killed by a
+    // subsequent instruction. Hence its interval is:
+    // [defSlot(def), useSlot(def)+1)
     do {
         ++mi;
         baseIndex += InstrSlots::NUM;