include/BPFCov.h (21 lines of code) (raw):

#ifndef LLVM_BPFCOV_H #define LLVM_BPFCOV_H #include "llvm/IR/PassManager.h" #include "llvm/Pass.h" #include "llvm/Support/raw_ostream.h" //------------------------------------------------------------------------------ // New PM / Interface //------------------------------------------------------------------------------ struct BPFCov : public llvm::PassInfoMixin<BPFCov> { llvm::PreservedAnalyses run(llvm::Module &M, llvm::ModuleAnalysisManager &MAM); static bool isRequired() { return true; } virtual bool runOnModule(llvm::Module &M); }; //------------------------------------------------------------------------------ // Legacy PM / Interface //------------------------------------------------------------------------------ struct LegacyBPFCov : public llvm::ModulePass { static char ID; LegacyBPFCov() : llvm::ModulePass(ID) {} bool runOnModule(llvm::Module &M) override; void getAnalysisUsage(llvm::AnalysisUsage &AU) const override; void print(llvm::raw_ostream &OutS, llvm::Module const *M) const override; BPFCov Impl; }; #endif // LLVM_BPFCOV_H