svf-tools 1.0.304 → 1.0.308
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/AbstractPointsToDS_8h_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +4 -4
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/AndersenWaveDiffWithType_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/Andersen_8h_source.html +10 -10
- package/SVF-doxygen/html/html/BasicTypes_8h_source.html +8 -8
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/CHG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CSC_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CSC_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CommonCHG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Conditions_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Conditions_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
- 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 +10 -10
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +7 -7
- package/SVF-doxygen/html/html/CoreBitVector_8h.html +2 -0
- package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +3 -1
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/DCHG_8h_source.html +3 -3
- 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/DDAPass_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +7 -7
- package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ExternalPAG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ExternalPAG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +4 -4
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +5 -5
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +6 -6
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/MHP_8h_source.html +4 -4
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MTA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MemModel_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemPartition_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +4 -4
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +2 -2
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Options_8cpp_source.html +97 -96
- package/SVF-doxygen/html/html/Options_8h_source.html +97 -96
- package/SVF-doxygen/html/html/PAGBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PAGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PAG_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/PAG_8h_source.html +5 -5
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +11 -10
- package/SVF-doxygen/html/html/PTAStat_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PTAType_8h_source.html +4 -4
- package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +27 -24
- package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +21 -17
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +72 -72
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +5 -5
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PointsTo_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SCC_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +33 -27
- package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +52 -49
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGStat_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +10 -9
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +7 -7
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +2 -2
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/TCT_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/VFG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +10 -8
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp.html +3 -0
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +77 -64
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h.html +3 -2
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +78 -69
- package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +2 -2
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/WPASolver_8h_source.html +2 -2
- package/SVF-doxygen/html/html/WorkList_8h_source.html +1 -1
- package/SVF-doxygen/html/html/annotated.html +189 -186
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiffWithType.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +86 -83
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchCondManager.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1CSC.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CmpPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +116 -116
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1CopyPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ExternalPAG.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FIObjPN.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +48 -48
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepValPN.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LoadPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ObjPN.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +3 -2
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +125 -96
- package/SVF-doxygen/html/html/classSVF_1_1PAG.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilder.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +21 -20
- package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +19 -16
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +194 -101
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +8 -7
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StorePE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1TypeSystem.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ValPN.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +161 -162
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +571 -532
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +20 -21
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC-members.html +83 -0
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +297 -0
- package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +1 -1
- package/SVF-doxygen/html/html/classes.html +96 -95
- package/SVF-doxygen/html/html/functions_b.html +11 -5
- package/SVF-doxygen/html/html/functions_c.html +13 -14
- package/SVF-doxygen/html/html/functions_d.html +13 -4
- package/SVF-doxygen/html/html/functions_e.html +3 -0
- package/SVF-doxygen/html/html/functions_f.html +1 -1
- package/SVF-doxygen/html/html/functions_func_b.html +6 -0
- package/SVF-doxygen/html/html/functions_func_d.html +7 -4
- package/SVF-doxygen/html/html/functions_func_f.html +1 -1
- package/SVF-doxygen/html/html/functions_func_g.html +15 -9
- package/SVF-doxygen/html/html/functions_func_i.html +11 -11
- package/SVF-doxygen/html/html/functions_func_m.html +0 -3
- package/SVF-doxygen/html/html/functions_func_n.html +1 -4
- package/SVF-doxygen/html/html/functions_func_o.html +6 -4
- package/SVF-doxygen/html/html/functions_func_p.html +1 -1
- package/SVF-doxygen/html/html/functions_func_r.html +4 -1
- package/SVF-doxygen/html/html/functions_func_s.html +1 -1
- package/SVF-doxygen/html/html/functions_func_v.html +2 -1
- package/SVF-doxygen/html/html/functions_g.html +15 -9
- package/SVF-doxygen/html/html/functions_i.html +26 -19
- package/SVF-doxygen/html/html/functions_l.html +6 -9
- package/SVF-doxygen/html/html/functions_m.html +1 -16
- package/SVF-doxygen/html/html/functions_n.html +3 -3
- package/SVF-doxygen/html/html/functions_o.html +17 -16
- package/SVF-doxygen/html/html/functions_p.html +26 -16
- package/SVF-doxygen/html/html/functions_r.html +9 -7
- package/SVF-doxygen/html/html/functions_s.html +10 -10
- package/SVF-doxygen/html/html/functions_t.html +5 -5
- package/SVF-doxygen/html/html/functions_type_l.html +1 -4
- package/SVF-doxygen/html/html/functions_type_m.html +1 -1
- package/SVF-doxygen/html/html/functions_type_n.html +3 -0
- package/SVF-doxygen/html/html/functions_type_o.html +0 -3
- package/SVF-doxygen/html/html/functions_type_v.html +0 -3
- package/SVF-doxygen/html/html/functions_v.html +8 -10
- package/SVF-doxygen/html/html/functions_vars_c.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_d.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_e.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_i.html +7 -0
- package/SVF-doxygen/html/html/functions_vars_l.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_m.html +0 -12
- package/SVF-doxygen/html/html/functions_vars_o.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_p.html +12 -0
- package/SVF-doxygen/html/html/functions_vars_r.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_y.html +0 -3
- package/SVF-doxygen/html/html/functions_w.html +1 -3
- package/SVF-doxygen/html/html/functions_y.html +0 -3
- package/SVF-doxygen/html/html/globals_f.html +3 -3
- package/SVF-doxygen/html/html/globals_func_i.html +8 -8
- package/SVF-doxygen/html/html/globals_func_s.html +6 -6
- package/SVF-doxygen/html/html/globals_r.html +3 -3
- package/SVF-doxygen/html/html/globals_s.html +12 -14
- package/SVF-doxygen/html/html/hierarchy.html +176 -173
- package/SVF-doxygen/html/html/namespaceSVF.html +70 -32
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +13 -12
- package/SVF-doxygen/html/html/namespacemembers_type_v.html +6 -0
- package/SVF-doxygen/html/html/namespacemembers_v.html +6 -0
- package/SVF-doxygen/html/html/search/all_10.js +11 -7
- package/SVF-doxygen/html/html/search/all_12.js +4 -4
- package/SVF-doxygen/html/html/search/all_13.js +8 -8
- package/SVF-doxygen/html/html/search/all_14.js +5 -5
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +5 -4
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_19.js +0 -1
- package/SVF-doxygen/html/html/search/all_2.js +2 -0
- package/SVF-doxygen/html/html/search/all_3.js +1 -2
- package/SVF-doxygen/html/html/search/all_4.js +5 -2
- package/SVF-doxygen/html/html/search/all_5.js +1 -0
- package/SVF-doxygen/html/html/search/all_6.js +2 -2
- package/SVF-doxygen/html/html/search/all_7.js +5 -3
- package/SVF-doxygen/html/html/search/all_8.js +2 -0
- package/SVF-doxygen/html/html/search/all_9.js +7 -5
- package/SVF-doxygen/html/html/search/all_c.js +2 -3
- package/SVF-doxygen/html/html/search/all_d.js +1 -6
- package/SVF-doxygen/html/html/search/all_e.js +2 -2
- package/SVF-doxygen/html/html/search/all_f.js +2 -3
- package/SVF-doxygen/html/html/search/classes_12.js +0 -1
- package/SVF-doxygen/html/html/search/classes_7.js +2 -0
- package/SVF-doxygen/html/html/search/classes_b.js +1 -0
- package/SVF-doxygen/html/html/search/classes_f.js +1 -0
- package/SVF-doxygen/html/html/search/functions_1.js +2 -0
- package/SVF-doxygen/html/html/search/functions_10.js +2 -2
- package/SVF-doxygen/html/html/search/functions_13.js +1 -1
- package/SVF-doxygen/html/html/search/functions_3.js +3 -2
- package/SVF-doxygen/html/html/search/functions_5.js +1 -1
- package/SVF-doxygen/html/html/search/functions_6.js +5 -3
- package/SVF-doxygen/html/html/search/functions_8.js +3 -3
- package/SVF-doxygen/html/html/search/functions_b.js +0 -1
- package/SVF-doxygen/html/html/search/functions_c.js +0 -1
- package/SVF-doxygen/html/html/search/functions_d.js +1 -1
- package/SVF-doxygen/html/html/search/functions_e.js +1 -1
- package/SVF-doxygen/html/html/search/functions_f.js +1 -0
- package/SVF-doxygen/html/html/search/typedefs_14.js +2 -1
- package/SVF-doxygen/html/html/search/typedefs_b.js +1 -2
- package/SVF-doxygen/html/html/search/typedefs_c.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_d.js +1 -0
- package/SVF-doxygen/html/html/search/typedefs_e.js +0 -1
- package/SVF-doxygen/html/html/search/variables_10.js +4 -0
- package/SVF-doxygen/html/html/search/variables_12.js +0 -1
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_15.js +1 -1
- package/SVF-doxygen/html/html/search/variables_16.js +1 -1
- package/SVF-doxygen/html/html/search/variables_19.js +0 -1
- package/SVF-doxygen/html/html/search/variables_3.js +0 -1
- package/SVF-doxygen/html/html/search/variables_4.js +2 -0
- package/SVF-doxygen/html/html/search/variables_5.js +1 -0
- package/SVF-doxygen/html/html/search/variables_9.js +3 -1
- package/SVF-doxygen/html/html/search/variables_c.js +1 -1
- package/SVF-doxygen/html/html/search/variables_d.js +0 -4
- package/SVF-doxygen/html/html/search/variables_e.js +1 -1
- package/SVF-doxygen/html/html/search/variables_f.js +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01CoreBitVector_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01CoreBitVector_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData-members.html +83 -0
- package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html +145 -0
- 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 +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SmallVector_3_01T_00_01N_01_4_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01llvm_1_1SparseBitVector_3_01N_01_4_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +129 -0
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +2 -2
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/tools_2DDA_2CMakeLists_8txt.html +1 -1
- package/SVF-doxygen/html/html/tools_2Example_2CMakeLists_8txt.html +1 -1
- package/SVF-doxygen/html/html/tools_2MTA_2CMakeLists_8txt.html +1 -1
- package/SVF-doxygen/html/html/tools_2SABER_2CMakeLists_8txt.html +1 -1
- package/SVF-doxygen/html/html/tools_2WPA_2CMakeLists_8txt.html +9 -9
- package/include/MemoryModel/PersistentPointsToCache.h +43 -34
- package/include/MemoryModel/PointerAnalysisImpl.h +1 -5
- package/include/Util/CoreBitVector.h +8 -0
- package/include/Util/Options.h +3 -0
- package/include/Util/SVFBasicTypes.h +22 -2
- package/include/WPA/VersionedFlowSensitive.h +96 -65
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +7 -0
- package/lib/MemoryModel/PointsTo.cpp +3 -3
- package/lib/Util/Options.cpp +6 -0
- package/lib/Util/PTAStat.cpp +3 -4
- package/lib/Util/SVFUtil.cpp +1 -0
- package/lib/WPA/FlowSensitive.cpp +1 -1
- package/lib/WPA/VersionedFlowSensitive.cpp +503 -229
- package/lib/WPA/VersionedFlowSensitiveStat.cpp +23 -38
- package/package.json +1 -1
- package/tools/WPA/CMakeLists.txt +3 -1
|
@@ -305,7 +305,7 @@ Functions</h2></td></tr>
|
|
|
305
305
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
|
|
306
306
|
<div class="ttc" id="classSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
|
|
307
307
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
|
|
308
|
-
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
308
|
+
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00095">SVFBasicTypes.h:95</a></div></div>
|
|
309
309
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_ad4c6a48b60c870d63049fe7272cc7eb8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(Data data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00159">WorkList.h:159</a></div></div>
|
|
310
310
|
<div class="ttc" id="classSVF_1_1ICFGNode_html_ac16c5a3227a44d3b9f7c3209156d9df2"><div class="ttname"><a href="classSVF_1_1ICFGNode.html#ac16c5a3227a44d3b9f7c3209156d9df2">SVF::ICFGNode::const_iterator</a></div><div class="ttdeci">ICFGEdge::ICFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00066">ICFGNode.h:66</a></div></div>
|
|
311
311
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html">SVF::FIFOWorkList</a></div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00137">WorkList.h:137</a></div></div>
|
|
@@ -354,7 +354,7 @@ Functions</h2></td></tr>
|
|
|
354
354
|
<div class="ttc" id="classSVF_1_1VFGEdge_html"><div class="ttname"><a href="classSVF_1_1VFGEdge.html">SVF::VFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGEdge_8h_source.html#l00044">VFGEdge.h:44</a></div></div>
|
|
355
355
|
<div class="ttc" id="classSVF_1_1PAG_html_a3aa1c92eb8a6fab72996964de80f19ac"><div class="ttname"><a href="classSVF_1_1PAG.html#a3aa1c92eb8a6fab72996964de80f19ac">SVF::PAG::getPAGNode</a></div><div class="ttdeci">PAGNode * getPAGNode(NodeID id) const</div><div class="ttdoc">Get PAGNode ID. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00539">PAG.h:539</a></div></div>
|
|
356
356
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
|
|
357
|
-
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
357
|
+
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00095">SVFBasicTypes.h:95</a></div></div>
|
|
358
358
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_ad4c6a48b60c870d63049fe7272cc7eb8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(Data data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00159">WorkList.h:159</a></div></div>
|
|
359
359
|
<div class="ttc" id="classSVF_1_1VFGNode_html_a3c558955f60c237c558d8faafed781e8"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a3c558955f60c237c558d8faafed781e8">SVF::VFGNode::const_iterator</a></div><div class="ttdeci">VFGEdge::VFGEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00061">VFGNode.h:61</a></div></div>
|
|
360
360
|
<div class="ttc" id="classSVF_1_1PAGNode_html"><div class="ttname"><a href="classSVF_1_1PAGNode.html">SVF::PAGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="PAGNode_8h_source.html#l00046">PAGNode.h:46</a></div></div>
|
|
@@ -98,7 +98,7 @@ $(function() {
|
|
|
98
98
|
<div class="ttc" id="classSVF_1_1PAG_html_a3aa1c92eb8a6fab72996964de80f19ac"><div class="ttname"><a href="classSVF_1_1PAG.html#a3aa1c92eb8a6fab72996964de80f19ac">SVF::PAG::getPAGNode</a></div><div class="ttdeci">PAGNode * getPAGNode(NodeID id) const</div><div class="ttdoc">Get PAGNode ID. </div><div class="ttdef"><b>Definition:</b> <a href="PAG_8h_source.html#l00539">PAG.h:539</a></div></div>
|
|
99
99
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00089">GenericGraph.h:89</a></div></div>
|
|
100
100
|
<div class="ttc" id="classSVF_1_1PAGBuilder_html_a757ab2c9481467842e1ad4c46a1f6291"><div class="ttname"><a href="classSVF_1_1PAGBuilder.html#a757ab2c9481467842e1ad4c46a1f6291">SVF::PAGBuilder::build</a></div><div class="ttdeci">virtual PAG * build(SVFModule *svfModule)</div><div class="ttdoc">Start building PAG here. </div><div class="ttdef"><b>Definition:</b> <a href="PAGBuilder_8cpp_source.html#l00047">PAGBuilder.cpp:47</a></div></div>
|
|
101
|
-
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
101
|
+
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00095">SVFBasicTypes.h:95</a></div></div>
|
|
102
102
|
<div class="ttc" id="svf-ex_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="svf-ex_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="svf-ex_8cpp_source.html#l00145">svf-ex.cpp:145</a></div></div>
|
|
103
103
|
<div class="ttc" id="classSVF_1_1FIFOWorkList_html_ad4c6a48b60c870d63049fe7272cc7eb8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#ad4c6a48b60c870d63049fe7272cc7eb8">SVF::FIFOWorkList::push</a></div><div class="ttdeci">bool push(Data data)</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00159">WorkList.h:159</a></div></div>
|
|
104
104
|
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00079">BasicTypes.h:79</a></div></div>
|
|
@@ -67,7 +67,7 @@ $(function() {
|
|
|
67
67
|
<table class="memberdecls">
|
|
68
68
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
69
69
|
Functions</h2></td></tr>
|
|
70
|
-
<tr class="memitem:a7686df215f6da6fdcfa2c20950c96939"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2DDA_2CMakeLists_8txt.html#a7686df215f6da6fdcfa2c20950c96939">if</a> (DEFINED IN_SOURCE_BUILD) <a class="el" href="
|
|
70
|
+
<tr class="memitem:a7686df215f6da6fdcfa2c20950c96939"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2DDA_2CMakeLists_8txt.html#a7686df215f6da6fdcfa2c20950c96939">if</a> (DEFINED IN_SOURCE_BUILD) <a class="el" href="tools_2WPA_2CMakeLists_8txt.html#ae7f9c126d87731a942268db0cad0ac75">set</a>(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(dvf dda.cpp) else() add_executable(dvf dda.cpp) target_link_libraries(dvf Svf Cudd $</td></tr>
|
|
71
71
|
<tr class="separator:a7686df215f6da6fdcfa2c20950c96939"><td class="memSeparator" colspan="2"> </td></tr>
|
|
72
72
|
</table>
|
|
73
73
|
<h2 class="groupheader">Function Documentation</h2>
|
|
@@ -67,7 +67,7 @@ $(function() {
|
|
|
67
67
|
<table class="memberdecls">
|
|
68
68
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
69
69
|
Functions</h2></td></tr>
|
|
70
|
-
<tr class="memitem:a99a811bf6e0c9c244f0663f312a3ee41"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2Example_2CMakeLists_8txt.html#a99a811bf6e0c9c244f0663f312a3ee41">if</a> (DEFINED IN_SOURCE_BUILD) <a class="el" href="
|
|
70
|
+
<tr class="memitem:a99a811bf6e0c9c244f0663f312a3ee41"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2Example_2CMakeLists_8txt.html#a99a811bf6e0c9c244f0663f312a3ee41">if</a> (DEFINED IN_SOURCE_BUILD) <a class="el" href="tools_2WPA_2CMakeLists_8txt.html#ae7f9c126d87731a942268db0cad0ac75">set</a>(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(svf-ex svf-ex.cpp) else() add_executable(svf-ex svf-ex.cpp) target_link_libraries(svf-ex Svf Cudd $</td></tr>
|
|
71
71
|
<tr class="separator:a99a811bf6e0c9c244f0663f312a3ee41"><td class="memSeparator" colspan="2"> </td></tr>
|
|
72
72
|
</table>
|
|
73
73
|
<h2 class="groupheader">Function Documentation</h2>
|
|
@@ -67,7 +67,7 @@ $(function() {
|
|
|
67
67
|
<table class="memberdecls">
|
|
68
68
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
69
69
|
Functions</h2></td></tr>
|
|
70
|
-
<tr class="memitem:a4bd9f4b25fec671a4e18608050c47e87"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2MTA_2CMakeLists_8txt.html#a4bd9f4b25fec671a4e18608050c47e87">if</a> (DEFINED IN_SOURCE_BUILD) <a class="el" href="
|
|
70
|
+
<tr class="memitem:a4bd9f4b25fec671a4e18608050c47e87"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2MTA_2CMakeLists_8txt.html#a4bd9f4b25fec671a4e18608050c47e87">if</a> (DEFINED IN_SOURCE_BUILD) <a class="el" href="tools_2WPA_2CMakeLists_8txt.html#ae7f9c126d87731a942268db0cad0ac75">set</a>(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(mta mta.cpp) else() add_executable(mta mta.cpp) target_link_libraries(mta Svf Cudd $</td></tr>
|
|
71
71
|
<tr class="separator:a4bd9f4b25fec671a4e18608050c47e87"><td class="memSeparator" colspan="2"> </td></tr>
|
|
72
72
|
</table>
|
|
73
73
|
<h2 class="groupheader">Function Documentation</h2>
|
|
@@ -67,7 +67,7 @@ $(function() {
|
|
|
67
67
|
<table class="memberdecls">
|
|
68
68
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
69
69
|
Functions</h2></td></tr>
|
|
70
|
-
<tr class="memitem:a8090d680f76934d4cad048ea01b7fe8e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2SABER_2CMakeLists_8txt.html#a8090d680f76934d4cad048ea01b7fe8e">if</a> (DEFINED IN_SOURCE_BUILD) <a class="el" href="
|
|
70
|
+
<tr class="memitem:a8090d680f76934d4cad048ea01b7fe8e"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2SABER_2CMakeLists_8txt.html#a8090d680f76934d4cad048ea01b7fe8e">if</a> (DEFINED IN_SOURCE_BUILD) <a class="el" href="tools_2WPA_2CMakeLists_8txt.html#ae7f9c126d87731a942268db0cad0ac75">set</a>(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(saber saber.cpp) else() add_executable(saber saber.cpp) target_link_libraries(saber Svf Cudd $</td></tr>
|
|
71
71
|
<tr class="separator:a8090d680f76934d4cad048ea01b7fe8e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
72
72
|
</table>
|
|
73
73
|
<h2 class="groupheader">Function Documentation</h2>
|
|
@@ -67,28 +67,28 @@ $(function() {
|
|
|
67
67
|
<table class="memberdecls">
|
|
68
68
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
69
69
|
Functions</h2></td></tr>
|
|
70
|
-
<tr class="memitem:
|
|
71
|
-
<tr class="separator:
|
|
70
|
+
<tr class="memitem:ae7f9c126d87731a942268db0cad0ac75"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="tools_2WPA_2CMakeLists_8txt.html#ae7f9c126d87731a942268db0cad0ac75">set</a> (THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) <a class="el" href="tools_2SABER_2CMakeLists_8txt.html#a8090d680f76934d4cad048ea01b7fe8e">if</a>(DEFINED IN_SOURCE_BUILD) set(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(wpa wpa.cpp) else() add_executable(wpa wpa.cpp) target_link_libraries(wpa Svf Cudd $</td></tr>
|
|
71
|
+
<tr class="separator:ae7f9c126d87731a942268db0cad0ac75"><td class="memSeparator" colspan="2"> </td></tr>
|
|
72
72
|
</table>
|
|
73
73
|
<h2 class="groupheader">Function Documentation</h2>
|
|
74
|
-
<a id="
|
|
75
|
-
<h2 class="memtitle"><span class="permalink"><a href="#
|
|
74
|
+
<a id="ae7f9c126d87731a942268db0cad0ac75"></a>
|
|
75
|
+
<h2 class="memtitle"><span class="permalink"><a href="#ae7f9c126d87731a942268db0cad0ac75">◆ </a></span>set()</h2>
|
|
76
76
|
|
|
77
77
|
<div class="memitem">
|
|
78
78
|
<div class="memproto">
|
|
79
79
|
<table class="memname">
|
|
80
80
|
<tr>
|
|
81
|
-
<td class="memname">
|
|
81
|
+
<td class="memname">set </td>
|
|
82
82
|
<td>(</td>
|
|
83
|
-
<td class="paramtype">
|
|
84
|
-
<td class="paramname"><em>
|
|
83
|
+
<td class="paramtype">THREADS_PREFER_PTHREAD_FLAG </td>
|
|
84
|
+
<td class="paramname"><em>ON</em></td><td>)</td>
|
|
85
85
|
<td></td>
|
|
86
86
|
</tr>
|
|
87
87
|
</table>
|
|
88
88
|
</div><div class="memdoc">
|
|
89
89
|
|
|
90
|
-
<p class="definition">Definition at line <a class="el" href="tools_2WPA_2CMakeLists_8txt_source.html#
|
|
91
|
-
<div class="fragment"><div class="line"><a name="
|
|
90
|
+
<p class="definition">Definition at line <a class="el" href="tools_2WPA_2CMakeLists_8txt_source.html#l00001">1</a> of file <a class="el" href="tools_2WPA_2CMakeLists_8txt_source.html">CMakeLists.txt</a>.</p>
|
|
91
|
+
<div class="fragment"><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>  {llvm_libs} Threads::Threads )</div></div><!-- fragment -->
|
|
92
92
|
</div>
|
|
93
93
|
</div>
|
|
94
94
|
</div><!-- contents -->
|
|
@@ -138,7 +138,7 @@ public:
|
|
|
138
138
|
if (lhs != result)
|
|
139
139
|
{
|
|
140
140
|
unionCache[std::minmax(lhs, result)] = result;
|
|
141
|
-
++
|
|
141
|
+
++preemptiveUnions;
|
|
142
142
|
++totalUnions;
|
|
143
143
|
}
|
|
144
144
|
|
|
@@ -146,7 +146,7 @@ public:
|
|
|
146
146
|
if (rhs != result)
|
|
147
147
|
{
|
|
148
148
|
unionCache[std::minmax(rhs, result)] = result;
|
|
149
|
-
++
|
|
149
|
+
++preemptiveUnions;
|
|
150
150
|
++totalUnions;
|
|
151
151
|
}
|
|
152
152
|
} else ++lookupUnions;
|
|
@@ -195,17 +195,17 @@ public:
|
|
|
195
195
|
{
|
|
196
196
|
// result AND rhs = EMPTY_SET,
|
|
197
197
|
intersectionCache[std::minmax(result, rhs)] = emptyPointsToId();
|
|
198
|
-
++
|
|
198
|
+
++preemptiveIntersections;
|
|
199
199
|
++totalIntersections;
|
|
200
200
|
|
|
201
201
|
// and result AND lhs = result,
|
|
202
202
|
intersectionCache[std::minmax(result, lhs)] = result;
|
|
203
|
-
++
|
|
203
|
+
++preemptiveIntersections;
|
|
204
204
|
++totalIntersections;
|
|
205
205
|
|
|
206
206
|
// and result - rhs = result.
|
|
207
207
|
complementCache[std::make_pair(result, rhs)] = result;
|
|
208
|
-
++
|
|
208
|
+
++preemptiveComplements;
|
|
209
209
|
++totalComplements;
|
|
210
210
|
}
|
|
211
211
|
} else ++lookupComplements;
|
|
@@ -252,7 +252,7 @@ public:
|
|
|
252
252
|
if (result != rhs)
|
|
253
253
|
{
|
|
254
254
|
intersectionCache[std::minmax(result, rhs)] = result;
|
|
255
|
-
++
|
|
255
|
+
++preemptiveIntersections;
|
|
256
256
|
++totalIntersections;
|
|
257
257
|
}
|
|
258
258
|
|
|
@@ -260,7 +260,7 @@ public:
|
|
|
260
260
|
if (result != lhs)
|
|
261
261
|
{
|
|
262
262
|
intersectionCache[std::minmax(result, lhs)] = result;
|
|
263
|
-
++
|
|
263
|
+
++preemptiveIntersections;
|
|
264
264
|
++totalIntersections;
|
|
265
265
|
}
|
|
266
266
|
|
|
@@ -269,7 +269,7 @@ public:
|
|
|
269
269
|
if (result != emptyPointsToId() && result != lhs)
|
|
270
270
|
{
|
|
271
271
|
unionCache[std::minmax(lhs, result)] = lhs;
|
|
272
|
-
++
|
|
272
|
+
++preemptiveUnions;
|
|
273
273
|
++totalUnions;
|
|
274
274
|
}
|
|
275
275
|
|
|
@@ -277,7 +277,7 @@ public:
|
|
|
277
277
|
if (result != emptyPointsToId() && result != rhs)
|
|
278
278
|
{
|
|
279
279
|
unionCache[std::minmax(rhs, result)] = rhs;
|
|
280
|
-
++
|
|
280
|
+
++preemptiveUnions;
|
|
281
281
|
++totalUnions;
|
|
282
282
|
}
|
|
283
283
|
}
|
|
@@ -294,22 +294,25 @@ public:
|
|
|
294
294
|
|
|
295
295
|
std::cout << "****Persistent Points-To Cache Statistics: " << subtitle << "****\n";
|
|
296
296
|
|
|
297
|
-
std::cout << std::setw(fieldWidth) << "UniquePointsToSets"
|
|
297
|
+
std::cout << std::setw(fieldWidth) << "UniquePointsToSets" << idToPts.size() << "\n";
|
|
298
298
|
|
|
299
|
-
std::cout << std::setw(fieldWidth) << "TotalUnions"
|
|
300
|
-
std::cout << std::setw(fieldWidth) << "PropertyUnions"
|
|
301
|
-
std::cout << std::setw(fieldWidth) << "UniqueUnions"
|
|
302
|
-
std::cout << std::setw(fieldWidth) << "LookupUnions"
|
|
299
|
+
std::cout << std::setw(fieldWidth) << "TotalUnions" << totalUnions << "\n";
|
|
300
|
+
std::cout << std::setw(fieldWidth) << "PropertyUnions" << propertyUnions << "\n";
|
|
301
|
+
std::cout << std::setw(fieldWidth) << "UniqueUnions" << uniqueUnions << "\n";
|
|
302
|
+
std::cout << std::setw(fieldWidth) << "LookupUnions" << lookupUnions << "\n";
|
|
303
|
+
std::cout << std::setw(fieldWidth) << "PreemptiveUnions" << preemptiveUnions << "\n";
|
|
303
304
|
|
|
304
|
-
std::cout << std::setw(fieldWidth) << "TotalComplements"
|
|
305
|
-
std::cout << std::setw(fieldWidth) << "PropertyComplements"
|
|
306
|
-
std::cout << std::setw(fieldWidth) << "UniqueComplements"
|
|
307
|
-
std::cout << std::setw(fieldWidth) << "LookupComplements"
|
|
305
|
+
std::cout << std::setw(fieldWidth) << "TotalComplements" << totalComplements << "\n";
|
|
306
|
+
std::cout << std::setw(fieldWidth) << "PropertyComplements" << propertyComplements << "\n";
|
|
307
|
+
std::cout << std::setw(fieldWidth) << "UniqueComplements" << uniqueComplements << "\n";
|
|
308
|
+
std::cout << std::setw(fieldWidth) << "LookupComplements" << lookupComplements << "\n";
|
|
309
|
+
std::cout << std::setw(fieldWidth) << "PreemptiveComplements" << preemptiveComplements << "\n";
|
|
308
310
|
|
|
309
|
-
std::cout << std::setw(fieldWidth) << "TotalIntersections"
|
|
310
|
-
std::cout << std::setw(fieldWidth) << "PropertyIntersections"
|
|
311
|
-
std::cout << std::setw(fieldWidth) << "UniqueIntersections"
|
|
312
|
-
std::cout << std::setw(fieldWidth) << "LookupIntersections"
|
|
311
|
+
std::cout << std::setw(fieldWidth) << "TotalIntersections" << totalIntersections << "\n";
|
|
312
|
+
std::cout << std::setw(fieldWidth) << "PropertyIntersections" << propertyIntersections << "\n";
|
|
313
|
+
std::cout << std::setw(fieldWidth) << "UniqueIntersections" << uniqueIntersections << "\n";
|
|
314
|
+
std::cout << std::setw(fieldWidth) << "LookupIntersections" << lookupIntersections << "\n";
|
|
315
|
+
std::cout << std::setw(fieldWidth) << "PreemptiveIntersections" << preemptiveIntersections << "\n";
|
|
313
316
|
|
|
314
317
|
std::cout.flush();
|
|
315
318
|
}
|
|
@@ -379,18 +382,21 @@ private:
|
|
|
379
382
|
inline void initStats(void)
|
|
380
383
|
{
|
|
381
384
|
|
|
382
|
-
totalUnions
|
|
383
|
-
uniqueUnions
|
|
384
|
-
propertyUnions
|
|
385
|
-
lookupUnions
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
385
|
+
totalUnions = 0;
|
|
386
|
+
uniqueUnions = 0;
|
|
387
|
+
propertyUnions = 0;
|
|
388
|
+
lookupUnions = 0;
|
|
389
|
+
preemptiveUnions = 0;
|
|
390
|
+
totalComplements = 0;
|
|
391
|
+
uniqueComplements = 0;
|
|
392
|
+
propertyComplements = 0;
|
|
393
|
+
lookupComplements = 0;
|
|
394
|
+
preemptiveComplements = 0;
|
|
395
|
+
totalIntersections = 0;
|
|
396
|
+
uniqueIntersections = 0;
|
|
397
|
+
propertyIntersections = 0;
|
|
398
|
+
lookupIntersections = 0;
|
|
399
|
+
preemptiveIntersections = 0;
|
|
394
400
|
}
|
|
395
401
|
|
|
396
402
|
private:
|
|
@@ -418,14 +424,17 @@ private:
|
|
|
418
424
|
u64_t uniqueUnions;
|
|
419
425
|
u64_t propertyUnions;
|
|
420
426
|
u64_t lookupUnions;
|
|
427
|
+
u64_t preemptiveUnions;
|
|
421
428
|
u64_t totalComplements;
|
|
422
429
|
u64_t uniqueComplements;
|
|
423
430
|
u64_t propertyComplements;
|
|
424
431
|
u64_t lookupComplements;
|
|
432
|
+
u64_t preemptiveComplements;
|
|
425
433
|
u64_t totalIntersections;
|
|
426
434
|
u64_t uniqueIntersections;
|
|
427
435
|
u64_t propertyIntersections;
|
|
428
436
|
u64_t lookupIntersections;
|
|
437
|
+
u64_t preemptiveIntersections;
|
|
429
438
|
};
|
|
430
439
|
|
|
431
440
|
} // End namespace SVF
|
|
@@ -165,11 +165,7 @@ protected:
|
|
|
165
165
|
|
|
166
166
|
|
|
167
167
|
/// Finalization of pointer analysis, and normalize points-to information to Bit Vector representation
|
|
168
|
-
virtual void finalize()
|
|
169
|
-
{
|
|
170
|
-
normalizePointsTo();
|
|
171
|
-
PointerAnalysis::finalize();
|
|
172
|
-
}
|
|
168
|
+
virtual void finalize();
|
|
173
169
|
|
|
174
170
|
/// Update callgraph. This should be implemented by its subclass.
|
|
175
171
|
virtual inline bool updateCallGraph(const CallSiteToFunPtrMap&)
|
|
@@ -200,6 +200,14 @@ private:
|
|
|
200
200
|
std::vector<Word> words;
|
|
201
201
|
};
|
|
202
202
|
|
|
203
|
+
template <>
|
|
204
|
+
struct Hash<CoreBitVector>
|
|
205
|
+
{
|
|
206
|
+
size_t operator()(const CoreBitVector &cbv) const {
|
|
207
|
+
return cbv.hash();
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
|
|
203
211
|
};
|
|
204
212
|
|
|
205
213
|
#endif // COREBITVECTOR_H_
|
package/include/Util/Options.h
CHANGED
|
@@ -73,6 +73,9 @@ public:
|
|
|
73
73
|
/// Time limit for the Andersen's analyses.
|
|
74
74
|
static const llvm::cl::opt<unsigned> AnderTimeLimit;
|
|
75
75
|
|
|
76
|
+
/// Number of threads for the versioning phase.
|
|
77
|
+
static const llvm::cl::opt<unsigned> VersioningThreads;
|
|
78
|
+
|
|
76
79
|
// ContextDDA.cpp
|
|
77
80
|
static const llvm::cl::opt<unsigned long long> CxtBudget;
|
|
78
81
|
|
|
@@ -82,7 +82,6 @@ typedef u32_t EdgeID;
|
|
|
82
82
|
typedef unsigned SymID;
|
|
83
83
|
typedef unsigned CallSiteID;
|
|
84
84
|
typedef unsigned ThreadID;
|
|
85
|
-
typedef unsigned Version;
|
|
86
85
|
|
|
87
86
|
typedef llvm::SparseBitVector<> NodeBS;
|
|
88
87
|
typedef llvm::SparseBitVector<> SparseBitVector;
|
|
@@ -111,7 +110,6 @@ template <typename T, unsigned N>
|
|
|
111
110
|
using SmallVector = llvm::SmallVector<T, N>;
|
|
112
111
|
|
|
113
112
|
typedef std::pair<NodeID, NodeID> NodePair;
|
|
114
|
-
typedef std::pair<NodeID, Version> VersionedVar;
|
|
115
113
|
typedef OrderedSet<NodeID> OrderedNodeSet;
|
|
116
114
|
typedef Set<NodeID> NodeSet;
|
|
117
115
|
typedef Set<NodePair> NodePairSet;
|
|
@@ -127,6 +125,11 @@ typedef NodeSet EdgeSet;
|
|
|
127
125
|
typedef SmallVector16 CallStrCxt;
|
|
128
126
|
typedef llvm::StringMap<u32_t> StringMap;
|
|
129
127
|
|
|
128
|
+
typedef unsigned Version;
|
|
129
|
+
typedef Set<Version> VersionSet;
|
|
130
|
+
typedef std::pair<NodeID, Version> VersionedVar;
|
|
131
|
+
typedef Set<VersionedVar> VersionedVarSet;
|
|
132
|
+
|
|
130
133
|
// TODO: be explicit that this is a pair of 32-bit unsigneds?
|
|
131
134
|
template <> struct Hash<NodePair>
|
|
132
135
|
{
|
|
@@ -298,4 +301,21 @@ struct std::hash<llvm::SparseBitVector<N>>
|
|
|
298
301
|
}
|
|
299
302
|
};
|
|
300
303
|
|
|
304
|
+
template <typename T>
|
|
305
|
+
struct std::hash<std::vector<T>>
|
|
306
|
+
{
|
|
307
|
+
size_t operator()(const std::vector<T> &v) const {
|
|
308
|
+
// TODO: repetition with CBV.
|
|
309
|
+
size_t h = v.size();
|
|
310
|
+
|
|
311
|
+
SVF::Hash<T> hf;
|
|
312
|
+
for (const T &t : v)
|
|
313
|
+
{
|
|
314
|
+
h ^= hf(t) + 0x9e3779b9 + (h << 6) + (h >> 2);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
return h;
|
|
318
|
+
}
|
|
319
|
+
};
|
|
320
|
+
|
|
301
321
|
#endif /* INCLUDE_UTIL_SVFBASICTYPES_H_ */
|