8 #ifndef RETDEC_LLVMIR2HLL_GRAPHS_CFG_CFG_TRAVERSALS_NO_VAR_DEF_CFG_TRAVERSAL_H
9 #define RETDEC_LLVMIR2HLL_GRAPHS_CFG_CFG_TRAVERSALS_NO_VAR_DEF_CFG_TRAVERSAL_H
49 virtual bool combineRetVals(
bool origRetVal,
bool newRetVal)
const override;
A base class of all CFG traversals.
A base class of all CFG traversals.
Definition: cfg_traversal.h:28
ShPtr< CFG > cfg
CFG that is being traversed.
Definition: cfg_traversal.h:74
A CFG traversal that checks whether no variable in a given set is defined/modified between a start st...
Definition: no_var_def_cfg_traversal.h:27
NoVarDefCFGTraversal(ShPtr< CFG > cfg, const StmtSet &ends, const VarSet &vars, ShPtr< ValueAnalysis > va)
Constructs a new traverser.
Definition: no_var_def_cfg_traversal.cpp:27
const VarSet & vars
Variables for whose definition/modification we're looking for.
Definition: no_var_def_cfg_traversal.h:38
virtual bool visitStmt(ShPtr< Statement > stmt) override
Visits the given statement stmt.
Definition: no_var_def_cfg_traversal.cpp:60
static bool noVarIsDefinedBetweenStmts(ShPtr< Statement > start, const StmtSet &ends, const VarSet &vars, ShPtr< CFG > cfg, ShPtr< ValueAnalysis > va)
Returns true if no variable from vars is defined between start and statements from ends in cfg,...
Definition: no_var_def_cfg_traversal.cpp:49
const StmtSet & ends
Statements at which we should end the traversal.
Definition: no_var_def_cfg_traversal.h:35
ShPtr< ValueAnalysis > va
Analysis of values.
Definition: no_var_def_cfg_traversal.h:41
virtual bool getEndRetVal() const override
Returns the value that should be returned when an end of the traversal is reached.
Definition: no_var_def_cfg_traversal.cpp:86
virtual bool combineRetVals(bool origRetVal, bool newRetVal) const override
Computes a new return value from the original return value (origRetVal) and the new return value (new...
Definition: no_var_def_cfg_traversal.cpp:90
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
std::set< ShPtr< Variable > > VarSet
Set of variables.
Definition: types.h:57
std::set< ShPtr< Statement > > StmtSet
Set of statements.
Definition: types.h:69
Definition: archive_wrapper.h:19
Aliases for several useful types.