mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
51c5131554
The Clifter public header only needs llvm::Function, not the full llvm::Module definition, so drop the Module.h include. This shaves a non-trivial amount of compile time off the translation units that depend on Clifter.h without pulling in Module.h themselves.
30 lines
621 B
C++
30 lines
621 B
C++
#pragma once
|
|
|
|
//
|
|
// This file is distributed under the MIT License. See LICENSE.md for details.
|
|
//
|
|
|
|
#include "llvm/IR/Function.h"
|
|
|
|
#include "revng/Clift/Clift.h"
|
|
#include "revng/Model/Binary.h"
|
|
|
|
namespace clift {
|
|
|
|
class Clifter {
|
|
public:
|
|
static std::unique_ptr<Clifter> make(mlir::ModuleOp Module,
|
|
const model::Binary &Model);
|
|
|
|
virtual ~Clifter() = default;
|
|
|
|
virtual clift::FunctionOp import(const llvm::Function *Function) = 0;
|
|
|
|
protected:
|
|
Clifter() = default;
|
|
Clifter(const Clifter &) = default;
|
|
Clifter &operator=(const Clifter &) = default;
|
|
};
|
|
|
|
} // namespace clift
|