Handle load/store of misaligned vectors that are the
[oota-llvm.git] / lib / CodeGen / LiveVariables.cpp
index 809048e8ef7c634e53cdc4f258bd7d6a52d4536e..48bf809e4820bea4d5a1235d8cf94e0252223a66 100644 (file)
@@ -246,7 +246,7 @@ void LiveVariables::HandlePhysRegUse(unsigned Reg, MachineInstr *MI) {
   // Now reset the use information for the sub-registers.
   for (const unsigned *SubRegs = RegInfo->getSubRegisters(Reg);
        unsigned SubReg = *SubRegs; ++SubRegs) {
-    // FIXME: Should we do: "PhysRegPartUse[SubReg] = NULL;" here?
+    PhysRegPartUse[SubReg] = NULL;
     PhysRegInfo[SubReg] = MI;
     PhysRegUsed[SubReg] = true;
   }
@@ -258,8 +258,9 @@ void LiveVariables::HandlePhysRegUse(unsigned Reg, MachineInstr *MI) {
     bool HasPrevDef = PhysRegInfo[SuperReg] != NULL;
 
     if (!HasPrevDef)
-      // FIXME: This only goes back one level of super-registers. It might miss
-      // some.
+      // No need to go up more levels. A def of a register also sets its sub-
+      // registers. So if PhysRegInfo[SuperReg] is NULL, it means SuperReg's
+      // super-registers are not previously defined.
       for (const unsigned *SSRegs = RegInfo->getSuperRegisters(SuperReg);
            unsigned SSReg = *SSRegs; ++SSRegs)
         if (PhysRegInfo[SSReg] != NULL) {