svf-lib 1.0.1376 → 1.0.1377
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-osx/Release-build/svf-llvm/libSvfLLVM.a +0 -0
- package/package.json +1 -1
- package/SVF-linux/svf/include/include/AbstractExecution/AbstractValue.h +0 -79
- package/SVF-linux/svf/include/include/AbstractExecution/AddressValue.h +0 -210
- package/SVF-linux/svf/include/include/AbstractExecution/ExeState.h +0 -223
- package/SVF-linux/svf/include/include/AbstractExecution/IntervalExeState.h +0 -425
- package/SVF-linux/svf/include/include/AbstractExecution/IntervalValue.h +0 -868
- package/SVF-linux/svf/include/include/AbstractExecution/NumericLiteral.h +0 -406
- package/SVF-linux/svf/include/include/AbstractExecution/RelExeState.h +0 -225
- package/SVF-linux/svf/include/include/AbstractExecution/RelationSolver.h +0 -68
- package/SVF-linux/svf/include/include/AbstractExecution/SVFIR2ItvExeState.h +0 -186
- package/SVF-linux/svf/include/include/AbstractExecution/WTO.h +0 -845
- package/SVF-linux/svf/include/include/CFL/CFGNormalizer.h +0 -84
- package/SVF-linux/svf/include/include/CFL/CFLAlias.h +0 -176
- package/SVF-linux/svf/include/include/CFL/CFLBase.h +0 -115
- package/SVF-linux/svf/include/include/CFL/CFLData.h +0 -316
- package/SVF-linux/svf/include/include/CFL/CFLDataBuilder.h +0 -91
- package/SVF-linux/svf/include/include/CFL/CFLGramGraphChecker.h +0 -74
- package/SVF-linux/svf/include/include/CFL/CFLGrammar.h +0 -468
- package/SVF-linux/svf/include/include/CFL/CFLGrammar.txt +0 -15
- package/SVF-linux/svf/include/include/CFL/CFLGraphBuilder.h +0 -193
- package/SVF-linux/svf/include/include/CFL/CFLSolver.h +0 -136
- package/SVF-linux/svf/include/include/CFL/CFLStat.h +0 -67
- package/SVF-linux/svf/include/include/CFL/CFLVF.h +0 -65
- package/SVF-linux/svf/include/include/CFL/GrammarBuilder.h +0 -100
- package/SVF-linux/svf/include/include/CFL/PEGGrammar.txt +0 -11
- package/SVF-linux/svf/include/include/CFL/VFG.txt +0 -7
- package/SVF-linux/svf/include/include/DDA/ContextDDA.h +0 -230
- package/SVF-linux/svf/include/include/DDA/DDAClient.h +0 -168
- package/SVF-linux/svf/include/include/DDA/DDAPass.h +0 -99
- package/SVF-linux/svf/include/include/DDA/DDAStat.h +0 -138
- package/SVF-linux/svf/include/include/DDA/DDAVFSolver.h +0 -789
- package/SVF-linux/svf/include/include/DDA/FlowDDA.h +0 -178
- package/SVF-linux/svf/include/include/FastCluster/LICENSE.TXT +0 -13
- package/SVF-linux/svf/include/include/FastCluster/fastcluster.h +0 -80
- package/SVF-linux/svf/include/include/Graphs/CFLGraph.h +0 -215
- package/SVF-linux/svf/include/include/Graphs/CHG.h +0 -351
- package/SVF-linux/svf/include/include/Graphs/ConsG.h +0 -408
- package/SVF-linux/svf/include/include/Graphs/ConsGEdge.h +0 -353
- package/SVF-linux/svf/include/include/Graphs/ConsGNode.h +0 -391
- package/SVF-linux/svf/include/include/Graphs/DOTGraphTraits.h +0 -188
- package/SVF-linux/svf/include/include/Graphs/GenericGraph.h +0 -620
- package/SVF-linux/svf/include/include/Graphs/GraphPrinter.h +0 -111
- package/SVF-linux/svf/include/include/Graphs/GraphTraits.h +0 -150
- package/SVF-linux/svf/include/include/Graphs/GraphWriter.h +0 -380
- package/SVF-linux/svf/include/include/Graphs/ICFG.h +0 -331
- package/SVF-linux/svf/include/include/Graphs/ICFGEdge.h +0 -264
- package/SVF-linux/svf/include/include/Graphs/ICFGNode.h +0 -523
- package/SVF-linux/svf/include/include/Graphs/ICFGStat.h +0 -164
- package/SVF-linux/svf/include/include/Graphs/IRGraph.h +0 -243
- package/SVF-linux/svf/include/include/Graphs/PTACallGraph.h +0 -471
- package/SVF-linux/svf/include/include/Graphs/SVFG.h +0 -490
- package/SVF-linux/svf/include/include/Graphs/SVFGEdge.h +0 -237
- package/SVF-linux/svf/include/include/Graphs/SVFGNode.h +0 -513
- package/SVF-linux/svf/include/include/Graphs/SVFGOPT.h +0 -362
- package/SVF-linux/svf/include/include/Graphs/SVFGStat.h +0 -273
- package/SVF-linux/svf/include/include/Graphs/ThreadCallGraph.h +0 -422
- package/SVF-linux/svf/include/include/Graphs/VFG.h +0 -664
- package/SVF-linux/svf/include/include/Graphs/VFGEdge.h +0 -295
- package/SVF-linux/svf/include/include/Graphs/VFGNode.h +0 -1197
- package/SVF-linux/svf/include/include/MSSA/MSSAMuChi.h +0 -722
- package/SVF-linux/svf/include/include/MSSA/MemPartition.h +0 -169
- package/SVF-linux/svf/include/include/MSSA/MemRegion.h +0 -491
- package/SVF-linux/svf/include/include/MSSA/MemSSA.h +0 -452
- package/SVF-linux/svf/include/include/MSSA/SVFGBuilder.h +0 -98
- package/SVF-linux/svf/include/include/MTA/FSMPTA.h +0 -270
- package/SVF-linux/svf/include/include/MTA/LockAnalysis.h +0 -517
- package/SVF-linux/svf/include/include/MTA/MHP.h +0 -565
- package/SVF-linux/svf/include/include/MTA/MTA.h +0 -101
- package/SVF-linux/svf/include/include/MTA/MTAResultValidator.h +0 -448
- package/SVF-linux/svf/include/include/MTA/MTAStat.h +0 -74
- package/SVF-linux/svf/include/include/MTA/PCG.h +0 -229
- package/SVF-linux/svf/include/include/MTA/TCT.h +0 -599
- package/SVF-linux/svf/include/include/MemoryModel/AbstractPointsToDS.h +0 -316
- package/SVF-linux/svf/include/include/MemoryModel/ConditionalPT.h +0 -878
- package/SVF-linux/svf/include/include/MemoryModel/LocationSet.h +0 -148
- package/SVF-linux/svf/include/include/MemoryModel/MutablePointsToDS.h +0 -1025
- package/SVF-linux/svf/include/include/MemoryModel/PersistentPointsToCache.h +0 -463
- package/SVF-linux/svf/include/include/MemoryModel/PersistentPointsToDS.h +0 -955
- package/SVF-linux/svf/include/include/MemoryModel/PointerAnalysis.h +0 -452
- package/SVF-linux/svf/include/include/MemoryModel/PointerAnalysisImpl.h +0 -590
- package/SVF-linux/svf/include/include/MemoryModel/PointsTo.h +0 -255
- package/SVF-linux/svf/include/include/MemoryModel/SVFLoop.h +0 -164
- package/SVF-linux/svf/include/include/SABER/DoubleFreeChecker.h +0 -76
- package/SVF-linux/svf/include/include/SABER/FileChecker.h +0 -82
- package/SVF-linux/svf/include/include/SABER/LeakChecker.h +0 -124
- package/SVF-linux/svf/include/include/SABER/ProgSlice.h +0 -313
- package/SVF-linux/svf/include/include/SABER/SaberCheckerAPI.h +0 -166
- package/SVF-linux/svf/include/include/SABER/SaberCondAllocator.h +0 -310
- package/SVF-linux/svf/include/include/SABER/SaberSVFGBuilder.h +0 -104
- package/SVF-linux/svf/include/include/SABER/SrcSnkDDA.h +0 -321
- package/SVF-linux/svf/include/include/SABER/SrcSnkSolver.h +0 -186
- package/SVF-linux/svf/include/include/SVFIR/PAGBuilderFromFile.h +0 -80
- package/SVF-linux/svf/include/include/SVFIR/SVFIR.h +0 -659
- package/SVF-linux/svf/include/include/SVFIR/SVFModule.h +0 -233
- package/SVF-linux/svf/include/include/SVFIR/SVFStatements.h +0 -1136
- package/SVF-linux/svf/include/include/SVFIR/SVFType.h +0 -527
- package/SVF-linux/svf/include/include/SVFIR/SVFValue.h +0 -1120
- package/SVF-linux/svf/include/include/SVFIR/SVFVariables.h +0 -721
- package/SVF-linux/svf/include/include/SVFIR/SymbolTableInfo.h +0 -597
- package/SVF-linux/svf/include/include/Util/Annotator.h +0 -180
- package/SVF-linux/svf/include/include/Util/BitVector.h +0 -55
- package/SVF-linux/svf/include/include/Util/CallGraphBuilder.h +0 -74
- package/SVF-linux/svf/include/include/Util/Casting.h +0 -426
- package/SVF-linux/svf/include/include/Util/CommandLine.h +0 -530
- package/SVF-linux/svf/include/include/Util/CoreBitVector.h +0 -214
- package/SVF-linux/svf/include/include/Util/CppUtil.h +0 -81
- package/SVF-linux/svf/include/include/Util/CxtStmt.h +0 -501
- package/SVF-linux/svf/include/include/Util/DPItem.h +0 -618
- package/SVF-linux/svf/include/include/Util/ExtAPI.h +0 -339
- package/SVF-linux/svf/include/include/Util/ExtAPI.json +0 -5707
- package/SVF-linux/svf/include/include/Util/GraphReachSolver.h +0 -186
- package/SVF-linux/svf/include/include/Util/NodeIDAllocator.h +0 -194
- package/SVF-linux/svf/include/include/Util/Options.h +0 -266
- package/SVF-linux/svf/include/include/Util/PTAStat.h +0 -65
- package/SVF-linux/svf/include/include/Util/SCC.h +0 -354
- package/SVF-linux/svf/include/include/Util/SVFStat.h +0 -100
- package/SVF-linux/svf/include/include/Util/SVFUtil.h +0 -660
- package/SVF-linux/svf/include/include/Util/SparseBitVector.h +0 -1202
- package/SVF-linux/svf/include/include/Util/ThreadAPI.h +0 -330
- package/SVF-linux/svf/include/include/Util/WorkList.h +0 -317
- package/SVF-linux/svf/include/include/Util/Z3Expr.h +0 -318
- package/SVF-linux/svf/include/include/Util/cJSON.h +0 -300
- package/SVF-linux/svf/include/include/Util/iterator.h +0 -407
- package/SVF-linux/svf/include/include/Util/iterator_range.h +0 -76
- package/SVF-linux/svf/include/include/WPA/Andersen.h +0 -416
- package/SVF-linux/svf/include/include/WPA/AndersenPWC.h +0 -160
- package/SVF-linux/svf/include/include/WPA/CSC.h +0 -95
- package/SVF-linux/svf/include/include/WPA/FlowSensitive.h +0 -317
- package/SVF-linux/svf/include/include/WPA/Steensgaard.h +0 -126
- package/SVF-linux/svf/include/include/WPA/TypeAnalysis.h +0 -83
- package/SVF-linux/svf/include/include/WPA/VersionedFlowSensitive.h +0 -287
- package/SVF-linux/svf/include/include/WPA/WPAFSSolver.h +0 -254
- package/SVF-linux/svf/include/include/WPA/WPAPass.h +0 -119
- package/SVF-linux/svf/include/include/WPA/WPASolver.h +0 -205
- package/SVF-linux/svf/include/include/WPA/WPAStat.h +0 -222
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/BasicTypes.h +0 -250
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/BreakConstantExpr.h +0 -94
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/CHGBuilder.h +0 -73
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/DCHG.h +0 -484
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/GEPTypeBridgeIterator.h +0 -183
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/ICFGBuilder.h +0 -106
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMLoopAnalysis.h +0 -61
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMModule.h +0 -360
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMUtil.h +0 -466
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/SVFIRBuilder.h +0 -417
- package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/SymbolTableBuilder.h +0 -110
- package/SVF-osx/svf/include/include/AbstractExecution/AbstractValue.h +0 -79
- package/SVF-osx/svf/include/include/AbstractExecution/AddressValue.h +0 -210
- package/SVF-osx/svf/include/include/AbstractExecution/ExeState.h +0 -223
- package/SVF-osx/svf/include/include/AbstractExecution/IntervalExeState.h +0 -425
- package/SVF-osx/svf/include/include/AbstractExecution/IntervalValue.h +0 -868
- package/SVF-osx/svf/include/include/AbstractExecution/NumericLiteral.h +0 -406
- package/SVF-osx/svf/include/include/AbstractExecution/RelExeState.h +0 -225
- package/SVF-osx/svf/include/include/AbstractExecution/RelationSolver.h +0 -68
- package/SVF-osx/svf/include/include/AbstractExecution/SVFIR2ItvExeState.h +0 -186
- package/SVF-osx/svf/include/include/AbstractExecution/WTO.h +0 -845
- package/SVF-osx/svf/include/include/CFL/CFGNormalizer.h +0 -84
- package/SVF-osx/svf/include/include/CFL/CFLAlias.h +0 -176
- package/SVF-osx/svf/include/include/CFL/CFLBase.h +0 -115
- package/SVF-osx/svf/include/include/CFL/CFLData.h +0 -316
- package/SVF-osx/svf/include/include/CFL/CFLDataBuilder.h +0 -91
- package/SVF-osx/svf/include/include/CFL/CFLGramGraphChecker.h +0 -74
- package/SVF-osx/svf/include/include/CFL/CFLGrammar.h +0 -468
- package/SVF-osx/svf/include/include/CFL/CFLGrammar.txt +0 -15
- package/SVF-osx/svf/include/include/CFL/CFLGraphBuilder.h +0 -193
- package/SVF-osx/svf/include/include/CFL/CFLSolver.h +0 -136
- package/SVF-osx/svf/include/include/CFL/CFLStat.h +0 -67
- package/SVF-osx/svf/include/include/CFL/CFLVF.h +0 -65
- package/SVF-osx/svf/include/include/CFL/GrammarBuilder.h +0 -100
- package/SVF-osx/svf/include/include/CFL/PEGGrammar.txt +0 -11
- package/SVF-osx/svf/include/include/CFL/VFG.txt +0 -7
- package/SVF-osx/svf/include/include/DDA/ContextDDA.h +0 -230
- package/SVF-osx/svf/include/include/DDA/DDAClient.h +0 -168
- package/SVF-osx/svf/include/include/DDA/DDAPass.h +0 -99
- package/SVF-osx/svf/include/include/DDA/DDAStat.h +0 -138
- package/SVF-osx/svf/include/include/DDA/DDAVFSolver.h +0 -789
- package/SVF-osx/svf/include/include/DDA/FlowDDA.h +0 -178
- package/SVF-osx/svf/include/include/FastCluster/LICENSE.TXT +0 -13
- package/SVF-osx/svf/include/include/FastCluster/fastcluster.h +0 -80
- package/SVF-osx/svf/include/include/Graphs/CFLGraph.h +0 -215
- package/SVF-osx/svf/include/include/Graphs/CHG.h +0 -351
- package/SVF-osx/svf/include/include/Graphs/ConsG.h +0 -408
- package/SVF-osx/svf/include/include/Graphs/ConsGEdge.h +0 -353
- package/SVF-osx/svf/include/include/Graphs/ConsGNode.h +0 -391
- package/SVF-osx/svf/include/include/Graphs/DOTGraphTraits.h +0 -188
- package/SVF-osx/svf/include/include/Graphs/GenericGraph.h +0 -620
- package/SVF-osx/svf/include/include/Graphs/GraphPrinter.h +0 -111
- package/SVF-osx/svf/include/include/Graphs/GraphTraits.h +0 -150
- package/SVF-osx/svf/include/include/Graphs/GraphWriter.h +0 -380
- package/SVF-osx/svf/include/include/Graphs/ICFG.h +0 -331
- package/SVF-osx/svf/include/include/Graphs/ICFGEdge.h +0 -264
- package/SVF-osx/svf/include/include/Graphs/ICFGNode.h +0 -523
- package/SVF-osx/svf/include/include/Graphs/ICFGStat.h +0 -164
- package/SVF-osx/svf/include/include/Graphs/IRGraph.h +0 -243
- package/SVF-osx/svf/include/include/Graphs/PTACallGraph.h +0 -471
- package/SVF-osx/svf/include/include/Graphs/SVFG.h +0 -490
- package/SVF-osx/svf/include/include/Graphs/SVFGEdge.h +0 -237
- package/SVF-osx/svf/include/include/Graphs/SVFGNode.h +0 -513
- package/SVF-osx/svf/include/include/Graphs/SVFGOPT.h +0 -362
- package/SVF-osx/svf/include/include/Graphs/SVFGStat.h +0 -273
- package/SVF-osx/svf/include/include/Graphs/ThreadCallGraph.h +0 -422
- package/SVF-osx/svf/include/include/Graphs/VFG.h +0 -664
- package/SVF-osx/svf/include/include/Graphs/VFGEdge.h +0 -295
- package/SVF-osx/svf/include/include/Graphs/VFGNode.h +0 -1197
- package/SVF-osx/svf/include/include/MSSA/MSSAMuChi.h +0 -722
- package/SVF-osx/svf/include/include/MSSA/MemPartition.h +0 -169
- package/SVF-osx/svf/include/include/MSSA/MemRegion.h +0 -491
- package/SVF-osx/svf/include/include/MSSA/MemSSA.h +0 -452
- package/SVF-osx/svf/include/include/MSSA/SVFGBuilder.h +0 -98
- package/SVF-osx/svf/include/include/MTA/FSMPTA.h +0 -270
- package/SVF-osx/svf/include/include/MTA/LockAnalysis.h +0 -517
- package/SVF-osx/svf/include/include/MTA/MHP.h +0 -565
- package/SVF-osx/svf/include/include/MTA/MTA.h +0 -101
- package/SVF-osx/svf/include/include/MTA/MTAResultValidator.h +0 -448
- package/SVF-osx/svf/include/include/MTA/MTAStat.h +0 -74
- package/SVF-osx/svf/include/include/MTA/PCG.h +0 -229
- package/SVF-osx/svf/include/include/MTA/TCT.h +0 -599
- package/SVF-osx/svf/include/include/MemoryModel/AbstractPointsToDS.h +0 -316
- package/SVF-osx/svf/include/include/MemoryModel/ConditionalPT.h +0 -878
- package/SVF-osx/svf/include/include/MemoryModel/LocationSet.h +0 -148
- package/SVF-osx/svf/include/include/MemoryModel/MutablePointsToDS.h +0 -1025
- package/SVF-osx/svf/include/include/MemoryModel/PersistentPointsToCache.h +0 -463
- package/SVF-osx/svf/include/include/MemoryModel/PersistentPointsToDS.h +0 -955
- package/SVF-osx/svf/include/include/MemoryModel/PointerAnalysis.h +0 -452
- package/SVF-osx/svf/include/include/MemoryModel/PointerAnalysisImpl.h +0 -590
- package/SVF-osx/svf/include/include/MemoryModel/PointsTo.h +0 -255
- package/SVF-osx/svf/include/include/MemoryModel/SVFLoop.h +0 -164
- package/SVF-osx/svf/include/include/SABER/DoubleFreeChecker.h +0 -76
- package/SVF-osx/svf/include/include/SABER/FileChecker.h +0 -82
- package/SVF-osx/svf/include/include/SABER/LeakChecker.h +0 -124
- package/SVF-osx/svf/include/include/SABER/ProgSlice.h +0 -313
- package/SVF-osx/svf/include/include/SABER/SaberCheckerAPI.h +0 -166
- package/SVF-osx/svf/include/include/SABER/SaberCondAllocator.h +0 -310
- package/SVF-osx/svf/include/include/SABER/SaberSVFGBuilder.h +0 -104
- package/SVF-osx/svf/include/include/SABER/SrcSnkDDA.h +0 -321
- package/SVF-osx/svf/include/include/SABER/SrcSnkSolver.h +0 -186
- package/SVF-osx/svf/include/include/SVFIR/PAGBuilderFromFile.h +0 -80
- package/SVF-osx/svf/include/include/SVFIR/SVFIR.h +0 -659
- package/SVF-osx/svf/include/include/SVFIR/SVFModule.h +0 -233
- package/SVF-osx/svf/include/include/SVFIR/SVFStatements.h +0 -1136
- package/SVF-osx/svf/include/include/SVFIR/SVFType.h +0 -527
- package/SVF-osx/svf/include/include/SVFIR/SVFValue.h +0 -1120
- package/SVF-osx/svf/include/include/SVFIR/SVFVariables.h +0 -721
- package/SVF-osx/svf/include/include/SVFIR/SymbolTableInfo.h +0 -597
- package/SVF-osx/svf/include/include/Util/Annotator.h +0 -180
- package/SVF-osx/svf/include/include/Util/BitVector.h +0 -55
- package/SVF-osx/svf/include/include/Util/CallGraphBuilder.h +0 -74
- package/SVF-osx/svf/include/include/Util/Casting.h +0 -426
- package/SVF-osx/svf/include/include/Util/CommandLine.h +0 -530
- package/SVF-osx/svf/include/include/Util/CoreBitVector.h +0 -214
- package/SVF-osx/svf/include/include/Util/CppUtil.h +0 -81
- package/SVF-osx/svf/include/include/Util/CxtStmt.h +0 -501
- package/SVF-osx/svf/include/include/Util/DPItem.h +0 -618
- package/SVF-osx/svf/include/include/Util/ExtAPI.h +0 -339
- package/SVF-osx/svf/include/include/Util/ExtAPI.json +0 -5707
- package/SVF-osx/svf/include/include/Util/GraphReachSolver.h +0 -186
- package/SVF-osx/svf/include/include/Util/NodeIDAllocator.h +0 -194
- package/SVF-osx/svf/include/include/Util/Options.h +0 -266
- package/SVF-osx/svf/include/include/Util/PTAStat.h +0 -65
- package/SVF-osx/svf/include/include/Util/SCC.h +0 -354
- package/SVF-osx/svf/include/include/Util/SVFStat.h +0 -100
- package/SVF-osx/svf/include/include/Util/SVFUtil.h +0 -660
- package/SVF-osx/svf/include/include/Util/SparseBitVector.h +0 -1202
- package/SVF-osx/svf/include/include/Util/ThreadAPI.h +0 -330
- package/SVF-osx/svf/include/include/Util/WorkList.h +0 -317
- package/SVF-osx/svf/include/include/Util/Z3Expr.h +0 -318
- package/SVF-osx/svf/include/include/Util/cJSON.h +0 -300
- package/SVF-osx/svf/include/include/Util/iterator.h +0 -407
- package/SVF-osx/svf/include/include/Util/iterator_range.h +0 -76
- package/SVF-osx/svf/include/include/WPA/Andersen.h +0 -416
- package/SVF-osx/svf/include/include/WPA/AndersenPWC.h +0 -160
- package/SVF-osx/svf/include/include/WPA/CSC.h +0 -95
- package/SVF-osx/svf/include/include/WPA/FlowSensitive.h +0 -317
- package/SVF-osx/svf/include/include/WPA/Steensgaard.h +0 -126
- package/SVF-osx/svf/include/include/WPA/TypeAnalysis.h +0 -83
- package/SVF-osx/svf/include/include/WPA/VersionedFlowSensitive.h +0 -287
- package/SVF-osx/svf/include/include/WPA/WPAFSSolver.h +0 -254
- package/SVF-osx/svf/include/include/WPA/WPAPass.h +0 -119
- package/SVF-osx/svf/include/include/WPA/WPASolver.h +0 -205
- package/SVF-osx/svf/include/include/WPA/WPAStat.h +0 -222
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/BasicTypes.h +0 -250
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/BreakConstantExpr.h +0 -94
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/CHGBuilder.h +0 -73
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/DCHG.h +0 -484
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/GEPTypeBridgeIterator.h +0 -183
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/ICFGBuilder.h +0 -106
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMLoopAnalysis.h +0 -61
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMModule.h +0 -360
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMUtil.h +0 -466
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/SVFIRBuilder.h +0 -417
- package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/SymbolTableBuilder.h +0 -110
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
//===- WPASolver.h -- Generic WPA solver--------------------------------------//
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
/*
|
|
25
|
-
* WPASolver.h
|
|
26
|
-
*
|
|
27
|
-
* Created on: Oct 25, 2013
|
|
28
|
-
* Author: Yulei Sui
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
#ifndef GRAPHSOLVER_H_
|
|
32
|
-
#define GRAPHSOLVER_H_
|
|
33
|
-
|
|
34
|
-
#include "Util/WorkList.h"
|
|
35
|
-
|
|
36
|
-
namespace SVF
|
|
37
|
-
{
|
|
38
|
-
|
|
39
|
-
/*
|
|
40
|
-
* Generic graph solver for whole program pointer analysis
|
|
41
|
-
*/
|
|
42
|
-
template<class GraphType>
|
|
43
|
-
class WPASolver
|
|
44
|
-
{
|
|
45
|
-
|
|
46
|
-
public:
|
|
47
|
-
///Define the GTraits and node iterator for printing
|
|
48
|
-
typedef SVF::GenericGraphTraits<GraphType> GTraits;
|
|
49
|
-
typedef typename GTraits::NodeRef GNODE;
|
|
50
|
-
typedef typename GTraits::EdgeType GEDGE;
|
|
51
|
-
typedef typename GTraits::ChildIteratorType child_iterator;
|
|
52
|
-
|
|
53
|
-
typedef SCCDetection<GraphType> SCC;
|
|
54
|
-
|
|
55
|
-
typedef FIFOWorkList<NodeID> WorkList;
|
|
56
|
-
|
|
57
|
-
protected:
|
|
58
|
-
|
|
59
|
-
/// Constructor
|
|
60
|
-
WPASolver(): reanalyze(false), iterationForPrintStat(1000), _graph(nullptr), numOfIteration(0)
|
|
61
|
-
{
|
|
62
|
-
}
|
|
63
|
-
/// Destructor
|
|
64
|
-
virtual ~WPASolver() = default;
|
|
65
|
-
|
|
66
|
-
/// Get SCC detector
|
|
67
|
-
inline SCC* getSCCDetector() const
|
|
68
|
-
{
|
|
69
|
-
return scc.get();
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/// Get/Set graph methods
|
|
73
|
-
//@{
|
|
74
|
-
const inline GraphType graph()
|
|
75
|
-
{
|
|
76
|
-
return _graph;
|
|
77
|
-
}
|
|
78
|
-
inline void setGraph(GraphType g)
|
|
79
|
-
{
|
|
80
|
-
_graph = g;
|
|
81
|
-
scc = std::make_unique<SCC>(_graph);
|
|
82
|
-
}
|
|
83
|
-
//@}
|
|
84
|
-
|
|
85
|
-
/// SCC detection
|
|
86
|
-
virtual inline NodeStack& SCCDetect()
|
|
87
|
-
{
|
|
88
|
-
getSCCDetector()->find();
|
|
89
|
-
return getSCCDetector()->topoNodeStack();
|
|
90
|
-
}
|
|
91
|
-
virtual inline NodeStack& SCCDetect(NodeSet& candidates)
|
|
92
|
-
{
|
|
93
|
-
getSCCDetector()->find(candidates);
|
|
94
|
-
return getSCCDetector()->topoNodeStack();
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
virtual inline void initWorklist()
|
|
98
|
-
{
|
|
99
|
-
NodeStack& nodeStack = SCCDetect();
|
|
100
|
-
while (!nodeStack.empty())
|
|
101
|
-
{
|
|
102
|
-
NodeID nodeId = nodeStack.top();
|
|
103
|
-
nodeStack.pop();
|
|
104
|
-
pushIntoWorklist(nodeId);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
virtual inline void solveWorklist()
|
|
109
|
-
{
|
|
110
|
-
while (!isWorklistEmpty())
|
|
111
|
-
{
|
|
112
|
-
NodeID nodeId = popFromWorklist();
|
|
113
|
-
// Keep solving until workList is empty.
|
|
114
|
-
processNode(nodeId);
|
|
115
|
-
collapseFields();
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/// Following methods are to be implemented in child class, in order to achieve a fully worked PTA
|
|
120
|
-
//@{
|
|
121
|
-
/// Process each node on the graph, to be implemented in the child class
|
|
122
|
-
virtual inline void processNode(NodeID) {}
|
|
123
|
-
/// collapse positive weight cycles of a graph
|
|
124
|
-
virtual void collapseFields() {}
|
|
125
|
-
/// dump statistics
|
|
126
|
-
/// Propagation for the solving, to be implemented in the child class
|
|
127
|
-
virtual void propagate(GNODE* v)
|
|
128
|
-
{
|
|
129
|
-
child_iterator EI = GTraits::direct_child_begin(*v);
|
|
130
|
-
child_iterator EE = GTraits::direct_child_end(*v);
|
|
131
|
-
for (; EI != EE; ++EI)
|
|
132
|
-
{
|
|
133
|
-
if (propFromSrcToDst(*(EI.getCurrent())))
|
|
134
|
-
pushIntoWorklist(Node_Index(*EI));
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
/// Propagate information from source to destination node, to be implemented in the child class
|
|
138
|
-
virtual bool propFromSrcToDst(GEDGE*)
|
|
139
|
-
{
|
|
140
|
-
return false;
|
|
141
|
-
}
|
|
142
|
-
//@}
|
|
143
|
-
|
|
144
|
-
virtual NodeID sccRepNode(NodeID id) const
|
|
145
|
-
{
|
|
146
|
-
return getSCCDetector()->repNode(id);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
/// Worklist operations
|
|
150
|
-
//@{
|
|
151
|
-
inline NodeID popFromWorklist()
|
|
152
|
-
{
|
|
153
|
-
return sccRepNode(worklist.pop());
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
virtual inline void pushIntoWorklist(NodeID id)
|
|
157
|
-
{
|
|
158
|
-
worklist.push(sccRepNode(id));
|
|
159
|
-
}
|
|
160
|
-
inline bool isWorklistEmpty()
|
|
161
|
-
{
|
|
162
|
-
return worklist.empty();
|
|
163
|
-
}
|
|
164
|
-
inline bool isInWorklist(NodeID id)
|
|
165
|
-
{
|
|
166
|
-
return worklist.find(id);
|
|
167
|
-
}
|
|
168
|
-
//@}
|
|
169
|
-
|
|
170
|
-
/// Reanalyze if any constraint value changed
|
|
171
|
-
bool reanalyze;
|
|
172
|
-
/// print out statistics for i-th iteration
|
|
173
|
-
u32_t iterationForPrintStat;
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
/// Get node on the graph
|
|
177
|
-
inline GNODE* Node(NodeID id)
|
|
178
|
-
{
|
|
179
|
-
return GTraits::getNode(_graph, id);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
/// Get node ID
|
|
183
|
-
inline NodeID Node_Index(GNODE node)
|
|
184
|
-
{
|
|
185
|
-
return GTraits::getNodeID(node);
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
protected:
|
|
189
|
-
/// Graph
|
|
190
|
-
GraphType _graph;
|
|
191
|
-
|
|
192
|
-
/// SCC
|
|
193
|
-
std::unique_ptr<SCC> scc;
|
|
194
|
-
|
|
195
|
-
/// Worklist for resolution
|
|
196
|
-
WorkList worklist;
|
|
197
|
-
|
|
198
|
-
public:
|
|
199
|
-
/// num of iterations during constaint solving
|
|
200
|
-
u32_t numOfIteration;
|
|
201
|
-
};
|
|
202
|
-
|
|
203
|
-
} // End namespace SVF
|
|
204
|
-
|
|
205
|
-
#endif /* GRAPHSOLVER_H_ */
|
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
//===- WPAStat.h -- WPA statistics--------------------------------------------//
|
|
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
|
-
|
|
23
|
-
|
|
24
|
-
/*
|
|
25
|
-
* FlowSensitiveStat.h
|
|
26
|
-
*
|
|
27
|
-
* Created on: 27/11/2013
|
|
28
|
-
* Author: yesen
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
#ifndef FLOWSENSITIVESTAT_H_
|
|
32
|
-
#define FLOWSENSITIVESTAT_H_
|
|
33
|
-
|
|
34
|
-
#include "Util/PTAStat.h"
|
|
35
|
-
#include "WPA/FlowSensitive.h"
|
|
36
|
-
#include "WPA/VersionedFlowSensitive.h"
|
|
37
|
-
|
|
38
|
-
namespace SVF
|
|
39
|
-
{
|
|
40
|
-
|
|
41
|
-
class AndersenBase;
|
|
42
|
-
class SVFIR;
|
|
43
|
-
class ConstraintGraph;
|
|
44
|
-
|
|
45
|
-
/*!
|
|
46
|
-
* Statistics of Andersen's analysis
|
|
47
|
-
*/
|
|
48
|
-
class AndersenStat : public PTAStat
|
|
49
|
-
{
|
|
50
|
-
|
|
51
|
-
private:
|
|
52
|
-
AndersenBase* pta;
|
|
53
|
-
|
|
54
|
-
public:
|
|
55
|
-
static const char* CollapseTime;
|
|
56
|
-
|
|
57
|
-
static u32_t _MaxPtsSize;
|
|
58
|
-
static u32_t _NumOfCycles;
|
|
59
|
-
static u32_t _NumOfPWCCycles;
|
|
60
|
-
static u32_t _NumOfNodesInCycles;
|
|
61
|
-
static u32_t _MaxNumOfNodesInSCC;
|
|
62
|
-
u32_t _NumOfNullPtr;
|
|
63
|
-
u32_t _NumOfConstantPtr;
|
|
64
|
-
u32_t _NumOfBlackholePtr;
|
|
65
|
-
|
|
66
|
-
AndersenStat(AndersenBase* p);
|
|
67
|
-
|
|
68
|
-
virtual ~AndersenStat()
|
|
69
|
-
{
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
virtual void performStat();
|
|
74
|
-
|
|
75
|
-
void collectCycleInfo(ConstraintGraph* consCG);
|
|
76
|
-
|
|
77
|
-
void statNullPtr();
|
|
78
|
-
|
|
79
|
-
void constraintGraphStat();
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
/*!
|
|
83
|
-
* Statistics of flow-sensitive analysis
|
|
84
|
-
*/
|
|
85
|
-
class FlowSensitiveStat : public PTAStat
|
|
86
|
-
{
|
|
87
|
-
public:
|
|
88
|
-
typedef FlowSensitive::DFInOutMap DFInOutMap;
|
|
89
|
-
typedef FlowSensitive::PtsMap PtsMap;
|
|
90
|
-
|
|
91
|
-
FlowSensitive * fspta;
|
|
92
|
-
|
|
93
|
-
FlowSensitiveStat(FlowSensitive* pta): PTAStat(pta)
|
|
94
|
-
{
|
|
95
|
-
fspta = pta;
|
|
96
|
-
clearStat();
|
|
97
|
-
startClk();
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
virtual ~FlowSensitiveStat() {}
|
|
101
|
-
|
|
102
|
-
virtual void performStat();
|
|
103
|
-
|
|
104
|
-
private:
|
|
105
|
-
enum ENUM_INOUT
|
|
106
|
-
{
|
|
107
|
-
IN,
|
|
108
|
-
OUT
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
void clearStat();
|
|
112
|
-
|
|
113
|
-
void statNullPtr();
|
|
114
|
-
|
|
115
|
-
void statPtsSize();
|
|
116
|
-
|
|
117
|
-
void statAddrVarPtsSize();
|
|
118
|
-
|
|
119
|
-
void calculateAddrVarPts(NodeID pointer, const SVFGNode* node);
|
|
120
|
-
|
|
121
|
-
void statInOutPtsSize(const DFInOutMap& data, ENUM_INOUT inOrOut);
|
|
122
|
-
|
|
123
|
-
u32_t _NumOfNullPtr;
|
|
124
|
-
u32_t _NumOfConstantPtr;
|
|
125
|
-
u32_t _NumOfBlackholePtr;
|
|
126
|
-
|
|
127
|
-
/// number of SVFG nodes which have IN/OUT set.
|
|
128
|
-
u32_t _NumOfSVFGNodesHaveInOut[2];
|
|
129
|
-
u32_t _NumOfFormalInSVFGNodesHaveInOut[2];
|
|
130
|
-
u32_t _NumOfFormalOutSVFGNodesHaveInOut[2];
|
|
131
|
-
u32_t _NumOfActualInSVFGNodesHaveInOut[2];
|
|
132
|
-
u32_t _NumOfActualOutSVFGNodesHaveInOut[2];
|
|
133
|
-
u32_t _NumOfLoadSVFGNodesHaveInOut[2];
|
|
134
|
-
u32_t _NumOfStoreSVFGNodesHaveInOut[2];
|
|
135
|
-
u32_t _NumOfMSSAPhiSVFGNodesHaveInOut[2];
|
|
136
|
-
|
|
137
|
-
/// number of pag nodes which have points-to set in IN/OUT set.
|
|
138
|
-
u32_t _NumOfVarHaveINOUTPts[2];
|
|
139
|
-
u32_t _NumOfVarHaveEmptyINOUTPts[2];
|
|
140
|
-
u32_t _NumOfVarHaveINOUTPtsInFormalIn[2];
|
|
141
|
-
u32_t _NumOfVarHaveINOUTPtsInFormalOut[2];
|
|
142
|
-
u32_t _NumOfVarHaveINOUTPtsInActualIn[2];
|
|
143
|
-
u32_t _NumOfVarHaveINOUTPtsInActualOut[2];
|
|
144
|
-
u32_t _NumOfVarHaveINOUTPtsInLoad[2];
|
|
145
|
-
u32_t _NumOfVarHaveINOUTPtsInStore[2];
|
|
146
|
-
u32_t _NumOfVarHaveINOUTPtsInMSSAPhi[2];
|
|
147
|
-
u32_t _PotentialNumOfVarHaveINOUTPts[2];
|
|
148
|
-
|
|
149
|
-
/// sizes of points-to set
|
|
150
|
-
u32_t _MaxPtsSize; ///< max points-to set size.
|
|
151
|
-
u32_t _MaxTopLvlPtsSize; ///< max points-to set size in top-level pointers.
|
|
152
|
-
u32_t _MaxInOutPtsSize[2]; ///< max points-to set size in IN/OUT set.
|
|
153
|
-
|
|
154
|
-
u32_t _TotalPtsSize; ///< total points-to set size.
|
|
155
|
-
|
|
156
|
-
double _AvgPtsSize; ///< average points-to set size.
|
|
157
|
-
double _AvgTopLvlPtsSize; ///< average points-to set size in top-level pointers.
|
|
158
|
-
double _AvgInOutPtsSize[2]; ///< average points-to set size in IN set.
|
|
159
|
-
double _AvgAddrTakenVarPtsSize; ///< average points-to set size of addr-taken variables.
|
|
160
|
-
|
|
161
|
-
u32_t _MaxAddrTakenVarPts; ///< max points-to set size of addr-taken variables.
|
|
162
|
-
u32_t _NumOfAddrTakeVar; ///< number of occurrences of addr-taken variables in load/store.
|
|
163
|
-
};
|
|
164
|
-
|
|
165
|
-
class VersionedFlowSensitiveStat : public PTAStat
|
|
166
|
-
{
|
|
167
|
-
public:
|
|
168
|
-
VersionedFlowSensitive *vfspta;
|
|
169
|
-
|
|
170
|
-
VersionedFlowSensitiveStat(VersionedFlowSensitive* pta): PTAStat(pta)
|
|
171
|
-
{
|
|
172
|
-
vfspta = pta;
|
|
173
|
-
clearStat();
|
|
174
|
-
startClk();
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
virtual ~VersionedFlowSensitiveStat() { }
|
|
178
|
-
|
|
179
|
-
virtual void performStat();
|
|
180
|
-
|
|
181
|
-
private:
|
|
182
|
-
void clearStat();
|
|
183
|
-
|
|
184
|
-
/// For all version-related statistics.
|
|
185
|
-
void versionStat(void);
|
|
186
|
-
|
|
187
|
-
/// For all PTS size related statistics not handled by versionStat.
|
|
188
|
-
void ptsSizeStat(void);
|
|
189
|
-
|
|
190
|
-
/// Total number of versions across all objects.
|
|
191
|
-
u32_t _NumVersions;
|
|
192
|
-
/// Most versions for a single object.
|
|
193
|
-
u32_t _MaxVersions;
|
|
194
|
-
/// Number of version PTSs actually used (sum of next two fields).
|
|
195
|
-
u32_t _NumUsedVersions;
|
|
196
|
-
/// Number of versions with non-empty points-to sets (since versioning is over-approximate).
|
|
197
|
-
u32_t _NumNonEmptyVersions;
|
|
198
|
-
/// Number of versions with empty points-to sets (actually empty, not never-accessed).
|
|
199
|
-
u32_t _NumEmptyVersions;
|
|
200
|
-
/// Number of objects which have a single version.
|
|
201
|
-
u32_t _NumSingleVersion;
|
|
202
|
-
|
|
203
|
-
/// Largest PTS size.
|
|
204
|
-
u32_t _MaxPtsSize;
|
|
205
|
-
/// Max points-to set size in top-level pointers.
|
|
206
|
-
u32_t _MaxTopLvlPtsSize;
|
|
207
|
-
/// Max address-taken points-to set size.
|
|
208
|
-
u32_t _MaxVersionPtsSize;
|
|
209
|
-
|
|
210
|
-
/// Total of points-to set sizes for calculating averages.
|
|
211
|
-
u32_t _TotalPtsSize;
|
|
212
|
-
|
|
213
|
-
/// Average size across all points-to sets.
|
|
214
|
-
double _AvgPtsSize;
|
|
215
|
-
/// Average points-to set size for top-level pointers.
|
|
216
|
-
double _AvgTopLvlPtsSize;
|
|
217
|
-
/// Average points-to set size for address-taken objects.
|
|
218
|
-
double _AvgVersionPtsSize;
|
|
219
|
-
};
|
|
220
|
-
} // End namespace SVF
|
|
221
|
-
|
|
222
|
-
#endif /* FLOWSENSITIVESTAT_H_ */
|
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
#ifndef SVF_FE_BASIC_TYPES_H
|
|
2
|
-
#define SVF_FE_BASIC_TYPES_H
|
|
3
|
-
|
|
4
|
-
#include "SVF-LLVM/GEPTypeBridgeIterator.h"
|
|
5
|
-
|
|
6
|
-
#include <llvm/Pass.h>
|
|
7
|
-
|
|
8
|
-
#include <llvm/IR/Instructions.h>
|
|
9
|
-
#include <llvm/IR/GetElementPtrTypeIterator.h> //for gep iterator
|
|
10
|
-
#include <llvm/IR/GlobalVariable.h> // for GlobalVariable
|
|
11
|
-
#include <llvm/IR/BasicBlock.h>
|
|
12
|
-
#include <llvm/IR/IntrinsicInst.h>
|
|
13
|
-
#include <llvm/IR/LLVMContext.h>
|
|
14
|
-
#include <llvm/IR/Metadata.h>
|
|
15
|
-
#include <llvm/IR/DataLayout.h>
|
|
16
|
-
#include <llvm/IR/IRBuilder.h>
|
|
17
|
-
#include <llvm/IR/DebugInfo.h>
|
|
18
|
-
#include <llvm/IR/InstIterator.h>
|
|
19
|
-
#include <llvm/IR/GetElementPtrTypeIterator.h>
|
|
20
|
-
#include <llvm/IR/DerivedTypes.h>
|
|
21
|
-
#include <llvm/IR/Statepoint.h>
|
|
22
|
-
|
|
23
|
-
#include <llvm/Analysis/MemoryLocation.h>
|
|
24
|
-
#include <llvm/Analysis/DominanceFrontier.h>
|
|
25
|
-
#include <llvm/Analysis/PostDominators.h>
|
|
26
|
-
#include <llvm/Analysis/ScalarEvolution.h>
|
|
27
|
-
#include <llvm/Analysis/ScalarEvolutionExpressions.h>
|
|
28
|
-
|
|
29
|
-
#include <llvm/Transforms/Utils/UnifyFunctionExitNodes.h>
|
|
30
|
-
|
|
31
|
-
#include <llvm/Support/SourceMgr.h>
|
|
32
|
-
|
|
33
|
-
#include <llvm/Bitcode/BitcodeWriter.h> // for WriteBitcodeToFile
|
|
34
|
-
#include <llvm/Bitcode/BitcodeReader.h> /// for isBitcode
|
|
35
|
-
#include <llvm/IRReader/IRReader.h> // IR reader for bit file
|
|
36
|
-
#include <llvm/IR/InstVisitor.h> // for instruction visitor
|
|
37
|
-
#include <llvm/IR/InstIterator.h> // for inst iteration
|
|
38
|
-
|
|
39
|
-
#include <llvm/BinaryFormat/Dwarf.h> // for dwarf tags
|
|
40
|
-
|
|
41
|
-
#include <llvm/Analysis/LoopInfo.h>
|
|
42
|
-
|
|
43
|
-
namespace SVF
|
|
44
|
-
{
|
|
45
|
-
|
|
46
|
-
typedef llvm::LLVMContext LLVMContext;
|
|
47
|
-
typedef llvm::GlobalObject GlobalObject;
|
|
48
|
-
typedef llvm::Use Use;
|
|
49
|
-
typedef llvm::ModulePass ModulePass;
|
|
50
|
-
typedef llvm::IRBuilder<> IRBuilder;
|
|
51
|
-
#if LLVM_VERSION_MAJOR >= 12
|
|
52
|
-
typedef llvm::UnifyFunctionExitNodesLegacyPass UnifyFunctionExitNodes;
|
|
53
|
-
#else
|
|
54
|
-
typedef llvm::UnifyFunctionExitNodes UnifyFunctionExitNodes;
|
|
55
|
-
#endif
|
|
56
|
-
|
|
57
|
-
/// LLVM Basic classes
|
|
58
|
-
typedef llvm::Value Value;
|
|
59
|
-
typedef llvm::Type Type;
|
|
60
|
-
typedef llvm::Module Module;
|
|
61
|
-
typedef llvm::Function Function;
|
|
62
|
-
typedef llvm::BasicBlock BasicBlock;
|
|
63
|
-
typedef llvm::Instruction Instruction;
|
|
64
|
-
typedef llvm::GlobalValue GlobalValue;
|
|
65
|
-
|
|
66
|
-
typedef llvm::SMDiagnostic SMDiagnostic;
|
|
67
|
-
typedef llvm::BlockAddress BlockAddress;
|
|
68
|
-
|
|
69
|
-
/// LLVM types
|
|
70
|
-
typedef llvm::StructType StructType;
|
|
71
|
-
typedef llvm::ArrayType ArrayType;
|
|
72
|
-
typedef llvm::PointerType PointerType;
|
|
73
|
-
typedef llvm::IntegerType IntegerType;
|
|
74
|
-
typedef llvm::FunctionType FunctionType;
|
|
75
|
-
|
|
76
|
-
// LLVM Metadata
|
|
77
|
-
typedef llvm::MDString MDString;
|
|
78
|
-
typedef llvm::MetadataAsValue MetadataAsValue;
|
|
79
|
-
|
|
80
|
-
// LLVM data layout
|
|
81
|
-
typedef llvm::StructLayout StructLayout;
|
|
82
|
-
typedef llvm::ConstantStruct ConstantStruct;
|
|
83
|
-
typedef llvm::MemoryLocation MemoryLocation;
|
|
84
|
-
typedef llvm::DataLayout DataLayout;
|
|
85
|
-
|
|
86
|
-
/// LLVM metadata and debug information
|
|
87
|
-
typedef llvm::NamedMDNode NamedMDNode;
|
|
88
|
-
typedef llvm::MDNode MDNode;
|
|
89
|
-
typedef llvm::DISubprogram DISubprogram;
|
|
90
|
-
|
|
91
|
-
// LLVM Aliases and constants
|
|
92
|
-
typedef llvm::ConstantData ConstantData;
|
|
93
|
-
typedef llvm::ConstantAggregate ConstantAggregate;
|
|
94
|
-
typedef llvm::ConstantAggregateZero ConstantAggregateZero;
|
|
95
|
-
typedef llvm::ConstantDataSequential ConstantDataSequential;
|
|
96
|
-
typedef llvm::ConstantExpr ConstantExpr;
|
|
97
|
-
typedef llvm::ConstantDataArray ConstantDataArray;
|
|
98
|
-
typedef llvm::ConstantData ConstantData;
|
|
99
|
-
typedef llvm::ConstantArray ConstantArray;
|
|
100
|
-
typedef llvm::Constant Constant;
|
|
101
|
-
typedef llvm::ConstantInt ConstantInt;
|
|
102
|
-
typedef llvm::ConstantFP ConstantFP;
|
|
103
|
-
typedef llvm::ConstantPointerNull ConstantPointerNull;
|
|
104
|
-
typedef llvm::GlobalAlias GlobalAlias;
|
|
105
|
-
typedef llvm::GlobalVariable GlobalVariable;
|
|
106
|
-
|
|
107
|
-
/// LLVM Dominators
|
|
108
|
-
typedef llvm::DominatorTree DominatorTree;
|
|
109
|
-
typedef llvm::DomTreeNode DomTreeNode;
|
|
110
|
-
typedef llvm::DominanceFrontier DominanceFrontier;
|
|
111
|
-
typedef llvm::PostDominatorTree PostDominatorTree;
|
|
112
|
-
typedef llvm::DominanceFrontierBase<llvm::BasicBlock, false> DominanceFrontierBase;
|
|
113
|
-
|
|
114
|
-
/// LLVM Loop
|
|
115
|
-
typedef llvm::Loop Loop;
|
|
116
|
-
typedef llvm::LoopInfo LoopInfo;
|
|
117
|
-
typedef llvm::User User;
|
|
118
|
-
|
|
119
|
-
// LLVM Instructions
|
|
120
|
-
typedef llvm::Argument Argument;
|
|
121
|
-
typedef llvm::CallBase CallBase;
|
|
122
|
-
typedef llvm::CallInst CallInst;
|
|
123
|
-
typedef llvm::StoreInst StoreInst;
|
|
124
|
-
typedef llvm::LoadInst LoadInst;
|
|
125
|
-
typedef llvm::AllocaInst AllocaInst;
|
|
126
|
-
typedef llvm::AtomicCmpXchgInst AtomicCmpXchgInst;
|
|
127
|
-
typedef llvm::AtomicRMWInst AtomicRMWInst;
|
|
128
|
-
typedef llvm::BitCastInst BitCastInst;
|
|
129
|
-
typedef llvm::BranchInst BranchInst;
|
|
130
|
-
typedef llvm::SwitchInst SwitchInst;
|
|
131
|
-
typedef llvm::CallBrInst CallBrInst;
|
|
132
|
-
typedef llvm::ReturnInst ReturnInst;
|
|
133
|
-
typedef llvm::CastInst CastInst;
|
|
134
|
-
typedef llvm::CmpInst CmpInst;
|
|
135
|
-
typedef llvm::ExtractValueInst ExtractValueInst;
|
|
136
|
-
typedef llvm::ExtractElementInst ExtractElementInst;
|
|
137
|
-
typedef llvm::GetElementPtrInst GetElementPtrInst;
|
|
138
|
-
typedef llvm::InvokeInst InvokeInst;
|
|
139
|
-
typedef llvm::ShuffleVectorInst ShuffleVectorInst;
|
|
140
|
-
typedef llvm::PHINode PHINode;
|
|
141
|
-
typedef llvm::IntToPtrInst IntToPtrInst;
|
|
142
|
-
typedef llvm::InsertValueInst InsertValueInst;
|
|
143
|
-
typedef llvm::FenceInst FenceInst;
|
|
144
|
-
typedef llvm::FreezeInst FreezeInst;
|
|
145
|
-
typedef llvm::UnreachableInst UnreachableInst;
|
|
146
|
-
typedef llvm::InsertElementInst InsertElementInst;
|
|
147
|
-
typedef llvm::LandingPadInst LandingPadInst;
|
|
148
|
-
typedef llvm::ResumeInst ResumeInst;
|
|
149
|
-
typedef llvm::SelectInst SelectInst;
|
|
150
|
-
typedef llvm::VAArgInst VAArgInst;
|
|
151
|
-
typedef llvm::VACopyInst VACopyInst;
|
|
152
|
-
typedef llvm::VAEndInst VAEndInst;
|
|
153
|
-
typedef llvm::VAStartInst VAStartInst;
|
|
154
|
-
typedef llvm::BinaryOperator BinaryOperator;
|
|
155
|
-
typedef llvm::UnaryOperator UnaryOperator;
|
|
156
|
-
typedef llvm::UndefValue UndefValue;
|
|
157
|
-
|
|
158
|
-
// LLVM Intrinsic Instructions
|
|
159
|
-
#if LLVM_VERSION_MAJOR >= 13
|
|
160
|
-
typedef llvm::IntrinsicInst IntrinsicInst;
|
|
161
|
-
typedef llvm::DbgInfoIntrinsic DbgInfoIntrinsic;
|
|
162
|
-
typedef llvm::DbgVariableIntrinsic DbgVariableIntrinsic;
|
|
163
|
-
typedef llvm::DbgDeclareInst DbgDeclareInst;
|
|
164
|
-
typedef llvm::DbgAddrIntrinsic DbgAddrIntrinsic;
|
|
165
|
-
typedef llvm::DbgValueInst DbgValueInst;
|
|
166
|
-
typedef llvm::DbgLabelInst DbgLabelInst;
|
|
167
|
-
typedef llvm::VPIntrinsic VPIntrinsic;
|
|
168
|
-
typedef llvm::ConstrainedFPIntrinsic ConstrainedFPIntrinsic;
|
|
169
|
-
typedef llvm::ConstrainedFPCmpIntrinsic ConstrainedFPCmpIntrinsic;
|
|
170
|
-
typedef llvm::MinMaxIntrinsic MinMaxIntrinsic;
|
|
171
|
-
typedef llvm::BinaryOpIntrinsic BinaryOpIntrinsic;
|
|
172
|
-
typedef llvm::WithOverflowInst WithOverflowInst;
|
|
173
|
-
typedef llvm::SaturatingInst SaturatingInst;
|
|
174
|
-
typedef llvm::AtomicMemIntrinsic AtomicMemIntrinsic;
|
|
175
|
-
typedef llvm::AtomicMemSetInst AtomicMemSetInst;
|
|
176
|
-
typedef llvm::AtomicMemTransferInst AtomicMemTransferInst;
|
|
177
|
-
typedef llvm::AtomicMemCpyInst AtomicMemCpyInst;
|
|
178
|
-
typedef llvm::AtomicMemMoveInst AtomicMemMoveInst;
|
|
179
|
-
typedef llvm::MemIntrinsic MemIntrinsic;
|
|
180
|
-
typedef llvm::MemSetInst MemSetInst;
|
|
181
|
-
typedef llvm::MemTransferInst MemTransferInst;
|
|
182
|
-
typedef llvm::MemCpyInst MemCpyInst;
|
|
183
|
-
typedef llvm::MemMoveInst MemMoveInst;
|
|
184
|
-
typedef llvm::MemCpyInlineInst MemCpyInlineInst;
|
|
185
|
-
typedef llvm::AnyMemIntrinsic AnyMemIntrinsic;
|
|
186
|
-
typedef llvm::AnyMemSetInst AnyMemSetInst;
|
|
187
|
-
typedef llvm::AnyMemTransferInst AnyMemTransferInst;
|
|
188
|
-
typedef llvm::AnyMemCpyInst AnyMemCpyInst;
|
|
189
|
-
typedef llvm::AnyMemMoveInst AnyMemMoveInst;
|
|
190
|
-
typedef llvm::VAStartInst VAStartInst;
|
|
191
|
-
typedef llvm::VAEndInst VAEndInst;
|
|
192
|
-
typedef llvm::VACopyInst VACopyInst;
|
|
193
|
-
typedef llvm::InstrProfIncrementInst InstrProfIncrementInst;
|
|
194
|
-
typedef llvm::InstrProfIncrementInstStep InstrProfIncrementInstStep;
|
|
195
|
-
typedef llvm::InstrProfValueProfileInst InstrProfValueProfileInst;
|
|
196
|
-
typedef llvm::PseudoProbeInst PseudoProbeInst;
|
|
197
|
-
typedef llvm::NoAliasScopeDeclInst NoAliasScopeDeclInst;
|
|
198
|
-
typedef llvm::GCStatepointInst GCStatepointInst;
|
|
199
|
-
typedef llvm::GCProjectionInst GCProjectionInst;
|
|
200
|
-
typedef llvm::GCRelocateInst GCRelocateInst;
|
|
201
|
-
typedef llvm::GCResultInst GCResultInst;
|
|
202
|
-
typedef llvm::AssumeInst AssumeInst;
|
|
203
|
-
#endif
|
|
204
|
-
|
|
205
|
-
// LLVM Debug Information
|
|
206
|
-
typedef llvm::DIType DIType;
|
|
207
|
-
typedef llvm::DICompositeType DICompositeType;
|
|
208
|
-
typedef llvm::DIDerivedType DIDerivedType;
|
|
209
|
-
typedef llvm::DebugInfoFinder DebugInfoFinder;
|
|
210
|
-
typedef llvm::DISubroutineType DISubroutineType;
|
|
211
|
-
typedef llvm::DIBasicType DIBasicType;
|
|
212
|
-
typedef llvm::DISubrange DISubrange;
|
|
213
|
-
typedef llvm::DINode DINode;
|
|
214
|
-
typedef llvm::DINodeArray DINodeArray;
|
|
215
|
-
typedef llvm::DITypeRefArray DITypeRefArray;
|
|
216
|
-
namespace dwarf = llvm::dwarf;
|
|
217
|
-
|
|
218
|
-
// Iterators.
|
|
219
|
-
typedef llvm::inst_iterator inst_iterator;
|
|
220
|
-
typedef llvm::const_inst_iterator const_inst_iterator;
|
|
221
|
-
typedef llvm::gep_type_iterator gep_type_iterator;
|
|
222
|
-
typedef llvm::bridge_gep_iterator bridge_gep_iterator;
|
|
223
|
-
typedef llvm::const_inst_iterator const_inst_iterator;
|
|
224
|
-
typedef llvm::const_pred_iterator const_pred_iterator;
|
|
225
|
-
|
|
226
|
-
// LLVM Scalar Evolution.
|
|
227
|
-
typedef llvm::ScalarEvolutionWrapperPass ScalarEvolutionWrapperPass;
|
|
228
|
-
typedef llvm::SCEVAddRecExpr SCEVAddRecExpr;
|
|
229
|
-
typedef llvm::SCEVConstant SCEVConstant;
|
|
230
|
-
typedef llvm::ScalarEvolution ScalarEvolution;
|
|
231
|
-
typedef llvm::SCEV SCEV;
|
|
232
|
-
|
|
233
|
-
/// LLVM outputs
|
|
234
|
-
typedef llvm::raw_fd_ostream raw_fd_ostream;
|
|
235
|
-
|
|
236
|
-
// LLVM Types.
|
|
237
|
-
typedef llvm::VectorType VectorType;
|
|
238
|
-
#if (LLVM_VERSION_MAJOR >= 9)
|
|
239
|
-
typedef llvm::FunctionCallee FunctionCallee;
|
|
240
|
-
#endif
|
|
241
|
-
|
|
242
|
-
/// LLVM Iterators
|
|
243
|
-
#if LLVM_VERSION_MAJOR >= 11
|
|
244
|
-
typedef llvm::const_succ_iterator succ_const_iterator;
|
|
245
|
-
#else
|
|
246
|
-
typedef llvm::succ_const_iterator succ_const_iterator;
|
|
247
|
-
#endif
|
|
248
|
-
} // End namespace SVF
|
|
249
|
-
|
|
250
|
-
#endif // SVF_FE_BASIC_TYPES_H
|