[llvm-commits] CVS: llvm/lib/CodeGen/LiveIntervals.cpp

Alkis Evlogimenos alkis at cs.uiuc.edu
Fri Jul 9 06:11:01 PDT 2004


Changes in directory llvm/lib/CodeGen:

LiveIntervals.cpp updated: 1.86 -> 1.87

---
Log message:

Improve code comments.


---
Diffs of the changes:  (+11 -5)

Index: llvm/lib/CodeGen/LiveIntervals.cpp
diff -u llvm/lib/CodeGen/LiveIntervals.cpp:1.86 llvm/lib/CodeGen/LiveIntervals.cpp:1.87
--- llvm/lib/CodeGen/LiveIntervals.cpp:1.86	Tue Jul  6 21:03:12 2004
+++ llvm/lib/CodeGen/LiveIntervals.cpp	Fri Jul  9 06:10:00 2004
@@ -286,9 +286,9 @@
     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 @@
                                               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 @@
     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 @@
         }
     }
 
-    // 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;





More information about the llvm-commits mailing list