retdec
idioms_llvm.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_BIN2LLVMIR_OPTIMIZATIONS_IDIOMS_IDIOMS_LLVM_H
8 #define RETDEC_BIN2LLVMIR_OPTIMIZATIONS_IDIOMS_IDIOMS_LLVM_H
9 
11 
12 namespace retdec {
13 namespace bin2llvmir {
14 
18 class IdiomsLLVM: virtual public IdiomsAbstract {
19  friend class IdiomsAnalysis;
20 
21 protected:
22  llvm::Instruction * exchangeIsGreaterThanMinusOne(llvm::BasicBlock::iterator iter) const;
23  llvm::Instruction * exchangeCompareEq(llvm::BasicBlock::iterator iter) const;
24  llvm::Instruction * exchangeCompareNeq(llvm::BasicBlock::iterator iter) const;
25  llvm::Instruction * exchangeCompareSlt(llvm::BasicBlock::iterator iter) const;
26  llvm::Instruction * exchangeCompareSle(llvm::BasicBlock::iterator iter) const;
27 };
28 
29 } // namespace bin2llvmir
30 } // namespace retdec
31 
32 #endif
Instruction idiom analysis abstract class.
Definition: idioms_abstract.h:22
Definition: idioms_analysis.h:41
clang/LLVM instruction idioms
Definition: idioms_llvm.h:18
llvm::Instruction * exchangeCompareEq(llvm::BasicBlock::iterator iter) const
Definition: idioms_llvm.cpp:57
llvm::Instruction * exchangeCompareSle(llvm::BasicBlock::iterator iter) const
Definition: idioms_llvm.cpp:147
llvm::Instruction * exchangeCompareSlt(llvm::BasicBlock::iterator iter) const
Definition: idioms_llvm.cpp:109
llvm::Instruction * exchangeCompareNeq(llvm::BasicBlock::iterator iter) const
Definition: idioms_llvm.cpp:87
llvm::Instruction * exchangeIsGreaterThanMinusOne(llvm::BasicBlock::iterator iter) const
Definition: idioms_llvm.cpp:23
Instruction idioms analysis abstract class.
The frontend-end part of the decompiler.
Definition: archive_wrapper.h:19