svf-tools 1.0.340 → 1.0.344
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/BasicTypes_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +7 -7
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +7 -7
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +7 -7
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +15 -15
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGNode_8h.html +7 -7
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +69 -69
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +64 -61
- package/SVF-doxygen/html/html/ICFG_8h_source.html +46 -46
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +6 -6
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +5 -5
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/MHP_8h_source.html +6 -6
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +9 -9
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +27 -27
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +18 -18
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +12 -12
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Options_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Options_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PCG_8h_source.html +4 -4
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +17 -17
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +17 -17
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +17 -17
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +9 -9
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +32 -32
- package/SVF-doxygen/html/html/SVFG_8h_source.html +27 -27
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +13 -13
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +32 -32
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +14 -14
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +7 -7
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +16 -15
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +30 -28
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +44 -42
- package/SVF-doxygen/html/html/TCT_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +20 -20
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +2 -2
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +11 -11
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/VFG_8h_source.html +19 -19
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/annotated.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +47 -47
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +34 -34
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +34 -34
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +38 -38
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +15 -12
- package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +5 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallCHI-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode-members.html +158 -0
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +852 -0
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CallMU-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +60 -60
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +52 -52
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +43 -43
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +4 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode-members.html +150 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +618 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +4 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode-members.html +149 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +624 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +3 -1
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode-members.html +144 -0
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +413 -0
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1HareParForEdge.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ICFG-members.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +224 -217
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +74 -71
- package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter-members.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode-members.html +144 -0
- package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.html +399 -0
- package/SVF-doxygen/html/html/classSVF_1_1InterICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +7 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode-members.html +146 -0
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +494 -0
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +61 -61
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1MHP-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +198 -198
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1MemObj-members.html +23 -22
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +70 -47
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +77 -77
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo-members.html +17 -15
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +141 -106
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +27 -27
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PCG-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph-members.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +118 -118
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +109 -109
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +5 -3
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode-members.html +153 -0
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +696 -0
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +160 -160
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +76 -76
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +133 -133
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +62 -62
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +17 -16
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1TCT-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph-members.html +40 -40
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +220 -220
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge-members.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +42 -42
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +10 -9
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +96 -96
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +37 -37
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +12 -12
- package/SVF-doxygen/html/html/classes.html +16 -16
- package/SVF-doxygen/html/html/functions_a.html +59 -59
- package/SVF-doxygen/html/html/functions_c.html +74 -71
- package/SVF-doxygen/html/html/functions_eval_c.html +5 -2
- package/SVF-doxygen/html/html/functions_f.html +14 -14
- package/SVF-doxygen/html/html/functions_func.html +56 -56
- package/SVF-doxygen/html/html/functions_func_c.html +28 -28
- package/SVF-doxygen/html/html/functions_func_f.html +6 -6
- package/SVF-doxygen/html/html/functions_func_g.html +88 -88
- package/SVF-doxygen/html/html/functions_func_h.html +17 -17
- package/SVF-doxygen/html/html/functions_func_i.html +31 -29
- package/SVF-doxygen/html/html/functions_func_m.html +1 -1
- package/SVF-doxygen/html/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/html/functions_func_r.html +6 -6
- package/SVF-doxygen/html/html/functions_func_s.html +1 -1
- package/SVF-doxygen/html/html/functions_func_t.html +7 -7
- package/SVF-doxygen/html/html/functions_func_u.html +3 -3
- package/SVF-doxygen/html/html/functions_g.html +88 -88
- package/SVF-doxygen/html/html/functions_h.html +16 -16
- package/SVF-doxygen/html/html/functions_i.html +37 -35
- package/SVF-doxygen/html/html/functions_m.html +2 -2
- package/SVF-doxygen/html/html/functions_n.html +3 -3
- package/SVF-doxygen/html/html/functions_o.html +10 -10
- package/SVF-doxygen/html/html/functions_p.html +21 -30
- package/SVF-doxygen/html/html/functions_r.html +6 -6
- package/SVF-doxygen/html/html/functions_s.html +15 -14
- package/SVF-doxygen/html/html/functions_t.html +13 -15
- package/SVF-doxygen/html/html/functions_type.html +1 -1
- package/SVF-doxygen/html/html/functions_type_c.html +24 -24
- package/SVF-doxygen/html/html/functions_type_f.html +3 -3
- package/SVF-doxygen/html/html/functions_type_i.html +2 -2
- package/SVF-doxygen/html/html/functions_type_p.html +1 -1
- package/SVF-doxygen/html/html/functions_type_s.html +1 -1
- package/SVF-doxygen/html/html/functions_type_v.html +2 -2
- package/SVF-doxygen/html/html/functions_u.html +3 -3
- package/SVF-doxygen/html/html/functions_v.html +5 -5
- package/SVF-doxygen/html/html/functions_vars_a.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_c.html +11 -11
- package/SVF-doxygen/html/html/functions_vars_f.html +5 -5
- package/SVF-doxygen/html/html/functions_vars_g.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_i.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_p.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_r.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
- package/SVF-doxygen/html/html/functions_w.html +5 -9
- package/SVF-doxygen/html/html/hierarchy.html +7 -7
- package/SVF-doxygen/html/html/namespaceSVF.html +11 -11
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +11 -11
- package/SVF-doxygen/html/html/search/all_1.js +58 -58
- package/SVF-doxygen/html/html/search/all_10.js +13 -14
- package/SVF-doxygen/html/html/search/all_12.js +5 -5
- package/SVF-doxygen/html/html/search/all_13.js +9 -8
- package/SVF-doxygen/html/html/search/all_14.js +6 -6
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +3 -3
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_3.js +37 -35
- package/SVF-doxygen/html/html/search/all_6.js +12 -12
- package/SVF-doxygen/html/html/search/all_7.js +62 -61
- package/SVF-doxygen/html/html/search/all_8.js +17 -17
- package/SVF-doxygen/html/html/search/all_9.js +19 -19
- package/SVF-doxygen/html/html/search/all_c.js +1 -1
- package/SVF-doxygen/html/html/search/all_d.js +2 -2
- package/SVF-doxygen/html/html/search/all_e.js +1 -1
- package/SVF-doxygen/html/html/search/all_f.js +2 -2
- package/SVF-doxygen/html/html/search/classes_2.js +1 -1
- package/SVF-doxygen/html/html/search/classes_5.js +2 -2
- package/SVF-doxygen/html/html/search/classes_6.js +1 -1
- package/SVF-doxygen/html/html/search/classes_8.js +2 -2
- package/SVF-doxygen/html/html/search/classes_e.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_2.js +2 -1
- package/SVF-doxygen/html/html/search/functions_0.js +55 -55
- package/SVF-doxygen/html/html/search/functions_10.js +2 -2
- package/SVF-doxygen/html/html/search/functions_11.js +4 -4
- package/SVF-doxygen/html/html/search/functions_12.js +1 -1
- package/SVF-doxygen/html/html/search/functions_2.js +10 -10
- package/SVF-doxygen/html/html/search/functions_5.js +4 -4
- package/SVF-doxygen/html/html/search/functions_6.js +61 -61
- package/SVF-doxygen/html/html/search/functions_7.js +17 -17
- package/SVF-doxygen/html/html/search/functions_8.js +16 -16
- package/SVF-doxygen/html/html/search/functions_b.js +1 -1
- package/SVF-doxygen/html/html/search/functions_e.js +2 -2
- package/SVF-doxygen/html/html/search/functions_f.js +4 -4
- package/SVF-doxygen/html/html/search/typedefs_0.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_14.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_2.js +21 -21
- package/SVF-doxygen/html/html/search/typedefs_5.js +3 -3
- package/SVF-doxygen/html/html/search/typedefs_8.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_f.js +1 -1
- package/SVF-doxygen/html/html/search/variables_1.js +2 -2
- package/SVF-doxygen/html/html/search/variables_10.js +0 -1
- package/SVF-doxygen/html/html/search/variables_12.js +1 -1
- package/SVF-doxygen/html/html/search/variables_13.js +1 -0
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_3.js +4 -4
- package/SVF-doxygen/html/html/search/variables_6.js +5 -5
- package/SVF-doxygen/html/html/search/variables_7.js +1 -1
- package/SVF-doxygen/html/html/search/variables_9.js +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +23 -23
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
- package/include/DDA/ContextDDA.h +3 -3
- package/include/DDA/DDAClient.h +2 -2
- package/include/DDA/DDAVFSolver.h +2 -2
- package/include/DDA/FlowDDA.h +2 -2
- package/include/Graphs/ICFG.h +32 -32
- package/include/Graphs/ICFGNode.h +33 -33
- package/include/Graphs/ICFGStat.h +11 -11
- package/include/Graphs/PTACallGraph.h +19 -19
- package/include/Graphs/SVFG.h +16 -16
- package/include/Graphs/SVFGNode.h +14 -14
- package/include/Graphs/SVFGOPT.h +1 -1
- package/include/Graphs/ThreadCallGraph.h +25 -25
- package/include/Graphs/VFG.h +10 -10
- package/include/Graphs/VFGNode.h +8 -8
- package/include/MSSA/MSSAMuChi.h +6 -6
- package/include/MSSA/MemRegion.h +24 -24
- package/include/MSSA/MemSSA.h +10 -10
- package/include/MTA/LockResultValidator.h +2 -2
- package/include/MTA/MHP.h +4 -4
- package/include/MTA/PCG.h +1 -1
- package/include/MTA/TCT.h +2 -2
- package/include/MemoryModel/PointerAnalysis.h +12 -12
- package/include/MemoryModel/SVFIR.h +22 -22
- package/include/MemoryModel/SVFStatements.h +11 -11
- package/include/MemoryModel/SymbolTableInfo.h +15 -9
- package/include/SABER/LeakChecker.h +4 -4
- package/include/SABER/ProgSlice.h +2 -2
- package/include/SABER/SaberCheckerAPI.h +4 -4
- package/include/SABER/SaberSVFGBuilder.h +1 -1
- package/include/SABER/SrcSnkDDA.h +1 -1
- package/include/SVF-FE/ICFGBuilder.h +4 -4
- package/include/SVF-FE/SVFIRBuilder.h +5 -5
- package/include/Util/Options.h +1 -1
- package/lib/DDA/ContextDDA.cpp +3 -3
- package/lib/DDA/DDAClient.cpp +1 -1
- package/lib/DDA/FlowDDA.cpp +1 -1
- package/lib/Graphs/ICFG.cpp +88 -71
- package/lib/Graphs/PTACallGraph.cpp +5 -5
- package/lib/Graphs/SVFG.cpp +7 -7
- package/lib/Graphs/ThreadCallGraph.cpp +6 -6
- package/lib/Graphs/VFG.cpp +6 -6
- package/lib/MSSA/MemRegion.cpp +17 -17
- package/lib/MSSA/MemSSA.cpp +3 -3
- package/lib/MTA/LockAnalysis.cpp +4 -4
- package/lib/MTA/MHP.cpp +5 -5
- package/lib/MTA/MTAResultValidator.cpp +1 -1
- package/lib/MTA/PCG.cpp +1 -1
- package/lib/MemoryModel/PointerAnalysis.cpp +10 -10
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
- package/lib/MemoryModel/SVFIR.cpp +5 -5
- package/lib/MemoryModel/SVFStatements.cpp +53 -49
- package/lib/MemoryModel/SVFVariables.cpp +10 -10
- package/lib/MemoryModel/SymbolTableInfo.cpp +12 -7
- package/lib/SABER/DoubleFreeChecker.cpp +1 -1
- package/lib/SABER/FileChecker.cpp +2 -2
- package/lib/SABER/LeakChecker.cpp +8 -8
- package/lib/SABER/ProgSlice.cpp +2 -2
- package/lib/SVF-FE/CallGraphBuilder.cpp +4 -4
- package/lib/SVF-FE/Graph2Json.cpp +5 -5
- package/lib/SVF-FE/ICFGBuilder.cpp +31 -25
- package/lib/SVF-FE/SVFIRBuilder.cpp +8 -8
- package/lib/SVF-FE/SymbolTableBuilder.cpp +2 -2
- package/lib/Util/Options.cpp +3 -3
- package/lib/Util/PTAStat.cpp +3 -3
- package/lib/Util/SVFUtil.cpp +2 -0
- package/lib/Util/TypeBasedHeapCloning.cpp +1 -1
- package/lib/WPA/Andersen.cpp +3 -3
- package/lib/WPA/FlowSensitive.cpp +2 -2
- package/lib/WPA/TypeAnalysis.cpp +1 -1
- package/lib/WPA/VersionedFlowSensitive.cpp +4 -4
- package/lib/WPA/WPAPass.cpp +4 -4
- package/package.json +1 -1
|
@@ -66,14 +66,13 @@ $(function() {
|
|
|
66
66
|
<div class="title">MSSAMuChi.h</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="MSSAMuChi_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===- MSSAMuChi.h -- Mu/Chi on MSSA------------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * MSSAMuChi.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * Created on: Oct 31, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#ifndef MSSAMUCHI_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#define MSSAMUCHI_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="MemRegion_8h.html">MSSA/MemRegion.h</a>"</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">class </span>MSSADEF;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html"> 43</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MRVer.html">MRVer</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#a1f51f0c2ae814b2170e549ea1122a99f"> 47</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a> <a class="code" href="classSVF_1_1MRVer.html#a1f51f0c2ae814b2170e549ea1122a99f">MSSADef</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#aa89979685cbca9279d32c7512c9d3c16"> 50</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1MRVer.html#aa89979685cbca9279d32c7512c9d3c16">totalVERNum</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#aafe30801672cd436216386ad6ff479e6"> 51</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* <a class="code" href="classSVF_1_1MRVer.html#aafe30801672cd436216386ad6ff479e6">mr</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#afc08020e6d2f1721d1d1363ed3fef151"> 52</a></span>  <a class="code" href="namespaceSVF.html#a39df0130e37e97db2ff7620bbb2a72f5">MRVERSION</a> <a class="code" href="classSVF_1_1MRVer.html#afc08020e6d2f1721d1d1363ed3fef151">version</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#a394b8c115d01dcf212d453a93a812aab"> 53</a></span>  <a class="code" href="namespaceSVF.html#a0039280e908258b8e73779de51e9f63b">MRVERID</a> <a class="code" href="classSVF_1_1MRVer.html#a394b8c115d01dcf212d453a93a812aab">vid</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#a3398bb8d3189413c275b62d5cb7a5fc4"> 54</a></span>  MSSADef* <a class="code" href="classSVF_1_1MRVer.html#a3398bb8d3189413c275b62d5cb7a5fc4">def</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#a15c18c76e5911e472747183f35cd7028"> 57</a></span>  <a class="code" href="classSVF_1_1MRVer.html#a15c18c76e5911e472747183f35cd7028">MRVer</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, <a class="code" href="namespaceSVF.html#a39df0130e37e97db2ff7620bbb2a72f5">MRVERSION</a> v, MSSADef* d) :</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  mr(m), version(v), vid(totalVERNum++),def(d)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825"> 63</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* <a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRVer.html#aafe30801672cd436216386ad6ff479e6">mr</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#a170a933f25684bda23321ba05c7a7d88"> 69</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a39df0130e37e97db2ff7620bbb2a72f5">MRVERSION</a> <a class="code" href="classSVF_1_1MRVer.html#a170a933f25684bda23321ba05c7a7d88">getSSAVersion</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRVer.html#afc08020e6d2f1721d1d1363ed3fef151">version</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#a492211105abe8af8ed9ad7b30eabb852"> 75</a></span>  <span class="keyword">inline</span> MSSADef* <a class="code" href="classSVF_1_1MRVer.html#a492211105abe8af8ed9ad7b30eabb852">getDef</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRVer.html#a3398bb8d3189413c275b62d5cb7a5fc4">def</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#a45b70add039a7f134e8d44bfc6b8f0bc"> 81</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a0039280e908258b8e73779de51e9f63b">MRVERID</a> <a class="code" href="classSVF_1_1MRVer.html#a45b70add039a7f134e8d44bfc6b8f0bc">getID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRVer.html#a394b8c115d01dcf212d453a93a812aab">vid</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> };</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html"> 95</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a82c66f3e2b7d2d9dd391a947719bda9b"> 99</a></span>  <span class="keyword">enum</span> <a class="code" href="classSVF_1_1MSSAMU.html#a82c66f3e2b7d2d9dd391a947719bda9b">MUTYPE</a></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  {</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a82c66f3e2b7d2d9dd391a947719bda9ba255f3e3fc50f3a8d9a8bd5800b1b4594"> 101</a></span>  LoadMSSAMU, CallMSSAMU, RetMSSAMU</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  };</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a3cbe5ca0cb91090ef0e8b331e2f15f7c"> 105</a></span>  <a class="code" href="classSVF_1_1MSSAMU.html#a82c66f3e2b7d2d9dd391a947719bda9b">MUTYPE</a> <a class="code" href="classSVF_1_1MSSAMU.html#a3cbe5ca0cb91090ef0e8b331e2f15f7c">type</a>;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a51b89fa50c39d864cc9ca63508ea94f4"> 106</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* <a class="code" href="classSVF_1_1MSSAMU.html#a51b89fa50c39d864cc9ca63508ea94f4">mr</a>;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a9c84b55a34025c6742f5a02c07cd4a36"> 107</a></span>  <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1MSSAMU.html#a9c84b55a34025c6742f5a02c07cd4a36">ver</a>;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a8e828af79da08528166b1f53165bc5b2"> 108</a></span>  Cond <a class="code" href="classSVF_1_1MSSAMU.html#a8e828af79da08528166b1f53165bc5b2">cond</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a1d0f8d3e7651f4ace92d31a9c6604e2f"> 112</a></span>  <a class="code" href="classSVF_1_1MSSAMU.html#a1d0f8d3e7651f4ace92d31a9c6604e2f">MSSAMU</a>(<a class="code" href="classSVF_1_1MSSAMU.html#a82c66f3e2b7d2d9dd391a947719bda9b">MUTYPE</a> t, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, Cond c) : type(t), mr(m), ver(nullptr), cond(c)</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a128d59c1fbfa6aed7ba4b84c92909366"> 115</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MSSAMU.html#a128d59c1fbfa6aed7ba4b84c92909366">~MSSAMU</a>()</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a6bd671839ec0376439ccd81d5b2eff30"> 121</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* <a class="code" href="classSVF_1_1MSSAMU.html#a6bd671839ec0376439ccd81d5b2eff30">getMR</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRVer.html#aafe30801672cd436216386ad6ff479e6">mr</a>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  }</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a9a542febe746d1389d34e5e31a3253c9"> 126</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MSSAMU.html#a82c66f3e2b7d2d9dd391a947719bda9b">MUTYPE</a> <a class="code" href="classSVF_1_1MSSAMU.html#a9a542febe746d1389d34e5e31a3253c9">getType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">return</span> type;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  }</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a2af1e639aabbc5997aa4e6526f6595fb"> 131</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MSSAMU.html#a2af1e639aabbc5997aa4e6526f6595fb">setVer</a>(<a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* v)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(v-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>() == mr && <span class="stringliteral">"inserting different memory region?"</span>);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  ver = v;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#ad120dfc87b90b26649bcd8d0c0d3ca80"> 137</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1MSSAMU.html#ad120dfc87b90b26649bcd8d0c0d3ca80">getMRVer</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(ver!=<span class="keyword">nullptr</span> && <span class="stringliteral">"version is nullptr, did not rename?"</span>);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">return</span> ver;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  }</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#ac51263250da06fd63b923a6771744f97"> 143</a></span>  <span class="keyword">inline</span> Cond <a class="code" href="classSVF_1_1MSSAMU.html#ac51263250da06fd63b923a6771744f97">getCond</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> cond;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a838a4a7cd670eef1153701aef9871bcf"> 149</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator < (<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a> & rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">return</span> mr > rhs.<a class="code" href="classSVF_1_1MSSAMU.html#a6bd671839ec0376439ccd81d5b2eff30">getMR</a>();</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  }</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a489e8c27e40b709d94a462653fb760f5"> 154</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MSSAMU.html#a489e8c27e40b709d94a462653fb760f5">dump</a>()</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">"MU(MR_"</span> << mr-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << ver-><a class="code" href="classSVF_1_1MRVer.html#a170a933f25684bda23321ba05c7a7d88">getSSAVersion</a>() << <span class="stringliteral">") \t"</span> <<</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#adad8c2b08ab6a512f0c3aa90b4416f60">dumpStr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> };</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html"> 165</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1LoadMU.html">LoadMU</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a><Cond></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html#a7bbac3ff5455aa1340f348c7cb239c46"> 169</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* <a class="code" href="classSVF_1_1LoadMU.html#a7bbac3ff5455aa1340f348c7cb239c46">inst</a>;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html#ad5b6ecaf016a136c982291256687d4d2"> 170</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1LoadMU.html#ad5b6ecaf016a136c982291256687d4d2">bb</a>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html#aaf916feaa76c3eaf96dcff576ef366ca"> 175</a></span>  <a class="code" href="classSVF_1_1LoadMU.html#aaf916feaa76c3eaf96dcff576ef366ca">LoadMU</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* b,<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, Cond c = <span class="keyword">true</span>) :</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a><Cond>(<a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a><Cond>::LoadMSSAMU,m,c), inst(i), bb(b)</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  }</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html#a8193de194cf40211a36156cb87209a7e"> 179</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1LoadMU.html#a8193de194cf40211a36156cb87209a7e">~LoadMU</a>()</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  }</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html#a5c26668b6ab2db91c4d5ba32d6a27b14"> 186</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* <a class="code" href="classSVF_1_1LoadMU.html#a5c26668b6ab2db91c4d5ba32d6a27b14">getLoadInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html#abcd77653329021248bb406815f8691a7"> 192</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1LoadMU.html#abcd77653329021248bb406815f8691a7">getBasicBlock</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">return</span> bb;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html#a675192a60c5afa6e1d5f9b7dae5953b5"> 199</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadMU.html#a675192a60c5afa6e1d5f9b7dae5953b5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadMU.html">LoadMU</a> *)</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  }</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html#a2b3f73c38c479e05984e01710227e50f"> 203</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadMU.html#a2b3f73c38c479e05984e01710227e50f">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU<Cond></a> *mu)</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">return</span> mu-><a class="code" href="classSVF_1_1MSSAMU.html#a9a542febe746d1389d34e5e31a3253c9">getType</a>() == <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU<Cond>::LoadMSSAMU</a>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html#aaaa51723d657719b82a2ce85c1628329"> 210</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1LoadMU.html#aaaa51723d657719b82a2ce85c1628329">dump</a>()</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">"LDMU(MR_"</span> << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getMRVer()->getSSAVersion() << <span class="stringliteral">") \t"</span> <<</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#adad8c2b08ab6a512f0c3aa90b4416f60">dumpStr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> };</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classSVF_1_1CallMU.html"> 221</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CallMU.html">CallMU</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a><Cond></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classSVF_1_1CallMU.html#ae748ea61422184b513c09b842be9b076"> 225</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* <a class="code" href="classSVF_1_1CallMU.html#ae748ea61422184b513c09b842be9b076">callsite</a>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classSVF_1_1CallMU.html#a267c7345f42e1aaa0ca7ffdcb85b45b3"> 230</a></span>  <a class="code" href="classSVF_1_1CallMU.html#a267c7345f42e1aaa0ca7ffdcb85b45b3">CallMU</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, Cond c = <span class="keyword">true</span>) :</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a><Cond>(<a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a><Cond>::CallMSSAMU,m,c), callsite(cs)</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  }</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1CallMU.html#a408184b7a6c625d67a4b660e140b10c5"> 234</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1CallMU.html#a408184b7a6c625d67a4b660e140b10c5">~CallMU</a>()</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classSVF_1_1CallMU.html#a401be4fc10a3b9f3d392f1c278bef866"> 241</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* <a class="code" href="classSVF_1_1CallMU.html#a401be4fc10a3b9f3d392f1c278bef866">getCallSite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">return</span> callsite;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classSVF_1_1CallMU.html#ab20ae240ad380c760b9b1f4b8b06344f"> 247</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1CallMU.html#ab20ae240ad380c760b9b1f4b8b06344f">getBasicBlock</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">return</span> callsite-><a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>()->getParent();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="classSVF_1_1CallMU.html#af8a0defe4c5b36893e155a4b074c0f30"> 254</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallMU.html#af8a0defe4c5b36893e155a4b074c0f30">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallMU.html">CallMU</a> *)</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</div><div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="classSVF_1_1CallMU.html#a27c70bc7543eeb2fcf64f139481d3bf9"> 258</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallMU.html#a27c70bc7543eeb2fcf64f139481d3bf9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU<Cond></a> *mu)</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">return</span> mu-><a class="code" href="classSVF_1_1MSSAMU.html#a9a542febe746d1389d34e5e31a3253c9">getType</a>() == <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU<Cond>::CallMSSAMU</a>;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="classSVF_1_1CallMU.html#af08ecc9c2b75737e88690fb2319fcf57"> 265</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CallMU.html#af08ecc9c2b75737e88690fb2319fcf57">dump</a>()</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">"CALMU(MR_"</span> << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getMRVer()->getSSAVersion() << <span class="stringliteral">") \t"</span> <<</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#adad8c2b08ab6a512f0c3aa90b4416f60">dumpStr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> };</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="classSVF_1_1RetMU.html"> 277</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1RetMU.html">RetMU</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a><Cond></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="classSVF_1_1RetMU.html#a4982f6fffac4f4775e27f994677a9f2c"> 280</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="classSVF_1_1RetMU.html#a4982f6fffac4f4775e27f994677a9f2c">fun</a>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classSVF_1_1RetMU.html#a8cd41b018ddef450d17a20ea83ce3fee"> 284</a></span>  <a class="code" href="classSVF_1_1RetMU.html#a8cd41b018ddef450d17a20ea83ce3fee">RetMU</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* f, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, Cond c = <span class="keyword">true</span>) :</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a><Cond>(<a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a><Cond>::RetMSSAMU,m,c), fun(f)</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="classSVF_1_1RetMU.html#a0f908cb79713ed332284838c5a87dcc7"> 288</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1RetMU.html#a0f908cb79713ed332284838c5a87dcc7">~RetMU</a>() {}</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="classSVF_1_1RetMU.html#a8ad6bf3d517e20089dac516742ee4b8f"> 292</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="classSVF_1_1RetMU.html#a8ad6bf3d517e20089dac516742ee4b8f">getFunction</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">return</span> fun;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> </div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="classSVF_1_1RetMU.html#ace8b780beda75de78d08247335e1738a"> 299</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetMU.html#ace8b780beda75de78d08247335e1738a">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetMU.html">RetMU</a> *)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  }</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classSVF_1_1RetMU.html#ae6608c348426d99a5d3963ceaca2eb8b"> 303</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetMU.html#ae6608c348426d99a5d3963ceaca2eb8b">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU<Cond></a> *mu)</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">return</span> mu-><a class="code" href="classSVF_1_1MSSAMU.html#a9a542febe746d1389d34e5e31a3253c9">getType</a>() == <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU<Cond>::RetMSSAMU</a>;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  }</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> </div><div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="classSVF_1_1RetMU.html#ae452b798bf9c6a9d913e63a75c4cd3c0"> 310</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1RetMU.html#ae452b798bf9c6a9d913e63a75c4cd3c0">dump</a>()</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">"RETMU(MR_"</span> << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getMRVer()->getSSAVersion() << <span class="stringliteral">") \t"</span> <<</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#adad8c2b08ab6a512f0c3aa90b4416f60">dumpStr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  }</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> };</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div><div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html"> 325</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> {</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18"> 329</a></span>  <span class="keyword">enum</span> <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18">DEFTYPE</a></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  {</div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18aeebaf47309ac06cd04ae69979f4c2580"> 331</a></span>  <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18aeebaf47309ac06cd04ae69979f4c2580">SSACHI</a>,</div><div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18ac9b53519d32443a72c04e771489aba43"> 332</a></span>  <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18ac9b53519d32443a72c04e771489aba43">StoreMSSACHI</a>,</div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18acdf2b1261a1be8a4a923a22311ecd1e4"> 333</a></span>  <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18acdf2b1261a1be8a4a923a22311ecd1e4">CallMSSACHI</a>,</div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18af0a554492277c9964a67ab9cd23071d3"> 334</a></span>  <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18af0a554492277c9964a67ab9cd23071d3">EntryMSSACHI</a>,</div><div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18ae2cdc3b8aae7005f6d7495d2f200a736"> 335</a></span>  SSAPHI</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  };</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a9e8a03dc2c2f76ef6bc095f21911f5b6"> 339</a></span>  <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18">DEFTYPE</a> <a class="code" href="classSVF_1_1MSSADEF.html#a9e8a03dc2c2f76ef6bc095f21911f5b6">type</a>;</div><div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a01bc47f779d20fa8e3be182ceab12780"> 340</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* <a class="code" href="classSVF_1_1MSSADEF.html#a01bc47f779d20fa8e3be182ceab12780">mr</a>;</div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a72560a998968ae2dbc6e5aa8a7e9f813"> 341</a></span>  <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1MSSADEF.html#a72560a998968ae2dbc6e5aa8a7e9f813">resVer</a>;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a1b1c7cbc293182a5ded43efa522990de"> 346</a></span>  <a class="code" href="classSVF_1_1MSSADEF.html#a1b1c7cbc293182a5ded43efa522990de">MSSADEF</a>(<a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18">DEFTYPE</a> t, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m): type(t), mr(m), resVer(nullptr)</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  }</div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#add2262289cdad5d5e14c0082b40c45d9"> 350</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MSSADEF.html#add2262289cdad5d5e14c0082b40c45d9">~MSSADEF</a>() {}</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c"> 354</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* <a class="code" href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c">getMR</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRVer.html#aafe30801672cd436216386ad6ff479e6">mr</a>;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div><div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c"> 360</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18">DEFTYPE</a> <a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keywordflow">return</span> type;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  }</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a343eb4c9515dfbbbdadaacf5500e5f05"> 366</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MSSADEF.html#a343eb4c9515dfbbbdadaacf5500e5f05">setResVer</a>(<a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* v)</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  {</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(v-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>() == mr && <span class="stringliteral">"inserting different memory region?"</span>);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  resVer = v;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  }</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div><div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a21cb532396180e0b6bab515c52bec282"> 373</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1MSSADEF.html#a21cb532396180e0b6bab515c52bec282">getResVer</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(resVer!=<span class="keyword">nullptr</span> && <span class="stringliteral">"version is nullptr, did not rename?"</span>);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">return</span> resVer;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div><div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#ad24da3516c198ade16c6909c5222fd0f"> 380</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator < (<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a> & rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordflow">return</span> mr > rhs.<a class="code" href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c">getMR</a>();</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#aa7e06959d5b3197d930aa44b09694b52"> 386</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MSSADEF.html#aa7e06959d5b3197d930aa44b09694b52">dump</a>()</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">"DEF(MR_"</span> << mr-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << resVer-><a class="code" href="classSVF_1_1MRVer.html#a170a933f25684bda23321ba05c7a7d88">getSSAVersion</a>() << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  }</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span> };</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div><div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html"> 396</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a></div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> {</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#a86f2f3f6e2215cdbe31caee048510757"> 400</a></span>  <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1MSSACHI.html#a86f2f3f6e2215cdbe31caee048510757">opVer</a>;</div><div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#addeee3fb0c5e6b1c68c30da111c26759"> 401</a></span>  Cond <a class="code" href="classSVF_1_1MSSACHI.html#addeee3fb0c5e6b1c68c30da111c26759">cond</a>;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#a21d9218e105987a1f807633ea824e5d3"> 403</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18">MSSADEF::DEFTYPE</a> <a class="code" href="classSVF_1_1MSSACHI.html#a21d9218e105987a1f807633ea824e5d3">CHITYPE</a>;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#af9ecdf852667bd23fe4805ba04c3e815"> 406</a></span>  <a class="code" href="classSVF_1_1MSSACHI.html#af9ecdf852667bd23fe4805ba04c3e815">MSSACHI</a>(CHITYPE t, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, Cond c): <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a>(t,m), opVer(nullptr), cond(c)</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> </div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  }</div><div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#a01cdeb7ac96e0809d1d56c9da56c4b97"> 410</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MSSACHI.html#a01cdeb7ac96e0809d1d56c9da56c4b97">~MSSACHI</a>() {}</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div><div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#a245d8ee9e81ba4fe6f41533baf471331"> 414</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MSSACHI.html#a245d8ee9e81ba4fe6f41533baf471331">setOpVer</a>(<a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* v)</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(v-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>() == this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>() && <span class="stringliteral">"inserting different memory region?"</span>);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  opVer = v;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  }</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#a7af6f73ff1432d4adb5ee8493fbe73fb"> 421</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1MSSACHI.html#a7af6f73ff1432d4adb5ee8493fbe73fb">getOpVer</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(opVer!=<span class="keyword">nullptr</span> && <span class="stringliteral">"version is nullptr, did not rename?"</span>);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">return</span> opVer;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  }</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span> </div><div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#a9673994f9db94e23984b132d4b533304"> 428</a></span>  <span class="keyword">inline</span> Cond <a class="code" href="classSVF_1_1MSSACHI.html#a9673994f9db94e23984b132d4b533304">getCond</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keywordflow">return</span> cond;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  }</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span> </div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span> </div><div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#a49cf6b7e0cb38acfeb2eb2e1273c506d"> 435</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MSSACHI.html#a49cf6b7e0cb38acfeb2eb2e1273c506d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI</a> * chi)</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  }</div><div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#a450055eb758896fb2e3e4f67febe7782"> 439</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MSSACHI.html#a450055eb758896fb2e3e4f67febe7782">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a> *chi)</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  {</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keywordflow">return</span> chi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18af0a554492277c9964a67ab9cd23071d3">MSSADEF::EntryMSSACHI</a> ||</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  chi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18ac9b53519d32443a72c04e771489aba43">MSSADEF::StoreMSSACHI</a> ||</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  chi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18aeebaf47309ac06cd04ae69979f4c2580">MSSADEF::SSACHI</a> ;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  }</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span> </div><div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#a63355fc98b9c1cc3db5e664e387693ca"> 448</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MSSACHI.html#a63355fc98b9c1cc3db5e664e387693ca">dump</a>()</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  {</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">"MR_"</span> << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getResVer()->getSSAVersion() <<</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="stringliteral">" = CHI(MR_"</span> << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << opVer-><a class="code" href="classSVF_1_1MRVer.html#a170a933f25684bda23321ba05c7a7d88">getSSAVersion</a>() << <span class="stringliteral">") \t"</span> <<</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#adad8c2b08ab6a512f0c3aa90b4416f60">dumpStr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  }</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span> };</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> </div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div><div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html"> 461</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1StoreCHI.html">StoreCHI</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI</a><Cond></div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span> {</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#a3b1bcd4535e2199b57adc67fc283fb3f"> 464</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1StoreCHI.html#a3b1bcd4535e2199b57adc67fc283fb3f">bb</a>;</div><div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#a6e58e7cde1f417ec3feaef98f6f74be2"> 465</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* <a class="code" href="classSVF_1_1StoreCHI.html#a6e58e7cde1f417ec3feaef98f6f74be2">inst</a>;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div><div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#a34433e6e437d302014fd06b5fb624a79"> 469</a></span>  <a class="code" href="classSVF_1_1StoreCHI.html#a34433e6e437d302014fd06b5fb624a79">StoreCHI</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* b, <span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, Cond c = <span class="keyword">true</span>) :</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI</a><Cond>(<a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a>::StoreMSSACHI,m,c), bb(b), inst(i)</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  {</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  }</div><div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#a95f30699dd8622ff60d4aba7e51d0ecf"> 473</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1StoreCHI.html#a95f30699dd8622ff60d4aba7e51d0ecf">~StoreCHI</a>()</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  {</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  }</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span> </div><div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#a85eb84312c003a57b2c9c4ed7df7c239"> 479</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1StoreCHI.html#a85eb84312c003a57b2c9c4ed7df7c239">getBasicBlock</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordflow">return</span> bb;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  }</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div><div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#aead80cf9aad5818f16ad61d7a83b7c79"> 485</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* <a class="code" href="classSVF_1_1StoreCHI.html#aead80cf9aad5818f16ad61d7a83b7c79">getStoreInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  }</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span> </div><div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#a66a4ea0b8b61d39a552f7da000732263"> 492</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreCHI.html#a66a4ea0b8b61d39a552f7da000732263">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreCHI.html">StoreCHI</a> * chi)</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  }</div><div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#a7a01d165b24d05f0a218c2abfaad8422"> 496</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreCHI.html#a7a01d165b24d05f0a218c2abfaad8422">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI<Cond></a> * chi)</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordflow">return</span> chi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18ac9b53519d32443a72c04e771489aba43">MSSADEF::StoreMSSACHI</a>;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  }</div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#a4324f81324dd6d6c6ba6d1af32e29985"> 500</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreCHI.html#a4324f81324dd6d6c6ba6d1af32e29985">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a> *chi)</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  {</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keywordflow">return</span> chi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18ac9b53519d32443a72c04e771489aba43">MSSADEF::StoreMSSACHI</a>;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  }</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span> </div><div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#af889bd9b729182e20ca7598ad4167bb8"> 507</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1StoreCHI.html#af889bd9b729182e20ca7598ad4167bb8">dump</a>()</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getResVer()->getSSAVersion() <<</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="stringliteral">" = STCHI(MR_"</span> << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getOpVer()->getSSAVersion() << <span class="stringliteral">") \t"</span> <<</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#adad8c2b08ab6a512f0c3aa90b4416f60">dumpStr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  }</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span> };</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span> </div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span> </div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div><div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html"> 521</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CallCHI.html">CallCHI</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI</a><Cond></div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span> {</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html#adfecaac7c36b56b7eac321d6066cdb9d"> 524</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* <a class="code" href="classSVF_1_1CallCHI.html#adfecaac7c36b56b7eac321d6066cdb9d">callsite</a>;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span> </div><div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html#a5a03b5679ded2115a396ef04b388d6f5"> 528</a></span>  <a class="code" href="classSVF_1_1CallCHI.html#a5a03b5679ded2115a396ef04b388d6f5">CallCHI</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, Cond c = <span class="keyword">true</span>) :</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI</a><Cond>(<a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a>::CallMSSACHI,m,c), callsite(cs)</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  {</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  }</div><div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html#a9ae4f818ff29ebaccc0d82a0170577b5"> 532</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1CallCHI.html#a9ae4f818ff29ebaccc0d82a0170577b5">~CallCHI</a>()</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  {</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  }</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span> </div><div class="line"><a name="l00538"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html#a69f83ff81ea017d645aadeb46334880f"> 538</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1CallCHI.html#a69f83ff81ea017d645aadeb46334880f">getBasicBlock</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordflow">return</span> callsite-><a class="code" href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">getCallSite</a>()->getParent();</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  }</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span> </div><div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html#a7bce9987b6377a24436b878dcd9c76c9"> 544</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* <a class="code" href="classSVF_1_1CallCHI.html#a7bce9987b6377a24436b878dcd9c76c9">getCallSite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordflow">return</span> callsite;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  }</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span> </div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span> </div><div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html#a7c0708ad9a2aa6278b1e7404340ca2ad"> 551</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallCHI.html#a7c0708ad9a2aa6278b1e7404340ca2ad">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallCHI.html">CallCHI</a> * chi)</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  }</div><div class="line"><a name="l00555"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html#a039209d842c18ef9d4a86a5a725a775b"> 555</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallCHI.html#a039209d842c18ef9d4a86a5a725a775b">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI<Cond></a> * chi)</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  {</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">return</span> chi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18acdf2b1261a1be8a4a923a22311ecd1e4">MSSADEF::CallMSSACHI</a>;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  }</div><div class="line"><a name="l00559"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html#aeea8fd6c5904874604bb0ced9b080c29"> 559</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallCHI.html#aeea8fd6c5904874604bb0ced9b080c29">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a> *chi)</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordflow">return</span> chi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18acdf2b1261a1be8a4a923a22311ecd1e4">MSSADEF::CallMSSACHI</a>;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  }</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span> </div><div class="line"><a name="l00566"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html#ac6a1f2f1c897c647d9b070cb56c61a41"> 566</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CallCHI.html#ac6a1f2f1c897c647d9b070cb56c61a41">dump</a>()</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  {</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getResVer()->getSSAVersion() <<</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="stringliteral">" = CALCHI(MR_"</span> << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getOpVer()->getSSAVersion() << <span class="stringliteral">") \t"</span> <<</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#adad8c2b08ab6a512f0c3aa90b4416f60">dumpStr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  }</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span> };</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span> </div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div><div class="line"><a name="l00578"></a><span class="lineno"><a class="line" href="classSVF_1_1EntryCHI.html"> 578</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1EntryCHI.html">EntryCHI</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI</a><Cond></div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span> {</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="classSVF_1_1EntryCHI.html#afd2b2d4a7198f62467b4062740e5196c"> 581</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="classSVF_1_1EntryCHI.html#afd2b2d4a7198f62467b4062740e5196c">fun</a>;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span> </div><div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="classSVF_1_1EntryCHI.html#a0ba7181ad2a793bf11e40b7c7092e28b"> 585</a></span>  <a class="code" href="classSVF_1_1EntryCHI.html#a0ba7181ad2a793bf11e40b7c7092e28b">EntryCHI</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* f, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, Cond c = <span class="keyword">true</span>) :</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI</a><Cond>(<a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a>::EntryMSSACHI,m,c),fun(f)</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  {</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  }</div><div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="classSVF_1_1EntryCHI.html#ac198f01dd7ebac778367b63081ae487b"> 589</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1EntryCHI.html#ac198f01dd7ebac778367b63081ae487b">~EntryCHI</a>()</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  {</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  }</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span> </div><div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="classSVF_1_1EntryCHI.html#ae021640611362449382668665710154c"> 595</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="classSVF_1_1EntryCHI.html#ae021640611362449382668665710154c">getFunction</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="keywordflow">return</span> fun;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  }</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span> </div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span> </div><div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="classSVF_1_1EntryCHI.html#ad9c86f7cf28fe22584b94416803639aa"> 602</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1EntryCHI.html#ad9c86f7cf28fe22584b94416803639aa">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1EntryCHI.html">EntryCHI</a> * chi)</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  {</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  }</div><div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="classSVF_1_1EntryCHI.html#a55404375929d591f93d09f5a9e896cf6"> 606</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1EntryCHI.html#a55404375929d591f93d09f5a9e896cf6">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI<Cond></a> * chi)</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  {</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">return</span> chi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18af0a554492277c9964a67ab9cd23071d3">MSSADEF::EntryMSSACHI</a>;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  }</div><div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="classSVF_1_1EntryCHI.html#aa5ed214cd44d8847c7539c7e3de3d276"> 610</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1EntryCHI.html#aa5ed214cd44d8847c7539c7e3de3d276">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a> *chi)</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  {</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keywordflow">return</span> chi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18af0a554492277c9964a67ab9cd23071d3">MSSADEF::EntryMSSACHI</a>;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  }</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span> </div><div class="line"><a name="l00617"></a><span class="lineno"><a class="line" href="classSVF_1_1EntryCHI.html#a819f66c0471fe06c739acf18c4a4161d"> 617</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1EntryCHI.html#a819f66c0471fe06c739acf18c4a4161d">dump</a>()</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  {</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getResVer()->getSSAVersion() <<</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="stringliteral">" = ENCHI(MR_"</span> << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getOpVer()->getSSAVersion() << <span class="stringliteral">") \t"</span> <<</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#adad8c2b08ab6a512f0c3aa90b4416f60">dumpStr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  }</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span> };</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="comment">/*</span></div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="comment"> * Memory SSA Select, similar to PHINode</span></div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="comment"> */</span></div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div><div class="line"><a name="l00629"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html"> 629</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MSSAPHI.html">MSSAPHI</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a></div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span> {</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span> </div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00633"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a622892bb1c3c151e646ae1a46838c3ba"> 633</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<u32_t,const MRVer*></a> <a class="code" href="classSVF_1_1MSSAPHI.html#a622892bb1c3c151e646ae1a46838c3ba">OPVers</a>;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00635"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a39e68e1e74483dc07bd117bd2209da91"> 635</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1MSSAPHI.html#a39e68e1e74483dc07bd117bd2209da91">bb</a>;</div><div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#abdabd6dff67cd59622f18d48e8b34271"> 636</a></span>  OPVers <a class="code" href="classSVF_1_1MSSAPHI.html#abdabd6dff67cd59622f18d48e8b34271">opVers</a>;</div><div class="line"><a name="l00637"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a348e69bf48ee7a959cd0bb117ba1dc9f"> 637</a></span>  Cond <a class="code" href="classSVF_1_1MSSAPHI.html#a348e69bf48ee7a959cd0bb117ba1dc9f">cond</a>;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span> </div><div class="line"><a name="l00641"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#aee5c6d2b7e3985b9fa1802c66f74fab1"> 641</a></span>  <a class="code" href="classSVF_1_1MSSAPHI.html#aee5c6d2b7e3985b9fa1802c66f74fab1">MSSAPHI</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* b, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, Cond c = <span class="keyword">true</span>) :</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a>(<a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a>::SSAPHI,m), bb(b), cond(c)</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  {</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  }</div><div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#ada74af0f5beeddd48d7c37fd7b61f42c"> 645</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MSSAPHI.html#ada74af0f5beeddd48d7c37fd7b61f42c">~MSSAPHI</a>()</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  {</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  }</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span> </div><div class="line"><a name="l00651"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a74f663dc5ecc659e98542a53414b7988"> 651</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MSSAPHI.html#a74f663dc5ecc659e98542a53414b7988">setOpVer</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* v, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos)</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  {</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(v-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>() == this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>() && <span class="stringliteral">"inserting different memory region?"</span>);</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  opVers[pos] = v;</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  }</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span> </div><div class="line"><a name="l00658"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#aeb5a948499f913264de749001f605a4e"> 658</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1MSSAPHI.html#aeb5a948499f913264de749001f605a4e">getOpVer</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos)<span class="keyword"> const</span></div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  OPVers::const_iterator it = opVers.find(pos);</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=opVers.end() && <span class="stringliteral">"version is nullptr, did not rename?"</span>);</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  }</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span> </div><div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#adbefc58750f87cf1c30dd5d445b50feb"> 666</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MSSAPHI.html#adbefc58750f87cf1c30dd5d445b50feb">getOpVerNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="keywordflow">return</span> opVers.size();</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  }</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span> </div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span> </div><div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a940f9afa26bf54c7175276ea27003c2f"> 673</a></span>  <span class="keyword">inline</span> OPVers::const_iterator <a class="code" href="classSVF_1_1MSSAPHI.html#a940f9afa26bf54c7175276ea27003c2f">opVerBegin</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <span class="keywordflow">return</span> opVers.begin();</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  }</div><div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a2a49ad9d2eedf1dea98d725b13878d88"> 677</a></span>  <span class="keyword">inline</span> OPVers::const_iterator <a class="code" href="classSVF_1_1MSSAPHI.html#a2a49ad9d2eedf1dea98d725b13878d88">opVerEnd</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="keywordflow">return</span> opVers.end();</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  }</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span> </div><div class="line"><a name="l00684"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a00b3ab85b31b4de91398efea41db158f"> 684</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1MSSAPHI.html#a00b3ab85b31b4de91398efea41db158f">getBasicBlock</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  <span class="keywordflow">return</span> bb;</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  }</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span> </div><div class="line"><a name="l00690"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a06a5d63be38e6df36e1c28a6c0c789cc"> 690</a></span>  <span class="keyword">inline</span> Cond <a class="code" href="classSVF_1_1MSSAPHI.html#a06a5d63be38e6df36e1c28a6c0c789cc">getCond</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  <span class="keywordflow">return</span> cond;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  }</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span> </div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span> </div><div class="line"><a name="l00697"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#adab25ebd69f699c019118bc1e099d4f9"> 697</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MSSAPHI.html#adab25ebd69f699c019118bc1e099d4f9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSAPHI.html">MSSAPHI</a> * phi)</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  {</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  }</div><div class="line"><a name="l00701"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a48d3a719b97991be8ba94149a1d30091"> 701</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MSSAPHI.html#a48d3a719b97991be8ba94149a1d30091">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a> *phi)</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  {</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  <span class="keywordflow">return</span> phi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18ae2cdc3b8aae7005f6d7495d2f200a736">MSSADEF::SSAPHI</a> ;</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  }</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span> </div><div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a15c687ef4286532a5856270bf6f9e11a"> 708</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MSSAPHI.html#a15c687ef4286532a5856270bf6f9e11a">dump</a>()</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  {</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getResVer()->getSSAVersion() <<</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <span class="stringliteral">" = PHI("</span>;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <span class="keywordflow">for</span>(OPVers::iterator it = opVers.begin(), eit = opVers.end(); it!=eit; ++it)</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">"MR_"</span> << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << it->second->getSSAVersion() << <span class="stringliteral">", "</span>;</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span> </div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  }</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span> };</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span> </div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span> </div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="preprocessor">#endif </span><span class="comment">/* MSSAMUCHI_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1CallCHI_html_a9ae4f818ff29ebaccc0d82a0170577b5"><div class="ttname"><a href="classSVF_1_1CallCHI.html#a9ae4f818ff29ebaccc0d82a0170577b5">SVF::CallCHI::~CallCHI</a></div><div class="ttdeci">virtual ~CallCHI()</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00532">MSSAMuChi.h:532</a></div></div>
|
|
69
|
+
<a href="MSSAMuChi_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">//===- MSSAMuChi.h -- Mu/Chi on MSSA------------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * MSSAMuChi.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * Created on: Oct 31, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#ifndef MSSAMUCHI_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#define MSSAMUCHI_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="MemRegion_8h.html">MSSA/MemRegion.h</a>"</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">class </span>MSSADEF;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html"> 43</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MRVer.html">MRVer</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#a1f51f0c2ae814b2170e549ea1122a99f"> 47</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a> <a class="code" href="classSVF_1_1MRVer.html#a1f51f0c2ae814b2170e549ea1122a99f">MSSADef</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#aa89979685cbca9279d32c7512c9d3c16"> 50</a></span>  <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">Size_t</a> <a class="code" href="classSVF_1_1MRVer.html#aa89979685cbca9279d32c7512c9d3c16">totalVERNum</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#aafe30801672cd436216386ad6ff479e6"> 51</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* <a class="code" href="classSVF_1_1MRVer.html#aafe30801672cd436216386ad6ff479e6">mr</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#afc08020e6d2f1721d1d1363ed3fef151"> 52</a></span>  <a class="code" href="namespaceSVF.html#a39df0130e37e97db2ff7620bbb2a72f5">MRVERSION</a> <a class="code" href="classSVF_1_1MRVer.html#afc08020e6d2f1721d1d1363ed3fef151">version</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#a394b8c115d01dcf212d453a93a812aab"> 53</a></span>  <a class="code" href="namespaceSVF.html#a0039280e908258b8e73779de51e9f63b">MRVERID</a> <a class="code" href="classSVF_1_1MRVer.html#a394b8c115d01dcf212d453a93a812aab">vid</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#a3398bb8d3189413c275b62d5cb7a5fc4"> 54</a></span>  MSSADef* <a class="code" href="classSVF_1_1MRVer.html#a3398bb8d3189413c275b62d5cb7a5fc4">def</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#a15c18c76e5911e472747183f35cd7028"> 57</a></span>  <a class="code" href="classSVF_1_1MRVer.html#a15c18c76e5911e472747183f35cd7028">MRVer</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, <a class="code" href="namespaceSVF.html#a39df0130e37e97db2ff7620bbb2a72f5">MRVERSION</a> v, MSSADef* d) :</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  mr(m), version(v), vid(totalVERNum++),def(d)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825"> 63</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* <a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRVer.html#aafe30801672cd436216386ad6ff479e6">mr</a>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#a170a933f25684bda23321ba05c7a7d88"> 69</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a39df0130e37e97db2ff7620bbb2a72f5">MRVERSION</a> <a class="code" href="classSVF_1_1MRVer.html#a170a933f25684bda23321ba05c7a7d88">getSSAVersion</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRVer.html#afc08020e6d2f1721d1d1363ed3fef151">version</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#a492211105abe8af8ed9ad7b30eabb852"> 75</a></span>  <span class="keyword">inline</span> MSSADef* <a class="code" href="classSVF_1_1MRVer.html#a492211105abe8af8ed9ad7b30eabb852">getDef</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRVer.html#a3398bb8d3189413c275b62d5cb7a5fc4">def</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1MRVer.html#a45b70add039a7f134e8d44bfc6b8f0bc"> 81</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#a0039280e908258b8e73779de51e9f63b">MRVERID</a> <a class="code" href="classSVF_1_1MRVer.html#a45b70add039a7f134e8d44bfc6b8f0bc">getID</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRVer.html#a394b8c115d01dcf212d453a93a812aab">vid</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> };</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html"> 95</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span> {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a82c66f3e2b7d2d9dd391a947719bda9b"> 99</a></span>  <span class="keyword">enum</span> <a class="code" href="classSVF_1_1MSSAMU.html#a82c66f3e2b7d2d9dd391a947719bda9b">MUTYPE</a></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  {</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a82c66f3e2b7d2d9dd391a947719bda9ba255f3e3fc50f3a8d9a8bd5800b1b4594"> 101</a></span>  LoadMSSAMU, CallMSSAMU, RetMSSAMU</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  };</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a3cbe5ca0cb91090ef0e8b331e2f15f7c"> 105</a></span>  <a class="code" href="classSVF_1_1MSSAMU.html#a82c66f3e2b7d2d9dd391a947719bda9b">MUTYPE</a> <a class="code" href="classSVF_1_1MSSAMU.html#a3cbe5ca0cb91090ef0e8b331e2f15f7c">type</a>;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a51b89fa50c39d864cc9ca63508ea94f4"> 106</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* <a class="code" href="classSVF_1_1MSSAMU.html#a51b89fa50c39d864cc9ca63508ea94f4">mr</a>;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a9c84b55a34025c6742f5a02c07cd4a36"> 107</a></span>  <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1MSSAMU.html#a9c84b55a34025c6742f5a02c07cd4a36">ver</a>;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a8e828af79da08528166b1f53165bc5b2"> 108</a></span>  Cond <a class="code" href="classSVF_1_1MSSAMU.html#a8e828af79da08528166b1f53165bc5b2">cond</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a1d0f8d3e7651f4ace92d31a9c6604e2f"> 112</a></span>  <a class="code" href="classSVF_1_1MSSAMU.html#a1d0f8d3e7651f4ace92d31a9c6604e2f">MSSAMU</a>(<a class="code" href="classSVF_1_1MSSAMU.html#a82c66f3e2b7d2d9dd391a947719bda9b">MUTYPE</a> t, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, Cond c) : type(t), mr(m), ver(nullptr), cond(c)</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a128d59c1fbfa6aed7ba4b84c92909366"> 115</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MSSAMU.html#a128d59c1fbfa6aed7ba4b84c92909366">~MSSAMU</a>()</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a6bd671839ec0376439ccd81d5b2eff30"> 121</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* <a class="code" href="classSVF_1_1MSSAMU.html#a6bd671839ec0376439ccd81d5b2eff30">getMR</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRVer.html#aafe30801672cd436216386ad6ff479e6">mr</a>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  }</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a9a542febe746d1389d34e5e31a3253c9"> 126</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MSSAMU.html#a82c66f3e2b7d2d9dd391a947719bda9b">MUTYPE</a> <a class="code" href="classSVF_1_1MSSAMU.html#a9a542febe746d1389d34e5e31a3253c9">getType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">return</span> type;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  }</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a2af1e639aabbc5997aa4e6526f6595fb"> 131</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MSSAMU.html#a2af1e639aabbc5997aa4e6526f6595fb">setVer</a>(<a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* v)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(v-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>() == mr && <span class="stringliteral">"inserting different memory region?"</span>);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  ver = v;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  }</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#ad120dfc87b90b26649bcd8d0c0d3ca80"> 137</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1MSSAMU.html#ad120dfc87b90b26649bcd8d0c0d3ca80">getMRVer</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(ver!=<span class="keyword">nullptr</span> && <span class="stringliteral">"version is nullptr, did not rename?"</span>);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">return</span> ver;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  }</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#ac51263250da06fd63b923a6771744f97"> 143</a></span>  <span class="keyword">inline</span> Cond <a class="code" href="classSVF_1_1MSSAMU.html#ac51263250da06fd63b923a6771744f97">getCond</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> cond;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a838a4a7cd670eef1153701aef9871bcf"> 149</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator < (<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a> & rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">return</span> mr > rhs.<a class="code" href="classSVF_1_1MSSAMU.html#a6bd671839ec0376439ccd81d5b2eff30">getMR</a>();</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  }</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAMU.html#a489e8c27e40b709d94a462653fb760f5"> 154</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MSSAMU.html#a489e8c27e40b709d94a462653fb760f5">dump</a>()</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">"MU(MR_"</span> << mr-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << ver-><a class="code" href="classSVF_1_1MRVer.html#a170a933f25684bda23321ba05c7a7d88">getSSAVersion</a>() << <span class="stringliteral">") \t"</span> <<</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#adad8c2b08ab6a512f0c3aa90b4416f60">dumpStr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> };</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html"> 165</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1LoadMU.html">LoadMU</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a><Cond></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span> {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span> </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html#a7bbac3ff5455aa1340f348c7cb239c46"> 169</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* <a class="code" href="classSVF_1_1LoadMU.html#a7bbac3ff5455aa1340f348c7cb239c46">inst</a>;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html#ad5b6ecaf016a136c982291256687d4d2"> 170</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1LoadMU.html#ad5b6ecaf016a136c982291256687d4d2">bb</a>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> </div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html#aaf916feaa76c3eaf96dcff576ef366ca"> 175</a></span>  <a class="code" href="classSVF_1_1LoadMU.html#aaf916feaa76c3eaf96dcff576ef366ca">LoadMU</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* b,<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, Cond c = <span class="keyword">true</span>) :</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a><Cond>(<a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a><Cond>::LoadMSSAMU,m,c), inst(i), bb(b)</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  }</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html#a8193de194cf40211a36156cb87209a7e"> 179</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1LoadMU.html#a8193de194cf40211a36156cb87209a7e">~LoadMU</a>()</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span> </div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  }</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span> </div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html#a5c26668b6ab2db91c4d5ba32d6a27b14"> 186</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadStmt.html">LoadStmt</a>* <a class="code" href="classSVF_1_1LoadMU.html#a5c26668b6ab2db91c4d5ba32d6a27b14">getLoadInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> </div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html#abcd77653329021248bb406815f8691a7"> 192</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1LoadMU.html#abcd77653329021248bb406815f8691a7">getBasicBlock</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">return</span> bb;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> </div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html#a675192a60c5afa6e1d5f9b7dae5953b5"> 199</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadMU.html#a675192a60c5afa6e1d5f9b7dae5953b5">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1LoadMU.html">LoadMU</a> *)</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  }</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html#a2b3f73c38c479e05984e01710227e50f"> 203</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1LoadMU.html#a2b3f73c38c479e05984e01710227e50f">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU<Cond></a> *mu)</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">return</span> mu-><a class="code" href="classSVF_1_1MSSAMU.html#a9a542febe746d1389d34e5e31a3253c9">getType</a>() == <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU<Cond>::LoadMSSAMU</a>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1LoadMU.html#aaaa51723d657719b82a2ce85c1628329"> 210</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1LoadMU.html#aaaa51723d657719b82a2ce85c1628329">dump</a>()</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">"LDMU(MR_"</span> << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getMRVer()->getSSAVersion() << <span class="stringliteral">") \t"</span> <<</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#adad8c2b08ab6a512f0c3aa90b4416f60">dumpStr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> };</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classSVF_1_1CallMU.html"> 221</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CallMU.html">CallMU</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a><Cond></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classSVF_1_1CallMU.html#aa90a06c9e44914a7a8e104aa80bf1374"> 225</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1CallMU.html#aa90a06c9e44914a7a8e104aa80bf1374">callsite</a>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span> </div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classSVF_1_1CallMU.html#abb981eb0739d7b3fdcc271b693e708ae"> 230</a></span>  <a class="code" href="classSVF_1_1CallMU.html#abb981eb0739d7b3fdcc271b693e708ae">CallMU</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, Cond c = <span class="keyword">true</span>) :</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a><Cond>(<a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a><Cond>::CallMSSAMU,m,c), callsite(cs)</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  }</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1CallMU.html#a408184b7a6c625d67a4b660e140b10c5"> 234</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1CallMU.html#a408184b7a6c625d67a4b660e140b10c5">~CallMU</a>()</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> </div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classSVF_1_1CallMU.html#a57616dc30fb97c6dc64c9210b42bbeb7"> 241</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1CallMU.html#a57616dc30fb97c6dc64c9210b42bbeb7">getCallSite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">return</span> callsite;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> </div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="classSVF_1_1CallMU.html#ab20ae240ad380c760b9b1f4b8b06344f"> 247</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1CallMU.html#ab20ae240ad380c760b9b1f4b8b06344f">getBasicBlock</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">return</span> callsite-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>()->getParent();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="classSVF_1_1CallMU.html#af8a0defe4c5b36893e155a4b074c0f30"> 254</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallMU.html#af8a0defe4c5b36893e155a4b074c0f30">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallMU.html">CallMU</a> *)</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  }</div><div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="classSVF_1_1CallMU.html#a27c70bc7543eeb2fcf64f139481d3bf9"> 258</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallMU.html#a27c70bc7543eeb2fcf64f139481d3bf9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU<Cond></a> *mu)</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">return</span> mu-><a class="code" href="classSVF_1_1MSSAMU.html#a9a542febe746d1389d34e5e31a3253c9">getType</a>() == <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU<Cond>::CallMSSAMU</a>;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div><div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="classSVF_1_1CallMU.html#af08ecc9c2b75737e88690fb2319fcf57"> 265</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CallMU.html#af08ecc9c2b75737e88690fb2319fcf57">dump</a>()</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">"CALMU(MR_"</span> << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getMRVer()->getSSAVersion() << <span class="stringliteral">") \t"</span> <<</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#adad8c2b08ab6a512f0c3aa90b4416f60">dumpStr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> };</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> </div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div><div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="classSVF_1_1RetMU.html"> 277</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1RetMU.html">RetMU</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a><Cond></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="classSVF_1_1RetMU.html#a4982f6fffac4f4775e27f994677a9f2c"> 280</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="classSVF_1_1RetMU.html#a4982f6fffac4f4775e27f994677a9f2c">fun</a>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> </div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classSVF_1_1RetMU.html#a8cd41b018ddef450d17a20ea83ce3fee"> 284</a></span>  <a class="code" href="classSVF_1_1RetMU.html#a8cd41b018ddef450d17a20ea83ce3fee">RetMU</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* f, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, Cond c = <span class="keyword">true</span>) :</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a><Cond>(<a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU</a><Cond>::RetMSSAMU,m,c), fun(f)</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div><div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="classSVF_1_1RetMU.html#a0f908cb79713ed332284838c5a87dcc7"> 288</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1RetMU.html#a0f908cb79713ed332284838c5a87dcc7">~RetMU</a>() {}</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="classSVF_1_1RetMU.html#a8ad6bf3d517e20089dac516742ee4b8f"> 292</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="classSVF_1_1RetMU.html#a8ad6bf3d517e20089dac516742ee4b8f">getFunction</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">return</span> fun;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span> </div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span> </div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="classSVF_1_1RetMU.html#ace8b780beda75de78d08247335e1738a"> 299</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetMU.html#ace8b780beda75de78d08247335e1738a">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1RetMU.html">RetMU</a> *)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  }</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classSVF_1_1RetMU.html#ae6608c348426d99a5d3963ceaca2eb8b"> 303</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RetMU.html#ae6608c348426d99a5d3963ceaca2eb8b">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU<Cond></a> *mu)</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">return</span> mu-><a class="code" href="classSVF_1_1MSSAMU.html#a9a542febe746d1389d34e5e31a3253c9">getType</a>() == <a class="code" href="classSVF_1_1MSSAMU.html">MSSAMU<Cond>::RetMSSAMU</a>;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  }</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span> </div><div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="classSVF_1_1RetMU.html#ae452b798bf9c6a9d913e63a75c4cd3c0"> 310</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1RetMU.html#ae452b798bf9c6a9d913e63a75c4cd3c0">dump</a>()</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">"RETMU(MR_"</span> << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getMRVer()->getSSAVersion() << <span class="stringliteral">") \t"</span> <<</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#adad8c2b08ab6a512f0c3aa90b4416f60">dumpStr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  }</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span> };</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> </div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span> </div><div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html"> 325</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> {</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> </div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18"> 329</a></span>  <span class="keyword">enum</span> <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18">DEFTYPE</a></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  {</div><div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18aeebaf47309ac06cd04ae69979f4c2580"> 331</a></span>  <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18aeebaf47309ac06cd04ae69979f4c2580">SSACHI</a>,</div><div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18ac9b53519d32443a72c04e771489aba43"> 332</a></span>  <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18ac9b53519d32443a72c04e771489aba43">StoreMSSACHI</a>,</div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18acdf2b1261a1be8a4a923a22311ecd1e4"> 333</a></span>  <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18acdf2b1261a1be8a4a923a22311ecd1e4">CallMSSACHI</a>,</div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18af0a554492277c9964a67ab9cd23071d3"> 334</a></span>  <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18af0a554492277c9964a67ab9cd23071d3">EntryMSSACHI</a>,</div><div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18ae2cdc3b8aae7005f6d7495d2f200a736"> 335</a></span>  SSAPHI</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  };</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a9e8a03dc2c2f76ef6bc095f21911f5b6"> 339</a></span>  <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18">DEFTYPE</a> <a class="code" href="classSVF_1_1MSSADEF.html#a9e8a03dc2c2f76ef6bc095f21911f5b6">type</a>;</div><div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a01bc47f779d20fa8e3be182ceab12780"> 340</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* <a class="code" href="classSVF_1_1MSSADEF.html#a01bc47f779d20fa8e3be182ceab12780">mr</a>;</div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a72560a998968ae2dbc6e5aa8a7e9f813"> 341</a></span>  <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1MSSADEF.html#a72560a998968ae2dbc6e5aa8a7e9f813">resVer</a>;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a1b1c7cbc293182a5ded43efa522990de"> 346</a></span>  <a class="code" href="classSVF_1_1MSSADEF.html#a1b1c7cbc293182a5ded43efa522990de">MSSADEF</a>(<a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18">DEFTYPE</a> t, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m): type(t), mr(m), resVer(nullptr)</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  }</div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#add2262289cdad5d5e14c0082b40c45d9"> 350</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MSSADEF.html#add2262289cdad5d5e14c0082b40c45d9">~MSSADEF</a>() {}</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> </div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c"> 354</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* <a class="code" href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c">getMR</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MRVer.html#aafe30801672cd436216386ad6ff479e6">mr</a>;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div><div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c"> 360</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18">DEFTYPE</a> <a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keywordflow">return</span> type;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  }</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a343eb4c9515dfbbbdadaacf5500e5f05"> 366</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MSSADEF.html#a343eb4c9515dfbbbdadaacf5500e5f05">setResVer</a>(<a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* v)</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  {</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(v-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>() == mr && <span class="stringliteral">"inserting different memory region?"</span>);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  resVer = v;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  }</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> </div><div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#a21cb532396180e0b6bab515c52bec282"> 373</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1MSSADEF.html#a21cb532396180e0b6bab515c52bec282">getResVer</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(resVer!=<span class="keyword">nullptr</span> && <span class="stringliteral">"version is nullptr, did not rename?"</span>);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">return</span> resVer;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span> </div><div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#ad24da3516c198ade16c6909c5222fd0f"> 380</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator < (<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a> & rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keywordflow">return</span> mr > rhs.<a class="code" href="classSVF_1_1MSSADEF.html#ab3070e4293ceb5ca9c25702f76ac427c">getMR</a>();</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSADEF.html#aa7e06959d5b3197d930aa44b09694b52"> 386</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MSSADEF.html#aa7e06959d5b3197d930aa44b09694b52">dump</a>()</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">"DEF(MR_"</span> << mr-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << resVer-><a class="code" href="classSVF_1_1MRVer.html#a170a933f25684bda23321ba05c7a7d88">getSSAVersion</a>() << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  }</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span> };</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span> </div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div><div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html"> 396</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a></div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span> {</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span> </div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#a86f2f3f6e2215cdbe31caee048510757"> 400</a></span>  <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1MSSACHI.html#a86f2f3f6e2215cdbe31caee048510757">opVer</a>;</div><div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#addeee3fb0c5e6b1c68c30da111c26759"> 401</a></span>  Cond <a class="code" href="classSVF_1_1MSSACHI.html#addeee3fb0c5e6b1c68c30da111c26759">cond</a>;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#a21d9218e105987a1f807633ea824e5d3"> 403</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18">MSSADEF::DEFTYPE</a> <a class="code" href="classSVF_1_1MSSACHI.html#a21d9218e105987a1f807633ea824e5d3">CHITYPE</a>;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span> </div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#af9ecdf852667bd23fe4805ba04c3e815"> 406</a></span>  <a class="code" href="classSVF_1_1MSSACHI.html#af9ecdf852667bd23fe4805ba04c3e815">MSSACHI</a>(CHITYPE t, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, Cond c): <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a>(t,m), opVer(nullptr), cond(c)</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span> </div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  }</div><div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#a01cdeb7ac96e0809d1d56c9da56c4b97"> 410</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MSSACHI.html#a01cdeb7ac96e0809d1d56c9da56c4b97">~MSSACHI</a>() {}</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span> </div><div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#a245d8ee9e81ba4fe6f41533baf471331"> 414</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MSSACHI.html#a245d8ee9e81ba4fe6f41533baf471331">setOpVer</a>(<a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* v)</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(v-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>() == this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>() && <span class="stringliteral">"inserting different memory region?"</span>);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  opVer = v;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  }</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span> </div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#a7af6f73ff1432d4adb5ee8493fbe73fb"> 421</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1MSSACHI.html#a7af6f73ff1432d4adb5ee8493fbe73fb">getOpVer</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(opVer!=<span class="keyword">nullptr</span> && <span class="stringliteral">"version is nullptr, did not rename?"</span>);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">return</span> opVer;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  }</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span> </div><div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#a9673994f9db94e23984b132d4b533304"> 428</a></span>  <span class="keyword">inline</span> Cond <a class="code" href="classSVF_1_1MSSACHI.html#a9673994f9db94e23984b132d4b533304">getCond</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keywordflow">return</span> cond;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  }</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span> </div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span> </div><div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#a49cf6b7e0cb38acfeb2eb2e1273c506d"> 435</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MSSACHI.html#a49cf6b7e0cb38acfeb2eb2e1273c506d">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI</a> * chi)</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  }</div><div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#a450055eb758896fb2e3e4f67febe7782"> 439</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MSSACHI.html#a450055eb758896fb2e3e4f67febe7782">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a> *chi)</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  {</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keywordflow">return</span> chi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18af0a554492277c9964a67ab9cd23071d3">MSSADEF::EntryMSSACHI</a> ||</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  chi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18ac9b53519d32443a72c04e771489aba43">MSSADEF::StoreMSSACHI</a> ||</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  chi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18aeebaf47309ac06cd04ae69979f4c2580">MSSADEF::SSACHI</a> ;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  }</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span> </div><div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSACHI.html#a63355fc98b9c1cc3db5e664e387693ca"> 448</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MSSACHI.html#a63355fc98b9c1cc3db5e664e387693ca">dump</a>()</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  {</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">"MR_"</span> << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getResVer()->getSSAVersion() <<</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="stringliteral">" = CHI(MR_"</span> << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << opVer-><a class="code" href="classSVF_1_1MRVer.html#a170a933f25684bda23321ba05c7a7d88">getSSAVersion</a>() << <span class="stringliteral">") \t"</span> <<</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#adad8c2b08ab6a512f0c3aa90b4416f60">dumpStr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  }</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span> };</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span> </div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div><div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html"> 461</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1StoreCHI.html">StoreCHI</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI</a><Cond></div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span> {</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#a3b1bcd4535e2199b57adc67fc283fb3f"> 464</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1StoreCHI.html#a3b1bcd4535e2199b57adc67fc283fb3f">bb</a>;</div><div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#a6e58e7cde1f417ec3feaef98f6f74be2"> 465</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* <a class="code" href="classSVF_1_1StoreCHI.html#a6e58e7cde1f417ec3feaef98f6f74be2">inst</a>;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span> </div><div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#a34433e6e437d302014fd06b5fb624a79"> 469</a></span>  <a class="code" href="classSVF_1_1StoreCHI.html#a34433e6e437d302014fd06b5fb624a79">StoreCHI</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* b, <span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* i, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, Cond c = <span class="keyword">true</span>) :</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI</a><Cond>(<a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a>::StoreMSSACHI,m,c), bb(b), inst(i)</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  {</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  }</div><div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#a95f30699dd8622ff60d4aba7e51d0ecf"> 473</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1StoreCHI.html#a95f30699dd8622ff60d4aba7e51d0ecf">~StoreCHI</a>()</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  {</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  }</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span> </div><div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#a85eb84312c003a57b2c9c4ed7df7c239"> 479</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1StoreCHI.html#a85eb84312c003a57b2c9c4ed7df7c239">getBasicBlock</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keywordflow">return</span> bb;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  }</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> </div><div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#aead80cf9aad5818f16ad61d7a83b7c79"> 485</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreStmt.html">StoreStmt</a>* <a class="code" href="classSVF_1_1StoreCHI.html#aead80cf9aad5818f16ad61d7a83b7c79">getStoreInst</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="keywordflow">return</span> inst;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  }</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span> </div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span> </div><div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#a66a4ea0b8b61d39a552f7da000732263"> 492</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreCHI.html#a66a4ea0b8b61d39a552f7da000732263">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1StoreCHI.html">StoreCHI</a> * chi)</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  }</div><div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#a7a01d165b24d05f0a218c2abfaad8422"> 496</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreCHI.html#a7a01d165b24d05f0a218c2abfaad8422">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI<Cond></a> * chi)</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordflow">return</span> chi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18ac9b53519d32443a72c04e771489aba43">MSSADEF::StoreMSSACHI</a>;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  }</div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#a4324f81324dd6d6c6ba6d1af32e29985"> 500</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1StoreCHI.html#a4324f81324dd6d6c6ba6d1af32e29985">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a> *chi)</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  {</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="keywordflow">return</span> chi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18ac9b53519d32443a72c04e771489aba43">MSSADEF::StoreMSSACHI</a>;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  }</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span> </div><div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="classSVF_1_1StoreCHI.html#af889bd9b729182e20ca7598ad4167bb8"> 507</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1StoreCHI.html#af889bd9b729182e20ca7598ad4167bb8">dump</a>()</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getResVer()->getSSAVersion() <<</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="stringliteral">" = STCHI(MR_"</span> << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getOpVer()->getSSAVersion() << <span class="stringliteral">") \t"</span> <<</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#adad8c2b08ab6a512f0c3aa90b4416f60">dumpStr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  }</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span> };</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span> </div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span> </div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div><div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html"> 521</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1CallCHI.html">CallCHI</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI</a><Cond></div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span> {</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html#a30f1f8f2b23df3bad70d8083397e28eb"> 524</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1CallCHI.html#a30f1f8f2b23df3bad70d8083397e28eb">callsite</a>;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span> </div><div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html#a011044a63529bdd773dd2ad447668029"> 528</a></span>  <a class="code" href="classSVF_1_1CallCHI.html#a011044a63529bdd773dd2ad447668029">CallCHI</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, Cond c = <span class="keyword">true</span>) :</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI</a><Cond>(<a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a>::CallMSSACHI,m,c), callsite(cs)</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  {</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  }</div><div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html#a9ae4f818ff29ebaccc0d82a0170577b5"> 532</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1CallCHI.html#a9ae4f818ff29ebaccc0d82a0170577b5">~CallCHI</a>()</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  {</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  }</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span> </div><div class="line"><a name="l00538"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html#a69f83ff81ea017d645aadeb46334880f"> 538</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1CallCHI.html#a69f83ff81ea017d645aadeb46334880f">getBasicBlock</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordflow">return</span> callsite-><a class="code" href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">getCallSite</a>()->getParent();</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  }</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span> </div><div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html#af7f9fb3c01c487686453e25104a5bfc7"> 544</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* <a class="code" href="classSVF_1_1CallCHI.html#af7f9fb3c01c487686453e25104a5bfc7">getCallSite</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordflow">return</span> callsite;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  }</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span> </div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span> </div><div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html#a7c0708ad9a2aa6278b1e7404340ca2ad"> 551</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallCHI.html#a7c0708ad9a2aa6278b1e7404340ca2ad">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallCHI.html">CallCHI</a> * chi)</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  }</div><div class="line"><a name="l00555"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html#a039209d842c18ef9d4a86a5a725a775b"> 555</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallCHI.html#a039209d842c18ef9d4a86a5a725a775b">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI<Cond></a> * chi)</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  {</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordflow">return</span> chi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18acdf2b1261a1be8a4a923a22311ecd1e4">MSSADEF::CallMSSACHI</a>;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  }</div><div class="line"><a name="l00559"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html#aeea8fd6c5904874604bb0ced9b080c29"> 559</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CallCHI.html#aeea8fd6c5904874604bb0ced9b080c29">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a> *chi)</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordflow">return</span> chi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18acdf2b1261a1be8a4a923a22311ecd1e4">MSSADEF::CallMSSACHI</a>;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  }</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span> </div><div class="line"><a name="l00566"></a><span class="lineno"><a class="line" href="classSVF_1_1CallCHI.html#ac6a1f2f1c897c647d9b070cb56c61a41"> 566</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CallCHI.html#ac6a1f2f1c897c647d9b070cb56c61a41">dump</a>()</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  {</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getResVer()->getSSAVersion() <<</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="stringliteral">" = CALCHI(MR_"</span> << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getOpVer()->getSSAVersion() << <span class="stringliteral">") \t"</span> <<</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#adad8c2b08ab6a512f0c3aa90b4416f60">dumpStr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  }</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span> };</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span> </div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div><div class="line"><a name="l00578"></a><span class="lineno"><a class="line" href="classSVF_1_1EntryCHI.html"> 578</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1EntryCHI.html">EntryCHI</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI</a><Cond></div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span> {</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="classSVF_1_1EntryCHI.html#afd2b2d4a7198f62467b4062740e5196c"> 581</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="classSVF_1_1EntryCHI.html#afd2b2d4a7198f62467b4062740e5196c">fun</a>;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span> </div><div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="classSVF_1_1EntryCHI.html#a0ba7181ad2a793bf11e40b7c7092e28b"> 585</a></span>  <a class="code" href="classSVF_1_1EntryCHI.html#a0ba7181ad2a793bf11e40b7c7092e28b">EntryCHI</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* f, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, Cond c = <span class="keyword">true</span>) :</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI</a><Cond>(<a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a>::EntryMSSACHI,m,c),fun(f)</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  {</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  }</div><div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="classSVF_1_1EntryCHI.html#ac198f01dd7ebac778367b63081ae487b"> 589</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1EntryCHI.html#ac198f01dd7ebac778367b63081ae487b">~EntryCHI</a>()</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  {</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  }</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span> </div><div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="classSVF_1_1EntryCHI.html#ae021640611362449382668665710154c"> 595</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="classSVF_1_1EntryCHI.html#ae021640611362449382668665710154c">getFunction</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="keywordflow">return</span> fun;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  }</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span> </div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span> </div><div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="classSVF_1_1EntryCHI.html#ad9c86f7cf28fe22584b94416803639aa"> 602</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1EntryCHI.html#ad9c86f7cf28fe22584b94416803639aa">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1EntryCHI.html">EntryCHI</a> * chi)</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  {</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  }</div><div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="classSVF_1_1EntryCHI.html#a55404375929d591f93d09f5a9e896cf6"> 606</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1EntryCHI.html#a55404375929d591f93d09f5a9e896cf6">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSACHI.html">MSSACHI<Cond></a> * chi)</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  {</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">return</span> chi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18af0a554492277c9964a67ab9cd23071d3">MSSADEF::EntryMSSACHI</a>;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  }</div><div class="line"><a name="l00610"></a><span class="lineno"><a class="line" href="classSVF_1_1EntryCHI.html#aa5ed214cd44d8847c7539c7e3de3d276"> 610</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1EntryCHI.html#aa5ed214cd44d8847c7539c7e3de3d276">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a> *chi)</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  {</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keywordflow">return</span> chi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18af0a554492277c9964a67ab9cd23071d3">MSSADEF::EntryMSSACHI</a>;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  }</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span> </div><div class="line"><a name="l00617"></a><span class="lineno"><a class="line" href="classSVF_1_1EntryCHI.html#a819f66c0471fe06c739acf18c4a4161d"> 617</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1EntryCHI.html#a819f66c0471fe06c739acf18c4a4161d">dump</a>()</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  {</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getResVer()->getSSAVersion() <<</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="stringliteral">" = ENCHI(MR_"</span> << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getOpVer()->getSSAVersion() << <span class="stringliteral">") \t"</span> <<</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#adad8c2b08ab6a512f0c3aa90b4416f60">dumpStr</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  }</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span> };</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span> </div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span> <span class="comment">/*</span></div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span> <span class="comment"> * Memory SSA Select, similar to PHINode</span></div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="comment"> */</span></div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="keyword">template</span><<span class="keyword">class</span> Cond></div><div class="line"><a name="l00629"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html"> 629</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MSSAPHI.html">MSSAPHI</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a></div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span> {</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span> </div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00633"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a622892bb1c3c151e646ae1a46838c3ba"> 633</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<u32_t,const MRVer*></a> <a class="code" href="classSVF_1_1MSSAPHI.html#a622892bb1c3c151e646ae1a46838c3ba">OPVers</a>;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00635"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a39e68e1e74483dc07bd117bd2209da91"> 635</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1MSSAPHI.html#a39e68e1e74483dc07bd117bd2209da91">bb</a>;</div><div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#abdabd6dff67cd59622f18d48e8b34271"> 636</a></span>  OPVers <a class="code" href="classSVF_1_1MSSAPHI.html#abdabd6dff67cd59622f18d48e8b34271">opVers</a>;</div><div class="line"><a name="l00637"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a348e69bf48ee7a959cd0bb117ba1dc9f"> 637</a></span>  Cond <a class="code" href="classSVF_1_1MSSAPHI.html#a348e69bf48ee7a959cd0bb117ba1dc9f">cond</a>;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span> </div><div class="line"><a name="l00641"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#aee5c6d2b7e3985b9fa1802c66f74fab1"> 641</a></span>  <a class="code" href="classSVF_1_1MSSAPHI.html#aee5c6d2b7e3985b9fa1802c66f74fab1">MSSAPHI</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* b, <span class="keyword">const</span> <a class="code" href="classSVF_1_1MemRegion.html">MemRegion</a>* m, Cond c = <span class="keyword">true</span>) :</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a>(<a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a>::SSAPHI,m), bb(b), cond(c)</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  {</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  }</div><div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#ada74af0f5beeddd48d7c37fd7b61f42c"> 645</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1MSSAPHI.html#ada74af0f5beeddd48d7c37fd7b61f42c">~MSSAPHI</a>()</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  {</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  }</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span> </div><div class="line"><a name="l00651"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a74f663dc5ecc659e98542a53414b7988"> 651</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MSSAPHI.html#a74f663dc5ecc659e98542a53414b7988">setOpVer</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* v, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos)</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  {</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(v-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>() == this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>() && <span class="stringliteral">"inserting different memory region?"</span>);</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  opVers[pos] = v;</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  }</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span> </div><div class="line"><a name="l00658"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#aeb5a948499f913264de749001f605a4e"> 658</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1MRVer.html">MRVer</a>* <a class="code" href="classSVF_1_1MSSAPHI.html#aeb5a948499f913264de749001f605a4e">getOpVer</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> pos)<span class="keyword"> const</span></div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  OPVers::const_iterator it = opVers.find(pos);</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=opVers.end() && <span class="stringliteral">"version is nullptr, did not rename?"</span>);</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keywordflow">return</span> it->second;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  }</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span> </div><div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#adbefc58750f87cf1c30dd5d445b50feb"> 666</a></span>  <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1MSSAPHI.html#adbefc58750f87cf1c30dd5d445b50feb">getOpVerNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  <span class="keywordflow">return</span> opVers.size();</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  }</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span> </div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span> </div><div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a940f9afa26bf54c7175276ea27003c2f"> 673</a></span>  <span class="keyword">inline</span> OPVers::const_iterator <a class="code" href="classSVF_1_1MSSAPHI.html#a940f9afa26bf54c7175276ea27003c2f">opVerBegin</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <span class="keywordflow">return</span> opVers.begin();</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  }</div><div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a2a49ad9d2eedf1dea98d725b13878d88"> 677</a></span>  <span class="keyword">inline</span> OPVers::const_iterator <a class="code" href="classSVF_1_1MSSAPHI.html#a2a49ad9d2eedf1dea98d725b13878d88">opVerEnd</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="keywordflow">return</span> opVers.end();</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  }</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span> </div><div class="line"><a name="l00684"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a00b3ab85b31b4de91398efea41db158f"> 684</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* <a class="code" href="classSVF_1_1MSSAPHI.html#a00b3ab85b31b4de91398efea41db158f">getBasicBlock</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  <span class="keywordflow">return</span> bb;</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  }</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span> </div><div class="line"><a name="l00690"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a06a5d63be38e6df36e1c28a6c0c789cc"> 690</a></span>  <span class="keyword">inline</span> Cond <a class="code" href="classSVF_1_1MSSAPHI.html#a06a5d63be38e6df36e1c28a6c0c789cc">getCond</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  <span class="keywordflow">return</span> cond;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  }</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span> </div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span> </div><div class="line"><a name="l00697"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#adab25ebd69f699c019118bc1e099d4f9"> 697</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MSSAPHI.html#adab25ebd69f699c019118bc1e099d4f9">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSAPHI.html">MSSAPHI</a> * phi)</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  {</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  }</div><div class="line"><a name="l00701"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a48d3a719b97991be8ba94149a1d30091"> 701</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MSSAPHI.html#a48d3a719b97991be8ba94149a1d30091">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1MSSADEF.html">MSSADEF</a> *phi)</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  {</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  <span class="keywordflow">return</span> phi-><a class="code" href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">getType</a>() == <a class="code" href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18ae2cdc3b8aae7005f6d7495d2f200a736">MSSADEF::SSAPHI</a> ;</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  }</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span> </div><div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="classSVF_1_1MSSAPHI.html#a15c687ef4286532a5856270bf6f9e11a"> 708</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MSSAPHI.html#a15c687ef4286532a5856270bf6f9e11a">dump</a>()</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  {</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << this->getResVer()->getSSAVersion() <<</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  <span class="stringliteral">" = PHI("</span>;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  <span class="keywordflow">for</span>(OPVers::iterator it = opVers.begin(), eit = opVers.end(); it!=eit; ++it)</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">"MR_"</span> << this-><a class="code" href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">getMR</a>()-><a class="code" href="classSVF_1_1MemRegion.html#a7d38f6ef18106eb388b3a289aad79802">getMRID</a>() << <span class="stringliteral">"V_"</span> << it->second->getSSAVersion() << <span class="stringliteral">", "</span>;</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span> </div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  }</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span> };</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span> </div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span> </div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span> <span class="preprocessor">#endif </span><span class="comment">/* MSSAMUCHI_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1CallCHI_html_a9ae4f818ff29ebaccc0d82a0170577b5"><div class="ttname"><a href="classSVF_1_1CallCHI.html#a9ae4f818ff29ebaccc0d82a0170577b5">SVF::CallCHI::~CallCHI</a></div><div class="ttdeci">virtual ~CallCHI()</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00532">MSSAMuChi.h:532</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_1_1MSSADEF_html_a4cabef62b821efb0c88efb304fd0a70c"><div class="ttname"><a href="classSVF_1_1MSSADEF.html#a4cabef62b821efb0c88efb304fd0a70c">SVF::MSSADEF::getType</a></div><div class="ttdeci">DEFTYPE getType() const</div><div class="ttdoc">Return type of this CHI. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00360">MSSAMuChi.h:360</a></div></div>
|
|
71
71
|
<div class="ttc" id="classSVF_1_1MRVer_html"><div class="ttname"><a href="classSVF_1_1MRVer.html">SVF::MRVer</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00043">MSSAMuChi.h:43</a></div></div>
|
|
72
72
|
<div class="ttc" id="classSVF_1_1MSSAPHI_html_adab25ebd69f699c019118bc1e099d4f9"><div class="ttname"><a href="classSVF_1_1MSSAPHI.html#adab25ebd69f699c019118bc1e099d4f9">SVF::MSSAPHI::classof</a></div><div class="ttdeci">static bool classof(const MSSAPHI *phi)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00697">MSSAMuChi.h:697</a></div></div>
|
|
73
73
|
<div class="ttc" id="classSVF_1_1LoadMU_html_a7bbac3ff5455aa1340f348c7cb239c46"><div class="ttname"><a href="classSVF_1_1LoadMU.html#a7bbac3ff5455aa1340f348c7cb239c46">SVF::LoadMU::inst</a></div><div class="ttdeci">const LoadStmt * inst</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00169">MSSAMuChi.h:169</a></div></div>
|
|
74
74
|
<div class="ttc" id="classSVF_1_1MSSAPHI_html_a39e68e1e74483dc07bd117bd2209da91"><div class="ttname"><a href="classSVF_1_1MSSAPHI.html#a39e68e1e74483dc07bd117bd2209da91">SVF::MSSAPHI::bb</a></div><div class="ttdeci">const BasicBlock * bb</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00635">MSSAMuChi.h:635</a></div></div>
|
|
75
75
|
<div class="ttc" id="classSVF_1_1MSSACHI_html_a245d8ee9e81ba4fe6f41533baf471331"><div class="ttname"><a href="classSVF_1_1MSSACHI.html#a245d8ee9e81ba4fe6f41533baf471331">SVF::MSSACHI::setOpVer</a></div><div class="ttdeci">void setOpVer(MRVer *v)</div><div class="ttdoc">Set operand ver. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00414">MSSAMuChi.h:414</a></div></div>
|
|
76
|
-
<div class="ttc" id="classSVF_1_1CallMU_html_a267c7345f42e1aaa0ca7ffdcb85b45b3"><div class="ttname"><a href="classSVF_1_1CallMU.html#a267c7345f42e1aaa0ca7ffdcb85b45b3">SVF::CallMU::CallMU</a></div><div class="ttdeci">CallMU(const CallBlockNode *cs, const MemRegion *m, Cond c=true)</div><div class="ttdoc">Constructor/Destructor for MU. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00230">MSSAMuChi.h:230</a></div></div>
|
|
77
76
|
<div class="ttc" id="classSVF_1_1MSSAPHI_html_adbefc58750f87cf1c30dd5d445b50feb"><div class="ttname"><a href="classSVF_1_1MSSAPHI.html#adbefc58750f87cf1c30dd5d445b50feb">SVF::MSSAPHI::getOpVerNum</a></div><div class="ttdeci">u32_t getOpVerNum() const</div><div class="ttdoc">Get the number of operand ver. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00666">MSSAMuChi.h:666</a></div></div>
|
|
78
77
|
<div class="ttc" id="classSVF_1_1MSSADEF_html_a32682e20c9c08d2bdd5abc62ea17af18ae2cdc3b8aae7005f6d7495d2f200a736"><div class="ttname"><a href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18ae2cdc3b8aae7005f6d7495d2f200a736">SVF::MSSADEF::SSAPHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00335">MSSAMuChi.h:335</a></div></div>
|
|
79
78
|
<div class="ttc" id="classSVF_1_1MSSAPHI_html_a06a5d63be38e6df36e1c28a6c0c789cc"><div class="ttname"><a href="classSVF_1_1MSSAPHI.html#a06a5d63be38e6df36e1c28a6c0c789cc">SVF::MSSAPHI::getCond</a></div><div class="ttdeci">Cond getCond() const</div><div class="ttdoc">Return condition. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00690">MSSAMuChi.h:690</a></div></div>
|
|
@@ -91,11 +90,12 @@ $(function() {
|
|
|
91
90
|
<div class="ttc" id="classSVF_1_1StoreCHI_html"><div class="ttname"><a href="classSVF_1_1StoreCHI.html">SVF::StoreCHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00461">MSSAMuChi.h:461</a></div></div>
|
|
92
91
|
<div class="ttc" id="classSVF_1_1StoreCHI_html_aead80cf9aad5818f16ad61d7a83b7c79"><div class="ttname"><a href="classSVF_1_1StoreCHI.html#aead80cf9aad5818f16ad61d7a83b7c79">SVF::StoreCHI::getStoreInst</a></div><div class="ttdeci">const StoreStmt * getStoreInst() const</div><div class="ttdoc">Get store instruction. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00485">MSSAMuChi.h:485</a></div></div>
|
|
93
92
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
94
|
-
<div class="ttc" id="
|
|
93
|
+
<div class="ttc" id="classSVF_1_1CallMU_html_abb981eb0739d7b3fdcc271b693e708ae"><div class="ttname"><a href="classSVF_1_1CallMU.html#abb981eb0739d7b3fdcc271b693e708ae">SVF::CallMU::CallMU</a></div><div class="ttdeci">CallMU(const CallICFGNode *cs, const MemRegion *m, Cond c=true)</div><div class="ttdoc">Constructor/Destructor for MU. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00230">MSSAMuChi.h:230</a></div></div>
|
|
95
94
|
<div class="ttc" id="classSVF_1_1MSSACHI_html_a49cf6b7e0cb38acfeb2eb2e1273c506d"><div class="ttname"><a href="classSVF_1_1MSSACHI.html#a49cf6b7e0cb38acfeb2eb2e1273c506d">SVF::MSSACHI::classof</a></div><div class="ttdeci">static bool classof(const MSSACHI *chi)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00435">MSSAMuChi.h:435</a></div></div>
|
|
96
95
|
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
|
|
97
96
|
<div class="ttc" id="classSVF_1_1StoreCHI_html_a34433e6e437d302014fd06b5fb624a79"><div class="ttname"><a href="classSVF_1_1StoreCHI.html#a34433e6e437d302014fd06b5fb624a79">SVF::StoreCHI::StoreCHI</a></div><div class="ttdeci">StoreCHI(const BasicBlock *b, const StoreStmt *i, const MemRegion *m, Cond c=true)</div><div class="ttdoc">Constructors for StoreCHI. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00469">MSSAMuChi.h:469</a></div></div>
|
|
98
97
|
<div class="ttc" id="classSVF_1_1MSSAPHI_html_ada74af0f5beeddd48d7c37fd7b61f42c"><div class="ttname"><a href="classSVF_1_1MSSAPHI.html#ada74af0f5beeddd48d7c37fd7b61f42c">SVF::MSSAPHI::~MSSAPHI</a></div><div class="ttdeci">virtual ~MSSAPHI()</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00645">MSSAMuChi.h:645</a></div></div>
|
|
98
|
+
<div class="ttc" id="classSVF_1_1CallCHI_html_a30f1f8f2b23df3bad70d8083397e28eb"><div class="ttname"><a href="classSVF_1_1CallCHI.html#a30f1f8f2b23df3bad70d8083397e28eb">SVF::CallCHI::callsite</a></div><div class="ttdeci">const CallICFGNode * callsite</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00524">MSSAMuChi.h:524</a></div></div>
|
|
99
99
|
<div class="ttc" id="classSVF_1_1MSSADEF_html_a21cb532396180e0b6bab515c52bec282"><div class="ttname"><a href="classSVF_1_1MSSADEF.html#a21cb532396180e0b6bab515c52bec282">SVF::MSSADEF::getResVer</a></div><div class="ttdeci">MRVer * getResVer() const</div><div class="ttdoc">Set operand vers. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00373">MSSAMuChi.h:373</a></div></div>
|
|
100
100
|
<div class="ttc" id="classSVF_1_1CallMU_html_af8a0defe4c5b36893e155a4b074c0f30"><div class="ttname"><a href="classSVF_1_1CallMU.html#af8a0defe4c5b36893e155a4b074c0f30">SVF::CallMU::classof</a></div><div class="ttdeci">static bool classof(const CallMU *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00254">MSSAMuChi.h:254</a></div></div>
|
|
101
101
|
<div class="ttc" id="classSVF_1_1MSSAMU_html_a9a542febe746d1389d34e5e31a3253c9"><div class="ttname"><a href="classSVF_1_1MSSAMU.html#a9a542febe746d1389d34e5e31a3253c9">SVF::MSSAMU::getType</a></div><div class="ttdeci">MUTYPE getType() const</div><div class="ttdoc">Return type. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00126">MSSAMuChi.h:126</a></div></div>
|
|
@@ -137,8 +137,6 @@ $(function() {
|
|
|
137
137
|
<div class="ttc" id="classSVF_1_1MSSAPHI_html_a622892bb1c3c151e646ae1a46838c3ba"><div class="ttname"><a href="classSVF_1_1MSSAPHI.html#a622892bb1c3c151e646ae1a46838c3ba">SVF::MSSAPHI::OPVers</a></div><div class="ttdeci">Map< u32_t, const MRVer * > OPVers</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00633">MSSAMuChi.h:633</a></div></div>
|
|
138
138
|
<div class="ttc" id="classSVF_1_1MSSADEF_html_aa7e06959d5b3197d930aa44b09694b52"><div class="ttname"><a href="classSVF_1_1MSSADEF.html#aa7e06959d5b3197d930aa44b09694b52">SVF::MSSADEF::dump</a></div><div class="ttdeci">virtual void dump()</div><div class="ttdoc">Print MSSADef. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00386">MSSAMuChi.h:386</a></div></div>
|
|
139
139
|
<div class="ttc" id="namespaceSVF_html_a2db29836a72e8d86e9baa6d8d55d2978"><div class="ttname"><a href="namespaceSVF.html#a2db29836a72e8d86e9baa6d8d55d2978">SVF::Size_t</a></div><div class="ttdeci">signed long Size_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00078">SVFBasicTypes.h:78</a></div></div>
|
|
140
|
-
<div class="ttc" id="classSVF_1_1CallMU_html_ae748ea61422184b513c09b842be9b076"><div class="ttname"><a href="classSVF_1_1CallMU.html#ae748ea61422184b513c09b842be9b076">SVF::CallMU::callsite</a></div><div class="ttdeci">const CallBlockNode * callsite</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00225">MSSAMuChi.h:225</a></div></div>
|
|
141
|
-
<div class="ttc" id="classSVF_1_1CallCHI_html_a5a03b5679ded2115a396ef04b388d6f5"><div class="ttname"><a href="classSVF_1_1CallCHI.html#a5a03b5679ded2115a396ef04b388d6f5">SVF::CallCHI::CallCHI</a></div><div class="ttdeci">CallCHI(const CallBlockNode *cs, const MemRegion *m, Cond c=true)</div><div class="ttdoc">Constructors for StoreCHI. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00528">MSSAMuChi.h:528</a></div></div>
|
|
142
140
|
<div class="ttc" id="classSVF_1_1LoadStmt_html"><div class="ttname"><a href="classSVF_1_1LoadStmt.html">SVF::LoadStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00376">SVFStatements.h:376</a></div></div>
|
|
143
141
|
<div class="ttc" id="classSVF_1_1CallMU_html_af08ecc9c2b75737e88690fb2319fcf57"><div class="ttname"><a href="classSVF_1_1CallMU.html#af08ecc9c2b75737e88690fb2319fcf57">SVF::CallMU::dump</a></div><div class="ttdeci">virtual void dump()</div><div class="ttdoc">Print MU. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00265">MSSAMuChi.h:265</a></div></div>
|
|
144
142
|
<div class="ttc" id="classSVF_1_1MSSADEF_html_a343eb4c9515dfbbbdadaacf5500e5f05"><div class="ttname"><a href="classSVF_1_1MSSADEF.html#a343eb4c9515dfbbbdadaacf5500e5f05">SVF::MSSADEF::setResVer</a></div><div class="ttdeci">void setResVer(MRVer *v)</div><div class="ttdoc">Set result operand ver. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00366">MSSAMuChi.h:366</a></div></div>
|
|
@@ -155,27 +153,28 @@ $(function() {
|
|
|
155
153
|
<div class="ttc" id="classSVF_1_1LoadMU_html_a2b3f73c38c479e05984e01710227e50f"><div class="ttname"><a href="classSVF_1_1LoadMU.html#a2b3f73c38c479e05984e01710227e50f">SVF::LoadMU::classof</a></div><div class="ttdeci">static bool classof(const MSSAMU< Cond > *mu)</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00203">MSSAMuChi.h:203</a></div></div>
|
|
156
154
|
<div class="ttc" id="classSVF_1_1RetMU_html_a8cd41b018ddef450d17a20ea83ce3fee"><div class="ttname"><a href="classSVF_1_1RetMU.html#a8cd41b018ddef450d17a20ea83ce3fee">SVF::RetMU::RetMU</a></div><div class="ttdeci">RetMU(const SVFFunction *f, const MemRegion *m, Cond c=true)</div><div class="ttdoc">Constructor/Destructor for MU. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00284">MSSAMuChi.h:284</a></div></div>
|
|
157
155
|
<div class="ttc" id="classSVF_1_1MSSADEF_html_a32682e20c9c08d2bdd5abc62ea17af18acdf2b1261a1be8a4a923a22311ecd1e4"><div class="ttname"><a href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18acdf2b1261a1be8a4a923a22311ecd1e4">SVF::MSSADEF::CallMSSACHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00333">MSSAMuChi.h:333</a></div></div>
|
|
158
|
-
<div class="ttc" id="classSVF_1_1CallCHI_html_a7bce9987b6377a24436b878dcd9c76c9"><div class="ttname"><a href="classSVF_1_1CallCHI.html#a7bce9987b6377a24436b878dcd9c76c9">SVF::CallCHI::getCallSite</a></div><div class="ttdeci">const CallBlockNode * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00544">MSSAMuChi.h:544</a></div></div>
|
|
159
156
|
<div class="ttc" id="classSVF_1_1RetMU_html_ae6608c348426d99a5d3963ceaca2eb8b"><div class="ttname"><a href="classSVF_1_1RetMU.html#ae6608c348426d99a5d3963ceaca2eb8b">SVF::RetMU::classof</a></div><div class="ttdeci">static bool classof(const MSSAMU< Cond > *mu)</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00303">MSSAMuChi.h:303</a></div></div>
|
|
160
|
-
<div class="ttc" id="classSVF_1_1CallCHI_html_adfecaac7c36b56b7eac321d6066cdb9d"><div class="ttname"><a href="classSVF_1_1CallCHI.html#adfecaac7c36b56b7eac321d6066cdb9d">SVF::CallCHI::callsite</a></div><div class="ttdeci">const CallBlockNode * callsite</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00524">MSSAMuChi.h:524</a></div></div>
|
|
161
157
|
<div class="ttc" id="classSVF_1_1CallMU_html_a408184b7a6c625d67a4b660e140b10c5"><div class="ttname"><a href="classSVF_1_1CallMU.html#a408184b7a6c625d67a4b660e140b10c5">SVF::CallMU::~CallMU</a></div><div class="ttdeci">virtual ~CallMU()</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00234">MSSAMuChi.h:234</a></div></div>
|
|
162
158
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a85ab6b592fefc45a0674d3295e01638f"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVF::SVFUtil::outs</a></div><div class="ttdeci">raw_ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
163
159
|
<div class="ttc" id="classSVF_1_1MSSAPHI_html_aee5c6d2b7e3985b9fa1802c66f74fab1"><div class="ttname"><a href="classSVF_1_1MSSAPHI.html#aee5c6d2b7e3985b9fa1802c66f74fab1">SVF::MSSAPHI::MSSAPHI</a></div><div class="ttdeci">MSSAPHI(const BasicBlock *b, const MemRegion *m, Cond c=true)</div><div class="ttdoc">Constructors for PHI. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00641">MSSAMuChi.h:641</a></div></div>
|
|
164
160
|
<div class="ttc" id="classSVF_1_1EntryCHI_html"><div class="ttname"><a href="classSVF_1_1EntryCHI.html">SVF::EntryCHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00578">MSSAMuChi.h:578</a></div></div>
|
|
165
161
|
<div class="ttc" id="namespaceSVF_html_a39df0130e37e97db2ff7620bbb2a72f5"><div class="ttname"><a href="namespaceSVF.html#a39df0130e37e97db2ff7620bbb2a72f5">SVF::MRVERSION</a></div><div class="ttdeci">NodeID MRVERSION</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00048">MemRegion.h:48</a></div></div>
|
|
166
162
|
<div class="ttc" id="classSVF_1_1RetMU_html_a8ad6bf3d517e20089dac516742ee4b8f"><div class="ttname"><a href="classSVF_1_1RetMU.html#a8ad6bf3d517e20089dac516742ee4b8f">SVF::RetMU::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdoc">Return function. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00292">MSSAMuChi.h:292</a></div></div>
|
|
163
|
+
<div class="ttc" id="classSVF_1_1CallMU_html_aa90a06c9e44914a7a8e104aa80bf1374"><div class="ttname"><a href="classSVF_1_1CallMU.html#aa90a06c9e44914a7a8e104aa80bf1374">SVF::CallMU::callsite</a></div><div class="ttdeci">const CallICFGNode * callsite</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00225">MSSAMuChi.h:225</a></div></div>
|
|
167
164
|
<div class="ttc" id="classSVF_1_1CallCHI_html_a7c0708ad9a2aa6278b1e7404340ca2ad"><div class="ttname"><a href="classSVF_1_1CallCHI.html#a7c0708ad9a2aa6278b1e7404340ca2ad">SVF::CallCHI::classof</a></div><div class="ttdeci">static bool classof(const CallCHI *chi)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00551">MSSAMuChi.h:551</a></div></div>
|
|
168
165
|
<div class="ttc" id="classSVF_1_1LoadMU_html_a8193de194cf40211a36156cb87209a7e"><div class="ttname"><a href="classSVF_1_1LoadMU.html#a8193de194cf40211a36156cb87209a7e">SVF::LoadMU::~LoadMU</a></div><div class="ttdeci">virtual ~LoadMU()</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00179">MSSAMuChi.h:179</a></div></div>
|
|
169
166
|
<div class="ttc" id="classSVF_1_1MSSADEF_html_a9e8a03dc2c2f76ef6bc095f21911f5b6"><div class="ttname"><a href="classSVF_1_1MSSADEF.html#a9e8a03dc2c2f76ef6bc095f21911f5b6">SVF::MSSADEF::type</a></div><div class="ttdeci">DEFTYPE type</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00339">MSSAMuChi.h:339</a></div></div>
|
|
170
167
|
<div class="ttc" id="classSVF_1_1StoreCHI_html_a6e58e7cde1f417ec3feaef98f6f74be2"><div class="ttname"><a href="classSVF_1_1StoreCHI.html#a6e58e7cde1f417ec3feaef98f6f74be2">SVF::StoreCHI::inst</a></div><div class="ttdeci">const StoreStmt * inst</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00465">MSSAMuChi.h:465</a></div></div>
|
|
171
168
|
<div class="ttc" id="classSVF_1_1MSSAPHI_html_a940f9afa26bf54c7175276ea27003c2f"><div class="ttname"><a href="classSVF_1_1MSSAPHI.html#a940f9afa26bf54c7175276ea27003c2f">SVF::MSSAPHI::opVerBegin</a></div><div class="ttdeci">OPVers::const_iterator opVerBegin() const</div><div class="ttdoc">Operand ver iterators. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00673">MSSAMuChi.h:673</a></div></div>
|
|
172
169
|
<div class="ttc" id="classSVF_1_1EntryCHI_html_a0ba7181ad2a793bf11e40b7c7092e28b"><div class="ttname"><a href="classSVF_1_1EntryCHI.html#a0ba7181ad2a793bf11e40b7c7092e28b">SVF::EntryCHI::EntryCHI</a></div><div class="ttdeci">EntryCHI(const SVFFunction *f, const MemRegion *m, Cond c=true)</div><div class="ttdoc">Constructors for EntryCHI. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00585">MSSAMuChi.h:585</a></div></div>
|
|
170
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html_a674753d5ca0fbe28674acb25291f2bcf"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a674753d5ca0fbe28674acb25291f2bcf">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00381">ICFGNode.h:381</a></div></div>
|
|
173
171
|
<div class="ttc" id="classSVF_1_1MRVer_html_a63bd0641be553860cc5f517634b65825"><div class="ttname"><a href="classSVF_1_1MRVer.html#a63bd0641be553860cc5f517634b65825">SVF::MRVer::getMR</a></div><div class="ttdeci">const MemRegion * getMR() const</div><div class="ttdoc">Return the memory region. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00063">MSSAMuChi.h:63</a></div></div>
|
|
174
172
|
<div class="ttc" id="classSVF_1_1StoreCHI_html_a66a4ea0b8b61d39a552f7da000732263"><div class="ttname"><a href="classSVF_1_1StoreCHI.html#a66a4ea0b8b61d39a552f7da000732263">SVF::StoreCHI::classof</a></div><div class="ttdeci">static bool classof(const StoreCHI *chi)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00492">MSSAMuChi.h:492</a></div></div>
|
|
175
173
|
<div class="ttc" id="classSVF_1_1EntryCHI_html_aa5ed214cd44d8847c7539c7e3de3d276"><div class="ttname"><a href="classSVF_1_1EntryCHI.html#aa5ed214cd44d8847c7539c7e3de3d276">SVF::EntryCHI::classof</a></div><div class="ttdeci">static bool classof(const MSSADEF *chi)</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00610">MSSAMuChi.h:610</a></div></div>
|
|
174
|
+
<div class="ttc" id="classSVF_1_1CallCHI_html_af7f9fb3c01c487686453e25104a5bfc7"><div class="ttname"><a href="classSVF_1_1CallCHI.html#af7f9fb3c01c487686453e25104a5bfc7">SVF::CallCHI::getCallSite</a></div><div class="ttdeci">const CallICFGNode * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00544">MSSAMuChi.h:544</a></div></div>
|
|
175
|
+
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
176
176
|
<div class="ttc" id="classSVF_1_1MSSAMU_html_a489e8c27e40b709d94a462653fb760f5"><div class="ttname"><a href="classSVF_1_1MSSAMU.html#a489e8c27e40b709d94a462653fb760f5">SVF::MSSAMU::dump</a></div><div class="ttdeci">virtual void dump()</div><div class="ttdoc">Print MU. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00154">MSSAMuChi.h:154</a></div></div>
|
|
177
177
|
<div class="ttc" id="classSVF_1_1MSSACHI_html_a21d9218e105987a1f807633ea824e5d3"><div class="ttname"><a href="classSVF_1_1MSSACHI.html#a21d9218e105987a1f807633ea824e5d3">SVF::MSSACHI::CHITYPE</a></div><div class="ttdeci">MSSADEF::DEFTYPE CHITYPE</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00403">MSSAMuChi.h:403</a></div></div>
|
|
178
|
-
<div class="ttc" id="classSVF_1_1CallBlockNode_html_ad3d50024efcfa94b1246c982b43aff2f"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html#ad3d50024efcfa94b1246c982b43aff2f">SVF::CallBlockNode::getCallSite</a></div><div class="ttdeci">const Instruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00381">ICFGNode.h:381</a></div></div>
|
|
179
178
|
<div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00016">ContextDDA.h:16</a></div></div>
|
|
180
179
|
<div class="ttc" id="classSVF_1_1MSSADEF_html_a32682e20c9c08d2bdd5abc62ea17af18af0a554492277c9964a67ab9cd23071d3"><div class="ttname"><a href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18af0a554492277c9964a67ab9cd23071d3">SVF::MSSADEF::EntryMSSACHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00334">MSSAMuChi.h:334</a></div></div>
|
|
181
180
|
<div class="ttc" id="classSVF_1_1MSSACHI_html_addeee3fb0c5e6b1c68c30da111c26759"><div class="ttname"><a href="classSVF_1_1MSSACHI.html#addeee3fb0c5e6b1c68c30da111c26759">SVF::MSSACHI::cond</a></div><div class="ttdeci">Cond cond</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00401">MSSAMuChi.h:401</a></div></div>
|
|
@@ -202,15 +201,16 @@ $(function() {
|
|
|
202
201
|
<div class="ttc" id="classSVF_1_1StoreCHI_html_a7a01d165b24d05f0a218c2abfaad8422"><div class="ttname"><a href="classSVF_1_1StoreCHI.html#a7a01d165b24d05f0a218c2abfaad8422">SVF::StoreCHI::classof</a></div><div class="ttdeci">static bool classof(const MSSACHI< Cond > *chi)</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00496">MSSAMuChi.h:496</a></div></div>
|
|
203
202
|
<div class="ttc" id="classSVF_1_1StoreCHI_html_af889bd9b729182e20ca7598ad4167bb8"><div class="ttname"><a href="classSVF_1_1StoreCHI.html#af889bd9b729182e20ca7598ad4167bb8">SVF::StoreCHI::dump</a></div><div class="ttdeci">virtual void dump()</div><div class="ttdoc">Print CHI. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00507">MSSAMuChi.h:507</a></div></div>
|
|
204
203
|
<div class="ttc" id="classSVF_1_1EntryCHI_html_afd2b2d4a7198f62467b4062740e5196c"><div class="ttname"><a href="classSVF_1_1EntryCHI.html#afd2b2d4a7198f62467b4062740e5196c">SVF::EntryCHI::fun</a></div><div class="ttdeci">const SVFFunction * fun</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00581">MSSAMuChi.h:581</a></div></div>
|
|
205
|
-
<div class="ttc" id="classSVF_1_1CallBlockNode_html"><div class="ttname"><a href="classSVF_1_1CallBlockNode.html">SVF::CallBlockNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00364">ICFGNode.h:364</a></div></div>
|
|
206
204
|
<div class="ttc" id="classSVF_1_1LoadMU_html_aaf916feaa76c3eaf96dcff576ef366ca"><div class="ttname"><a href="classSVF_1_1LoadMU.html#aaf916feaa76c3eaf96dcff576ef366ca">SVF::LoadMU::LoadMU</a></div><div class="ttdeci">LoadMU(const BasicBlock *b, const LoadStmt *i, const MemRegion *m, Cond c=true)</div><div class="ttdoc">Constructor/Destructor for MU. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00175">MSSAMuChi.h:175</a></div></div>
|
|
207
205
|
<div class="ttc" id="classSVF_1_1MSSAPHI_html_a00b3ab85b31b4de91398efea41db158f"><div class="ttname"><a href="classSVF_1_1MSSAPHI.html#a00b3ab85b31b4de91398efea41db158f">SVF::MSSAPHI::getBasicBlock</a></div><div class="ttdeci">const BasicBlock * getBasicBlock() const</div><div class="ttdoc">Return the basic block. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00684">MSSAMuChi.h:684</a></div></div>
|
|
208
206
|
<div class="ttc" id="classSVF_1_1EntryCHI_html_ad9c86f7cf28fe22584b94416803639aa"><div class="ttname"><a href="classSVF_1_1EntryCHI.html#ad9c86f7cf28fe22584b94416803639aa">SVF::EntryCHI::classof</a></div><div class="ttdeci">static bool classof(const EntryCHI *chi)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00602">MSSAMuChi.h:602</a></div></div>
|
|
209
207
|
<div class="ttc" id="classSVF_1_1MSSAPHI_html"><div class="ttname"><a href="classSVF_1_1MSSAPHI.html">SVF::MSSAPHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00629">MSSAMuChi.h:629</a></div></div>
|
|
208
|
+
<div class="ttc" id="classSVF_1_1CallMU_html_a57616dc30fb97c6dc64c9210b42bbeb7"><div class="ttname"><a href="classSVF_1_1CallMU.html#a57616dc30fb97c6dc64c9210b42bbeb7">SVF::CallMU::getCallSite</a></div><div class="ttdeci">const CallICFGNode * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00241">MSSAMuChi.h:241</a></div></div>
|
|
210
209
|
<div class="ttc" id="classSVF_1_1MSSAMU_html_a2af1e639aabbc5997aa4e6526f6595fb"><div class="ttname"><a href="classSVF_1_1MSSAMU.html#a2af1e639aabbc5997aa4e6526f6595fb">SVF::MSSAMU::setVer</a></div><div class="ttdeci">void setVer(MRVer *v)</div><div class="ttdoc">Set Ver. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00131">MSSAMuChi.h:131</a></div></div>
|
|
211
210
|
<div class="ttc" id="classSVF_1_1MRVer_html_a492211105abe8af8ed9ad7b30eabb852"><div class="ttname"><a href="classSVF_1_1MRVer.html#a492211105abe8af8ed9ad7b30eabb852">SVF::MRVer::getDef</a></div><div class="ttdeci">MSSADef * getDef() const</div><div class="ttdoc">Get MSSADef. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00075">MSSAMuChi.h:75</a></div></div>
|
|
212
211
|
<div class="ttc" id="classSVF_1_1RetMU_html_a4982f6fffac4f4775e27f994677a9f2c"><div class="ttname"><a href="classSVF_1_1RetMU.html#a4982f6fffac4f4775e27f994677a9f2c">SVF::RetMU::fun</a></div><div class="ttdeci">const SVFFunction * fun</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00280">MSSAMuChi.h:280</a></div></div>
|
|
213
212
|
<div class="ttc" id="classSVF_1_1MSSACHI_html"><div class="ttname"><a href="classSVF_1_1MSSACHI.html">SVF::MSSACHI</a></div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00396">MSSAMuChi.h:396</a></div></div>
|
|
213
|
+
<div class="ttc" id="classSVF_1_1CallCHI_html_a011044a63529bdd773dd2ad447668029"><div class="ttname"><a href="classSVF_1_1CallCHI.html#a011044a63529bdd773dd2ad447668029">SVF::CallCHI::CallCHI</a></div><div class="ttdeci">CallCHI(const CallICFGNode *cs, const MemRegion *m, Cond c=true)</div><div class="ttdoc">Constructors for StoreCHI. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00528">MSSAMuChi.h:528</a></div></div>
|
|
214
214
|
<div class="ttc" id="classSVF_1_1CallCHI_html_ac6a1f2f1c897c647d9b070cb56c61a41"><div class="ttname"><a href="classSVF_1_1CallCHI.html#ac6a1f2f1c897c647d9b070cb56c61a41">SVF::CallCHI::dump</a></div><div class="ttdeci">virtual void dump()</div><div class="ttdoc">Print CHI. </div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00566">MSSAMuChi.h:566</a></div></div>
|
|
215
215
|
<div class="ttc" id="classSVF_1_1MRVer_html_aafe30801672cd436216386ad6ff479e6"><div class="ttname"><a href="classSVF_1_1MRVer.html#aafe30801672cd436216386ad6ff479e6">SVF::MRVer::mr</a></div><div class="ttdeci">const MemRegion * mr</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00051">MSSAMuChi.h:51</a></div></div>
|
|
216
216
|
</div><!-- fragment --></div><!-- contents -->
|