Add a couple of target hooks for predication.
authorEvan Cheng <evan.cheng@apple.com>
Wed, 23 May 2007 07:19:12 +0000 (07:19 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 23 May 2007 07:19:12 +0000 (07:19 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37306 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Target/TargetInstrInfo.h

index b2fc53af1773790d8855d23b071aba3b4ae98b60..bb1dfd2b36bce1d352269ef561d3abecd8b75b63 100644 (file)
@@ -393,10 +393,23 @@ public:
     abort();
   }
 
+  /// isPredicable - Returns true if the instruction is already predicated.
+  ///
+  virtual bool isPredicated(MachineInstr *MI) const {
+    return false;
+  }
+
   /// PredicateInstruction - Convert the instruction into a predicated
   /// instruction. It returns true if the operation was successful.
   virtual bool PredicateInstruction(MachineInstr *MI,
-                                    std::vector<MachineOperand> &Cond) const;
+                                    std::vector<MachineOperand> &Pred) const;
+
+  /// SubsumesPredicate - Returns true if the first specified predicated
+  /// subsumes the second, e.g. GE subsumes GT.
+  virtual bool SubsumesPredicate(std::vector<MachineOperand> &Pred1,
+                                 std::vector<MachineOperand> &Pred2) const {
+    return false;
+  }
 
   /// getPointerRegClass - Returns a TargetRegisterClass used for pointer
   /// values.