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

#include <MSSAMuChi.h>

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

Public Member Functions

 StoreCHI (const SVFBasicBlock *b, const StoreStmt *i, const MemRegion *m, Cond c=true)
 Constructors for StoreCHI. More...
 
virtual ~StoreCHI ()
 
const SVFBasicBlockgetBasicBlock () const
 Get basic block. More...
 
const StoreStmtgetStoreStmt () const
 Get store instruction. More...
 
virtual void dump ()
 Print CHI. More...
 
- Public Member Functions inherited from SVF::MSSACHI< Cond >
 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...
 
- 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 StoreCHI *chi)
 Methods for support type inquiry through isa, cast, and dyn_cast: More...
 
static bool classof (const MSSACHI< Cond > *chi)
 
static bool classof (const MSSADEF *chi)
 
- Static Public Member Functions inherited from SVF::MSSACHI< Cond >
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

const SVFBasicBlockbb
 
const StoreStmtinst
 

Additional Inherited Members

- Public Types inherited from SVF::MSSACHI< Cond >
typedef MSSADEF::DEFTYPE CHITYPE
 
- Public Types inherited from SVF::MSSADEF
enum  DEFTYPE {
  SSACHI , StoreMSSACHI , CallMSSACHI , EntryMSSACHI ,
  SSAPHI
}
 
- Protected Attributes inherited from SVF::MSSADEF
DEFTYPE type
 
const MemRegionmr
 
MRVerresVer
 

Detailed Description

template<class Cond>
class SVF::StoreCHI< Cond >

StoreCHI is annotated at each store instruction, representing a memory object is modified here

Definition at line 461 of file MSSAMuChi.h.

Constructor & Destructor Documentation

◆ StoreCHI()

template<class Cond >
SVF::StoreCHI< Cond >::StoreCHI ( const SVFBasicBlock b,
const StoreStmt i,
const MemRegion m,
Cond  c = true 
)
inline

Constructors for StoreCHI.

Definition at line 469 of file MSSAMuChi.h.

469  :
470  MSSACHI<Cond>(MSSADEF::StoreMSSACHI,m,c), bb(b), inst(i)
471  {
472  }
const cJSON *const b
Definition: cJSON.h:255
const StoreStmt * inst
Definition: MSSAMuChi.h:465
const SVFBasicBlock * bb
Definition: MSSAMuChi.h:464

◆ ~StoreCHI()

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

Definition at line 473 of file MSSAMuChi.h.

474  {
475  }

Member Function Documentation

◆ classof() [1/3]

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

Definition at line 496 of file MSSAMuChi.h.

497  {
498  return chi->getType() == MSSADEF::StoreMSSACHI;
499  }

◆ classof() [2/3]

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

Definition at line 500 of file MSSAMuChi.h.

501  {
502  return chi->getType() == MSSADEF::StoreMSSACHI;
503  }

◆ classof() [3/3]

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

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

Definition at line 492 of file MSSAMuChi.h.

493  {
494  return true;
495  }

◆ dump()

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

Print CHI.

Reimplemented from SVF::MSSACHI< Cond >.

Definition at line 507 of file MSSAMuChi.h.

508  {
509  SVFUtil::outs() << this->getMR()->getMRID() << "V_" << this->getResVer()->getSSAVersion() <<
510  " = STCHI(MR_" << this->getMR()->getMRID() << "V_" << this->getOpVer()->getSSAVersion() << ") \t" <<
511  this->getMR()->dumpStr() << "\n";
512  }
MRVERSION getSSAVersion() const
Return SSA version.
Definition: MSSAMuChi.h:69
MRVer * getOpVer() const
Get operand ver.
Definition: MSSAMuChi.h:421
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

◆ getBasicBlock()

template<class Cond >
const SVFBasicBlock* SVF::StoreCHI< Cond >::getBasicBlock ( ) const
inline

Get basic block.

Definition at line 479 of file MSSAMuChi.h.

480  {
481  return bb;
482  }

◆ getStoreStmt()

template<class Cond >
const StoreStmt* SVF::StoreCHI< Cond >::getStoreStmt ( ) const
inline

Get store instruction.

Definition at line 485 of file MSSAMuChi.h.

486  {
487  return inst;
488  }

Member Data Documentation

◆ bb

template<class Cond >
const SVFBasicBlock* SVF::StoreCHI< Cond >::bb
private

Definition at line 464 of file MSSAMuChi.h.

◆ inst

template<class Cond >
const StoreStmt* SVF::StoreCHI< Cond >::inst
private

Definition at line 465 of file MSSAMuChi.h.


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