Use MRI::getSimpleHint() instead of getRegAllocPref() in remaining cases.
[oota-llvm.git] / lib / CodeGen / VirtRegMap.cpp
index dcfad6641453622e87384cb9d15a6f29efee9e63..820eed083b70a98e3c7df8f566e0dbff445d169f 100644 (file)
@@ -88,6 +88,15 @@ unsigned VirtRegMap::getRegAllocPref(unsigned virtReg) {
   return TRI->ResolveRegAllocHint(Hint.first, physReg, *MF);
 }
 
+bool VirtRegMap::hasPreferredPhys(unsigned VirtReg) {
+  unsigned Hint = MRI->getSimpleHint(VirtReg);
+  if (!Hint)
+    return 0;
+  if (TargetRegisterInfo::isVirtualRegister(Hint))
+    Hint = getPhys(Hint);
+  return getPhys(VirtReg) == Hint;
+}
+
 bool VirtRegMap::hasKnownPreference(unsigned VirtReg) {
   std::pair<unsigned, unsigned> Hint = MRI->getRegAllocationHint(VirtReg);
   if (TargetRegisterInfo::isPhysicalRegister(Hint.second))