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

#include <MSSAMuChi.h>

Inheritance diagram for SVF::MSSACHI< Cond >:
SVF::MSSADEF SVF::CallCHI< Cond > SVF::EntryCHI< Cond > SVF::StoreCHI< Cond >

Public Types

typedef MSSADEF::DEFTYPE CHITYPE
 
- Public Types inherited from SVF::MSSADEF
enum  DEFTYPE {
  SSACHI , StoreMSSACHI , CallMSSACHI , EntryMSSACHI ,
  SSAPHI
}
 

Public Member Functions

 MSSACHI (CHITYPE t, const MemRegion *m, Cond c)
 Constructor/Destructor for MSSACHI. More...
 
virtual ~MSSACHI ()
 
void setOpVer (MRVer *v)
 Set operand ver. More...
 
MRVergetOpVer () const
 Get operand ver. More...
 
Cond getCond () const
 Get condition. More...
 
virtual void dump ()
 Print CHI. More...
 
- Public Member Functions inherited from SVF::MSSADEF
 MSSADEF (DEFTYPE t, const MemRegion *m)
 Constructor/Destructor for MSSADEF. More...
 
virtual ~MSSADEF ()
 
const MemRegiongetMR () const
 Return memory region. More...
 
DEFTYPE getType () const
 Return type of this CHI. More...
 
void setResVer (MRVer *v)
 Set result operand ver. More...
 
MRVergetResVer () const
 Set operand vers. More...
 
bool operator< (const MSSADEF &rhs) const
 Avoid adding duplicated chis and phis. More...
 

Static Public Member Functions

static bool classof (const MSSACHI *chi)
 Methods for support type inquiry through isa, cast, and dyn_cast: More...
 
static bool classof (const MSSADEF *chi)
 

Private Attributes

MRVeropVer
 
Cond cond
 

Additional Inherited Members

- Protected Attributes inherited from SVF::MSSADEF
DEFTYPE type
 
const MemRegionmr
 
MRVerresVer
 

Detailed Description

template<class Cond>
class SVF::MSSACHI< Cond >

Indirect Memory Write

Definition at line 396 of file MSSAMuChi.h.

Member Typedef Documentation

◆ CHITYPE

template<class Cond >
typedef MSSADEF::DEFTYPE SVF::MSSACHI< Cond >::CHITYPE

Definition at line 403 of file MSSAMuChi.h.

Constructor & Destructor Documentation

◆ MSSACHI()

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

Constructor/Destructor for MSSACHI.

Definition at line 406 of file MSSAMuChi.h.

406  : MSSADEF(t,m), opVer(nullptr), cond(c)
407  {
408 
409  }
MRVer * opVer
Definition: MSSAMuChi.h:400
MSSADEF(DEFTYPE t, const MemRegion *m)
Constructor/Destructor for MSSADEF.
Definition: MSSAMuChi.h:346

◆ ~MSSACHI()

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

Definition at line 410 of file MSSAMuChi.h.

410 {}

Member Function Documentation

◆ classof() [1/2]

template<class Cond >
static bool SVF::MSSACHI< Cond >::classof ( const MSSACHI< Cond > *  chi)
inlinestatic

Methods for support type inquiry through isa, cast, and dyn_cast:

Definition at line 435 of file MSSAMuChi.h.

436  {
437  return true;
438  }

◆ classof() [2/2]

template<class Cond >
static bool SVF::MSSACHI< Cond >::classof ( const MSSADEF chi)
inlinestatic

Definition at line 439 of file MSSAMuChi.h.

440  {
441  return chi->getType() == MSSADEF::EntryMSSACHI ||
442  chi->getType() == MSSADEF::StoreMSSACHI ||
443  chi->getType() == MSSADEF::SSACHI ;
444  }

◆ dump()

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

Print CHI.

Reimplemented from SVF::MSSADEF.

Reimplemented in SVF::EntryCHI< Cond >, SVF::CallCHI< Cond >, and SVF::StoreCHI< Cond >.

Definition at line 448 of file MSSAMuChi.h.

449  {
450  SVFUtil::outs() << "MR_" << this->getMR()->getMRID() << "V_" << this->getResVer()->getSSAVersion() <<
451  " = CHI(MR_" << this->getMR()->getMRID() << "V_" << opVer->getSSAVersion() << ") \t" <<
452  this->getMR()->dumpStr() << "\n";
453  }
MRVERSION getSSAVersion() const
Return SSA version.
Definition: MSSAMuChi.h:69
MRVer * getResVer() const
Set operand vers.
Definition: MSSAMuChi.h:373
const MemRegion * getMR() const
Return memory region.
Definition: MSSAMuChi.h:354
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::MSSACHI< Cond >::getCond ( ) const
inline

Get condition.

Definition at line 428 of file MSSAMuChi.h.

429  {
430  return cond;
431  }

◆ getOpVer()

template<class Cond >
MRVer* SVF::MSSACHI< Cond >::getOpVer ( ) const
inline

Get operand ver.

Definition at line 421 of file MSSAMuChi.h.

422  {
423  assert(opVer!=nullptr && "version is nullptr, did not rename?");
424  return opVer;
425  }

◆ setOpVer()

template<class Cond >
void SVF::MSSACHI< Cond >::setOpVer ( MRVer v)
inline

Set operand ver.

Definition at line 414 of file MSSAMuChi.h.

415  {
416  assert(v->getMR() == this->getMR() && "inserting different memory region?");
417  opVer = v;
418  }

Member Data Documentation

◆ cond

template<class Cond >
Cond SVF::MSSACHI< Cond >::cond
private

Definition at line 401 of file MSSAMuChi.h.

◆ opVer

template<class Cond >
MRVer* SVF::MSSACHI< Cond >::opVer
private

Definition at line 400 of file MSSAMuChi.h.


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