|
| enum | MemPartition { Distinct
, IntraDisjoint
, InterDisjoint
} |
| |
| typedef MemRegion::Condition | Condition |
| | define condition here changes needed if we add new type
|
| |
| typedef MSSAMU< Condition > | MU |
| |
| typedef RetMU< Condition > | RETMU |
| |
| typedef LoadMU< Condition > | LOADMU |
| |
| typedef CallMU< Condition > | CALLMU |
| |
| typedef MSSACHI< Condition > | CHI |
| |
| typedef EntryCHI< Condition > | ENTRYCHI |
| |
| typedef StoreCHI< Condition > | STORECHI |
| |
| typedef CallCHI< Condition > | CALLCHI |
| |
| typedef MSSAPHI< Condition > | PHI |
| |
| typedef MSSADEF | MDEF |
| |
| typedef Set< MU * > | MUSet |
| |
| typedef Set< CHI * > | CHISet |
| |
| typedef Set< PHI * > | PHISet |
| |
| typedef MRGenerator::MRSet | MRSet |
| | Define mem region set.
|
| |
| typedef std::vector< const MemRegion * > | MRVector |
| |
| typedef Map< const LoadStmt *, MUSet > | LoadToMUSetMap |
| |
| typedef Map< const StoreStmt *, CHISet > | StoreToChiSetMap |
| |
| typedef Map< const CallICFGNode *, MUSet > | CallSiteToMUSetMap |
| |
| typedef Map< const CallICFGNode *, CHISet > | CallSiteToCHISetMap |
| |
| typedef OrderedMap< const SVFBasicBlock *, PHISet > | BBToPhiSetMap |
| |
| typedef Map< const FunObjVar *, CHISet > | FunToEntryChiSetMap |
| | Map from fun to its entry chi set and return mu set.
|
| |
| typedef Map< const FunObjVar *, MUSet > | FunToReturnMuSetMap |
| |
| typedef std::vector< const SVFBasicBlock * > | BBList |
| | For phi insertion.
|
| |
| typedef Map< const SVFBasicBlock *, MRSet > | BBToMRSetMap |
| |
| typedef Map< const MemRegion *, BBList > | MemRegToBBsMap |
| |
| typedef Map< const MemRegion *, std::vector< MRVer * > > | MemRegToVerStackMap |
| | For SSA renaming.
|
| |
| typedef Map< const MemRegion *, MRVERSION > | MemRegToCounterMap |
| |
| typedef SVFIR::SVFStmtList | SVFStmtList |
| | SVFIR edge list.
|
| |
|
| LoadToMUSetMap | load2MuSetMap |
| |
| StoreToChiSetMap | store2ChiSetMap |
| |
| CallSiteToMUSetMap | callsiteToMuSetMap |
| |
| CallSiteToCHISetMap | callsiteToChiSetMap |
| |
| BBToPhiSetMap | bb2PhiSetMap |
| |
| FunToEntryChiSetMap | funToEntryChiSetMap |
| |
| FunToReturnMuSetMap | funToReturnMuSetMap |
| |
| MemRegToVerStackMap | mr2VerStackMap |
| |
| MemRegToCounterMap | mr2CounterMap |
| |
| MRSet | usedRegs |
| | The following three set are used for prune SSA phi insertion.
|
| |
| MemRegToBBsMap | reg2BBMap |
| | Maps memory region to its basic block.
|
| |
| MRSet | varKills |
| | Collect memory regions whose definition killed.
|
| |
| std::vector< std::unique_ptr< MRVer > > | usedMRVers |
| |
| void | destroy () |
| | Release the memory.
|
| |
| MRVer * | newSSAName (const MemRegion *mr, MSSADEF *def) |
| | Get a new SSA name of a memory region.
|
| |
| MRVer * | getTopStackVer (const MemRegion *mr) |
| | Get the last version of the SSA ver of memory region.
|
| |
| void | collectRegUses (const MemRegion *mr) |
| | Collect region uses and region defs according to mus/chis, in order to insert phis.
|
| |
| void | collectRegDefs (const SVFBasicBlock *bb, const MemRegion *mr) |
| |
| void | AddLoadMU (const SVFBasicBlock *bb, const LoadStmt *load, const MRSet &mrSet) |
| | Add methods for mus/chis/phis.
|
| |
| void | AddStoreCHI (const SVFBasicBlock *bb, const StoreStmt *store, const MRSet &mrSet) |
| |
| void | AddCallSiteMU (const CallICFGNode *cs, const MRSet &mrSet) |
| |
| void | AddCallSiteCHI (const CallICFGNode *cs, const MRSet &mrSet) |
| |
| void | AddMSSAPHI (const SVFBasicBlock *bb, const MRSet &mrSet) |
| |
| void | AddLoadMU (const SVFBasicBlock *bb, const LoadStmt *load, const MemRegion *mr) |
| |
| void | AddStoreCHI (const SVFBasicBlock *bb, const StoreStmt *store, const MemRegion *mr) |
| |
| void | AddCallSiteMU (const CallICFGNode *cs, const MemRegion *mr) |
| |
| void | AddCallSiteCHI (const CallICFGNode *cs, const MemRegion *mr) |
| |
| void | AddMSSAPHI (const SVFBasicBlock *bb, const MemRegion *mr) |
| |
| void | RenameMuSet (const MUSet &muSet) |
| | Rename mus, chis and phis.
|
| |
| void | RenameChiSet (const CHISet &chiSet, MRVector &memRegs) |
| | Rename chi set.
|
| |
| void | RenamePhiRes (const PHISet &phiSet, MRVector &memRegs) |
| | Rename result (LHS) of phis.
|
| |
| void | RenamePhiOps (const PHISet &phiSet, u32_t pos, MRVector &) |
| | Rename operands (RHS) of phis.
|
| |
| | MemSSA (BVDataPTAImpl *p, bool ptrOnlyMSSA) |
| | Constructor.
|
| |
| SVFIR * | getPAG () |
| | Return SVFIR.
|
| |
| BVDataPTAImpl * | getPTA () const |
| | Return PTA.
|
| |
| MRGenerator * | getMRGenerator () |
| | Return MRGenerator.
|
| |
| virtual void | buildMemSSA (const FunObjVar &fun) |
| | We start from here.
|
| |
| void | performStat () |
| | Perform statistics.
|
| |
| bool | hasMU (const PAGEdge *inst) const |
| | Has mu/chi methods.
|
| |
| bool | hasCHI (const PAGEdge *inst) const |
| |
| bool | hasMU (const CallICFGNode *cs) const |
| |
| bool | hasCHI (const CallICFGNode *cs) const |
| |
| bool | hasFuncEntryChi (const FunObjVar *fun) const |
| | Has function entry chi or return mu.
|
| |
| bool | hasReturnMu (const FunObjVar *fun) const |
| |
| CHISet & | getFuncEntryChiSet (const FunObjVar *fun) |
| |
| MUSet & | getReturnMuSet (const FunObjVar *fun) |
| |
| MUSet & | getMUSet (const LoadStmt *ld) |
| | Get methods of mu/chi/phi.
|
| |
| CHISet & | getCHISet (const StoreStmt *st) |
| |
| MUSet & | getMUSet (const CallICFGNode *cs) |
| |
| CHISet & | getCHISet (const CallICFGNode *cs) |
| |
| PHISet & | getPHISet (const SVFBasicBlock *bb) |
| |
| bool | hasPHISet (const SVFBasicBlock *bb) const |
| |
| LoadToMUSetMap & | getLoadToMUSetMap () |
| |
| StoreToChiSetMap & | getStoreToChiSetMap () |
| |
| FunToReturnMuSetMap & | getFunToRetMuSetMap () |
| |
| FunToEntryChiSetMap & | getFunToEntryChiSetMap () |
| |
| CallSiteToMUSetMap & | getCallSiteToMuSetMap () |
| |
| CallSiteToCHISetMap & | getCallSiteToChiSetMap () |
| |
| BBToPhiSetMap & | getBBToPhiSetMap () |
| |
| u32_t | getLoadMuNum () const |
| | Stat methods.
|
| |
| u32_t | getStoreChiNum () const |
| |
| u32_t | getFunEntryChiNum () const |
| |
| u32_t | getFunRetMuNum () const |
| |
| u32_t | getCallSiteMuNum () const |
| |
| u32_t | getCallSiteChiNum () const |
| |
| u32_t | getBBPhiNum () const |
| |
| void | dumpMSSA (OutStream &Out=SVFUtil::outs()) |
| | Print Memory SSA.
|
| |
Definition at line 52 of file MemSSA.h.