Static Value-Flow Analysis
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
SVF::CallCHI< Cond > Class Template Reference

#include <MSSAMuChi.h>

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

Public Member Functions

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

Static Public Member Functions

static bool classof (const CallCHI *chi)
 Methods for support type inquiry through isa, cast, and dyn_cast:
 
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:
 
static bool classof (const MSSADEF *chi)
 

Private Attributes

const CallICFGNodecallsite
 

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::CallCHI< Cond >

CallCHI is annotated at callsite, representing a memory object is indirect modified by callee

Definition at line 522 of file MSSAMuChi.h.

Constructor & Destructor Documentation

◆ CallCHI()

template<class Cond >
SVF::CallCHI< Cond >::CallCHI ( const CallICFGNode cs,
const MemRegion m,
Cond  c = true 
)
inline

Constructors for CallCHI.

Definition at line 529 of file MSSAMuChi.h.

529 :
531 {
532 }
const CallICFGNode * callsite
Definition MSSAMuChi.h:525
llvm::IRBuilder IRBuilder
Definition BasicTypes.h:76

◆ ~CallCHI()

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

Definition at line 533 of file MSSAMuChi.h.

534 {
535 }

Member Function Documentation

◆ classof() [1/3]

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

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

Definition at line 552 of file MSSAMuChi.h.

553 {
554 return true;
555 }

◆ classof() [2/3]

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

Definition at line 556 of file MSSAMuChi.h.

557 {
558 return chi->getType() == MSSADEF::CallMSSACHI;
559 }

◆ classof() [3/3]

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

Definition at line 560 of file MSSAMuChi.h.

561 {
562 return chi->getType() == MSSADEF::CallMSSACHI;
563 }

◆ dump()

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

Print CHI.

Reimplemented from SVF::MSSACHI< Cond >.

Definition at line 567 of file MSSAMuChi.h.

568 {
569 SVFUtil::outs() << this->getMR()->getMRID() << "V_" << this->getResVer()->getSSAVersion() <<
570 " = CALCHI(MR_" << this->getMR()->getMRID() << "V_" << this->getOpVer()->getSSAVersion() << ") \t" <<
571 this->getMR()->dumpStr() << "\n";
572 }
MRVERSION getSSAVersion() const
Return SSA version.
Definition MSSAMuChi.h:70
MRVer * getOpVer() const
Get operand ver.
Definition MSSAMuChi.h:422
MRVer * getResVer() const
Set operand vers.
Definition MSSAMuChi.h:374
const MemRegion * getMR() const
Return memory region.
Definition MSSAMuChi.h:355
MRID getMRID() const
Return memory region ID.
Definition MemRegion.h:82
std::string dumpStr() const
Dump string.
Definition MemRegion.h:97
std::ostream & outs()
Overwrite llvm::outs()
Definition SVFUtil.h:52

◆ getBasicBlock()

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

Return basic block.

Definition at line 539 of file MSSAMuChi.h.

540 {
541 return callsite->getBB();
542 }
virtual const SVFBasicBlock * getBB() const
Return the basic block of this ICFGNode.
Definition ICFGNode.h:81

◆ getCallSite()

template<class Cond >
const CallICFGNode * SVF::CallCHI< Cond >::getCallSite ( ) const
inline

Return callsite.

Definition at line 545 of file MSSAMuChi.h.

546 {
547 return callsite;
548 }

Member Data Documentation

◆ callsite

template<class Cond >
const CallICFGNode* SVF::CallCHI< Cond >::callsite
private

Definition at line 525 of file MSSAMuChi.h.


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