7 #ifndef RETDEC_BIN2LLVMIR_OPTIMIZATIONS_IDIOMS_IDIOMS_ANALYSIS_H
8 #define RETDEC_BIN2LLVMIR_OPTIMIZATIONS_IDIOMS_IDIOMS_ANALYSIS_H
12 #include <llvm/ADT/Statistic.h>
13 #include <llvm/IR/BasicBlock.h>
14 #include <llvm/IR/Instruction.h>
15 #include <llvm/Support/Debug.h>
16 #include <llvm/Support/raw_ostream.h>
47 virtual bool doAnalysis(llvm::Function & f, llvm::Pass * p)
override;
50 bool analyse(llvm::Function & f, llvm::Pass * p,
int (
IdiomsAnalysis::*exchanger)(llvm::Function &, llvm::Pass *)
const,
const char * fname);
51 bool analyse(llvm::BasicBlock & bb, llvm::Instruction * (
IdiomsAnalysis::*exchanger)(llvm::BasicBlock::iterator)
const,
const char * fname);
Config DB provider for bin2llvmirl.
void init(llvm::Module *M, CC_compiler cc, CC_arch arch)
Definition: idioms_abstract.cpp:17
Definition: idioms_analysis.h:41
bool analyse(llvm::Function &f, llvm::Pass *p, int(IdiomsAnalysis::*exchanger)(llvm::Function &, llvm::Pass *) const, const char *fname)
Definition: idioms_analysis.cpp:277
virtual bool doAnalysis(llvm::Function &f, llvm::Pass *p) override
Definition: idioms_analysis.cpp:64
IdiomsAnalysis(llvm::Module *M, CC_compiler cc, CC_arch arch)
Definition: idioms_analysis.h:43
Borland C/C++ instruction idioms.
Definition: idioms_borland.h:18
Common compiler instruction idioms.
Definition: idioms_common.h:18
GNU/GCC instruction idioms.
Definition: idioms_gcc.h:20
Intel compiler instruction idioms.
Definition: idioms_intel.h:18
clang/LLVM instruction idioms
Definition: idioms_llvm.h:18
Division and modulo using magic number.
Definition: idioms_magicdivmod.h:23
Open Watcom instruction idioms.
Definition: idioms_owatcom.h:18
Visual Studio instruction idioms.
Definition: idioms_vstudio.h:20
Instruction idioms analysis abstract class.
Borland C/C++ instruction idioms.
Common compiler instruction idioms.
GNU/GCC instruction idioms.
Intel compiler instruction idioms.
clang/LLVM instruction idioms
Magic div and modulo exchangers.
Open Watcom instruction idioms.
Instruction idioms analysis types.
Visual Studio instruction idioms.
The frontend-end part of the decompiler.
CC_arch
Target architecture.
Definition: idioms_types.h:28
CC_compiler
Compiler type.
Definition: idioms_types.h:16
Definition: archive_wrapper.h:19