21 #ifndef LLVM_IR_VERIFIER_H
22 #define LLVM_IR_VERIFIER_H
33 struct VerifierSupport;
40 template <
typename... Tys>
void CheckFailed(Tys &&...
Args);
50 typedef std::pair<bool, unsigned> TBAABaseNodeSummary;
61 TBAAVerifier::TBAABaseNodeSummary verifyTBAABaseNode(
Instruction &I,
63 TBAABaseNodeSummary verifyTBAABaseNodeImpl(
Instruction &I,
66 bool isValidScalarTBAANode(
const MDNode *MD);
71 : Diagnostic(Diagnostic) {}
95 bool verifyModule(
const Module &M, raw_ostream *OS =
nullptr,
96 bool *BrokenDebugInfo =
nullptr);
133 explicit VerifierPass(
bool FatalErrors =
true) : FatalErrors(FatalErrors) {}
A Module instance is used to store all the information related to an LLVM module. ...
Result run(Module &M, ModuleAnalysisManager &)
FunctionPass * createVerifierPass(bool FatalErrors=true)
Check a module for errors, and report separate error states for IR and debug info errors...
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
VerifierPass(bool FatalErrors=true)
A CRTP mix-in to automatically provide informational APIs needed for passes.
TBAAVerifier(VerifierSupport *Diagnostic=nullptr)
A set of analyses that are preserved following a run of a transformation pass.
A CRTP mix-in that provides informational APIs needed for analysis passes.
bool visitTBAAMetadata(Instruction &I, const MDNode *MD)
Visit an instruction and return true if it is valid, return false if an invalid TBAA is attached...
Class for arbitrary precision integers.
bool verifyModule(const Module &M, raw_ostream *OS=nullptr, bool *BrokenDebugInfo=nullptr)
Check a module for errors.
bool verifyFunction(const Function &F, raw_ostream *OS=nullptr)
Check a function for errors, useful for use when debugging a pass.
Verify that the TBAA Metadatas are valid.
This class implements an extremely fast bulk output stream that can only output to a stream...
A container for analyses that lazily runs them and caches their results.
This header defines various interfaces for pass management in LLVM.
A special type used by analysis passes to provide an address that identifies that particular analysis...