//===-- llvm/Analysis/Verifier.h - Module Verifier ---------------*- C++ -*-==//
//
-// This file defines the method verifier interface, that can be used for some
-// sanity checking of input to the system.
+// This file defines the function verifier interface, that can be used for some
+// sanity checking of input to the system, and for checking that transformations
+// haven't done something bad.
//
// Note that this does not provide full 'java style' security and verifications,
// instead it just tries to ensure that code is well formed.
#ifndef LLVM_ANALYSIS_VERIFIER_H
#define LLVM_ANALYSIS_VERIFIER_H
-#include <vector>
-#include <string>
+class FunctionPass;
class Module;
-class Method;
+class Function;
-// verify - Check a module or method for validity. If errors are detected,
-// error messages corresponding to the problem are added to the errorMsgs
-// vectors, and a value of true is returned.
+// createVerifierPass - Check a module or function for validity. If errors are
+// detected, error messages corresponding to the problem are printed to stderr.
//
-bool verify(const Module *M, vector<string> &ErrorMsgs);
-bool verify(const Method *M, vector<string> &ErrorMsgs);
+FunctionPass *createVerifierPass();
+
+// verifyModule - Check a module for errors, printing messages on stderr.
+// Return true if the module is corrupt. This should only be used for
+// debugging, because it plays games with PassManagers and stuff.
+//
+bool verifyModule(const Module &M);
+
+// verifyFunction - Check a function for errors, useful for use when debugging a
+// pass.
+bool verifyFunction(const Function &F);
#endif