Don't generate unused variables in a no-assert build
authorNate Begeman <natebegeman@mac.com>
Wed, 14 May 2008 20:28:31 +0000 (20:28 +0000)
committerNate Begeman <natebegeman@mac.com>
Wed, 14 May 2008 20:28:31 +0000 (20:28 +0000)
Add some checks to the new vicmp,vfcmp instructions

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

include/llvm/Instructions.h

index 4808e11eb4a38935894c17297962cffabd19d806..e5de229c743c3a758ea1764c19ea67bfee7f5d7a 100644 (file)
@@ -627,12 +627,11 @@ public:
     assert(pred >= CmpInst::FIRST_ICMP_PREDICATE &&
            pred <= CmpInst::LAST_ICMP_PREDICATE &&
            "Invalid ICmp predicate value");
-    const Type* Op0Ty = getOperand(0)->getType();
-    const Type* Op1Ty = getOperand(1)->getType();
-    assert(Op0Ty == Op1Ty &&
+    assert(getOperand(0)->getType() == getOperand(1)->getType() &&
           "Both operands to ICmp instruction are not of the same type!");
     // Check that the operands are the right type
-    assert((Op0Ty->isInteger() || isa<PointerType>(Op0Ty)) &&
+    assert((getOperand(0)->getType()->isInteger() || 
+            isa<PointerType>(getOperand(0)->getType())) &&
            "Invalid operand types for ICmp instruction");
   }
 
@@ -648,12 +647,11 @@ public:
     assert(pred >= CmpInst::FIRST_ICMP_PREDICATE &&
            pred <= CmpInst::LAST_ICMP_PREDICATE &&
            "Invalid ICmp predicate value");
-    const Type* Op0Ty = getOperand(0)->getType();
-    const Type* Op1Ty = getOperand(1)->getType();
-    assert(Op0Ty == Op1Ty &&
+    assert(getOperand(0)->getType() == getOperand(1)->getType() &&
           "Both operands to ICmp instruction are not of the same type!");
     // Check that the operands are the right type
-    assert((Op0Ty->isInteger() || isa<PointerType>(Op0Ty)) &&
+    assert((getOperand(0)->getType()->isInteger() || 
+            isa<PointerType>(getOperand(0)->getType())) &&
            "Invalid operand types for ICmp instruction");
   }
 
@@ -796,12 +794,10 @@ public:
               InsertBefore) {
     assert(pred <= FCmpInst::LAST_FCMP_PREDICATE &&
            "Invalid FCmp predicate value");
-    const Type* Op0Ty = getOperand(0)->getType();
-    const Type* Op1Ty = getOperand(1)->getType();
-    assert(Op0Ty == Op1Ty &&
+    assert(getOperand(0)->getType() == getOperand(1)->getType() &&
            "Both operands to FCmp instruction are not of the same type!");
     // Check that the operands are the right type
-    assert(Op0Ty->isFloatingPoint() &&
+    assert(getOperand(0)->getType()->isFloatingPoint() &&
            "Invalid operand types for FCmp instruction");
   }
 
@@ -816,12 +812,10 @@ public:
               InsertAtEnd) {
     assert(pred <= FCmpInst::LAST_FCMP_PREDICATE &&
            "Invalid FCmp predicate value");
-    const Type* Op0Ty = getOperand(0)->getType();
-    const Type* Op1Ty = getOperand(1)->getType();
-    assert(Op0Ty == Op1Ty &&
+    assert(getOperand(0)->getType() == getOperand(1)->getType() &&
            "Both operands to FCmp instruction are not of the same type!");
     // Check that the operands are the right type
-    assert(Op0Ty->isFloatingPoint() &&
+    assert(getOperand(0)->getType()->isFloatingPoint() &&
            "Invalid operand types for FCmp instruction");
   }
 
@@ -913,6 +907,11 @@ public:
     Instruction *InsertBefore = 0  ///< Where to insert
   ) : CmpInst(LHS->getType(), Instruction::VICmp, pred, LHS, RHS, Name,
               InsertBefore) {
+    assert(pred >= CmpInst::FIRST_ICMP_PREDICATE &&
+           pred <= CmpInst::LAST_ICMP_PREDICATE &&
+           "Invalid VICmp predicate value");
+    assert(getOperand(0)->getType() == getOperand(1)->getType() &&
+          "Both operands to VICmp instruction are not of the same type!");
   }
 
   /// @brief Constructor with insert-at-block-end semantics.
@@ -924,6 +923,11 @@ public:
     BasicBlock *InsertAtEnd   ///< Block to insert into.
   ) : CmpInst(LHS->getType(), Instruction::VICmp, pred, LHS, RHS, Name,
               InsertAtEnd) {
+    assert(pred >= CmpInst::FIRST_ICMP_PREDICATE &&
+           pred <= CmpInst::LAST_ICMP_PREDICATE &&
+           "Invalid VICmp predicate value");
+    assert(getOperand(0)->getType() == getOperand(1)->getType() &&
+          "Both operands to VICmp instruction are not of the same type!");
   }
   
   /// @brief Return the predicate for this instruction.
@@ -960,6 +964,10 @@ public:
     Instruction *InsertBefore = 0  ///< Where to insert
   ) : CmpInst(VectorType::getInteger(cast<VectorType>(LHS->getType())),
               Instruction::VFCmp, pred, LHS, RHS, Name, InsertBefore) {
+    assert(pred <= CmpInst::LAST_FCMP_PREDICATE &&
+           "Invalid VFCmp predicate value");
+    assert(getOperand(0)->getType() == getOperand(1)->getType() &&
+           "Both operands to VFCmp instruction are not of the same type!");
   }
 
   /// @brief Constructor with insert-at-block-end semantics.
@@ -971,6 +979,10 @@ public:
     BasicBlock *InsertAtEnd   ///< Block to insert into.
   ) : CmpInst(VectorType::getInteger(cast<VectorType>(LHS->getType())),
               Instruction::VFCmp, pred, LHS, RHS, Name, InsertAtEnd) {
+    assert(pred <= CmpInst::LAST_FCMP_PREDICATE &&
+           "Invalid VFCmp predicate value");
+    assert(getOperand(0)->getType() == getOperand(1)->getType() &&
+           "Both operands to VFCmp instruction are not of the same type!");
   }
 
   /// @brief Return the predicate for this instruction.