retdec
c_compound_op_manager.h
Go to the documentation of this file.
1 
7 #ifndef RETDEC_LLVMIR2HLL_HLL_COMPOUND_OP_MANAGERS_C_COMPOUND_OP_MANAGER_H
8 #define RETDEC_LLVMIR2HLL_HLL_COMPOUND_OP_MANAGERS_C_COMPOUND_OP_MANAGER_H
9 
11 
12 namespace retdec {
13 namespace llvmir2hll {
14 
21 public:
23 
24  virtual std::string getId() const override;
25 
26 private:
27  virtual void optimizeToCompoundOp(ShPtr<AddOpExpr> expr,
28  ShPtr<Expression> operand) override;
29  virtual void optimizeToCompoundOp(ShPtr<SubOpExpr> expr,
30  ShPtr<Expression> operand) override;
31  virtual void optimizeToCompoundOp(ShPtr<MulOpExpr> expr,
32  ShPtr<Expression> operand) override;
33  virtual void optimizeToCompoundOp(ShPtr<ModOpExpr> expr,
34  ShPtr<Expression> operand) override;
35  virtual void optimizeToCompoundOp(ShPtr<DivOpExpr> expr,
36  ShPtr<Expression> operand) override;
37  virtual void optimizeToCompoundOp(ShPtr<BitAndOpExpr> expr,
38  ShPtr<Expression> operand) override;
39  virtual void optimizeToCompoundOp(ShPtr<BitOrOpExpr> expr,
40  ShPtr<Expression> operand) override;
41  virtual void optimizeToCompoundOp(ShPtr<BitXorOpExpr> expr,
42  ShPtr<Expression> operand) override;
43  virtual void optimizeToCompoundOp(ShPtr<BitShlOpExpr> expr,
44  ShPtr<Expression> operand) override;
45  virtual void optimizeToCompoundOp(ShPtr<BitShrOpExpr> expr,
46  ShPtr<Expression> operand) override;
47 };
48 
49 } // namespace llvmir2hll
50 } // namespace retdec
51 
52 #endif
Compound operator manager for the C language.
Definition: c_compound_op_manager.h:20
virtual std::string getId() const override
Returns the ID of the manager.
Definition: c_compound_op_manager.cpp:31
CCompoundOpManager()
Constructs a new C compound operator manager.
Definition: c_compound_op_manager.cpp:29
virtual void optimizeToCompoundOp(ShPtr< AddOpExpr > expr, ShPtr< Expression > operand) override
Sets the resulting operator to the default one which is the same like nothing is to be optimized.
Definition: c_compound_op_manager.cpp:35
A base class for compound operator managers.
Definition: compound_op_manager.h:33
A base class for compound operator managers.
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
Definition: archive_wrapper.h:19