Add new BinaryOperator::createAdd/Sub/... methods to avoid having to type
authorChris Lattner <sabre@nondot.org>
Thu, 10 Jun 2004 01:43:29 +0000 (01:43 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 10 Jun 2004 01:43:29 +0000 (01:43 +0000)
llvm::Instruction:: all of the time.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14105 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/InstrTypes.h

index c615888d818fda9fbcb8a40be039234cc6d856b4..723b3547170fa8b9a31439f9fbb5da2c9406b65d 100644 (file)
@@ -106,6 +106,22 @@ public:
   static BinaryOperator *create(BinaryOps Op, Value *S1, Value *S2,
                                const std::string &Name,
                                 BasicBlock *InsertAtEnd);
+
+  /// create* - These methods just forward to create, and are useful when you
+  /// statically know what type of instruction you're going to create.  These
+  /// helpers just save some typing.
+#define HANDLE_BINARY_INST(N, OPC, CLASS) \
+  static BinaryOperator *create##OPC(Value *V1, Value *V2, \
+                                     const std::string &Name = "") {\
+    return create(Instruction::OPC, V1, V2, Name);\
+  }
+#include "llvm/Instruction.def"
+#define HANDLE_BINARY_INST(N, OPC, CLASS) \
+  static BinaryOperator *create##OPC(Value *V1, Value *V2, \
+                                     const std::string &Name, BasicBlock *BB) {\
+    return create(Instruction::OPC, V1, V2, Name, BB);\
+  }
+#include "llvm/Instruction.def"
                                
 
   /// Helper functions to construct and inspect unary operations (NEG and NOT)