From: Matt Arsenault Date: Fri, 2 Oct 2015 18:58:33 +0000 (+0000) Subject: Add way to test for generic TargetOpcodes X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=63a9180f3c1a821244b0e57f816412c609f006a2;p=oota-llvm.git Add way to test for generic TargetOpcodes The alternative would be to add a bit to the target's InstrFlags but that seems like a waste of a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@249169 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Target/TargetInstrInfo.h b/include/llvm/Target/TargetInstrInfo.h index b9f85a133a3..0a35d4178d9 100644 --- a/include/llvm/Target/TargetInstrInfo.h +++ b/include/llvm/Target/TargetInstrInfo.h @@ -62,6 +62,10 @@ public: virtual ~TargetInstrInfo(); + static bool isGenericOpcode(unsigned Opc) { + return Opc <= TargetOpcode::GENERIC_OP_END; + } + /// Given a machine instruction descriptor, returns the register /// class constraint for OpNum, or NULL. const TargetRegisterClass *getRegClass(const MCInstrDesc &TID, diff --git a/include/llvm/Target/TargetOpcodes.h b/include/llvm/Target/TargetOpcodes.h index a7e2aa82a28..db37bdb6258 100644 --- a/include/llvm/Target/TargetOpcodes.h +++ b/include/llvm/Target/TargetOpcodes.h @@ -128,6 +128,10 @@ enum { /// "zero cost" null checks in managed languages by allowing LLVM to fold /// comparisons into existing memory operations. FAULTING_LOAD_OP = 22, + + /// BUILTIN_OP_END - This must be the last enum value in this list. + /// The target-specific post-isel opcode values start here. + GENERIC_OP_END = FAULTING_LOAD_OP, }; } // end namespace TargetOpcode } // end namespace llvm