svf-tools 1.0.306 → 1.0.310
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/AndersenLCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
- package/SVF-doxygen/html/html/BasicTypes_8h_source.html +8 -8
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +6 -6
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExternalPAG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FSMPTA_8cpp_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 +3 -3
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PAGBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PAG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +8 -7
- package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +25 -22
- package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +18 -14
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +68 -68
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +23 -23
- package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +23 -23
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +8 -7
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
- 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 +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiffWithType.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +81 -78
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +115 -115
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1CopyPE.html +1 -1
- 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_1DDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1FIObjPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +36 -36
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +4 -4
- 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_1GepObjPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
- 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_1IntraMSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LoadPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PAG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilder.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +18 -17
- package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache-members.html +19 -16
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +188 -95
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +2 -1
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
- 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 +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +3 -3
- 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 +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1StorePE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ValPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +3 -3
- package/SVF-doxygen/html/html/functions_c.html +10 -10
- package/SVF-doxygen/html/html/functions_f.html +1 -1
- package/SVF-doxygen/html/html/functions_func_f.html +1 -1
- package/SVF-doxygen/html/html/functions_i.html +5 -5
- package/SVF-doxygen/html/html/functions_o.html +3 -3
- package/SVF-doxygen/html/html/functions_p.html +23 -20
- package/SVF-doxygen/html/html/functions_r.html +6 -4
- package/SVF-doxygen/html/html/functions_s.html +8 -8
- package/SVF-doxygen/html/html/functions_t.html +6 -6
- package/SVF-doxygen/html/html/functions_u.html +3 -3
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_p.html +9 -0
- 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_s.html +12 -14
- package/SVF-doxygen/html/html/namespaceSVF.html +2 -2
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +10 -9
- package/SVF-doxygen/html/html/search/all_10.js +12 -9
- package/SVF-doxygen/html/html/search/all_12.js +1 -1
- package/SVF-doxygen/html/html/search/all_13.js +7 -7
- package/SVF-doxygen/html/html/search/all_14.js +4 -4
- package/SVF-doxygen/html/html/search/all_15.js +1 -1
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_3.js +1 -1
- package/SVF-doxygen/html/html/search/all_6.js +1 -1
- package/SVF-doxygen/html/html/search/all_9.js +3 -3
- package/SVF-doxygen/html/html/search/all_e.js +4 -4
- package/SVF-doxygen/html/html/search/all_f.js +1 -1
- package/SVF-doxygen/html/html/search/functions_10.js +2 -2
- package/SVF-doxygen/html/html/search/functions_5.js +1 -1
- package/SVF-doxygen/html/html/search/functions_8.js +1 -1
- package/SVF-doxygen/html/html/search/variables_10.js +3 -0
- package/SVF-doxygen/html/html/search/variables_14.js +2 -2
- package/SVF-doxygen/html/html/search/variables_e.js +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +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.html +3 -3
- 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/SVFBasicTypes.h +4 -2
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +7 -0
- package/lib/MemoryModel/PointsTo.cpp +3 -3
- package/lib/Util/PTAStat.cpp +3 -4
- package/lib/Util/SVFUtil.cpp +1 -0
- package/lib/WPA/FlowSensitive.cpp +1 -1
- package/package.json +1 -1
- package/tools/WPA/CMakeLists.txt +3 -1
|
@@ -82,7 +82,7 @@ Public Member Functions</h2></td></tr>
|
|
|
82
82
|
struct std::hash< std::vector< T > ></h3>
|
|
83
83
|
|
|
84
84
|
|
|
85
|
-
<p class="definition">Definition at line <a class="el" href="SVFBasicTypes_8h_source.html#
|
|
85
|
+
<p class="definition">Definition at line <a class="el" href="SVFBasicTypes_8h_source.html#l00307">307</a> of file <a class="el" href="SVFBasicTypes_8h_source.html">SVFBasicTypes.h</a>.</p>
|
|
86
86
|
</div><h2 class="groupheader">Member Function Documentation</h2>
|
|
87
87
|
<a id="a921ca626d87c3eed7b71210cfc24d0dd"></a>
|
|
88
88
|
<h2 class="memtitle"><span class="permalink"><a href="#a921ca626d87c3eed7b71210cfc24d0dd">◆ </a></span>operator()()</h2>
|
|
@@ -110,8 +110,8 @@ template<typename T > </div>
|
|
|
110
110
|
</table>
|
|
111
111
|
</div><div class="memdoc">
|
|
112
112
|
|
|
113
|
-
<p class="definition">Definition at line <a class="el" href="SVFBasicTypes_8h_source.html#
|
|
114
|
-
<div class="fragment"><div class="line"><a name="
|
|
113
|
+
<p class="definition">Definition at line <a class="el" href="SVFBasicTypes_8h_source.html#l00309">309</a> of file <a class="el" href="SVFBasicTypes_8h_source.html">SVFBasicTypes.h</a>.</p>
|
|
114
|
+
<div class="fragment"><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="comment">// TODO: repetition with CBV.</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordtype">size_t</span> h = v.size();</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span> </div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <a class="code" href="structSVF_1_1Hash.html">SVF::Hash<T></a> hf;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> T &t : v)</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  h ^= hf(t) + 0x9e3779b9 + (h << 6) + (h >> 2);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span> </div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordflow">return</span> h;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  }</div><div class="ttc" id="structSVF_1_1Hash_html"><div class="ttname"><a href="structSVF_1_1Hash.html">SVF::Hash</a></div><div class="ttdoc">provide extra hash function for std::pair handling </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00052">SVFBasicTypes.h:52</a></div></div>
|
|
115
115
|
</div><!-- fragment -->
|
|
116
116
|
</div>
|
|
117
117
|
</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&)
|
|
@@ -138,7 +138,9 @@ template <> struct Hash<NodePair>
|
|
|
138
138
|
// and u64_t. If NodeID is not actually u32_t or size_t
|
|
139
139
|
// is not u64_t we should be fine since we get a
|
|
140
140
|
// consistent result.
|
|
141
|
-
|
|
141
|
+
uint32_t first = (uint32_t)(p.first);
|
|
142
|
+
uint32_t second = (uint32_t)(p.second);
|
|
143
|
+
return ((uint64_t)(first) << 32) | (uint64_t)(second);
|
|
142
144
|
}
|
|
143
145
|
};
|
|
144
146
|
|
|
@@ -266,7 +268,7 @@ template <> struct std::hash<SVF::NodePair> {
|
|
|
266
268
|
// consistent result.
|
|
267
269
|
uint32_t first = (uint32_t)(p.first);
|
|
268
270
|
uint32_t second = (uint32_t)(p.second);
|
|
269
|
-
return ((uint64_t)(
|
|
271
|
+
return ((uint64_t)(first) << 32) | (uint64_t)(second);
|
|
270
272
|
}
|
|
271
273
|
};
|
|
272
274
|
|
|
@@ -69,6 +69,13 @@ BVDataPTAImpl::BVDataPTAImpl(PAG* p, PointerAnalysis::PTATY type, bool alias_che
|
|
|
69
69
|
ptaImplTy = BVDataImpl;
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
+
void BVDataPTAImpl::finalize()
|
|
73
|
+
{
|
|
74
|
+
normalizePointsTo();
|
|
75
|
+
PointerAnalysis::finalize();
|
|
76
|
+
if (Options::ptDataBacking == PTBackingType::Persistent && Options::PStat) ptCache.printStats("bv-finalize");
|
|
77
|
+
}
|
|
78
|
+
|
|
72
79
|
/*!
|
|
73
80
|
* Expand all fields of an aggregate in all points-to sets
|
|
74
81
|
*/
|
|
@@ -276,9 +276,9 @@ bool PointsTo::intersectWithComplement(const PointsTo &rhs)
|
|
|
276
276
|
if (type == CBV) return cbv.intersectWithComplement(rhs.cbv);
|
|
277
277
|
else if (type == SBV) return sbv.intersectWithComplement(rhs.sbv);
|
|
278
278
|
else if (type == BV) return bv.intersectWithComplement(rhs.bv);
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
279
|
+
|
|
280
|
+
assert(false && "PointsTo::intersectWithComplement(PT): unknown type");
|
|
281
|
+
abort();
|
|
282
282
|
}
|
|
283
283
|
|
|
284
284
|
void PointsTo::intersectWithComplement(const PointsTo &lhs, const PointsTo &rhs)
|
package/lib/Util/PTAStat.cpp
CHANGED
|
@@ -124,10 +124,9 @@ double PTAStat::getClk(bool mark) {
|
|
|
124
124
|
{
|
|
125
125
|
return CLOCK_IN_MS();
|
|
126
126
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}
|
|
127
|
+
|
|
128
|
+
assert(false && "PTAStat::getClk: unknown clock type");
|
|
129
|
+
abort();
|
|
131
130
|
}
|
|
132
131
|
|
|
133
132
|
void PTAStat::performStat()
|
package/lib/Util/SVFUtil.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.310",
|
|
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": {
|
package/tools/WPA/CMakeLists.txt
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
|
2
|
+
find_package(Threads REQUIRED)
|
|
1
3
|
|
|
2
4
|
if(DEFINED IN_SOURCE_BUILD)
|
|
3
5
|
set(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd)
|
|
@@ -5,7 +7,7 @@ if(DEFINED IN_SOURCE_BUILD)
|
|
|
5
7
|
else()
|
|
6
8
|
add_executable( wpa wpa.cpp )
|
|
7
9
|
|
|
8
|
-
target_link_libraries( wpa Svf Cudd ${llvm_libs} )
|
|
10
|
+
target_link_libraries( wpa Svf Cudd ${llvm_libs} Threads::Threads )
|
|
9
11
|
|
|
10
12
|
set_target_properties( wpa PROPERTIES
|
|
11
13
|
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin )
|