If a vr is already marked alive in a bb, then it has PHI uses that are visited earlie...
[oota-llvm.git] / lib / CodeGen / LiveVariables.cpp
index b39e48d44236f85bf89144bf03d60e1b00414e85..70c191d9e09efca3aa9a6cdf1c052eaf434e3cff 100644 (file)
@@ -436,8 +436,9 @@ bool LiveVariables::runOnMachineFunction(MachineFunction &mf) {
         if (MO.isRegister() && MO.isDef() && MO.getReg()) {
           if (MRegisterInfo::isVirtualRegister(MO.getReg())) {
             VarInfo &VRInfo = getVarInfo(MO.getReg());
-            // Defaults to dead
-            VRInfo.Kills.push_back(MI);
+            if (VRInfo.AliveBlocks.none())
+              // If vr is not alive in any block, then defaults to dead.
+              VRInfo.Kills.push_back(MI);
           } else if (MRegisterInfo::isPhysicalRegister(MO.getReg()) &&
                      !ReservedRegisters[MO.getReg()]) {
             HandlePhysRegDef(MO.getReg(), MI);