Add getUniqueVRegDef to MachineRegisterInfo.
[oota-llvm.git] / lib / CodeGen / MachineRegisterInfo.cpp
index 9c0d749a266b64178a291e0fa62d2fb9920ddbbe..863da72774e2d3a4de7b3dd30debf62f5d98ac95 100644 (file)
@@ -165,6 +165,17 @@ MachineInstr *MachineRegisterInfo::getVRegDef(unsigned Reg) const {
   return !I.atEnd() ? &*I : 0;
 }
 
+/// getUniqueVRegDef - Return the unique machine instr that defines the
+/// specified virtual register or null if none is found.  If there are
+/// multiple definitions or no definition, return null.
+MachineInstr *MachineRegisterInfo::getUniqueVRegDef(unsigned Reg) const {
+  if (def_empty(Reg)) return 0;
+  def_iterator I = def_begin(Reg);
+  if (llvm::next(I) != def_end())
+    return 0;
+  return &*I;
+}
+
 bool MachineRegisterInfo::hasOneUse(unsigned RegNo) const {
   use_iterator UI = use_begin(RegNo);
   if (UI == use_end())