[llvm-commits] CVS: llvm/lib/VMCore/Verifier.cpp

Chris Lattner lattner at cs.uiuc.edu
Thu Mar 11 23:55:09 PST 2004


Changes in directory llvm/lib/VMCore:

Verifier.cpp updated: 1.84 -> 1.85

---
Log message:

Add support for checking the select instruction



---
Diffs of the changes:  (+11 -0)

Index: llvm/lib/VMCore/Verifier.cpp
diff -u llvm/lib/VMCore/Verifier.cpp:1.84 llvm/lib/VMCore/Verifier.cpp:1.85
--- llvm/lib/VMCore/Verifier.cpp:1.84	Mon Mar  1 18:22:19 2004
+++ llvm/lib/VMCore/Verifier.cpp	Thu Mar 11 23:54:31 2004
@@ -144,6 +144,7 @@
     void visitInstruction(Instruction &I);
     void visitTerminatorInst(TerminatorInst &I);
     void visitReturnInst(ReturnInst &RI);
+    void visitSelectInst(SelectInst &SI);
     void visitUserOp1(Instruction &I);
     void visitUserOp2(Instruction &I) { visitUserOp1(I); }
     void visitIntrinsicFunctionCall(Intrinsic::ID ID, CallInst &CI);
@@ -334,6 +335,16 @@
   // terminators...
   visitTerminatorInst(RI);
 }
+
+void Verifier::visitSelectInst(SelectInst &SI) {
+  Assert1(SI.getCondition()->getType() == Type::BoolTy,
+          "Select condition type must be bool!", &SI);
+  Assert1(SI.getTrueValue()->getType() == SI.getFalseValue()->getType(),
+          "Select values must have identical types!", &SI);
+  Assert1(SI.getTrueValue()->getType() == SI.getType(),
+          "Select values must have same type as select instruction!", &SI);
+}
+
 
 /// visitUserOp1 - User defined operators shouldn't live beyond the lifetime of
 /// a pass, if any exist, it's an error.





More information about the llvm-commits mailing list