7 #ifndef RETDEC_LLVMIR2HLL_ANALYSIS_USE_DEF_ANALYSIS_H
8 #define RETDEC_LLVMIR2HLL_ANALYSIS_USE_DEF_ANALYSIS_H
A representation of a control-flow graph (CFG).
An analysis providing use-def chains.
Definition: use_def_analysis.h:70
ShPtr< Module > module
Module that is being analyzed.
Definition: use_def_analysis.h:85
static ShPtr< UseDefAnalysis > create(ShPtr< Module > module)
Creates a new analysis.
Definition: use_def_analysis.cpp:74
ShPtr< UseDefChains > getUseDefChains(ShPtr< Function > func, ShPtr< DefUseChains > ducs)
Returns use-def chains for the given function.
Definition: use_def_analysis.cpp:58
UseDefAnalysis(ShPtr< Module > module)
Constructs a new analysis.
Definition: use_def_analysis.cpp:46
static void computeUseDefChains(ShPtr< UseDefChains > udcs, ShPtr< DefUseChains > ducs)
Computes the UD[x, s] set for each variable x that is used in a statement s.
Definition: use_def_analysis.cpp:84
Use-def chains.
Definition: use_def_analysis.h:30
void debugPrint()
Emits all the live variables info to standard error.
Definition: use_def_analysis.cpp:24
std::map< VarStmtPair, StmtSet > UseDefChain
Definition: use_def_analysis.h:40
UseDefChain ud
Definition: use_def_analysis.h:56
std::set< VarStmtPair > StmtVarPairSet
Set of (variable, statement) pairs.
Definition: use_def_analysis.h:36
ShPtr< Function > func
Function for which the chains have been computed.
Definition: use_def_analysis.h:47
std::pair< ShPtr< Variable >, ShPtr< Statement > > VarStmtPair
(variable, statement) pair
Definition: use_def_analysis.h:33
ShPtr< CFG > cfg
CFG of func.
Definition: use_def_analysis.h:50
A mixin to make classes non-copyable.
Definition: non_copyable.h:27
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.
Declarations, aliases, macros, etc. for the use of smart pointers.