retdec
llvm_intrinsics_optimizer.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_LLVMIR2HLL_OPTIMIZER_OPTIMIZERS_LLVM_INTRINSICS_OPTIMIZER_H
8 #define RETDEC_LLVMIR2HLL_OPTIMIZER_OPTIMIZERS_LLVM_INTRINSICS_OPTIMIZER_H
9 
12 
13 namespace retdec {
14 namespace llvmir2hll {
15 
33 public:
35 
36  virtual std::string getId() const override { return "LLVMIntrinsics"; }
37 
38 private:
39  virtual void doOptimization() override;
40 
42 
46  virtual void visit(ShPtr<CallExpr> expr) override;
47  virtual void visit(ShPtr<CallStmt> stmt) override;
49 
50 private:
53 
54  // Set of calls that were removed.
56 };
57 
58 } // namespace llvmir2hll
59 } // namespace retdec
60 
61 #endif
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.