7 #ifndef RETDEC_BIN2LLVMIR_OPTIMIZATIONS_STACK_STACK_H
8 #define RETDEC_BIN2LLVMIR_OPTIMIZATIONS_STACK_STACK_H
11 #include <unordered_set>
13 #include <llvm/IR/Module.h>
14 #include <llvm/Pass.h>
40 llvm::Instruction* inst,
43 std::map<llvm::Value*, llvm::Value*>& val2val);
Config DB provider for bin2llvmirl.
Definition: reaching_definitions.h:121
Abi * _abi
Definition: stack.h:55
StackAnalysis()
Definition: stack.cpp:37
bool runOnModuleCustom(llvm::Module &m, Config *c, Abi *abi, DebugFormat *dbgf=nullptr)
Definition: stack.cpp:52
std::optional< int > getBaseOffset(SymbolicTree &root)
Definition: stack.cpp:259
const retdec::common::Object * getDebugStackVariable(llvm::Function *fnc, SymbolicTree &root)
Definition: stack.cpp:293
const retdec::common::Object * getConfigStackVariable(llvm::Function *fnc, SymbolicTree &root)
Definition: stack.cpp:329
bool run()
Definition: stack.cpp:65
llvm::Module * _module
Definition: stack.h:53
virtual bool runOnModule(llvm::Module &m) override
Definition: stack.cpp:43
std::unordered_set< llvm::Value * > _toRemove
Definition: stack.h:58
static char ID
Definition: stack.h:27
void handleInstruction(ReachingDefinitionsAnalysis &RDA, llvm::Instruction *inst, llvm::Value *val, llvm::Type *type, std::map< llvm::Value *, llvm::Value * > &val2val)
Definition: stack.cpp:131
DebugFormat * _dbgf
Definition: stack.h:56
Config * _config
Definition: stack.h:54
Definition: symbolic_tree.h:43
The frontend-end part of the decompiler.
Definition: archive_wrapper.h:19
Construction of symbolic tree from the given node.