From 4f85cd77046d76bd9091aa6caa06e767bd22f64c Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Wed, 23 May 2007 07:19:12 +0000 Subject: [PATCH] Add a couple of target hooks for predication. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37306 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Target/TargetInstrInfo.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/include/llvm/Target/TargetInstrInfo.h b/include/llvm/Target/TargetInstrInfo.h index b2fc53af177..bb1dfd2b36b 100644 --- a/include/llvm/Target/TargetInstrInfo.h +++ b/include/llvm/Target/TargetInstrInfo.h @@ -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 &Cond) const; + std::vector &Pred) const; + + /// SubsumesPredicate - Returns true if the first specified predicated + /// subsumes the second, e.g. GE subsumes GT. + virtual bool SubsumesPredicate(std::vector &Pred1, + std::vector &Pred2) const { + return false; + } /// getPointerRegClass - Returns a TargetRegisterClass used for pointer /// values.