Move isUnpredicatedTerminator() default implementation to TargetInstrInfoImpl to...
[oota-llvm.git] / lib / CodeGen / TargetInstrInfoImpl.cpp
index 5115d5bd07a39652dbdefbfe267fb3a1b13d8695..ccbda9870e7461220f28a5f81fdbde9651adc274 100644 (file)
@@ -139,6 +139,19 @@ bool TargetInstrInfoImpl::findCommutedOpIndices(MachineInstr *MI,
 }
 
 
+bool
+TargetInstrInfoImpl::isUnpredicatedTerminator(const MachineInstr *MI) const {
+  if (!MI->isTerminator()) return false;
+
+  // Conditional branch is a special case.
+  if (MI->isBranch() && !MI->isBarrier())
+    return true;
+  if (!MI->isPredicable())
+    return true;
+  return !isPredicated(MI);
+}
+
+
 bool TargetInstrInfoImpl::PredicateInstruction(MachineInstr *MI,
                             const SmallVectorImpl<MachineOperand> &Pred) const {
   bool MadeChange = false;