7 #ifndef RETDEC_BIN2LLVMIR_OPTIMIZATIONS_COND_BRANCH_OPT_COND_BRANCH_OPT_H
8 #define RETDEC_BIN2LLVMIR_OPTIMIZATIONS_COND_BRANCH_OPT_COND_BRANCH_OPT_H
10 #include <unordered_set>
12 #include <llvm/IR/Module.h>
13 #include <llvm/Pass.h>
39 llvm::Instruction& i);
43 llvm::Value* testedVal,
45 llvm::Instruction* binOp,
46 llvm::CmpInst::Predicate predicate);
Config DB provider for bin2llvmirl.
Definition: cond_branch_opt.h:28
llvm::Module * _module
Definition: cond_branch_opt.h:49
bool transformConditionSub(llvm::BranchInst *br, llvm::Value *testedVal, llvm::Value *subVal, llvm::Instruction *binOp, llvm::CmpInst::Predicate predicate)
Definition: cond_branch_opt.cpp:273
std::unordered_set< llvm::Value * > _toRemove
Definition: cond_branch_opt.h:52
bool runOnModuleCustom(llvm::Module &m, Config *c, Abi *abi)
Definition: cond_branch_opt.cpp:49
Config * _config
Definition: cond_branch_opt.h:50
static char ID
Definition: cond_branch_opt.h:30
CondBranchOpt()
Definition: cond_branch_opt.cpp:35
bool run()
Definition: cond_branch_opt.cpp:57
Abi * _abi
Definition: cond_branch_opt.h:51
bool runOnInstruction(ReachingDefinitionsAnalysis &RDA, llvm::Instruction &i)
Definition: cond_branch_opt.cpp:87
virtual bool runOnModule(llvm::Module &m) override
Definition: cond_branch_opt.cpp:41
Definition: reaching_definitions.h:121
The frontend-end part of the decompiler.
Definition: archive_wrapper.h:19