Static Value-Flow Analysis
Public Types | Public Member Functions | Protected Attributes | List of all members
SVF::MSSADEF Class Reference

#include <MSSAMuChi.h>

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

Public Types

enum  DEFTYPE {
  SSACHI , StoreMSSACHI , CallMSSACHI , EntryMSSACHI ,
  SSAPHI
}
 

Public Member Functions

 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...
 
virtual void dump ()
 Print MSSADef. More...
 

Protected Attributes

DEFTYPE type
 
const MemRegionmr
 
MRVerresVer
 

Detailed Description

Indirect Memory Definition 1) MSSACHI indirect memory object is modified a) StoreCHI definition at store b) EntryCHI definition at function entry 2) MSSAPHI memory object is defined at joint points of a control flow

Definition at line 325 of file MSSAMuChi.h.

Member Enumeration Documentation

◆ DEFTYPE

Enumerator
SSACHI 
StoreMSSACHI 
CallMSSACHI 
EntryMSSACHI 
SSAPHI 

Definition at line 329 of file MSSAMuChi.h.

330  {
331  SSACHI,
332  StoreMSSACHI,
333  CallMSSACHI,
334  EntryMSSACHI,
335  SSAPHI
336  };

Constructor & Destructor Documentation

◆ MSSADEF()

SVF::MSSADEF::MSSADEF ( DEFTYPE  t,
const MemRegion m 
)
inline

Constructor/Destructor for MSSADEF.

Definition at line 346 of file MSSAMuChi.h.

346  : type(t), mr(m), resVer(nullptr)
347  {
348 
349  }
const MemRegion * mr
Definition: MSSAMuChi.h:340
MRVer * resVer
Definition: MSSAMuChi.h:341
DEFTYPE type
Definition: MSSAMuChi.h:339

◆ ~MSSADEF()

virtual SVF::MSSADEF::~MSSADEF ( )
inlinevirtual

Definition at line 350 of file MSSAMuChi.h.

350 {}

Member Function Documentation

◆ dump()

virtual void SVF::MSSADEF::dump ( )
inlinevirtual

Print MSSADef.

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

Definition at line 386 of file MSSAMuChi.h.

387  {
388  SVFUtil::outs() << "DEF(MR_" << mr->getMRID() << "V_" << resVer->getSSAVersion() << ")\n";
389  }
MRVERSION getSSAVersion() const
Return SSA version.
Definition: MSSAMuChi.h:69
MRID getMRID() const
Return memory region ID.
Definition: MemRegion.h:78
std::ostream & outs()
Overwrite llvm::outs()
Definition: SVFUtil.h:50

◆ getMR()

const MemRegion* SVF::MSSADEF::getMR ( ) const
inline

Return memory region.

Definition at line 354 of file MSSAMuChi.h.

355  {
356  return mr;
357  }

◆ getResVer()

MRVer* SVF::MSSADEF::getResVer ( ) const
inline

Set operand vers.

Definition at line 373 of file MSSAMuChi.h.

374  {
375  assert(resVer!=nullptr && "version is nullptr, did not rename?");
376  return resVer;
377  }

◆ getType()

DEFTYPE SVF::MSSADEF::getType ( ) const
inline

Return type of this CHI.

Definition at line 360 of file MSSAMuChi.h.

361  {
362  return type;
363  }

◆ operator<()

bool SVF::MSSADEF::operator< ( const MSSADEF rhs) const
inline

Avoid adding duplicated chis and phis.

Definition at line 380 of file MSSAMuChi.h.

381  {
382  return mr > rhs.getMR();
383  }

◆ setResVer()

void SVF::MSSADEF::setResVer ( MRVer v)
inline

Set result operand ver.

Definition at line 366 of file MSSAMuChi.h.

367  {
368  assert(v->getMR() == mr && "inserting different memory region?");
369  resVer = v;
370  }

Member Data Documentation

◆ mr

const MemRegion* SVF::MSSADEF::mr
protected

Definition at line 340 of file MSSAMuChi.h.

◆ resVer

MRVer* SVF::MSSADEF::resVer
protected

Definition at line 341 of file MSSAMuChi.h.

◆ type

DEFTYPE SVF::MSSADEF::type
protected

Definition at line 339 of file MSSAMuChi.h.


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