retdec
Public Member Functions | Static Public Member Functions | Private Member Functions | List of all members
retdec::llvmir2hll::SimpleVarRenamer Class Reference

A renamer of variable names which names them simply by using the given variable name generator. More...

#include <simple_var_renamer.h>

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

Public Member Functions

virtual std::string getId () const override
 Returns the ID of the renamer. More...
 
- Public Member Functions inherited from retdec::llvmir2hll::VarRenamer
void renameVars (ShPtr< Module > module)
 Renames variables in the given module according to the settings set when constructing the renamer. More...
 

Static Public Member Functions

static ShPtr< VarRenamercreate (ShPtr< VarNameGen > varNameGen, bool useDebugNames=true)
 Creates a new renamer. More...
 

Private Member Functions

 SimpleVarRenamer (ShPtr< VarNameGen > varNameGen, bool useDebugNames)
 Constructs a new renamer. More...
 

Additional Inherited Members

- Protected Types inherited from retdec::llvmir2hll::VarRenamer
using FuncStringSetMap = std::map< ShPtr< Function >, StringSet >
 Mapping of a function into a set of strings. More...
 
using FuncByNameMap = std::map< std::string, ShPtr< Function > >
 Mapping of a function's name into the function. More...
 
- Protected Member Functions inherited from retdec::llvmir2hll::VarRenamer
 VarRenamer (ShPtr< VarNameGen > varNameGen, bool useDebugNames=true)
 Constructs a new variable renamer. More...
 
void assignName (ShPtr< Variable > var, const std::string &name, ShPtr< Function > func=nullptr)
 Assigns name to the given variable var, possibly in the given function. More...
 
void assignNameFromDebugInfoIfAvail (ShPtr< Variable > var, ShPtr< Function > func=nullptr)
 Assigns the name from debug information (if available) to the given variable. More...
 
bool isGlobalVar (ShPtr< Variable > var) const
 Returns true if the given variable is global, false otherwise. More...
 
bool isFunc (ShPtr< Variable > var) const
 Returns true if the given variable corresponds to a function, false otherwise. More...
 
bool hasBeenRenamed (ShPtr< Variable > var) const
 Returns true if the given variable has already been renamed, false otherwise. More...
 
bool nameExists (const std::string &name, ShPtr< Function > func=nullptr) const
 Returns true if the given name has already been assigned, false otherwise. More...
 
ShPtr< FunctiongetFuncByName (const std::string &name) const
 Returns a function with the given name. More...
 
virtual void doVarsRenaming ()
 Renames the variables in module. More...
 
virtual void renameUsingDebugNames ()
 Renames all variables in the module by using the assigned names from debug information. More...
 
virtual void renameGlobalVars ()
 Renames all global variables in the module. More...
 
virtual void renameGlobalVar (ShPtr< Variable > var)
 Renames the given global variable. More...
 
virtual void renameVarsInFuncs ()
 Renames the variables in all functions. More...
 
virtual void renameVarsInFunc (ShPtr< Function > func)
 Renames variables in the given function. More...
 
virtual void renameFuncParam (ShPtr< Variable > var, ShPtr< Function > func)
 Renames the given parameter var of function func. More...
 
virtual void renameFuncLocalVar (ShPtr< Variable > var, ShPtr< Function > func)
 Renames the given local variable var of function func. More...
 
virtual void visit (ShPtr< Variable > var) override
 
virtual void visit (ShPtr< GlobalVarDef > varDef) override
 
virtual void visit (ShPtr< Function > func) override
 
virtual void visit (ShPtr< AssignStmt > stmt) override
 
virtual void visit (ShPtr< BreakStmt > stmt) override
 
virtual void visit (ShPtr< CallStmt > stmt) override
 
virtual void visit (ShPtr< ContinueStmt > stmt) override
 
virtual void visit (ShPtr< EmptyStmt > stmt) override
 
virtual void visit (ShPtr< ForLoopStmt > stmt) override
 
virtual void visit (ShPtr< UForLoopStmt > stmt) override
 
virtual void visit (ShPtr< GotoStmt > stmt) override
 
virtual void visit (ShPtr< IfStmt > stmt) override
 
virtual void visit (ShPtr< ReturnStmt > stmt) override
 
virtual void visit (ShPtr< SwitchStmt > stmt) override
 
virtual void visit (ShPtr< UnreachableStmt > stmt) override
 
virtual void visit (ShPtr< VarDefStmt > stmt) override
 
virtual void visit (ShPtr< WhileLoopStmt > stmt) override
 
virtual void visit (ShPtr< AddOpExpr > expr) override
 
virtual void visit (ShPtr< AddressOpExpr > expr) override
 
virtual void visit (ShPtr< AndOpExpr > expr) override
 
virtual void visit (ShPtr< ArrayIndexOpExpr > expr) override
 
virtual void visit (ShPtr< AssignOpExpr > expr) override
 
virtual void visit (ShPtr< BitAndOpExpr > expr) override
 
virtual void visit (ShPtr< BitOrOpExpr > expr) override
 
virtual void visit (ShPtr< BitShlOpExpr > expr) override
 
virtual void visit (ShPtr< BitShrOpExpr > expr) override
 
virtual void visit (ShPtr< BitXorOpExpr > expr) override
 
virtual void visit (ShPtr< CallExpr > expr) override
 
virtual void visit (ShPtr< CommaOpExpr > expr) override
 
virtual void visit (ShPtr< DerefOpExpr > expr) override
 
virtual void visit (ShPtr< DivOpExpr > expr) override
 
virtual void visit (ShPtr< EqOpExpr > expr) override
 
virtual void visit (ShPtr< GtEqOpExpr > expr) override
 
virtual void visit (ShPtr< GtOpExpr > expr) override
 
virtual void visit (ShPtr< LtEqOpExpr > expr) override
 
virtual void visit (ShPtr< LtOpExpr > expr) override
 
virtual void visit (ShPtr< ModOpExpr > expr) override
 
virtual void visit (ShPtr< MulOpExpr > expr) override
 
virtual void visit (ShPtr< NegOpExpr > expr) override
 
virtual void visit (ShPtr< NeqOpExpr > expr) override
 
virtual void visit (ShPtr< NotOpExpr > expr) override
 
virtual void visit (ShPtr< OrOpExpr > expr) override
 
virtual void visit (ShPtr< StructIndexOpExpr > expr) override
 
virtual void visit (ShPtr< SubOpExpr > expr) override
 
virtual void visit (ShPtr< TernaryOpExpr > expr) override
 
virtual void visit (ShPtr< Variable > var) override
 
virtual void visit (ShPtr< BitCastExpr > expr) override
 
virtual void visit (ShPtr< ExtCastExpr > expr) override
 
virtual void visit (ShPtr< FPToIntCastExpr > expr) override
 
virtual void visit (ShPtr< IntToFPCastExpr > expr) override
 
virtual void visit (ShPtr< IntToPtrCastExpr > expr) override
 
virtual void visit (ShPtr< PtrToIntCastExpr > expr) override
 
virtual void visit (ShPtr< TruncCastExpr > expr) override
 
virtual void visit (ShPtr< ConstArray > constant) override
 
virtual void visit (ShPtr< ConstBool > constant) override
 
virtual void visit (ShPtr< ConstFloat > constant) override
 
virtual void visit (ShPtr< ConstInt > constant) override
 
virtual void visit (ShPtr< ConstNullPointer > constant) override
 
virtual void visit (ShPtr< ConstString > constant) override
 
virtual void visit (ShPtr< ConstStruct > constant) override
 
virtual void visit (ShPtr< ConstSymbol > constant) override
 
virtual void visit (ShPtr< ArrayType > type) override
 
virtual void visit (ShPtr< FloatType > type) override
 
virtual void visit (ShPtr< IntType > type) override
 
virtual void visit (ShPtr< PointerType > type) override
 
virtual void visit (ShPtr< StringType > type) override
 
virtual void visit (ShPtr< StructType > type) override
 
virtual void visit (ShPtr< FunctionType > type) override
 
virtual void visit (ShPtr< VoidType > type) override
 
virtual void visit (ShPtr< UnknownType > type) override
 
- Protected Member Functions inherited from retdec::llvmir2hll::OrderedAllVisitor
 OrderedAllVisitor (bool visitSuccessors=true, bool visitNestedStmts=true)
 Constructs a new visitor. More...
 
virtual void visitStmt (ShPtr< Statement > stmt, bool visitSuccessors=true, bool visitNestedStmts=true)
 Visits the given statement, and possibly its successors or nested statements. More...
 
void restart (bool visitSuccessors=true, bool visitNestedStmts=true)
 "Restarts" the visitor so it is in the state like it was when it was created. More...
 
bool makeAccessedAndCheckIfAccessed (ShPtr< Type > type)
 Makes the given type accessed. More...
 
virtual void visit (ShPtr< GlobalVarDef > varDef) override
 
virtual void visit (ShPtr< Function > func) override
 
virtual void visit (ShPtr< AssignStmt > stmt) override
 
virtual void visit (ShPtr< BreakStmt > stmt) override
 
virtual void visit (ShPtr< CallStmt > stmt) override
 
virtual void visit (ShPtr< ContinueStmt > stmt) override
 
virtual void visit (ShPtr< EmptyStmt > stmt) override
 
virtual void visit (ShPtr< ForLoopStmt > stmt) override
 
virtual void visit (ShPtr< UForLoopStmt > stmt) override
 
virtual void visit (ShPtr< GotoStmt > stmt) override
 
virtual void visit (ShPtr< IfStmt > stmt) override
 
virtual void visit (ShPtr< ReturnStmt > stmt) override
 
virtual void visit (ShPtr< SwitchStmt > stmt) override
 
virtual void visit (ShPtr< UnreachableStmt > stmt) override
 
virtual void visit (ShPtr< VarDefStmt > stmt) override
 
virtual void visit (ShPtr< WhileLoopStmt > stmt) override
 
virtual void visit (ShPtr< AddOpExpr > expr) override
 
virtual void visit (ShPtr< AddressOpExpr > expr) override
 
virtual void visit (ShPtr< AndOpExpr > expr) override
 
virtual void visit (ShPtr< ArrayIndexOpExpr > expr) override
 
virtual void visit (ShPtr< AssignOpExpr > expr) override
 
virtual void visit (ShPtr< BitAndOpExpr > expr) override
 
virtual void visit (ShPtr< BitOrOpExpr > expr) override
 
virtual void visit (ShPtr< BitShlOpExpr > expr) override
 
virtual void visit (ShPtr< BitShrOpExpr > expr) override
 
virtual void visit (ShPtr< BitXorOpExpr > expr) override
 
virtual void visit (ShPtr< CallExpr > expr) override
 
virtual void visit (ShPtr< CommaOpExpr > expr) override
 
virtual void visit (ShPtr< DerefOpExpr > expr) override
 
virtual void visit (ShPtr< DivOpExpr > expr) override
 
virtual void visit (ShPtr< EqOpExpr > expr) override
 
virtual void visit (ShPtr< GtEqOpExpr > expr) override
 
virtual void visit (ShPtr< GtOpExpr > expr) override
 
virtual void visit (ShPtr< LtEqOpExpr > expr) override
 
virtual void visit (ShPtr< LtOpExpr > expr) override
 
virtual void visit (ShPtr< ModOpExpr > expr) override
 
virtual void visit (ShPtr< MulOpExpr > expr) override
 
virtual void visit (ShPtr< NegOpExpr > expr) override
 
virtual void visit (ShPtr< NeqOpExpr > expr) override
 
virtual void visit (ShPtr< NotOpExpr > expr) override
 
virtual void visit (ShPtr< OrOpExpr > expr) override
 
virtual void visit (ShPtr< StructIndexOpExpr > expr) override
 
virtual void visit (ShPtr< SubOpExpr > expr) override
 
virtual void visit (ShPtr< TernaryOpExpr > expr) override
 
virtual void visit (ShPtr< BitCastExpr > expr) override
 
virtual void visit (ShPtr< ExtCastExpr > expr) override
 
virtual void visit (ShPtr< FPToIntCastExpr > expr) override
 
virtual void visit (ShPtr< IntToFPCastExpr > expr) override
 
virtual void visit (ShPtr< IntToPtrCastExpr > expr) override
 
virtual void visit (ShPtr< PtrToIntCastExpr > expr) override
 
virtual void visit (ShPtr< TruncCastExpr > expr) override
 
virtual void visit (ShPtr< ConstArray > constant) override
 
virtual void visit (ShPtr< ConstBool > constant) override
 
virtual void visit (ShPtr< ConstFloat > constant) override
 
virtual void visit (ShPtr< ConstInt > constant) override
 
virtual void visit (ShPtr< ConstNullPointer > constant) override
 
virtual void visit (ShPtr< ConstString > constant) override
 
virtual void visit (ShPtr< ConstStruct > constant) override
 
virtual void visit (ShPtr< ConstSymbol > constant) override
 
virtual void visit (ShPtr< ArrayType > type) override
 
virtual void visit (ShPtr< FloatType > type) override
 
virtual void visit (ShPtr< IntType > type) override
 
virtual void visit (ShPtr< PointerType > type) override
 
virtual void visit (ShPtr< StringType > type) override
 
virtual void visit (ShPtr< StructType > type) override
 
virtual void visit (ShPtr< FunctionType > type) override
 
virtual void visit (ShPtr< VoidType > type) override
 
virtual void visit (ShPtr< UnknownType > type) override
 
- Protected Member Functions inherited from retdec::llvmir2hll::Visitor
 Visitor ()=default
 
virtual ~Visitor ()=default
 
- Protected Attributes inherited from retdec::llvmir2hll::VarRenamer
ShPtr< VarNameGenvarNameGen
 Used generator of variable names. More...
 
bool useDebugNames
 Should we use variable names from debugging information? More...
 
ShPtr< Modulemodule
 Module in which the variables are being renamed. More...
 
VarSet globalVars
 
FuncByNameMap funcsByName
 
VarSet renamedVars
 Variables which have already been renamed. More...
 
StringSet globalVarsNames
 Assigned names of global variables. More...
 
FuncStringSetMap localVarsNames
 
ShPtr< FunctioncurrFunc
 The currently visited function. More...
 
- Protected Attributes inherited from retdec::llvmir2hll::OrderedAllVisitor
ShPtr< StatementlastStmt
 Statement that has been accessed as the last one. More...
 
StmtUSet accessedStmts
 A set of all accessed statements. More...
 
TypeUSet accessedTypes
 A set of all accessed types. More...
 
bool visitSuccessors
 Should statements' successor be accessed? More...
 
bool visitNestedStmts
 Should nested statements be accessed? More...
 

Detailed Description

A renamer of variable names which names them simply by using the given variable name generator.

Use create() to create instances.

Constructor & Destructor Documentation

◆ SimpleVarRenamer()

retdec::llvmir2hll::SimpleVarRenamer::SimpleVarRenamer ( ShPtr< VarNameGen varNameGen,
bool  useDebugNames 
)
private

Constructs a new renamer.

For more details, see create().

Member Function Documentation

◆ create()

ShPtr< VarRenamer > retdec::llvmir2hll::SimpleVarRenamer::create ( ShPtr< VarNameGen varNameGen,
bool  useDebugNames = true 
)
static

Creates a new renamer.

Parameters
[in]varNameGenUsed generator of variable names.
[in]useDebugNamesShould we use variable names from debugging information?
Preconditions
  • varNameGen is non-null

◆ getId()

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

Returns the ID of the renamer.

Implements retdec::llvmir2hll::VarRenamer.


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