X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FAnalysis%2FVerifier.h;h=ce8aeef07645b62ea51d2b31213b3a40dd8e2d86;hb=75b51621540c23ddfc1e9ef6b4dc803453d9d122;hp=645f1fa33112da5506ab1dda73c14ab6c4ad8f49;hpb=053134a1ee57289fd6397713a6898f6dd141ba29;p=oota-llvm.git diff --git a/include/llvm/Analysis/Verifier.h b/include/llvm/Analysis/Verifier.h index 645f1fa3311..ce8aeef0764 100644 --- a/include/llvm/Analysis/Verifier.h +++ b/include/llvm/Analysis/Verifier.h @@ -1,4 +1,11 @@ -//===-- llvm/Analysis/Verifier.h - Module Verifier ---------------*- C++ -*-==// +//===-- llvm/Analysis/Verifier.h - LLVM IR Verifier -------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// // // 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 @@ -14,23 +21,55 @@ #ifndef LLVM_ANALYSIS_VERIFIER_H #define LLVM_ANALYSIS_VERIFIER_H +#include + +namespace llvm { + class FunctionPass; class Module; class Function; -// createVerifierPass - Check a module or function for validity. If errors are -// detected, error messages corresponding to the problem are printed to stderr. -// -FunctionPass *createVerifierPass(); +/// @brief An enumeration to specify the action to be taken if errors found. +/// +/// This enumeration is used in the functions below to indicate what should +/// happen if the verifier finds errors. Each of the functions that uses +/// this enumeration as an argument provides a default value for it. The +/// actions are listed below. +enum VerifierFailureAction { + AbortProcessAction, ///< verifyModule will print to stderr and abort() + PrintMessageAction, ///< verifyModule will print to stderr and return true + ReturnStatusAction ///< verifyModule will just return true +}; -// 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); +/// @brief Create a verifier pass. +/// +/// Check a module or function for validity. When the pass is used, the +/// action indicated by the \p action argument will be used if errors are +/// found. +FunctionPass *createVerifierPass( + VerifierFailureAction action = AbortProcessAction ///< Action to take +); + +/// @brief Check a module for errors. +/// +/// If there are no errors, the function returns false. If an error is found, +/// the action taken depends on the \p action parameter. +/// This should only be used for debugging, because it plays games with +/// PassManagers and stuff. + +bool verifyModule( + const Module &M, ///< The module to be verified + VerifierFailureAction action = AbortProcessAction, ///< Action to take + std::string *ErrorInfo = 0 ///< Information about failures. +); // verifyFunction - Check a function for errors, useful for use when debugging a // pass. -bool verifyFunction(const Function &F); +bool verifyFunction( + const Function &F, ///< The function to be verified + VerifierFailureAction action = AbortProcessAction ///< Action to take +); + +} // End llvm namespace #endif