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

An analysis providing use-def chains. More...

#include <use_def_analysis.h>

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

Public Member Functions

ShPtr< UseDefChainsgetUseDefChains (ShPtr< Function > func, ShPtr< DefUseChains > ducs)
 Returns use-def chains for the given function. More...
 

Static Public Member Functions

static ShPtr< UseDefAnalysiscreate (ShPtr< Module > module)
 Creates a new analysis. More...
 

Private Member Functions

 UseDefAnalysis (ShPtr< Module > module)
 Constructs a new analysis. More...
 
- Private Member Functions inherited from retdec::utils::NonCopyable
 NonCopyable (const NonCopyable &)=delete
 
NonCopyableoperator= (const NonCopyable &)=delete
 
 NonCopyable ()=default
 
 ~NonCopyable ()=default
 

Static Private Member Functions

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. More...
 

Private Attributes

ShPtr< Modulemodule
 Module that is being analyzed. More...
 

Detailed Description

An analysis providing use-def chains.

For some basic information about use-def chains, see http://en.wikipedia.org/wiki/Use-define_chain.

Use-def chains are computed from def-use chains.

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

Constructor & Destructor Documentation

◆ UseDefAnalysis()

retdec::llvmir2hll::UseDefAnalysis::UseDefAnalysis ( ShPtr< Module module)
explicitprivate

Constructs a new analysis.

See create() for the description of the parameters.

Member Function Documentation

◆ computeUseDefChains()

void retdec::llvmir2hll::UseDefAnalysis::computeUseDefChains ( ShPtr< UseDefChains udcs,
ShPtr< DefUseChains ducs 
)
staticprivate

Computes the UD[x, s] set for each variable x that is used in a statement s.

This function modifies udcs.

◆ create()

ShPtr< UseDefAnalysis > retdec::llvmir2hll::UseDefAnalysis::create ( ShPtr< Module module)
static

Creates a new analysis.

Parameters
[in]moduleModule for which the analysis is created.

◆ getUseDefChains()

ShPtr< UseDefChains > retdec::llvmir2hll::UseDefAnalysis::getUseDefChains ( ShPtr< Function func,
ShPtr< DefUseChains ducs 
)

Returns use-def chains for the given function.

Parameters
[in]funcFunction for which the analysis is computed.
[in]ducsDef-use chains for func.
Preconditions
  • ducs is non-null

Member Data Documentation

◆ module

ShPtr<Module> retdec::llvmir2hll::UseDefAnalysis::module
private

Module that is being analyzed.


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