retdec
idioms.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_BIN2LLVMIR_OPTIMIZATIONS_IDIOMS_IDIOMS_H
8 #define RETDEC_BIN2LLVMIR_OPTIMIZATIONS_IDIOMS_IDIOMS_H
9 
10 #include <list>
11 
12 #include <llvm/IR/Function.h>
13 #include <llvm/Pass.h>
14 
19 
20 namespace retdec {
21 namespace bin2llvmir {
22 
26 class LLVM_LIBRARY_VISIBILITY Idioms: public llvm::FunctionPass {
27 public:
28  static char ID;
29  Idioms();
30 
31  virtual bool runOnFunction(llvm::Function & f) override;
32  virtual bool doInitialization(llvm::Module & M) override;
33  virtual bool doFinalization(llvm::Module & M) override;
34 
35  IdiomsAnalysis * getCompilerAnalysis(llvm::Module & M);
36 
37 private:
38  IdiomsAnalysis * m_idioms = nullptr;
39  Config* m_config = nullptr;
40 };
41 
42 } // namespace bin2llvmir
43 } // namespace retdec
44 
45 #endif
Config DB provider for bin2llvmirl.
Definition: config.h:24
Definition: idioms_analysis.h:41
Instruction idiom analysis.
Definition: idioms.h:26
static char ID
Definition: idioms.h:28
Instruction idioms analysis abstract class.
Instruction idioms analysis.
Instruction idioms analysis types.
The frontend-end part of the decompiler.
Definition: archive_wrapper.h:19