Remove/fix invalid README entries. The well thought out strcpy function doesn't retur...
[oota-llvm.git] / lib / CodeGen / LiveRangeEdit.cpp
index bbcc07ca09909f0338e372a352b69ba093e5dc08..3c7d9f66e7411339898251cdce490532b8a5cef2 100644 (file)
@@ -88,36 +88,29 @@ bool LiveRangeEdit::allUsesAvailableAt(const MachineInstr *OrigMI,
   return true;
 }
 
-LiveRangeEdit::Remat LiveRangeEdit::canRematerializeAt(VNInfo *ParentVNI,
-                                                       SlotIndex UseIdx,
-                                                       bool cheapAsAMove,
-                                                       LiveIntervals &lis) {
+bool LiveRangeEdit::canRematerializeAt(Remat &RM,
+                                       SlotIndex UseIdx,
+                                       bool cheapAsAMove,
+                                       LiveIntervals &lis) {
   assert(scannedRemattable_ && "Call anyRematerializable first");
-  Remat RM = { 0, 0 };
-
-  // We could remat an undefined value as IMPLICIT_DEF, but all that should have
-  // been taken care of earlier.
-  if (!(RM.ParentVNI = parent_.getVNInfoAt(UseIdx)))
-    return RM;
 
   // Use scanRemattable info.
   if (!remattable_.count(RM.ParentVNI))
-    return RM;
+    return false;
 
   // No defining instruction.
-  MachineInstr *OrigMI = lis.getInstructionFromIndex(RM.ParentVNI->def);
-  assert(OrigMI && "Defining instruction for remattable value disappeared");
+  RM.OrigMI = lis.getInstructionFromIndex(RM.ParentVNI->def);
+  assert(RM.OrigMI && "Defining instruction for remattable value disappeared");
 
   // If only cheap remats were requested, bail out early.
-  if (cheapAsAMove && !OrigMI->getDesc().isAsCheapAsAMove())
-    return RM;
+  if (cheapAsAMove && !RM.OrigMI->getDesc().isAsCheapAsAMove())
+    return false;
 
   // Verify that all used registers are available with the same values.
-  if (!allUsesAvailableAt(OrigMI, RM.ParentVNI->def, UseIdx, lis))
-    return RM;
+  if (!allUsesAvailableAt(RM.OrigMI, RM.ParentVNI->def, UseIdx, lis))
+    return false;
 
-  RM.OrigMI = OrigMI;
-  return RM;
+  return true;
 }
 
 SlotIndex LiveRangeEdit::rematerializeAt(MachineBasicBlock &MBB,