7 #ifndef RETDEC_LLVMIR2HLL_OPTIMIZER_OPTIMIZERS_LLVM_INTRINSICS_OPTIMIZER_H
8 #define RETDEC_LLVMIR2HLL_OPTIMIZER_OPTIMIZERS_LLVM_INTRINSICS_OPTIMIZER_H
36 virtual std::string
getId()
const override {
return "LLVMIntrinsics"; }
A base class of all function optimizers.
Definition: func_optimizer.h:44
Optimizes calls to LLVM intrinsic functions.
Definition: llvm_intrinsics_optimizer.h:32
LLVMIntrinsicsOptimizer(ShPtr< Module > module)
Constructs a new optimizer.
Definition: llvm_intrinsics_optimizer.cpp:31
FuncSet removedCalls
Definition: llvm_intrinsics_optimizer.h:55
FuncSet doNotRemoveFuncs
Set of functions whose declarations should be kept.
Definition: llvm_intrinsics_optimizer.h:52
virtual void visit(ShPtr< GlobalVarDef > varDef) override
Definition: ordered_all_visitor.cpp:95
virtual void doOptimization() override
Performs the optimization on all functions in the module.
Definition: llvm_intrinsics_optimizer.cpp:36
virtual std::string getId() const override
Returns the ID of the optimizer.
Definition: llvm_intrinsics_optimizer.h:36
ShPtr< Function > getCalledFunc(ShPtr< CallExpr > expr) const
Returns the function called in expr.
Definition: llvm_intrinsics_optimizer.cpp:53
ShPtr< Module > module
The module that is being optimized.
Definition: optimizer.h:79
virtual void visit(ShPtr< GlobalVarDef > varDef) override
Definition: ordered_all_visitor.cpp:95
A base class of all function optimizers.
A library providing API for working with back-end IR.
std::shared_ptr< T > ShPtr
An alias for a shared pointer.
Definition: smart_ptr.h:18
std::set< ShPtr< Function > > FuncSet
Set of functions.
Definition: types.h:78
Definition: archive_wrapper.h:19
Declarations, aliases, macros, etc. for the use of smart pointers.