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

An analysis for obtaining information about a value. More...

#include <value_analysis.h>

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

Public Member Functions

ShPtr< ValueDatagetValueData (ShPtr< Value > value)
 Returns information about the given value. More...
 
Caching
void clearCache ()
 Clears the cache of the already cached results. More...
 
void removeFromCache (ShPtr< Value > value, bool recursive=true)
 Removes the selected value from the cache. More...
 
Access To Alias Analysis
void initAliasAnalysis (ShPtr< Module > module)
 Re-initializes the underlying alias analysis. More...
 
const VarSetmayPointTo (ShPtr< Variable > var) const
 Returns the set of variables to which var may point to. More...
 
ShPtr< VariablepointsTo (ShPtr< Variable > var) const
 Returns the variable to which var always points. More...
 
bool mayBePointed (ShPtr< Variable > var) const
 Returns true if a pointer may point to var, false otherwise. More...
 
- Public Member Functions inherited from retdec::llvmir2hll::ValidState
bool isInValidState () const
 Returns true if the object is in a valid state, false otherwise. More...
 
void invalidateState ()
 Sets the object's state to invalid. More...
 
void validateState ()
 Sets the object's state to valid. More...
 
- Public Member Functions inherited from retdec::llvmir2hll::Caching< ShPtr< Value >, ShPtr< ValueData > >
 Caching (bool enableCaching)
 
void enableCaching ()
 Enables caching. More...
 
void disableCaching ()
 Disables caching. More...
 
void clearCache ()
 Clears the cache of the already cached results. More...
 
void removeFromCache (const ShPtr< Value > &key)
 Removes the value corresponding to the given key from the cache. More...
 
bool isCachingEnabled () const
 Returns true if caching is enabled, false otherwise. More...
 

Static Public Member Functions

static ShPtr< ValueAnalysiscreate (ShPtr< AliasAnalysis > aliasAnalysis, bool enableCaching=false)
 Creates a new analysis. More...
 

Private Member Functions

 ValueAnalysis (ShPtr< AliasAnalysis > aliasAnalysis, bool enableCaching=false)
 Constructs a new visitor. More...
 
void computeAndStoreIndirectlyUsedVars (ShPtr< DerefOpExpr > expr)
 Computes indirectly used variables in the given dereferencing expression and stores them in appropriate sets of valueData. More...
 
Visitor Interface
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< 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
 
- Private Member Functions inherited from retdec::llvmir2hll::OrderedAllVisitor
virtual void visit (ShPtr< GlobalVarDef > varDef) 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
 
 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...
 
- Private Member Functions inherited from retdec::llvmir2hll::Visitor
virtual ~Visitor ()=default
 
 Visitor ()=default
 
- Private Member Functions inherited from retdec::utils::NonCopyable
 NonCopyable (const NonCopyable &)=delete
 
NonCopyableoperator= (const NonCopyable &)=delete
 
 NonCopyable ()=default
 
 ~NonCopyable ()=default
 

Private Attributes

ShPtr< AliasAnalysisaliasAnalysis
 The used alias analysis. More...
 
ShPtr< ValueDatavalueData
 Information about the currently computed value. More...
 
bool writing
 Are we writing into a variable? More...
 
bool removingFromCache
 Are we removing values from the cache? More...
 
- Private 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...
 

Additional Inherited Members

- Protected Member Functions inherited from retdec::llvmir2hll::ValidState
 ValidState ()
 Constructs a new valid state. More...
 
- Protected Member Functions inherited from retdec::llvmir2hll::Caching< ShPtr< Value >, ShPtr< ValueData > >
void addToCache (const ShPtr< Value > &key, const ShPtr< ValueData > &value)
 If caching is enabled, associates the given value with key. More...
 
bool getCachedResult (const ShPtr< Value > &key, ShPtr< ValueData > &value) const
 If caching is enabled, stores the value associated with key into value. More...
 

Detailed Description

An analysis for obtaining information about a value.

Use create() to create instances of this class. Instances of this class have reference object semantics.

When you change a module in a way that may affect the results returned by getValueData() when caching is enabled, you have to call invalidate(). This will bring the analysis into an invalid state so other users of a shared analysis will know that they have to validate the analysis before using it. Upon calling clearCache(), the analysis gets validated automatically. If you modify or remove a statement and call removeFromCache(), then you do not have to call invalidate().

Constructor & Destructor Documentation

◆ ValueAnalysis()

retdec::llvmir2hll::ValueAnalysis::ValueAnalysis ( ShPtr< AliasAnalysis aliasAnalysis,
bool  enableCaching = false 
)
explicitprivate

Constructs a new visitor.

See the description of create() for more information.

Member Function Documentation

◆ clearCache()

void retdec::llvmir2hll::ValueAnalysis::clearCache ( )

Clears the cache of the already cached results.

It also puts the analysis into a valid state.

◆ computeAndStoreIndirectlyUsedVars()

void retdec::llvmir2hll::ValueAnalysis::computeAndStoreIndirectlyUsedVars ( ShPtr< DerefOpExpr expr)
private

Computes indirectly used variables in the given dereferencing expression and stores them in appropriate sets of valueData.

◆ create()

ShPtr< ValueAnalysis > retdec::llvmir2hll::ValueAnalysis::create ( ShPtr< AliasAnalysis aliasAnalysis,
bool  enableCaching = false 
)
static

Creates a new analysis.

Parameters
[in]aliasAnalysisThe used alias analysis.
[in]enableCachingIf true, it caches the results returned by getValueData() until restartCache() or disableCaching() is called. This may speed up subsequent calls to getValueData() if the same values are passed to getValueData().
Preconditions
  • aliasAnalysis has been initialized

◆ getValueData()

ShPtr< ValueData > retdec::llvmir2hll::ValueAnalysis::getValueData ( ShPtr< Value value)

Returns information about the given value.

Preconditions
  • value is non-null

◆ initAliasAnalysis()

void retdec::llvmir2hll::ValueAnalysis::initAliasAnalysis ( ShPtr< Module module)

Re-initializes the underlying alias analysis.

This function is a delegation to AliasAnalysis::init(). See it for more information.

◆ mayBePointed()

bool retdec::llvmir2hll::ValueAnalysis::mayBePointed ( ShPtr< Variable var) const

Returns true if a pointer may point to var, false otherwise.

This function is a delegation to AliasAnalysis::mayBePointed(). See it for more information.

◆ mayPointTo()

const VarSet & retdec::llvmir2hll::ValueAnalysis::mayPointTo ( ShPtr< Variable var) const

Returns the set of variables to which var may point to.

This function is a delegation to AliasAnalysis::mayPointTo(). See it for more information.

◆ pointsTo()

ShPtr< Variable > retdec::llvmir2hll::ValueAnalysis::pointsTo ( ShPtr< Variable var) const

Returns the variable to which var always points.

This function is a delegation to AliasAnalysis::pointsTo(). See it for more information.

◆ removeFromCache()

void retdec::llvmir2hll::ValueAnalysis::removeFromCache ( ShPtr< Value value,
bool  recursive = true 
)

Removes the selected value from the cache.

Parameters
[in]valueValue to be removed from the cache.
[in]recursiveIf true, also removes all sub-values of value (e.g. operands) from the cache.
Preconditions
  • value is non-null

◆ visit() [1/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [2/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< AddOpExpr expr)
overrideprivatevirtual

◆ visit() [3/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [4/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< AddressOpExpr expr)
overrideprivatevirtual

◆ visit() [5/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [6/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< AndOpExpr expr)
overrideprivatevirtual

◆ visit() [7/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [8/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< ArrayIndexOpExpr expr)
overrideprivatevirtual

◆ visit() [9/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [10/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [11/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< AssignOpExpr expr)
overrideprivatevirtual

◆ visit() [12/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [13/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< AssignStmt stmt)
overrideprivatevirtual

◆ visit() [14/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [15/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< BitAndOpExpr expr)
overrideprivatevirtual

◆ visit() [16/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [17/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< BitCastExpr expr)
overrideprivatevirtual

◆ visit() [18/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [19/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< BitOrOpExpr expr)
overrideprivatevirtual

◆ visit() [20/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [21/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< BitShlOpExpr expr)
overrideprivatevirtual

◆ visit() [22/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [23/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< BitShrOpExpr expr)
overrideprivatevirtual

◆ visit() [24/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [25/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< BitXorOpExpr expr)
overrideprivatevirtual

◆ visit() [26/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [27/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< BreakStmt stmt)
overrideprivatevirtual

◆ visit() [28/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [29/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< CallExpr expr)
overrideprivatevirtual

◆ visit() [30/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [31/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< CallStmt stmt)
overrideprivatevirtual

◆ visit() [32/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [33/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< CommaOpExpr expr)
overrideprivatevirtual

◆ visit() [34/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [35/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< ConstArray constant)
overrideprivatevirtual

◆ visit() [36/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [37/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< ConstBool constant)
overrideprivatevirtual

◆ visit() [38/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [39/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< ConstFloat constant)
overrideprivatevirtual

◆ visit() [40/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [41/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< ConstInt constant)
overrideprivatevirtual

◆ visit() [42/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [43/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< ConstNullPointer constant)
overrideprivatevirtual

◆ visit() [44/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [45/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< ConstString constant)
overrideprivatevirtual

◆ visit() [46/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [47/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< ConstStruct constant)
overrideprivatevirtual

◆ visit() [48/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [49/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [50/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< ContinueStmt stmt)
overrideprivatevirtual

◆ visit() [51/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [52/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< DerefOpExpr expr)
overrideprivatevirtual

◆ visit() [53/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [54/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< DivOpExpr expr)
overrideprivatevirtual

◆ visit() [55/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [56/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< EmptyStmt stmt)
overrideprivatevirtual

◆ visit() [57/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [58/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< EqOpExpr expr)
overrideprivatevirtual

◆ visit() [59/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [60/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< ExtCastExpr expr)
overrideprivatevirtual

◆ visit() [61/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [62/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [63/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< ForLoopStmt stmt)
overrideprivatevirtual

◆ visit() [64/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [65/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< FPToIntCastExpr expr)
overrideprivatevirtual

◆ visit() [66/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [67/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< Function func)
overrideprivatevirtual

◆ visit() [68/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [69/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [70/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [71/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< GotoStmt stmt)
overrideprivatevirtual

◆ visit() [72/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [73/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< GtEqOpExpr expr)
overrideprivatevirtual

◆ visit() [74/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [75/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< GtOpExpr expr)
overrideprivatevirtual

◆ visit() [76/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [77/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< IfStmt stmt)
overrideprivatevirtual

◆ visit() [78/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [79/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< IntToFPCastExpr expr)
overrideprivatevirtual

◆ visit() [80/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [81/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< IntToPtrCastExpr expr)
overrideprivatevirtual

◆ visit() [82/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [83/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [84/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< LtEqOpExpr expr)
overrideprivatevirtual

◆ visit() [85/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [86/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< LtOpExpr expr)
overrideprivatevirtual

◆ visit() [87/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [88/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< ModOpExpr expr)
overrideprivatevirtual

◆ visit() [89/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [90/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< MulOpExpr expr)
overrideprivatevirtual

◆ visit() [91/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [92/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< NegOpExpr expr)
overrideprivatevirtual

◆ visit() [93/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [94/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< NeqOpExpr expr)
overrideprivatevirtual

◆ visit() [95/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [96/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< NotOpExpr expr)
overrideprivatevirtual

◆ visit() [97/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [98/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< OrOpExpr expr)
overrideprivatevirtual

◆ visit() [99/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [100/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [101/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< PtrToIntCastExpr expr)
overrideprivatevirtual

◆ visit() [102/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [103/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< ReturnStmt stmt)
overrideprivatevirtual

◆ visit() [104/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [105/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [106/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< StructIndexOpExpr expr)
overrideprivatevirtual

◆ visit() [107/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [108/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [109/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< SubOpExpr expr)
overrideprivatevirtual

◆ visit() [110/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [111/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< SwitchStmt stmt)
overrideprivatevirtual

◆ visit() [112/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [113/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< TernaryOpExpr expr)
overrideprivatevirtual

◆ visit() [114/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [115/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< TruncCastExpr expr)
overrideprivatevirtual

◆ visit() [116/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [117/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< UForLoopStmt stmt)
overrideprivatevirtual

◆ visit() [118/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [119/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [120/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< UnreachableStmt stmt)
overrideprivatevirtual

◆ visit() [121/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [122/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< VarDefStmt stmt)
overrideprivatevirtual

◆ visit() [123/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [124/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< Variable var)
overrideprivatevirtual

◆ visit() [125/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [126/127]

void retdec::llvmir2hll::OrderedAllVisitor::visit
overrideprivate

◆ visit() [127/127]

void retdec::llvmir2hll::ValueAnalysis::visit ( ShPtr< WhileLoopStmt stmt)
overrideprivatevirtual

Member Data Documentation

◆ aliasAnalysis

ShPtr<AliasAnalysis> retdec::llvmir2hll::ValueAnalysis::aliasAnalysis
private

The used alias analysis.

◆ removingFromCache

bool retdec::llvmir2hll::ValueAnalysis::removingFromCache
private

Are we removing values from the cache?

◆ valueData

ShPtr<ValueData> retdec::llvmir2hll::ValueAnalysis::valueData
private

Information about the currently computed value.

◆ writing

bool retdec::llvmir2hll::ValueAnalysis::writing
private

Are we writing into a variable?


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