Re-enable kill flags from SelectionDAGISel, with a fix: don't
authorDan Gohman <gohman@apple.com>
Sat, 1 May 2010 00:50:53 +0000 (00:50 +0000)
committerDan Gohman <gohman@apple.com>
Sat, 1 May 2010 00:50:53 +0000 (00:50 +0000)
try to put a kill flag on a DBG_INFO instruction.

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

lib/CodeGen/SelectionDAG/InstrEmitter.cpp

index 5f0c0e8d4fa8dffef3d6efed66f49b1567bb019a..1d44ff662915a44af5f00215df1276f658af84b1 100644 (file)
@@ -296,7 +296,6 @@ InstrEmitter::AddRegisterOperand(MachineInstr *MI, SDValue Op,
     }
   }
 
-#if 0
   // If this value has only one use, that use is a kill. This is a
   // conservative approximation. Tied operands are never killed, so we need
   // to check that. And that means we need to determine the index of the
@@ -306,10 +305,7 @@ InstrEmitter::AddRegisterOperand(MachineInstr *MI, SDValue Op,
          MI->getOperand(Idx-1).isReg() && MI->getOperand(Idx-1).isImplicit())
     --Idx;
   bool isTied = MI->getDesc().getOperandConstraint(Idx, TOI::TIED_TO) != -1;
-  bool isKill = Op.hasOneUse() && !isTied;
-#else
-  bool isKill = false;
-#endif
+  bool isKill = Op.hasOneUse() && !isTied && !IsDebug;
 
   MI->addOperand(MachineOperand::CreateReg(VReg, isOptDef,
                                            false/*isImp*/, isKill,