[llvm-commits] [llvm] r51125 - /llvm/trunk/include/llvm/Instructions.h

Nate Begeman natebegeman at mac.com
Wed May 14 13:28:31 PDT 2008


Author: sampo
Date: Wed May 14 15:28:31 2008
New Revision: 51125

URL: http://llvm.org/viewvc/llvm-project?rev=51125&view=rev
Log:
Don't generate unused variables in a no-assert build
Add some checks to the new vicmp,vfcmp instructions

Modified:
    llvm/trunk/include/llvm/Instructions.h

Modified: llvm/trunk/include/llvm/Instructions.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Instructions.h?rev=51125&r1=51124&r2=51125&view=diff

==============================================================================
--- llvm/trunk/include/llvm/Instructions.h (original)
+++ llvm/trunk/include/llvm/Instructions.h Wed May 14 15:28:31 2008
@@ -627,12 +627,11 @@
     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 @@
     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 @@
               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 @@
               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 @@
     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 @@
     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 @@
     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 @@
     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.





More information about the llvm-commits mailing list