7 #ifndef RETDEC_LLVMIR2HLL_ANALYSIS_EXPR_TYPES_ANALYSIS_H
8 #define RETDEC_LLVMIR2HLL_ANALYSIS_EXPR_TYPES_ANALYSIS_H
A visitor for analyzing the types in BIR.
Definition: expr_types_analysis.h:55
static ShPtr< ExprTypesAnalysis > create()
Creates a new analysis of integer types.
Definition: expr_types_analysis.cpp:74
ExprTag
Definition: expr_types_analysis.h:59
ExprTagsMap exprTagsMap
Map of all analyzed expressions and tags for every expression.
Definition: expr_types_analysis.h:75
ExprTagsMap analyzeExprTypes(ShPtr< Module > module)
Fixes some types to correct type.
Definition: expr_types_analysis.cpp:83
void addTagToExpr(ShPtr< Expression > expr, ExprTag tag)
Adds tag to the expression and puts it into exprTagsMap.
Definition: expr_types_analysis.cpp:45
std::size_t getCountOfTag(ShPtr< Expression > expr, ExprTag tag)
Gets count of found tags of expression expr.
Definition: expr_types_analysis.cpp:60
virtual void visit(ShPtr< GlobalVarDef > varDef) override
Definition: ordered_all_visitor.cpp:95
std::vector< ExprTag > TagVector
Definition: expr_types_analysis.h:64
std::map< ShPtr< Expression >, TagVector > ExprTagsMap
Definition: expr_types_analysis.h:65
ExprTypesAnalysis()
Constructs a new visitor.
Definition: expr_types_analysis.cpp:36
A visitor that visits everything in an ordered way.
Definition: ordered_all_visitor.h:44
virtual void visit(ShPtr< GlobalVarDef > varDef) override
Definition: ordered_all_visitor.cpp:95
A mixin to make classes non-copyable.
Definition: non_copyable.h:27
ShPtr< Module > module
The current module.
Definition: hll_writer.cpp:100
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
A mixin to make classes non-copyable.
A visitor that visits everything in an ordered way.
Declarations, aliases, macros, etc. for the use of smart pointers.
Aliases for several useful types.