[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