Convert BinaryOperand and UnaryOperator to only take instruction types of
authorChris Lattner <sabre@nondot.org>
Sat, 7 Jul 2001 20:17:23 +0000 (20:17 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 7 Jul 2001 20:17:23 +0000 (20:17 +0000)
the appropriate enum

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

include/llvm/InstrTypes.h
include/llvm/iOperators.h
lib/Bytecode/Reader/InstructionReader.cpp
lib/VMCore/InstrTypes.cpp
lib/VMCore/iOperators.cpp

index 105775fe84a212956a0257d267d58c3a4ef3ad5c..fa0ce87c9ca78104f6f4c2a1ddd4e82b61a149f4 100644 (file)
@@ -55,14 +55,18 @@ public:
   // create() - Construct a unary instruction, given the opcode
   // and its operand.
   //
-  static UnaryOperator *create(unsigned Op, Value *Source);
+  static UnaryOperator *create(UnaryOps Op, Value *Source);
 
-  UnaryOperator(Value *S, unsigned iType, const string &Name = "")
+  UnaryOperator(Value *S, UnaryOps iType, const string &Name = "")
       : Instruction(S->getType(), iType, Name) {
     Operands.reserve(1);
     Operands.push_back(Use(S, this));
   }
 
+  inline UnaryOps getOpcode() const { 
+    return (UnaryOps)Instruction::getOpcode();
+  }
+
   virtual Instruction *clone() const { 
     return create(getOpcode(), Operands[0]);
   }
@@ -82,10 +86,10 @@ public:
   // create() - Construct a binary instruction, given the opcode
   // and the two operands.
   //
-  static BinaryOperator *create(unsigned Op, Value *S1, Value *S2,
+  static BinaryOperator *create(BinaryOps Op, Value *S1, Value *S2,
                                const string &Name = "");
 
-  BinaryOperator(unsigned iType, Value *S1, Value *S2, 
+  BinaryOperator(BinaryOps iType, Value *S1, Value *S2, 
                  const string &Name = "") 
     : Instruction(S1->getType(), iType, Name) {
     Operands.reserve(2);
@@ -95,6 +99,10 @@ public:
           Operands[0]->getType() == Operands[1]->getType());
   }
 
+  inline BinaryOps getOpcode() const { 
+    return (BinaryOps)Instruction::getOpcode();
+  }
+
   virtual Instruction *clone() const {
     return create(getOpcode(), Operands[0], Operands[1]);
   }
index 76e4e392fe4db67f0f063b48a7f1a9b59c542e3b..4b6109a8541c8fdaceb267ebf30472c5063882d1 100644 (file)
@@ -18,7 +18,7 @@
 
 class GenericBinaryInst : public BinaryOperator {
 public:
-  GenericBinaryInst(unsigned Opcode, Value *S1, Value *S2, 
+  GenericBinaryInst(BinaryOps Opcode, Value *S1, Value *S2, 
                    const string &Name = "")
     : BinaryOperator(Opcode, S1, S2, Name) {
   }
index dac7d37415874d647c1ab4fa04017508d9e7567f..ab70e24f5133524d3c3c3ee62c2a7e6baa03fc19 100644 (file)
@@ -96,12 +96,14 @@ bool BytecodeParser::ParseInstruction(const uchar *&Buf, const uchar *EndBuf,
 
   if (Raw.Opcode >= Instruction::FirstUnaryOp && 
       Raw.Opcode <  Instruction::NumUnaryOps  && Raw.NumOperands == 1) {
-    Res = UnaryOperator::create(Raw.Opcode,getValue(Raw.Ty,Raw.Arg1));
+    Res = UnaryOperator::create((Instruction::UnaryOps)Raw.Opcode,
+                               getValue(Raw.Ty,Raw.Arg1));
     return false;
   } else if (Raw.Opcode >= Instruction::FirstBinaryOp &&
             Raw.Opcode <  Instruction::NumBinaryOps  && Raw.NumOperands == 2) {
-    Res = BinaryOperator::create(Raw.Opcode, getValue(Raw.Ty, Raw.Arg1),
-                                            getValue(Raw.Ty, Raw.Arg2));
+    Res = BinaryOperator::create((Instruction::BinaryOps)Raw.Opcode,
+                                getValue(Raw.Ty, Raw.Arg1),
+                                getValue(Raw.Ty, Raw.Arg2));
     return false;
   } else if (Raw.Opcode == Instruction::PHINode) {
     PHINode *PN = new PHINode(Raw.Ty);
index cda99a9446a5be88a625d689cd389d2e73e220cb..9d3262cbda7209a70a66be854ce93ce75f63d56e 100644 (file)
@@ -12,7 +12,7 @@
 #include <algorithm>  // find
 
 // TODO: Move to getUnaryOperator iUnary.cpp when and if it exists!
-UnaryOperator *UnaryOperator::create(unsigned Op, Value *Source) {
+UnaryOperator *UnaryOperator::create(UnaryOps Op, Value *Source) {
   switch (Op) {
   default:
     cerr << "Don't know how to GetUnaryOperator " << Op << endl;
index ef6933adb2535ea2d4fa4a7df03c20fae33584cc..61d5d26d2b4194033654a747ed836b4b0c834080 100644 (file)
@@ -7,13 +7,13 @@
 #include "llvm/iBinary.h"
 #include "llvm/Type.h"
 
-BinaryOperator *BinaryOperator::create(unsigned Op, Value *S1, Value *S2,
+BinaryOperator *BinaryOperator::create(BinaryOps Op, Value *S1, Value *S2,
                                       const string &Name) {
   switch (Op) {
   // Binary comparison operators...
   case SetLT: case SetGT: case SetLE:
   case SetGE: case SetEQ: case SetNE:
-    return new SetCondInst((BinaryOps)Op, S1, S2, Name);
+    return new SetCondInst(Op, S1, S2, Name);
 
   default:
     return new GenericBinaryInst(Op, S1, S2, Name);