svf-tools 1.0.560 → 1.0.563
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/README.md +1 -1
- package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +43 -43
- package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/Andersen_8h_source.html +56 -56
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +45 -45
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +43 -43
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +36 -36
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +21 -21
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +53 -53
- package/SVF-doxygen/html/html/DDAStat_8h_source.html +51 -51
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +112 -112
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +17 -17
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +40 -40
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +52 -52
- package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +2 -2
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +42 -42
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +6 -6
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +10 -10
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +35 -35
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +114 -114
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +7 -7
- package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +95 -95
- package/SVF-doxygen/html/html/MHP_8h_source.html +135 -135
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +6 -6
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +6 -6
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +34 -34
- package/SVF-doxygen/html/html/MTAStat_8h_source.html +14 -14
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +29 -29
- package/SVF-doxygen/html/html/MTA_8h_source.html +24 -24
- package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MemPartition_8h_source.html +4 -4
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +50 -50
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +93 -93
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +60 -60
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +103 -103
- package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +185 -185
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/PCG_8h_source.html +52 -52
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +7 -4
- package/SVF-doxygen/html/html/PTAStat_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +40 -40
- package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +181 -181
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +30 -30
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +60 -60
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/SVFGStat_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/SVFG_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +37 -37
- package/SVF-doxygen/html/html/SVFModule_8cpp.html +1 -0
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +6 -2
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +6 -3
- package/SVF-doxygen/html/html/SVFStat_8h_source.html +7 -4
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +7 -7
- package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SaberCheckerAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +66 -66
- package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +6 -6
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +44 -44
- package/SVF-doxygen/html/html/TCT_8h_source.html +93 -93
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +26 -26
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +38 -38
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/WPAStat_8h_source.html +2 -2
- package/SVF-doxygen/html/html/cfl_8cpp.html +1 -1
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +106 -106
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +43 -43
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat-members.html +15 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +25 -18
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +39 -39
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +101 -101
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +58 -58
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat-members.html +14 -11
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +173 -166
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +288 -288
- package/SVF-doxygen/html/html/classSVF_1_1DFPTData.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1DiffPTData.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1EntryCHI.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +50 -50
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +72 -72
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat-members.html +15 -12
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +9 -2
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +218 -218
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat-members.html +14 -11
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +7 -0
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +36 -33
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1LoadMU.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +337 -337
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +248 -248
- package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +200 -200
- package/SVF-doxygen/html/html/classSVF_1_1MSSACHI.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MSSADEF.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MSSAMU.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +54 -54
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +181 -181
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat-members.html +13 -10
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +54 -47
- package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +269 -269
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat-members.html +19 -16
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +26 -19
- package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +128 -128
- package/SVF-doxygen/html/html/classSVF_1_1MutableDiffPTData.html +55 -55
- package/SVF-doxygen/html/html/classSVF_1_1MutableIncDFPTData.html +88 -88
- package/SVF-doxygen/html/html/classSVF_1_1MutablePTData.html +78 -78
- package/SVF-doxygen/html/html/classSVF_1_1MutableVersionedPTData.html +77 -77
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +131 -131
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat-members.html +14 -11
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +23 -12
- package/SVF-doxygen/html/html/classSVF_1_1PTData.html +32 -32
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +107 -107
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +66 -66
- package/SVF-doxygen/html/html/classSVF_1_1PersistentIncDFPTData.html +84 -84
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +77 -77
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +134 -134
- package/SVF-doxygen/html/html/classSVF_1_1PersistentVersionedPTData.html +77 -77
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +161 -161
- package/SVF-doxygen/html/html/classSVF_1_1RaceValidator.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1RetMU.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFGNodeLockSpan.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat-members.html +26 -23
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +19 -12
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +128 -122
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +5 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat-members.html +6 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +89 -7
- package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +157 -157
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1StoreCHI.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +264 -264
- package/SVF-doxygen/html/html/classSVF_1_1TCTEdge.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +106 -106
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat-members.html +18 -15
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +16 -9
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedPTData.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +6 -6
- package/SVF-doxygen/html/html/dda_8cpp.html +3 -3
- package/SVF-doxygen/html/html/dda_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/functions_func_s.html +1 -1
- package/SVF-doxygen/html/html/functions_i.html +3 -3
- package/SVF-doxygen/html/html/functions_l.html +6 -6
- package/SVF-doxygen/html/html/functions_o.html +15 -15
- package/SVF-doxygen/html/html/functions_p.html +1 -1
- package/SVF-doxygen/html/html/functions_s.html +9 -11
- package/SVF-doxygen/html/html/functions_t.html +17 -10
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/functions_vars_t.html +9 -0
- package/SVF-doxygen/html/html/functions_w.html +11 -11
- package/SVF-doxygen/html/html/mta_8cpp.html +3 -3
- package/SVF-doxygen/html/html/mta_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/namespaceSVF.html +11 -11
- package/SVF-doxygen/html/html/saber_8cpp.html +1 -1
- package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/search/all_10.js +3 -3
- package/SVF-doxygen/html/html/search/all_11.js +2 -2
- package/SVF-doxygen/html/html/search/all_12.js +6 -6
- package/SVF-doxygen/html/html/search/all_13.js +9 -6
- package/SVF-doxygen/html/html/search/all_14.js +1 -1
- package/SVF-doxygen/html/html/search/all_15.js +2 -2
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_9.js +1 -1
- package/SVF-doxygen/html/html/search/all_c.js +3 -3
- package/SVF-doxygen/html/html/search/all_e.js +2 -2
- package/SVF-doxygen/html/html/search/all_f.js +3 -3
- package/SVF-doxygen/html/html/search/functions_11.js +1 -1
- package/SVF-doxygen/html/html/search/variables_13.js +5 -2
- package/SVF-doxygen/html/html/search/variables_14.js +1 -1
- package/SVF-doxygen/html/html/search/variables_c.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1MemRegion_1_1equalMemRegion.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1VersionedFlowSensitive_1_1SCC_1_1NodeData.html +4 -4
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +15 -15
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCTNode_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1TCT_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SVFGNodeLockSpan_01_4.html +3 -3
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +2 -2
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
- package/include/DDA/ContextDDA.h +29 -0
- package/include/DDA/DDAClient.h +23 -0
- package/include/DDA/DDAPass.h +22 -0
- package/include/DDA/DDAStat.h +22 -0
- package/include/DDA/DDAVFSolver.h +26 -4
- package/include/DDA/FlowDDA.h +29 -0
- package/include/MSSA/MSSAMuChi.h +1 -1
- package/include/MSSA/MemPartition.h +1 -1
- package/include/MSSA/MemRegion.h +5 -1
- package/include/MSSA/MemSSA.h +7 -1
- package/include/MSSA/SVFGBuilder.h +1 -1
- package/include/MTA/FSMPTA.h +26 -0
- package/include/MTA/LockAnalysis.h +22 -0
- package/include/MTA/MHP.h +22 -0
- package/include/MTA/MTA.h +27 -1
- package/include/MTA/MTAStat.h +22 -0
- package/include/MTA/PCG.h +22 -0
- package/include/MTA/TCT.h +22 -0
- package/include/MemoryModel/AbstractPointsToDS.h +34 -0
- package/include/MemoryModel/ConditionalPT.h +1 -1
- package/include/MemoryModel/LocationSet.h +1 -1
- package/include/MemoryModel/MutablePointsToDS.h +32 -0
- package/include/MemoryModel/PAGBuilderFromFile.h +2 -2
- package/include/MemoryModel/PersistentPointsToCache.h +3 -1
- package/include/MemoryModel/PersistentPointsToDS.h +10 -0
- package/include/MemoryModel/PointerAnalysis.h +1 -1
- package/include/MemoryModel/PointerAnalysisImpl.h +1 -1
- package/include/MemoryModel/SVFStatements.h +1 -1
- package/include/SABER/DoubleFreeChecker.h +1 -1
- package/include/SABER/FileChecker.h +1 -1
- package/include/SABER/LeakChecker.h +1 -1
- package/include/SABER/ProgSlice.h +8 -1
- package/include/SABER/SaberAnnotator.h +1 -1
- package/include/SABER/SaberCheckerAPI.h +1 -1
- package/include/SABER/SaberCondAllocator.h +1 -1
- package/include/SABER/SaberSVFGBuilder.h +1 -1
- package/include/SABER/SrcSnkDDA.h +8 -1
- package/include/SABER/SrcSnkSolver.h +1 -1
- package/include/Util/SVFStat.h +4 -0
- package/include/WPA/Andersen.h +5 -0
- package/include/WPA/TypeAnalysis.h +1 -1
- package/include/WPA/VersionedFlowSensitive.h +4 -0
- package/lib/DDA/ContextDDA.cpp +22 -0
- package/lib/DDA/DDAClient.cpp +22 -0
- package/lib/DDA/DDAPass.cpp +23 -0
- package/lib/DDA/DDAStat.cpp +22 -0
- package/lib/DDA/FlowDDA.cpp +22 -0
- package/lib/MTA/FSMPTA.cpp +22 -0
- package/lib/MTA/LockAnalysis.cpp +26 -4
- package/lib/MTA/MHP.cpp +25 -3
- package/lib/MTA/MTA.cpp +23 -0
- package/lib/MTA/MTAStat.cpp +22 -0
- package/lib/MTA/PCG.cpp +22 -0
- package/lib/MTA/TCT.cpp +23 -0
- package/lib/MemoryModel/LocationSet.cpp +1 -1
- package/lib/MemoryModel/PAGBuilderFromFile.cpp +1 -1
- package/lib/MemoryModel/PointerAnalysis.cpp +1 -1
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +23 -0
- package/lib/SABER/DoubleFreeChecker.cpp +1 -1
- package/lib/SABER/FileChecker.cpp +1 -1
- package/lib/SABER/LeakChecker.cpp +1 -1
- package/lib/SABER/ProgSlice.cpp +1 -1
- package/lib/SABER/SaberAnnotator.cpp +1 -1
- package/lib/SABER/SaberCheckerAPI.cpp +1 -1
- package/lib/SABER/SaberCondAllocator.cpp +1 -1
- package/lib/SABER/SaberSVFGBuilder.cpp +1 -1
- package/lib/SABER/SrcSnkDDA.cpp +1 -1
- package/lib/SVF-FE/LLVMModule.cpp +5 -0
- package/lib/SVF-FE/SVFIRBuilder.cpp +26 -0
- package/lib/Util/ExtAPI.cpp +42 -0
- package/lib/Util/PTAStat.cpp +5 -0
- package/lib/Util/SVFModule.cpp +4 -0
- package/lib/Util/SVFStat.cpp +5 -0
- package/lib/WPA/Steensgaard.cpp +22 -0
- package/lib/WPA/TypeAnalysis.cpp +1 -1
- package/lib/WPA/WPAPass.cpp +1 -1
- package/package.json +1 -1
package/lib/MTA/FSMPTA.cpp
CHANGED
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- FSMPTA.cpp -- Flow-sensitive analysis of multithreaded programs-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <Yulei Sui>
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
// This program is free software: you can redistribute it and/or modify
|
|
9
|
+
// it under the terms of the GNU General Public License as published by
|
|
10
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
// (at your option) any later version.
|
|
12
|
+
|
|
13
|
+
// This program is distributed in the hope that it will be useful,
|
|
14
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
// GNU General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* FSMPTA.cpp
|
|
3
25
|
*
|
package/lib/MTA/LockAnalysis.cpp
CHANGED
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- LockAnalysis.cpp -- Analysis of locksets-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <Yulei Sui>
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
// This program is free software: you can redistribute it and/or modify
|
|
9
|
+
// it under the terms of the GNU General Public License as published by
|
|
10
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
// (at your option) any later version.
|
|
12
|
+
|
|
13
|
+
// This program is distributed in the hope that it will be useful,
|
|
14
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
// GNU General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* LocksetAnalysis.cpp
|
|
3
25
|
*
|
|
@@ -569,12 +591,12 @@ bool LockAnalysis::isProtectedByCommonLock(const Instruction *i1, const Instruct
|
|
|
569
591
|
{
|
|
570
592
|
numOfTotalQueries++;
|
|
571
593
|
bool commonlock = false;
|
|
572
|
-
DOTIMESTAT(double queryStart = PTAStat::getClk());
|
|
594
|
+
DOTIMESTAT(double queryStart = PTAStat::getClk(true));
|
|
573
595
|
if (isInsideIntraLock(i1) && isInsideIntraLock(i2))
|
|
574
596
|
commonlock = isProtectedByCommonCILock(i1,i2) ;
|
|
575
597
|
else
|
|
576
598
|
commonlock = isProtectedByCommonCxtLock(i1,i2);
|
|
577
|
-
DOTIMESTAT(double queryEnd = PTAStat::getClk());
|
|
599
|
+
DOTIMESTAT(double queryEnd = PTAStat::getClk(true));
|
|
578
600
|
DOTIMESTAT(lockQueriesTime += (queryEnd - queryStart) / TIMEINTERVAL);
|
|
579
601
|
return commonlock;
|
|
580
602
|
}
|
|
@@ -645,7 +667,7 @@ bool LockAnalysis::isProtectedByCommonCxtLock(const Instruction *i1, const Instr
|
|
|
645
667
|
*/
|
|
646
668
|
bool LockAnalysis::isInSameSpan(const Instruction *i1, const Instruction *i2)
|
|
647
669
|
{
|
|
648
|
-
DOTIMESTAT(double queryStart = PTAStat::getClk());
|
|
670
|
+
DOTIMESTAT(double queryStart = PTAStat::getClk(true));
|
|
649
671
|
|
|
650
672
|
bool sameSpan = false;
|
|
651
673
|
if (isInsideIntraLock(i1) && isInsideIntraLock(i2))
|
|
@@ -653,7 +675,7 @@ bool LockAnalysis::isInSameSpan(const Instruction *i1, const Instruction *i2)
|
|
|
653
675
|
else
|
|
654
676
|
sameSpan = isInSameCSSpan(i1, i2);
|
|
655
677
|
|
|
656
|
-
DOTIMESTAT(double queryEnd = PTAStat::getClk());
|
|
678
|
+
DOTIMESTAT(double queryEnd = PTAStat::getClk(true));
|
|
657
679
|
DOTIMESTAT(lockQueriesTime += (queryEnd - queryStart) / TIMEINTERVAL);
|
|
658
680
|
return sameSpan;
|
|
659
681
|
}
|
package/lib/MTA/MHP.cpp
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
|
+
//===- MHP.cpp -- May-happen-in-parallel analysis-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <Yulei Sui>
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
// This program is free software: you can redistribute it and/or modify
|
|
9
|
+
// it under the terms of the GNU General Public License as published by
|
|
10
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
// (at your option) any later version.
|
|
12
|
+
|
|
13
|
+
// This program is distributed in the hope that it will be useful,
|
|
14
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
// GNU General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
|
-
*
|
|
24
|
+
* MHP.cpp
|
|
3
25
|
*
|
|
4
26
|
* Created on: Jan 21, 2014
|
|
5
27
|
* Author: Yulei Sui, Peng Di
|
|
@@ -605,9 +627,9 @@ bool MHP::mayHappenInParallel(const Instruction* i1, const Instruction* i2)
|
|
|
605
627
|
{
|
|
606
628
|
numOfTotalQueries++;
|
|
607
629
|
|
|
608
|
-
DOTIMESTAT(double queryStart = PTAStat::getClk());
|
|
630
|
+
DOTIMESTAT(double queryStart = PTAStat::getClk(true));
|
|
609
631
|
bool mhp=mayHappenInParallelCache(i1,i2);
|
|
610
|
-
DOTIMESTAT(double queryEnd = PTAStat::getClk());
|
|
632
|
+
DOTIMESTAT(double queryEnd = PTAStat::getClk(true));
|
|
611
633
|
DOTIMESTAT(interleavingQueriesTime += (queryEnd - queryStart) / TIMEINTERVAL);
|
|
612
634
|
|
|
613
635
|
return mhp;
|
package/lib/MTA/MTA.cpp
CHANGED
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
//===- MTA.h -- Analysis of multithreaded programs-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <Yulei Sui>
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
// This program is free software: you can redistribute it and/or modify
|
|
9
|
+
// it under the terms of the GNU General Public License as published by
|
|
10
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
// (at your option) any later version.
|
|
12
|
+
|
|
13
|
+
// This program is distributed in the hope that it will be useful,
|
|
14
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
// GNU General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
23
|
+
|
|
1
24
|
/*
|
|
2
25
|
* MTA.cpp
|
|
3
26
|
*
|
package/lib/MTA/MTAStat.cpp
CHANGED
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- MTAStat.cpp -- Statistics for MTA-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <Yulei Sui>
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
// This program is free software: you can redistribute it and/or modify
|
|
9
|
+
// it under the terms of the GNU General Public License as published by
|
|
10
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
// (at your option) any later version.
|
|
12
|
+
|
|
13
|
+
// This program is distributed in the hope that it will be useful,
|
|
14
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
// GNU General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* MTAStat.cpp
|
|
3
25
|
*
|
package/lib/MTA/PCG.cpp
CHANGED
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- PCG.cpp -- Procedure creation graph-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <Yulei Sui>
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
// This program is free software: you can redistribute it and/or modify
|
|
9
|
+
// it under the terms of the GNU General Public License as published by
|
|
10
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
// (at your option) any later version.
|
|
12
|
+
|
|
13
|
+
// This program is distributed in the hope that it will be useful,
|
|
14
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
// GNU General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* PCG.cpp
|
|
3
25
|
*
|
package/lib/MTA/TCT.cpp
CHANGED
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
//===- TCT.cpp -- Thread creation tree-------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <Yulei Sui>
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
// This program is free software: you can redistribute it and/or modify
|
|
9
|
+
// it under the terms of the GNU General Public License as published by
|
|
10
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
// (at your option) any later version.
|
|
12
|
+
|
|
13
|
+
// This program is distributed in the hope that it will be useful,
|
|
14
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
// GNU General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
23
|
+
|
|
1
24
|
/*
|
|
2
25
|
* TCT.cpp
|
|
3
26
|
*
|
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
//===- PointerAnalysisImpl.cpp -- Pointer analysis implementation--------------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-> <Yulei Sui>
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
// This program is free software: you can redistribute it and/or modify
|
|
9
|
+
// it under the terms of the GNU General Public License as published by
|
|
10
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
// (at your option) any later version.
|
|
12
|
+
|
|
13
|
+
// This program is distributed in the hope that it will be useful,
|
|
14
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
// GNU General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
23
|
+
|
|
1
24
|
/*
|
|
2
25
|
* PointerAnalysisImpl.cpp
|
|
3
26
|
*
|
package/lib/SABER/ProgSlice.cpp
CHANGED
package/lib/SABER/SrcSnkDDA.cpp
CHANGED
|
@@ -83,6 +83,8 @@ SVFModule* LLVMModuleSet::buildSVFModule(Module &mod)
|
|
|
83
83
|
|
|
84
84
|
SVFModule* LLVMModuleSet::buildSVFModule(const std::vector<std::string> &moduleNameVec)
|
|
85
85
|
{
|
|
86
|
+
double startTime = SVFStat::getClk(true);
|
|
87
|
+
|
|
86
88
|
assert(llvmModuleSet && "LLVM Module set needs to be created!");
|
|
87
89
|
|
|
88
90
|
loadModules(moduleNameVec);
|
|
@@ -94,6 +96,9 @@ SVFModule* LLVMModuleSet::buildSVFModule(const std::vector<std::string> &moduleN
|
|
|
94
96
|
|
|
95
97
|
build();
|
|
96
98
|
|
|
99
|
+
double endTime = SVFStat::getClk(true);
|
|
100
|
+
SVFStat::timeOfBuildingLLVMModule = (endTime - startTime)/TIMEINTERVAL;
|
|
101
|
+
|
|
97
102
|
return svfModule;
|
|
98
103
|
}
|
|
99
104
|
|
|
@@ -49,6 +49,7 @@ using namespace LLVMUtil;
|
|
|
49
49
|
*/
|
|
50
50
|
SVFIR* SVFIRBuilder::build(SVFModule* svfModule)
|
|
51
51
|
{
|
|
52
|
+
double startTime = SVFStat::getClk(true);
|
|
52
53
|
|
|
53
54
|
// We read SVFIR from a user-defined txt instead of parsing SVFIR from LLVM IR
|
|
54
55
|
if (SVFModule::pagReadFromTXT())
|
|
@@ -141,6 +142,10 @@ SVFIR* SVFIRBuilder::build(SVFModule* svfModule)
|
|
|
141
142
|
LLVMLoopAnalysis loopAnalysis;
|
|
142
143
|
loopAnalysis.build(pag->getICFG());
|
|
143
144
|
}
|
|
145
|
+
|
|
146
|
+
double endTime = SVFStat::getClk(true);
|
|
147
|
+
SVFStat::timeOfBuildingSVFIR = (endTime - startTime)/TIMEINTERVAL;
|
|
148
|
+
|
|
144
149
|
return pag;
|
|
145
150
|
}
|
|
146
151
|
|
|
@@ -1281,6 +1286,27 @@ void SVFIRBuilder::handleExtCall(CallSite cs, const SVFFunction *callee)
|
|
|
1281
1286
|
else
|
|
1282
1287
|
writeWrnMsg("We need two valid NodeIDs and an offset to add a Gep edge");
|
|
1283
1288
|
}
|
|
1289
|
+
else if (op.getOperator() == "BinaryOPStmt")
|
|
1290
|
+
{
|
|
1291
|
+
if (op.getOperands().size() == 4)
|
|
1292
|
+
addBinaryOPEdge(op.getOperands()[0], op.getOperands()[1], op.getOperands()[2], op.getOperands()[3]);
|
|
1293
|
+
else
|
|
1294
|
+
writeWrnMsg("We need four valid NodeIDs to add a BinaryOP edge");
|
|
1295
|
+
}
|
|
1296
|
+
else if (op.getOperator() == "UnaryOPStmt")
|
|
1297
|
+
{
|
|
1298
|
+
if (op.getOperands().size() == 3)
|
|
1299
|
+
addUnaryOPEdge(op.getOperands()[0], op.getOperands()[1], op.getOperands()[2]);
|
|
1300
|
+
else
|
|
1301
|
+
writeWrnMsg("We need three valid NodeIDs to add a UnaryOP edge");
|
|
1302
|
+
}
|
|
1303
|
+
else if (op.getOperator() == "CmpStmt")
|
|
1304
|
+
{
|
|
1305
|
+
if (op.getOperands().size() == 4)
|
|
1306
|
+
addCmpEdge(op.getOperands()[0], op.getOperands()[1], op.getOperands()[2], op.getOperands()[3]);
|
|
1307
|
+
else
|
|
1308
|
+
writeWrnMsg("We need four valid NodeIDs to add a CmpStmt edge");
|
|
1309
|
+
}
|
|
1284
1310
|
else if (op.getOperator() == "memset_like")
|
|
1285
1311
|
{
|
|
1286
1312
|
// this is for memset(void *str, int c, size_t n)
|
package/lib/Util/ExtAPI.cpp
CHANGED
|
@@ -266,6 +266,48 @@ s32_t ExtAPI::getNodeIDType(std::string s)
|
|
|
266
266
|
return -2;
|
|
267
267
|
else if(argStr == "Obj")
|
|
268
268
|
return -3;
|
|
269
|
+
else if(argStr == "Add")
|
|
270
|
+
return BinaryOperator::Add;
|
|
271
|
+
else if(argStr == "Sub")
|
|
272
|
+
return BinaryOperator::Sub;
|
|
273
|
+
else if(argStr == "Mul")
|
|
274
|
+
return BinaryOperator::Mul;
|
|
275
|
+
else if(argStr == "SDiv")
|
|
276
|
+
return BinaryOperator::SDiv;
|
|
277
|
+
else if(argStr == "SRem")
|
|
278
|
+
return BinaryOperator::SRem;
|
|
279
|
+
else if(argStr == "Xor")
|
|
280
|
+
return BinaryOperator::Xor;
|
|
281
|
+
else if(argStr == "And")
|
|
282
|
+
return BinaryOperator::And;
|
|
283
|
+
else if(argStr == "Or")
|
|
284
|
+
return BinaryOperator::Or;
|
|
285
|
+
else if(argStr == "AShr")
|
|
286
|
+
return BinaryOperator::AShr;
|
|
287
|
+
else if(argStr == "Shl")
|
|
288
|
+
return BinaryOperator::Shl;
|
|
289
|
+
else if(argStr == "ICMP_EQ")
|
|
290
|
+
return CmpInst::ICMP_EQ;
|
|
291
|
+
else if(argStr == "ICMP_NE")
|
|
292
|
+
return CmpInst::ICMP_NE;
|
|
293
|
+
else if(argStr == "ICMP_UGT")
|
|
294
|
+
return CmpInst::ICMP_UGT;
|
|
295
|
+
else if(argStr == "ICMP_SGT")
|
|
296
|
+
return CmpInst::ICMP_SGT;
|
|
297
|
+
else if(argStr == "ICMP_UGE")
|
|
298
|
+
return CmpInst::ICMP_UGE;
|
|
299
|
+
else if(argStr == "ICMP_SGE")
|
|
300
|
+
return CmpInst::ICMP_SGE;
|
|
301
|
+
else if(argStr == "ICMP_ULT")
|
|
302
|
+
return CmpInst::ICMP_ULT;
|
|
303
|
+
else if(argStr == "ICMP_SLT")
|
|
304
|
+
return CmpInst::ICMP_SLT;
|
|
305
|
+
else if(argStr == "ICMP_ULE")
|
|
306
|
+
return CmpInst::ICMP_ULE;
|
|
307
|
+
else if(argStr == "ICMP_SLE")
|
|
308
|
+
return CmpInst::ICMP_SLE;
|
|
309
|
+
else if(argStr == "FNeg")
|
|
310
|
+
return UnaryOperator::FNeg;
|
|
269
311
|
else // offset
|
|
270
312
|
{
|
|
271
313
|
u32_t i=0;
|
package/lib/Util/PTAStat.cpp
CHANGED
|
@@ -207,6 +207,11 @@ void PTAStat::performStat()
|
|
|
207
207
|
generalNumMap[NumOfIndirectCallSites] = pag->getIndirectCallsites().size();
|
|
208
208
|
generalNumMap["TotalCallSite"] = pag->getCallSiteSet().size();
|
|
209
209
|
generalNumMap["LocalVarInRecur"] = localVarInRecursion.count();
|
|
210
|
+
|
|
211
|
+
timeStatMap["LLVMIRTime"] = SVFStat::timeOfBuildingLLVMModule;
|
|
212
|
+
timeStatMap["SymbolTableTime"] = SVFStat::timeOfBuildingSymbolTable;
|
|
213
|
+
timeStatMap["SVFIRTime"] = SVFStat::timeOfBuildingSVFIR;
|
|
214
|
+
|
|
210
215
|
// REFACTOR-TODO bitcastInstStat();
|
|
211
216
|
branchStat();
|
|
212
217
|
|
package/lib/Util/SVFModule.cpp
CHANGED
|
@@ -24,11 +24,13 @@
|
|
|
24
24
|
#include "Util/SVFModule.h"
|
|
25
25
|
#include "SVF-FE/SymbolTableBuilder.h"
|
|
26
26
|
#include "Util/SVFUtil.h"
|
|
27
|
+
#include "Util/SVFStat.h"
|
|
27
28
|
|
|
28
29
|
using namespace SVF;
|
|
29
30
|
|
|
30
31
|
void SVFModule::buildSymbolTableInfo()
|
|
31
32
|
{
|
|
33
|
+
double startTime = SVFStat::getClk(true);
|
|
32
34
|
if (!pagReadFromTXT())
|
|
33
35
|
{
|
|
34
36
|
/// building symbol table
|
|
@@ -37,4 +39,6 @@ void SVFModule::buildSymbolTableInfo()
|
|
|
37
39
|
SymbolTableBuilder builder(symInfo);
|
|
38
40
|
builder.buildMemModel(this);
|
|
39
41
|
}
|
|
42
|
+
double endTime = SVFStat::getClk(true);
|
|
43
|
+
SVFStat::timeOfBuildingSymbolTable = (endTime - startTime)/TIMEINTERVAL;
|
|
40
44
|
}
|
package/lib/Util/SVFStat.cpp
CHANGED
|
@@ -32,6 +32,11 @@
|
|
|
32
32
|
|
|
33
33
|
using namespace SVF;
|
|
34
34
|
|
|
35
|
+
double SVFStat::timeOfBuildingLLVMModule = 0;
|
|
36
|
+
double SVFStat::timeOfBuildingSVFIR = 0;
|
|
37
|
+
double SVFStat::timeOfBuildingSymbolTable = 0;
|
|
38
|
+
|
|
39
|
+
|
|
35
40
|
SVFStat::SVFStat() : startTime(0), endTime(0)
|
|
36
41
|
{
|
|
37
42
|
assert((Options::ClockType == ClockType::Wall || Options::ClockType == ClockType::CPU)
|
package/lib/WPA/Steensgaard.cpp
CHANGED
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
//===- Steensgaard.cpp -- Steensgaard's field-insensitive analysis--------------//
|
|
2
|
+
//
|
|
3
|
+
// SVF: Static Value-Flow Analysis
|
|
4
|
+
//
|
|
5
|
+
// Copyright (C) <2013-2017> <Yulei Sui>
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
// This program is free software: you can redistribute it and/or modify
|
|
9
|
+
// it under the terms of the GNU General Public License as published by
|
|
10
|
+
// the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
// (at your option) any later version.
|
|
12
|
+
|
|
13
|
+
// This program is distributed in the hope that it will be useful,
|
|
14
|
+
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
// GNU General Public License for more details.
|
|
17
|
+
|
|
18
|
+
// You should have received a copy of the GNU General Public License
|
|
19
|
+
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
20
|
+
//
|
|
21
|
+
//===----------------------------------------------------------------------===//
|
|
22
|
+
|
|
1
23
|
/*
|
|
2
24
|
* Steensgaard.cpp
|
|
3
25
|
*
|
package/lib/WPA/TypeAnalysis.cpp
CHANGED
package/lib/WPA/WPAPass.cpp
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svf-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.563",
|
|
4
4
|
"description": "* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh) in your terminal, that's it!</b> * <b>SVF now supports LLVM-10.0.0! </b> * <b>We thank [bsauce](https://github.com/bsauce) for writing a user manual of SVF ([link1](https://www.jianshu.com/p/068a08ec749c) and [link2](https://www.jianshu.com/p/777c30d4240e)) in Chinese </b> * <b>SVF now supports LLVM-9.0.0 (Thank [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) for his help!). </b> * <b>SVF now supports a set of [field-sensitive pointer analyses](https://yuleisui.github.io/publications/sas2019a.pdf). </b> * <b>[Use SVF as an external lib](https://github.com/SVF-tools/SVF/wiki/Using-SVF-as-a-lib-in-your-own-tool) for your own project (Contributed by [Hongxu Chen](https://github.com/HongxuChen)). </b> * <b>SVF now supports LLVM-7.0.0. </b> * <b>SVF now supports Docker. [Try SVF in Docker](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! </b> * <b>SVF now supports [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38) (Contributed by [Jack Anthony](https://github.com/jackanth)). </b> * <b>SVF now supports [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23) (Contributed by Jared Carlson. Thank [Jared](https://github.com/jcarlson23) and [Will](https://github.com/dtzWill) for their in-depth [discussions](https://github.com/svf-tools/SVF/pull/18) about updating SVF!) </b> * <b>SVF now supports analysis for C++ programs.</b> <br />",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|