Files
revng-revng/include/revng/Model/SerializeModelPass.h
2021-03-16 11:55:58 +01:00

34 lines
786 B
C++

#pragma once
//
// This file is distributed under the MIT License. See LICENSE.md for details.
//
#include "llvm/Pass.h"
#include "revng/Model/Binary.h"
#include "revng/Model/LoadModelPass.h"
void writeModel(model::Binary &Model, llvm::Module &M);
class SerializeModelWrapperPass : public llvm::ModulePass {
public:
static char ID;
public:
SerializeModelWrapperPass() : llvm::ModulePass(ID) {}
void getAnalysisUsage(llvm::AnalysisUsage &AU) const override final {
AU.setPreservesAll();
AU.addRequired<LoadModelWrapperPass>();
}
public:
bool runOnModule(llvm::Module &M) override final;
};
class SerializeModelPass : public llvm::PassInfoMixin<SerializeModelPass> {
public:
llvm::PreservedAnalyses
run(llvm::Module &M, llvm::ModuleAnalysisManager &MAM);
};