retdec
Public Member Functions | Private Member Functions | List of all members
retdec::llvmir2hll::CCompoundOpManager Class Referencefinal

Compound operator manager for the C language. More...

#include <c_compound_op_manager.h>

Inheritance diagram for retdec::llvmir2hll::CCompoundOpManager:
Inheritance graph
[legend]
Collaboration diagram for retdec::llvmir2hll::CCompoundOpManager:
Collaboration graph
[legend]

Public Member Functions

 CCompoundOpManager ()
 Constructs a new C compound operator manager. More...
 
virtual std::string getId () const override
 Returns the ID of the manager. More...
 
- Public Member Functions inherited from retdec::llvmir2hll::CompoundOpManager
 CompoundOpManager ()
 Constructs a new base class for compound operator managers. More...
 
CompoundOp tryOptimizeToCompoundOp (ShPtr< AssignStmt > stmt)
 Tries to optimize stmt to a compound operator. More...
 
CompoundOp tryOptimizeToCompoundOp (ShPtr< AssignOpExpr > expr)
 Tries to optimize expr to a compound operator. More...
 
CompoundOp tryOptimizeToCompoundOp (ShPtr< Expression > lhs, ShPtr< Expression > rhs)
 Tries to optimize assignment lhs = rhs to a compound operator. More...
 

Private Member Functions

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. More...
 
virtual void optimizeToCompoundOp (ShPtr< SubOpExpr > expr, ShPtr< Expression > operand) override
 
virtual void optimizeToCompoundOp (ShPtr< MulOpExpr > expr, ShPtr< Expression > operand) override
 
virtual void optimizeToCompoundOp (ShPtr< ModOpExpr > expr, ShPtr< Expression > operand) override
 
virtual void optimizeToCompoundOp (ShPtr< DivOpExpr > expr, ShPtr< Expression > operand) override
 
virtual void optimizeToCompoundOp (ShPtr< BitAndOpExpr > expr, ShPtr< Expression > operand) override
 
virtual void optimizeToCompoundOp (ShPtr< BitOrOpExpr > expr, ShPtr< Expression > operand) override
 
virtual void optimizeToCompoundOp (ShPtr< BitXorOpExpr > expr, ShPtr< Expression > operand) override
 
virtual void optimizeToCompoundOp (ShPtr< BitShlOpExpr > expr, ShPtr< Expression > operand) override
 
virtual void optimizeToCompoundOp (ShPtr< BitShrOpExpr > expr, ShPtr< Expression > operand) override
 

Additional Inherited Members

- Protected Member Functions inherited from retdec::llvmir2hll::CompoundOpManager
void createResultingUnaryCompoundOp (const std::string &op)
 Creates the resulting unary compound operator and saves it into compoundOp. More...
 
void createResultingBinaryCompoundOp (const std::string &op, ShPtr< Expression > operand)
 Creates the resulting binary compound operator and saves it into compoundOp. More...
 

Detailed Description

Compound operator manager for the C language.

This is a concrete compound operator manager which should not be subclassed.

Constructor & Destructor Documentation

◆ CCompoundOpManager()

retdec::llvmir2hll::CCompoundOpManager::CCompoundOpManager ( )

Constructs a new C compound operator manager.

Member Function Documentation

◆ getId()

std::string retdec::llvmir2hll::CCompoundOpManager::getId ( ) const
overridevirtual

Returns the ID of the manager.

Implements retdec::llvmir2hll::CompoundOpManager.

◆ optimizeToCompoundOp() [1/10]

void retdec::llvmir2hll::CCompoundOpManager::optimizeToCompoundOp ( ShPtr< AddOpExpr expr,
ShPtr< Expression operand 
)
overrideprivatevirtual

Sets the resulting operator to the default one which is the same like nothing is to be optimized.

In subclasses you can override this method that expr is used to recognize type of compound operator and operand is used as right operand of operator.

Parameters
[in]exprType of operator.
[in]operandThe right operand of result operator.

Reimplemented from retdec::llvmir2hll::CompoundOpManager.

◆ optimizeToCompoundOp() [2/10]

void retdec::llvmir2hll::CCompoundOpManager::optimizeToCompoundOp ( ShPtr< BitAndOpExpr expr,
ShPtr< Expression operand 
)
overrideprivatevirtual

◆ optimizeToCompoundOp() [3/10]

void retdec::llvmir2hll::CCompoundOpManager::optimizeToCompoundOp ( ShPtr< BitOrOpExpr expr,
ShPtr< Expression operand 
)
overrideprivatevirtual

◆ optimizeToCompoundOp() [4/10]

void retdec::llvmir2hll::CCompoundOpManager::optimizeToCompoundOp ( ShPtr< BitShlOpExpr expr,
ShPtr< Expression operand 
)
overrideprivatevirtual

◆ optimizeToCompoundOp() [5/10]

void retdec::llvmir2hll::CCompoundOpManager::optimizeToCompoundOp ( ShPtr< BitShrOpExpr expr,
ShPtr< Expression operand 
)
overrideprivatevirtual

◆ optimizeToCompoundOp() [6/10]

void retdec::llvmir2hll::CCompoundOpManager::optimizeToCompoundOp ( ShPtr< BitXorOpExpr expr,
ShPtr< Expression operand 
)
overrideprivatevirtual

◆ optimizeToCompoundOp() [7/10]

void retdec::llvmir2hll::CCompoundOpManager::optimizeToCompoundOp ( ShPtr< DivOpExpr expr,
ShPtr< Expression operand 
)
overrideprivatevirtual

◆ optimizeToCompoundOp() [8/10]

void retdec::llvmir2hll::CCompoundOpManager::optimizeToCompoundOp ( ShPtr< ModOpExpr expr,
ShPtr< Expression operand 
)
overrideprivatevirtual

◆ optimizeToCompoundOp() [9/10]

void retdec::llvmir2hll::CCompoundOpManager::optimizeToCompoundOp ( ShPtr< MulOpExpr expr,
ShPtr< Expression operand 
)
overrideprivatevirtual

◆ optimizeToCompoundOp() [10/10]

void retdec::llvmir2hll::CCompoundOpManager::optimizeToCompoundOp ( ShPtr< SubOpExpr expr,
ShPtr< Expression operand 
)
overrideprivatevirtual

The documentation for this class was generated from the following files: