20#ifndef LLVM_IR_VERIFIER_H
21#define LLVM_IR_VERIFIER_H
36struct VerifierSupport;
43 template <
typename... Tys>
void CheckFailed(Tys &&... Args);
53 using TBAABaseNodeSummary = std::pair<bool, unsigned>;
64 TBAAVerifier::TBAABaseNodeSummary verifyTBAABaseNode(
Instruction &
I,
67 TBAABaseNodeSummary verifyTBAABaseNodeImpl(
Instruction &
I,
71 bool isValidScalarTBAANode(
const MDNode *MD);
76 : Diagnostic(Diagnostic) {}
101 bool *BrokenDebugInfo =
nullptr);
136 explicit VerifierPass(
bool FatalErrors =
true) : FatalErrors(FatalErrors) {}
This file defines the DenseMap class.
Machine Check Debug Module
This header defines various interfaces for pass management in LLVM.
Class for arbitrary precision integers.
A container for analyses that lazily runs them and caches their results.
A Module instance is used to store all the information related to an LLVM module.
A set of analyses that are preserved following a run of a transformation pass.
Verify that the TBAA Metadatas are valid.
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.
TBAAVerifier(VerifierSupport *Diagnostic=nullptr)
Check a module for errors, and report separate error states for IR and debug info errors.
Result run(Module &M, ModuleAnalysisManager &)
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
VerifierPass(bool FatalErrors=true)
This is an optimization pass for GlobalISel generic memory operations.
bool verifyFunction(const Function &F, raw_ostream *OS=nullptr)
Check a function for errors, useful for use when debugging a pass.
FunctionPass * createVerifierPass(bool FatalErrors=true)
bool verifyModule(const Module &M, raw_ostream *OS=nullptr, bool *BrokenDebugInfo=nullptr)
Check a module for errors.
A CRTP mix-in that provides informational APIs needed for analysis passes.
A special type used by analysis passes to provide an address that identifies that particular analysis...
A CRTP mix-in to automatically provide informational APIs needed for passes.