Static Value-Flow Analysis
Public Types | Public Member Functions | Protected Attributes | List of all members
SVF::MSSAMU< Cond > Class Template Reference

#include <MSSAMuChi.h>

Inheritance diagram for SVF::MSSAMU< Cond >:
SVF::CallMU< Cond > SVF::LoadMU< Cond > SVF::RetMU< Cond >

Public Types

enum  MUTYPE { LoadMSSAMU , CallMSSAMU , RetMSSAMU }
 

Public Member Functions

 MSSAMU (MUTYPE t, const MemRegion *m, Cond c)
 Constructor/Destructor for MU. More...
 
virtual ~MSSAMU ()
 
const MemRegiongetMR () const
 Return MR. More...
 
MUTYPE getType () const
 Return type. More...
 
void setVer (MRVer *v)
 Set Ver. More...
 
MRVergetMRVer () const
 Get Ver. More...
 
Cond getCond () const
 Return condition. More...
 
bool operator< (const MSSAMU &rhs) const
 Avoid adding duplicated mus. More...
 
virtual void dump ()
 Print MU. More...
 

Protected Attributes

MUTYPE type
 
const MemRegionmr
 
MRVerver
 
Cond cond
 

Detailed Description

template<class Cond>
class SVF::MSSAMU< Cond >

Indirect Memory Read 1) LoadMU at each store instruction 2) CallMU at callsite 3) RetMU at function return

Definition at line 95 of file MSSAMuChi.h.

Member Enumeration Documentation

◆ MUTYPE

template<class Cond >
enum SVF::MSSAMU::MUTYPE
Enumerator
LoadMSSAMU 
CallMSSAMU 
RetMSSAMU 

Definition at line 99 of file MSSAMuChi.h.

100  {
102  };

Constructor & Destructor Documentation

◆ MSSAMU()

template<class Cond >
SVF::MSSAMU< Cond >::MSSAMU ( MUTYPE  t,
const MemRegion m,
Cond  c 
)
inline

Constructor/Destructor for MU.

Definition at line 112 of file MSSAMuChi.h.

112  : type(t), mr(m), ver(nullptr), cond(c)
113  {
114  }
MUTYPE type
Definition: MSSAMuChi.h:105
const MemRegion * mr
Definition: MSSAMuChi.h:106
MRVer * ver
Definition: MSSAMuChi.h:107

◆ ~MSSAMU()

template<class Cond >
virtual SVF::MSSAMU< Cond >::~MSSAMU ( )
inlinevirtual

Definition at line 115 of file MSSAMuChi.h.

116  {
117  }

Member Function Documentation

◆ dump()

template<class Cond >
virtual void SVF::MSSAMU< Cond >::dump ( )
inlinevirtual

Print MU.

Reimplemented in SVF::RetMU< Cond >, SVF::CallMU< Cond >, and SVF::LoadMU< Cond >.

Definition at line 154 of file MSSAMuChi.h.

155  {
156  SVFUtil::outs() << "MU(MR_" << mr->getMRID() << "V_" << ver->getSSAVersion() << ") \t" <<
157  this->getMR()->dumpStr() << "\n";
158  }
MRVERSION getSSAVersion() const
Return SSA version.
Definition: MSSAMuChi.h:69
const MemRegion * getMR() const
Return MR.
Definition: MSSAMuChi.h:121
MRID getMRID() const
Return memory region ID.
Definition: MemRegion.h:78
std::string dumpStr() const
Dump string.
Definition: MemRegion.h:93
std::ostream & outs()
Overwrite llvm::outs()
Definition: SVFUtil.h:50

◆ getCond()

template<class Cond >
Cond SVF::MSSAMU< Cond >::getCond ( ) const
inline

Return condition.

Definition at line 143 of file MSSAMuChi.h.

144  {
145  return cond;
146  }

◆ getMR()

template<class Cond >
const MemRegion* SVF::MSSAMU< Cond >::getMR ( ) const
inline

Return MR.

Definition at line 121 of file MSSAMuChi.h.

122  {
123  return mr;
124  }

◆ getMRVer()

template<class Cond >
MRVer* SVF::MSSAMU< Cond >::getMRVer ( ) const
inline

Get Ver.

Definition at line 137 of file MSSAMuChi.h.

138  {
139  assert(ver!=nullptr && "version is nullptr, did not rename?");
140  return ver;
141  }

◆ getType()

template<class Cond >
MUTYPE SVF::MSSAMU< Cond >::getType ( ) const
inline

Return type.

Definition at line 126 of file MSSAMuChi.h.

127  {
128  return type;
129  }

◆ operator<()

template<class Cond >
bool SVF::MSSAMU< Cond >::operator< ( const MSSAMU< Cond > &  rhs) const
inline

Avoid adding duplicated mus.

Definition at line 149 of file MSSAMuChi.h.

150  {
151  return mr > rhs.getMR();
152  }

◆ setVer()

template<class Cond >
void SVF::MSSAMU< Cond >::setVer ( MRVer v)
inline

Set Ver.

Definition at line 131 of file MSSAMuChi.h.

132  {
133  assert(v->getMR() == mr && "inserting different memory region?");
134  ver = v;
135  }

Member Data Documentation

◆ cond

template<class Cond >
Cond SVF::MSSAMU< Cond >::cond
protected

Definition at line 108 of file MSSAMuChi.h.

◆ mr

template<class Cond >
const MemRegion* SVF::MSSAMU< Cond >::mr
protected

Definition at line 106 of file MSSAMuChi.h.

◆ type

template<class Cond >
MUTYPE SVF::MSSAMU< Cond >::type
protected

Definition at line 105 of file MSSAMuChi.h.

◆ ver

template<class Cond >
MRVer* SVF::MSSAMU< Cond >::ver
protected

Definition at line 107 of file MSSAMuChi.h.


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