7 #ifndef RETDEC_BIN2LLVMIR_OPTIMIZATIONS_UNREACHABLE_FUNCS_UNREACHABLE_FUNCS_H
8 #define RETDEC_BIN2LLVMIR_OPTIMIZATIONS_UNREACHABLE_FUNCS_UNREACHABLE_FUNCS_H
10 #include <llvm/Analysis/CallGraph.h>
11 #include <llvm/IR/Module.h>
12 #include <llvm/Pass.h>
42 std::set<llvm::Function*>& funcsThatCannotBeOptimized);
44 const std::set<llvm::Function*>& funcsThatCannotBeOptimized);
Config DB provider for bin2llvmirl.
Removes unreachable functions from main.
Definition: unreachable_funcs.h:31
static char ID
Definition: unreachable_funcs.h:33
llvm::Function * mainFunc
Definition: unreachable_funcs.h:50
llvm::Module * module
Definition: unreachable_funcs.h:47
UnreachableFuncs()
Created a new unreachable functions optimizer.
Definition: unreachable_funcs.cpp:104
bool runOnModuleCustom(llvm::Module &m, Config *c)
Definition: unreachable_funcs.cpp:123
Config * config
Definition: unreachable_funcs.h:48
unsigned NumFuncsRemoved
Definition: unreachable_funcs.h:51
void getFuncsThatCannotBeOptimized(std::set< llvm::Function * > &funcsThatCannotBeOptimized)
Definition: unreachable_funcs.cpp:161
llvm::CallGraph * callGraph
Definition: unreachable_funcs.h:49
virtual void getAnalysisUsage(llvm::AnalysisUsage &au) const override
Definition: unreachable_funcs.cpp:111
virtual bool runOnModule(llvm::Module &m) override
Definition: unreachable_funcs.cpp:116
bool run()
Definition: unreachable_funcs.cpp:130
void removeFuncsThatCanBeOptimized(const std::set< llvm::Function * > &funcsThatCannotBeOptimized)
Definition: unreachable_funcs.cpp:190
The frontend-end part of the decompiler.
Definition: archive_wrapper.h:19