Remove support for Not ConstantExpr.  This simplifies the unary case to only
have to support the cast instruction, so the function is renamed to getCast.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3328 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Bytecode/Reader/ConstantReader.cpp b/lib/Bytecode/Reader/ConstantReader.cpp
index 921b875..37e201f 100644
--- a/lib/Bytecode/Reader/ConstantReader.cpp
+++ b/lib/Bytecode/Reader/ConstantReader.cpp
@@ -217,7 +217,8 @@
     
     // Construct a ConstantExpr of the appropriate kind
     if (isExprNumArgs == 1) {           // All one-operand expressions
-      V = ConstantExpr::get(Opcode, ArgVec[0], Ty);
+      assert(Opcode == Instruction::Cast);
+      V = ConstantExpr::getCast(ArgVec[0], Ty);
     } else if (Opcode == Instruction::GetElementPtr) { // GetElementPtr
       std::vector<Constant*> IdxList(ArgVec.begin()+1, ArgVec.end());
       V = ConstantExpr::getGetElementPtr(ArgVec[0], IdxList);
diff --git a/lib/Bytecode/Reader/InstructionReader.cpp b/lib/Bytecode/Reader/InstructionReader.cpp
index 0916b2b..0de8f39 100644
--- a/lib/Bytecode/Reader/InstructionReader.cpp
+++ b/lib/Bytecode/Reader/InstructionReader.cpp
@@ -122,13 +122,8 @@
   if (ParseRawInst(Buf, EndBuf, Raw))
     return failure(true);
 
-  if (Raw.Opcode >= Instruction::FirstUnaryOp && 
-      Raw.Opcode <  Instruction::NumUnaryOps  && Raw.NumOperands == 1) {
-    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) {
+  if (Raw.Opcode >= Instruction::FirstBinaryOp &&
+      Raw.Opcode <  Instruction::NumBinaryOps  && Raw.NumOperands == 2) {
     Res = BinaryOperator::create((Instruction::BinaryOps)Raw.Opcode,
 				 getValue(Raw.Ty, Raw.Arg1),
 				 getValue(Raw.Ty, Raw.Arg2));