svf-lib 1.0.1374 → 1.0.1376

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.
Files changed (679) hide show
  1. package/SVF-linux/Release-build/{lib/libSvf.a → svf-llvm/libSvfLLVM.a} +0 -0
  2. package/SVF-linux/{include → svf/include}/AbstractExecution/AbstractValue.h +0 -0
  3. package/SVF-linux/{include → svf/include}/AbstractExecution/AddressValue.h +0 -0
  4. package/SVF-linux/{include → svf/include}/AbstractExecution/ExeState.h +0 -0
  5. package/SVF-linux/{include → svf/include}/AbstractExecution/IntervalExeState.h +0 -0
  6. package/SVF-linux/{include → svf/include}/AbstractExecution/IntervalValue.h +0 -0
  7. package/SVF-linux/{include → svf/include}/AbstractExecution/NumericLiteral.h +0 -0
  8. package/SVF-linux/{include → svf/include}/AbstractExecution/RelExeState.h +0 -0
  9. package/SVF-linux/{include → svf/include}/AbstractExecution/RelationSolver.h +0 -0
  10. package/SVF-linux/{include → svf/include}/AbstractExecution/SVFIR2ItvExeState.h +0 -0
  11. package/SVF-linux/{include → svf/include}/AbstractExecution/WTO.h +0 -0
  12. package/SVF-linux/{include → svf/include}/CFL/CFGNormalizer.h +0 -0
  13. package/SVF-linux/{include → svf/include}/CFL/CFLAlias.h +0 -0
  14. package/SVF-linux/{include → svf/include}/CFL/CFLBase.h +0 -0
  15. package/SVF-linux/{include → svf/include}/CFL/CFLData.h +0 -0
  16. package/SVF-linux/{include → svf/include}/CFL/CFLDataBuilder.h +0 -0
  17. package/SVF-linux/{include → svf/include}/CFL/CFLGramGraphChecker.h +0 -0
  18. package/SVF-linux/{include → svf/include}/CFL/CFLGrammar.h +0 -0
  19. package/SVF-linux/{include → svf/include}/CFL/CFLGrammar.txt +0 -0
  20. package/SVF-linux/{include → svf/include}/CFL/CFLGrammarDev.txt +0 -0
  21. package/SVF-linux/{include → svf/include}/CFL/CFLGraphBuilder.h +0 -0
  22. package/SVF-linux/{include → svf/include}/CFL/CFLSolver.h +0 -0
  23. package/SVF-linux/{include → svf/include}/CFL/CFLStat.h +0 -0
  24. package/SVF-linux/{include → svf/include}/CFL/CFLVF.h +0 -0
  25. package/SVF-linux/{include → svf/include}/CFL/GrammarBuilder.h +0 -0
  26. package/SVF-linux/{include → svf/include}/CFL/PEGGrammar.txt +0 -0
  27. package/SVF-linux/{include → svf/include}/CFL/VFG.txt +0 -0
  28. package/SVF-linux/{include → svf/include}/CUDD/cudd.h +0 -0
  29. package/SVF-linux/{include → svf/include}/CUDD/cuddInt.h +0 -0
  30. package/SVF-linux/{include → svf/include}/CUDD/epd.h +0 -0
  31. package/SVF-linux/{include → svf/include}/CUDD/mtr.h +0 -0
  32. package/SVF-linux/{include → svf/include}/CUDD/mtrInt.h +0 -0
  33. package/SVF-linux/{include → svf/include}/CUDD/st.h +0 -0
  34. package/SVF-linux/{include → svf/include}/CUDD/util.h +0 -0
  35. package/SVF-linux/{include → svf/include}/DDA/ContextDDA.h +0 -0
  36. package/SVF-linux/{include → svf/include}/DDA/DDAClient.h +0 -0
  37. package/SVF-linux/{include → svf/include}/DDA/DDAPass.h +0 -0
  38. package/SVF-linux/{include → svf/include}/DDA/DDAStat.h +0 -0
  39. package/SVF-linux/{include → svf/include}/DDA/DDAVFSolver.h +0 -0
  40. package/SVF-linux/{include → svf/include}/DDA/FlowDDA.h +0 -0
  41. package/SVF-linux/{include → svf/include}/FastCluster/LICENSE.TXT +0 -0
  42. package/SVF-linux/{include → svf/include}/FastCluster/fastcluster.h +0 -0
  43. package/SVF-linux/{include → svf/include}/Graphs/CFLGraph.h +0 -0
  44. package/SVF-linux/{include → svf/include}/Graphs/CHG.h +0 -0
  45. package/SVF-linux/{include → svf/include}/Graphs/ConsG.h +0 -0
  46. package/SVF-linux/{include → svf/include}/Graphs/ConsGEdge.h +0 -0
  47. package/SVF-linux/{include → svf/include}/Graphs/ConsGNode.h +0 -0
  48. package/SVF-linux/{include → svf/include}/Graphs/DOTGraphTraits.h +0 -0
  49. package/SVF-linux/{include → svf/include}/Graphs/ExternalPAG.h +0 -0
  50. package/SVF-linux/{include → svf/include}/Graphs/GenericGraph.h +0 -0
  51. package/SVF-linux/{include → svf/include}/Graphs/GraphPrinter.h +0 -0
  52. package/SVF-linux/{include → svf/include}/Graphs/GraphTraits.h +0 -0
  53. package/SVF-linux/{include → svf/include}/Graphs/GraphWriter.h +0 -0
  54. package/SVF-linux/{include → svf/include}/Graphs/ICFG.h +0 -0
  55. package/SVF-linux/{include → svf/include}/Graphs/ICFGEdge.h +0 -0
  56. package/SVF-linux/{include → svf/include}/Graphs/ICFGNode.h +0 -0
  57. package/SVF-linux/{include → svf/include}/Graphs/ICFGStat.h +0 -0
  58. package/SVF-linux/{include → svf/include}/Graphs/IRGraph.h +0 -0
  59. package/SVF-linux/{include → svf/include}/Graphs/OfflineConsG.h +0 -0
  60. package/SVF-linux/{include → svf/include}/Graphs/PAG.h +0 -0
  61. package/SVF-linux/{include → svf/include}/Graphs/PAGEdge.h +0 -0
  62. package/SVF-linux/{include → svf/include}/Graphs/PAGNode.h +0 -0
  63. package/SVF-linux/{include → svf/include}/Graphs/PTACallGraph.h +0 -0
  64. package/SVF-linux/{include → svf/include}/Graphs/SVFG.h +0 -0
  65. package/SVF-linux/{include → svf/include}/Graphs/SVFGEdge.h +0 -0
  66. package/SVF-linux/{include → svf/include}/Graphs/SVFGNode.h +0 -0
  67. package/SVF-linux/{include → svf/include}/Graphs/SVFGOPT.h +0 -0
  68. package/SVF-linux/{include → svf/include}/Graphs/SVFGStat.h +0 -0
  69. package/SVF-linux/{include → svf/include}/Graphs/ThreadCallGraph.h +0 -0
  70. package/SVF-linux/{include → svf/include}/Graphs/VFG.h +0 -0
  71. package/SVF-linux/{include → svf/include}/Graphs/VFGEdge.h +0 -0
  72. package/SVF-linux/{include → svf/include}/Graphs/VFGNode.h +0 -0
  73. package/SVF-linux/{include → svf/include}/MSSA/MSSAMuChi.h +0 -0
  74. package/SVF-linux/{include → svf/include}/MSSA/MemPartition.h +0 -0
  75. package/SVF-linux/{include → svf/include}/MSSA/MemRegion.h +0 -0
  76. package/SVF-linux/{include → svf/include}/MSSA/MemSSA.h +0 -0
  77. package/SVF-linux/{include → svf/include}/MSSA/SVFGBuilder.h +0 -0
  78. package/SVF-linux/{include → svf/include}/MTA/FSMPTA.h +0 -0
  79. package/SVF-linux/{include → svf/include}/MTA/LockAnalysis.h +0 -0
  80. package/SVF-linux/{include → svf/include}/MTA/LockResultValidator.h +0 -0
  81. package/SVF-linux/{include → svf/include}/MTA/MHP.h +0 -0
  82. package/SVF-linux/{include → svf/include}/MTA/MTA.h +0 -0
  83. package/SVF-linux/{include → svf/include}/MTA/MTAAnnotator.h +0 -0
  84. package/SVF-linux/{include → svf/include}/MTA/MTAResultValidator.h +0 -0
  85. package/SVF-linux/{include → svf/include}/MTA/MTAStat.h +0 -0
  86. package/SVF-linux/{include → svf/include}/MTA/PCG.h +0 -0
  87. package/SVF-linux/{include → svf/include}/MTA/TCT.h +0 -0
  88. package/SVF-linux/{include → svf/include}/MemoryModel/AbstractPointsToDS.h +0 -0
  89. package/SVF-linux/{include → svf/include}/MemoryModel/ConditionalPT.h +0 -0
  90. package/SVF-linux/{include → svf/include}/MemoryModel/LocationSet.h +0 -0
  91. package/SVF-linux/{include → svf/include}/MemoryModel/MemModel.h +0 -0
  92. package/SVF-linux/{include → svf/include}/MemoryModel/MutablePointsToDS.h +0 -0
  93. package/SVF-linux/{include → svf/include}/MemoryModel/PAGBuilderFromFile.h +0 -0
  94. package/SVF-linux/{include → svf/include}/MemoryModel/PTAStat.h +0 -0
  95. package/SVF-linux/{include → svf/include}/MemoryModel/PTAType.h +0 -0
  96. package/SVF-linux/{include → svf/include}/MemoryModel/PersistentPointsToCache.h +0 -0
  97. package/SVF-linux/{include → svf/include}/MemoryModel/PersistentPointsToDS.h +0 -0
  98. package/SVF-linux/{include → svf/include}/MemoryModel/PointerAnalysis.h +0 -0
  99. package/SVF-linux/{include → svf/include}/MemoryModel/PointerAnalysisImpl.h +0 -0
  100. package/SVF-linux/{include → svf/include}/MemoryModel/PointsTo.h +0 -0
  101. package/SVF-linux/{include → svf/include}/MemoryModel/PointsToDFDS.h +0 -0
  102. package/SVF-linux/{include → svf/include}/MemoryModel/PointsToDS.h +0 -0
  103. package/SVF-linux/{include → svf/include}/MemoryModel/SVFIR.h +0 -0
  104. package/SVF-linux/{include → svf/include}/MemoryModel/SVFLoop.h +0 -0
  105. package/SVF-linux/{include → svf/include}/MemoryModel/SVFStatements.h +0 -0
  106. package/SVF-linux/{include → svf/include}/MemoryModel/SVFSymbols.h +0 -0
  107. package/SVF-linux/{include → svf/include}/MemoryModel/SVFVariables.h +0 -0
  108. package/SVF-linux/{include → svf/include}/MemoryModel/SymbolTableInfo.h +0 -0
  109. package/SVF-linux/{include → svf/include}/SABER/DoubleFreeChecker.h +0 -0
  110. package/SVF-linux/{include → svf/include}/SABER/FileChecker.h +0 -0
  111. package/SVF-linux/{include → svf/include}/SABER/LeakChecker.h +0 -0
  112. package/SVF-linux/{include → svf/include}/SABER/PathCondAllocator.h +0 -0
  113. package/SVF-linux/{include → svf/include}/SABER/ProgSlice.h +0 -0
  114. package/SVF-linux/{include → svf/include}/SABER/SaberAnnotator.h +0 -0
  115. package/SVF-linux/{include → svf/include}/SABER/SaberCheckerAPI.h +0 -0
  116. package/SVF-linux/{include → svf/include}/SABER/SaberCondAllocator.h +0 -0
  117. package/SVF-linux/{include → svf/include}/SABER/SaberSVFGBuilder.h +0 -0
  118. package/SVF-linux/{include → svf/include}/SABER/SrcSnkDDA.h +0 -0
  119. package/SVF-linux/{include → svf/include}/SABER/SrcSnkSolver.h +0 -0
  120. package/SVF-linux/{include → svf/include}/SVFIR/PAGBuilderFromFile.h +0 -0
  121. package/SVF-linux/{include → svf/include}/SVFIR/SVFIR.h +0 -0
  122. package/SVF-linux/{include → svf/include}/SVFIR/SVFModule.h +0 -0
  123. package/SVF-linux/{include → svf/include}/SVFIR/SVFStatements.h +0 -0
  124. package/SVF-linux/{include → svf/include}/SVFIR/SVFType.h +0 -0
  125. package/SVF-linux/{include → svf/include}/SVFIR/SVFValue.h +0 -0
  126. package/SVF-linux/{include → svf/include}/SVFIR/SVFVariables.h +0 -0
  127. package/SVF-linux/{include → svf/include}/SVFIR/SymbolTableInfo.h +0 -0
  128. package/SVF-linux/{include → svf/include}/Util/Annotator.h +0 -0
  129. package/SVF-linux/{include → svf/include}/Util/BDDExpr.h +0 -0
  130. package/SVF-linux/{include → svf/include}/Util/BasicTypes.h +0 -0
  131. package/SVF-linux/{include → svf/include}/Util/BitVector.h +0 -0
  132. package/SVF-linux/{include → svf/include}/Util/CFLSolver.h +0 -0
  133. package/SVF-linux/{include → svf/include}/Util/CallGraphBuilder.h +0 -0
  134. package/SVF-linux/{include → svf/include}/Util/Casting.h +0 -0
  135. package/SVF-linux/{include → svf/include}/Util/CommandLine.h +0 -0
  136. package/SVF-linux/{include → svf/include}/Util/Conditions.h +0 -0
  137. package/SVF-linux/{include → svf/include}/Util/CoreBitVector.h +0 -0
  138. package/SVF-linux/{include → svf/include}/Util/CppUtil.h +0 -0
  139. package/SVF-linux/{include → svf/include}/Util/CxtStmt.h +0 -0
  140. package/SVF-linux/{include → svf/include}/Util/DPItem.h +0 -0
  141. package/SVF-linux/{include → svf/include}/Util/ExeState.h +0 -0
  142. package/SVF-linux/{include → svf/include}/Util/ExtAPI.h +0 -0
  143. package/SVF-linux/{include → svf/include}/Util/ExtAPI.json +0 -0
  144. package/SVF-linux/{include → svf/include}/Util/GraphReachSolver.h +0 -0
  145. package/SVF-linux/{include → svf/include}/Util/IRAnnotator.h +0 -0
  146. package/SVF-linux/{include → svf/include}/Util/NodeIDAllocator.h +0 -0
  147. package/SVF-linux/{include → svf/include}/Util/Options.h +0 -0
  148. package/SVF-linux/{include → svf/include}/Util/PTAStat.h +0 -0
  149. package/SVF-linux/{include → svf/include}/Util/PathCondAllocator.h +0 -0
  150. package/SVF-linux/{include → svf/include}/Util/PathDPItem.h +0 -0
  151. package/SVF-linux/{include → svf/include}/Util/SCC.h +0 -0
  152. package/SVF-linux/{include → svf/include}/Util/SVFBasicTypes.h +0 -0
  153. package/SVF-linux/{include → svf/include}/Util/SVFInstruction.h +0 -0
  154. package/SVF-linux/{include → svf/include}/Util/SVFModule.h +0 -0
  155. package/SVF-linux/{include → svf/include}/Util/SVFStat.h +0 -0
  156. package/SVF-linux/{include → svf/include}/Util/SVFUtil.h +0 -0
  157. package/SVF-linux/{include → svf/include}/Util/SparseBitVector.h +0 -0
  158. package/SVF-linux/{include → svf/include}/Util/SymState.h +0 -0
  159. package/SVF-linux/{include → svf/include}/Util/ThreadAPI.h +0 -0
  160. package/SVF-linux/{include → svf/include}/Util/TypeBasedHeapCloning.h +0 -0
  161. package/SVF-linux/{include → svf/include}/Util/WorkList.h +0 -0
  162. package/SVF-linux/{include → svf/include}/Util/Z3Expr.h +0 -0
  163. package/SVF-linux/{include → svf/include}/Util/cJSON.h +0 -0
  164. package/SVF-linux/{include → svf/include}/Util/config.h +0 -0
  165. package/SVF-linux/{include → svf/include}/Util/iterator.h +0 -0
  166. package/SVF-linux/{include → svf/include}/Util/iterator_range.h +0 -0
  167. package/SVF-linux/{include → svf/include}/WPA/Andersen.h +0 -0
  168. package/SVF-linux/{include → svf/include}/WPA/AndersenPWC.h +0 -0
  169. package/SVF-linux/{include → svf/include}/WPA/AndersenSFR.h +0 -0
  170. package/SVF-linux/{include → svf/include}/WPA/CSC.h +0 -0
  171. package/SVF-linux/{include → svf/include}/WPA/FlowSensitive.h +0 -0
  172. package/SVF-linux/{include → svf/include}/WPA/FlowSensitiveTBHC.h +0 -0
  173. package/SVF-linux/{include → svf/include}/WPA/Steensgaard.h +0 -0
  174. package/SVF-linux/{include → svf/include}/WPA/TypeAnalysis.h +0 -0
  175. package/SVF-linux/{include → svf/include}/WPA/TypeBasedHeapCloning.h +0 -0
  176. package/SVF-linux/{include → svf/include}/WPA/VersionedFlowSensitive.h +0 -0
  177. package/SVF-linux/{include → svf/include}/WPA/WPAFSSolver.h +0 -0
  178. package/SVF-linux/{include → svf/include}/WPA/WPAPass.h +0 -0
  179. package/SVF-linux/{include → svf/include}/WPA/WPASolver.h +0 -0
  180. package/SVF-linux/{include → svf/include}/WPA/WPAStat.h +0 -0
  181. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/AbstractValue.h +0 -0
  182. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/AddressValue.h +0 -0
  183. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/ExeState.h +0 -0
  184. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/IntervalExeState.h +0 -0
  185. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/IntervalValue.h +0 -0
  186. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/NumericLiteral.h +0 -0
  187. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/RelExeState.h +0 -0
  188. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/RelationSolver.h +0 -0
  189. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/SVFIR2ItvExeState.h +0 -0
  190. package/{SVF-osx → SVF-linux/svf/include}/include/AbstractExecution/WTO.h +0 -0
  191. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFGNormalizer.h +0 -0
  192. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLAlias.h +0 -0
  193. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLBase.h +0 -0
  194. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLData.h +0 -0
  195. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLDataBuilder.h +0 -0
  196. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLGramGraphChecker.h +0 -0
  197. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLGrammar.h +0 -0
  198. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLGrammar.txt +0 -0
  199. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLGraphBuilder.h +0 -0
  200. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLSolver.h +0 -0
  201. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLStat.h +0 -0
  202. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/CFLVF.h +0 -0
  203. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/GrammarBuilder.h +0 -0
  204. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/PEGGrammar.txt +0 -0
  205. package/{SVF-osx → SVF-linux/svf/include}/include/CFL/VFG.txt +0 -0
  206. package/{SVF-osx → SVF-linux/svf/include}/include/DDA/ContextDDA.h +0 -0
  207. package/{SVF-osx → SVF-linux/svf/include}/include/DDA/DDAClient.h +0 -0
  208. package/{SVF-osx → SVF-linux/svf/include}/include/DDA/DDAPass.h +0 -0
  209. package/{SVF-osx → SVF-linux/svf/include}/include/DDA/DDAStat.h +0 -0
  210. package/{SVF-osx → SVF-linux/svf/include}/include/DDA/DDAVFSolver.h +0 -0
  211. package/{SVF-osx → SVF-linux/svf/include}/include/DDA/FlowDDA.h +0 -0
  212. package/{SVF-osx → SVF-linux/svf/include}/include/FastCluster/LICENSE.TXT +0 -0
  213. package/{SVF-osx → SVF-linux/svf/include}/include/FastCluster/fastcluster.h +0 -0
  214. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/CFLGraph.h +0 -0
  215. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/CHG.h +0 -0
  216. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ConsG.h +0 -0
  217. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ConsGEdge.h +0 -0
  218. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ConsGNode.h +0 -0
  219. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/DOTGraphTraits.h +0 -0
  220. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/GenericGraph.h +0 -0
  221. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/GraphPrinter.h +0 -0
  222. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/GraphTraits.h +0 -0
  223. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/GraphWriter.h +0 -0
  224. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ICFG.h +0 -0
  225. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ICFGEdge.h +0 -0
  226. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ICFGNode.h +0 -0
  227. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ICFGStat.h +0 -0
  228. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/IRGraph.h +0 -0
  229. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/PTACallGraph.h +0 -0
  230. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/SVFG.h +0 -0
  231. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/SVFGEdge.h +0 -0
  232. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/SVFGNode.h +0 -0
  233. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/SVFGOPT.h +0 -0
  234. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/SVFGStat.h +0 -0
  235. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/ThreadCallGraph.h +0 -0
  236. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/VFG.h +0 -0
  237. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/VFGEdge.h +0 -0
  238. package/{SVF-osx → SVF-linux/svf/include}/include/Graphs/VFGNode.h +0 -0
  239. package/{SVF-osx → SVF-linux/svf/include}/include/MSSA/MSSAMuChi.h +0 -0
  240. package/{SVF-osx → SVF-linux/svf/include}/include/MSSA/MemPartition.h +0 -0
  241. package/{SVF-osx → SVF-linux/svf/include}/include/MSSA/MemRegion.h +0 -0
  242. package/{SVF-osx → SVF-linux/svf/include}/include/MSSA/MemSSA.h +0 -0
  243. package/{SVF-osx → SVF-linux/svf/include}/include/MSSA/SVFGBuilder.h +0 -0
  244. package/{SVF-osx → SVF-linux/svf/include}/include/MTA/FSMPTA.h +0 -0
  245. package/{SVF-osx → SVF-linux/svf/include}/include/MTA/LockAnalysis.h +0 -0
  246. package/{SVF-osx → SVF-linux/svf/include}/include/MTA/MHP.h +0 -0
  247. package/{SVF-osx → SVF-linux/svf/include}/include/MTA/MTA.h +0 -0
  248. package/{SVF-osx → SVF-linux/svf/include}/include/MTA/MTAResultValidator.h +0 -0
  249. package/{SVF-osx → SVF-linux/svf/include}/include/MTA/MTAStat.h +0 -0
  250. package/{SVF-osx → SVF-linux/svf/include}/include/MTA/PCG.h +0 -0
  251. package/{SVF-osx → SVF-linux/svf/include}/include/MTA/TCT.h +0 -0
  252. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/AbstractPointsToDS.h +0 -0
  253. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/ConditionalPT.h +0 -0
  254. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/LocationSet.h +0 -0
  255. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/MutablePointsToDS.h +0 -0
  256. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/PersistentPointsToCache.h +0 -0
  257. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/PersistentPointsToDS.h +0 -0
  258. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/PointerAnalysis.h +0 -0
  259. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/PointerAnalysisImpl.h +0 -0
  260. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/PointsTo.h +0 -0
  261. package/{SVF-osx → SVF-linux/svf/include}/include/MemoryModel/SVFLoop.h +0 -0
  262. package/{SVF-osx → SVF-linux/svf/include}/include/SABER/DoubleFreeChecker.h +0 -0
  263. package/{SVF-osx → SVF-linux/svf/include}/include/SABER/FileChecker.h +0 -0
  264. package/{SVF-osx → SVF-linux/svf/include}/include/SABER/LeakChecker.h +0 -0
  265. package/{SVF-osx → SVF-linux/svf/include}/include/SABER/ProgSlice.h +0 -0
  266. package/{SVF-osx → SVF-linux/svf/include}/include/SABER/SaberCheckerAPI.h +0 -0
  267. package/{SVF-osx → SVF-linux/svf/include}/include/SABER/SaberCondAllocator.h +0 -0
  268. package/{SVF-osx → SVF-linux/svf/include}/include/SABER/SaberSVFGBuilder.h +0 -0
  269. package/{SVF-osx → SVF-linux/svf/include}/include/SABER/SrcSnkDDA.h +0 -0
  270. package/{SVF-osx → SVF-linux/svf/include}/include/SABER/SrcSnkSolver.h +0 -0
  271. package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/PAGBuilderFromFile.h +0 -0
  272. package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SVFIR.h +0 -0
  273. package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SVFModule.h +0 -0
  274. package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SVFStatements.h +0 -0
  275. package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SVFType.h +0 -0
  276. package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SVFValue.h +0 -0
  277. package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SVFVariables.h +0 -0
  278. package/{SVF-osx → SVF-linux/svf/include}/include/SVFIR/SymbolTableInfo.h +0 -0
  279. package/{SVF-osx → SVF-linux/svf/include}/include/Util/Annotator.h +0 -0
  280. package/{SVF-osx → SVF-linux/svf/include}/include/Util/BitVector.h +0 -0
  281. package/{SVF-osx → SVF-linux/svf/include}/include/Util/CallGraphBuilder.h +0 -0
  282. package/{SVF-osx → SVF-linux/svf/include}/include/Util/Casting.h +0 -0
  283. package/{SVF-osx → SVF-linux/svf/include}/include/Util/CommandLine.h +0 -0
  284. package/{SVF-osx → SVF-linux/svf/include}/include/Util/CoreBitVector.h +0 -0
  285. package/{SVF-osx → SVF-linux/svf/include}/include/Util/CppUtil.h +0 -0
  286. package/{SVF-osx → SVF-linux/svf/include}/include/Util/CxtStmt.h +0 -0
  287. package/{SVF-osx → SVF-linux/svf/include}/include/Util/DPItem.h +0 -0
  288. package/{SVF-osx → SVF-linux/svf/include}/include/Util/ExtAPI.h +0 -0
  289. package/{SVF-osx → SVF-linux/svf/include}/include/Util/ExtAPI.json +0 -0
  290. package/{SVF-osx → SVF-linux/svf/include}/include/Util/GraphReachSolver.h +0 -0
  291. package/{SVF-osx → SVF-linux/svf/include}/include/Util/NodeIDAllocator.h +0 -0
  292. package/{SVF-osx → SVF-linux/svf/include}/include/Util/Options.h +0 -0
  293. package/{SVF-osx → SVF-linux/svf/include}/include/Util/PTAStat.h +0 -0
  294. package/{SVF-osx → SVF-linux/svf/include}/include/Util/SCC.h +0 -0
  295. package/{SVF-osx → SVF-linux/svf/include}/include/Util/SVFStat.h +0 -0
  296. package/{SVF-osx → SVF-linux/svf/include}/include/Util/SVFUtil.h +0 -0
  297. package/{SVF-osx → SVF-linux/svf/include}/include/Util/SparseBitVector.h +0 -0
  298. package/{SVF-osx → SVF-linux/svf/include}/include/Util/ThreadAPI.h +0 -0
  299. package/{SVF-osx → SVF-linux/svf/include}/include/Util/WorkList.h +0 -0
  300. package/{SVF-osx → SVF-linux/svf/include}/include/Util/Z3Expr.h +0 -0
  301. package/{SVF-osx → SVF-linux/svf/include}/include/Util/cJSON.h +0 -0
  302. package/{SVF-osx → SVF-linux/svf/include}/include/Util/iterator.h +0 -0
  303. package/{SVF-osx → SVF-linux/svf/include}/include/Util/iterator_range.h +0 -0
  304. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/Andersen.h +0 -0
  305. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/AndersenPWC.h +0 -0
  306. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/CSC.h +0 -0
  307. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/FlowSensitive.h +0 -0
  308. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/Steensgaard.h +0 -0
  309. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/TypeAnalysis.h +0 -0
  310. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/VersionedFlowSensitive.h +0 -0
  311. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/WPAFSSolver.h +0 -0
  312. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/WPAPass.h +0 -0
  313. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/WPASolver.h +0 -0
  314. package/{SVF-osx → SVF-linux/svf/include}/include/WPA/WPAStat.h +0 -0
  315. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/BasicTypes.h +0 -0
  316. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/BreakConstantExpr.h +0 -0
  317. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/CHGBuilder.h +0 -0
  318. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/CPPUtil.h +0 -0
  319. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/DCHG.h +0 -0
  320. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/GEPTypeBridgeIterator.h +0 -0
  321. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/ICFGBuilder.h +0 -0
  322. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/IRAnnotator.h +0 -0
  323. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/LLVMLoopAnalysis.h +0 -0
  324. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/LLVMModule.h +0 -0
  325. package/SVF-linux/{include → svf-llvm/include}/SVF-LLVM/LLVMUtil.h +0 -0
  326. package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/BasicTypes.h +0 -0
  327. package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/BreakConstantExpr.h +0 -0
  328. package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/CHGBuilder.h +0 -0
  329. package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/DCHG.h +0 -0
  330. package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/GEPTypeBridgeIterator.h +0 -0
  331. package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/ICFGBuilder.h +0 -0
  332. package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/LLVMLoopAnalysis.h +0 -0
  333. package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/LLVMModule.h +0 -0
  334. package/{SVF-osx/include → SVF-linux/svf-llvm/include/SVF-LLVM}/SVF-LLVM/LLVMUtil.h +0 -0
  335. package/SVF-linux/{include → svf-llvm/include/SVF-LLVM}/SVF-LLVM/SVFIRBuilder.h +0 -0
  336. package/SVF-linux/{include → svf-llvm/include/SVF-LLVM}/SVF-LLVM/SymbolTableBuilder.h +0 -0
  337. package/{SVF-osx → SVF-linux/svf-llvm}/include/SVF-LLVM/SVFIRBuilder.h +0 -0
  338. package/{SVF-osx → SVF-linux/svf-llvm}/include/SVF-LLVM/SymbolTableBuilder.h +0 -0
  339. package/SVF-osx/Release-build/{lib/libSvf.a → svf-llvm/libSvfLLVM.a} +0 -0
  340. package/SVF-osx/svf/include/AbstractExecution/AbstractValue.h +79 -0
  341. package/SVF-osx/svf/include/AbstractExecution/AddressValue.h +210 -0
  342. package/SVF-osx/svf/include/AbstractExecution/ExeState.h +223 -0
  343. package/SVF-osx/svf/include/AbstractExecution/IntervalExeState.h +425 -0
  344. package/SVF-osx/svf/include/AbstractExecution/IntervalValue.h +868 -0
  345. package/SVF-osx/svf/include/AbstractExecution/NumericLiteral.h +406 -0
  346. package/SVF-osx/svf/include/AbstractExecution/RelExeState.h +225 -0
  347. package/SVF-osx/svf/include/AbstractExecution/RelationSolver.h +68 -0
  348. package/SVF-osx/svf/include/AbstractExecution/SVFIR2ItvExeState.h +186 -0
  349. package/SVF-osx/svf/include/AbstractExecution/WTO.h +845 -0
  350. package/SVF-osx/svf/include/CFL/CFGNormalizer.h +84 -0
  351. package/SVF-osx/svf/include/CFL/CFLAlias.h +176 -0
  352. package/SVF-osx/svf/include/CFL/CFLBase.h +115 -0
  353. package/SVF-osx/svf/include/CFL/CFLData.h +316 -0
  354. package/SVF-osx/svf/include/CFL/CFLDataBuilder.h +91 -0
  355. package/SVF-osx/svf/include/CFL/CFLGramGraphChecker.h +74 -0
  356. package/SVF-osx/svf/include/CFL/CFLGrammar.h +468 -0
  357. package/SVF-osx/svf/include/CFL/CFLGrammar.txt +15 -0
  358. package/SVF-osx/{include → svf/include}/CFL/CFLGrammarDev.txt +0 -0
  359. package/SVF-osx/svf/include/CFL/CFLGraphBuilder.h +193 -0
  360. package/SVF-osx/svf/include/CFL/CFLSolver.h +136 -0
  361. package/SVF-osx/svf/include/CFL/CFLStat.h +67 -0
  362. package/SVF-osx/svf/include/CFL/CFLVF.h +65 -0
  363. package/SVF-osx/svf/include/CFL/GrammarBuilder.h +100 -0
  364. package/SVF-osx/svf/include/CFL/PEGGrammar.txt +11 -0
  365. package/SVF-osx/svf/include/CFL/VFG.txt +7 -0
  366. package/SVF-osx/{include → svf/include}/CUDD/cudd.h +0 -0
  367. package/SVF-osx/{include → svf/include}/CUDD/cuddInt.h +0 -0
  368. package/SVF-osx/{include → svf/include}/CUDD/epd.h +0 -0
  369. package/SVF-osx/{include → svf/include}/CUDD/mtr.h +0 -0
  370. package/SVF-osx/{include → svf/include}/CUDD/mtrInt.h +0 -0
  371. package/SVF-osx/{include → svf/include}/CUDD/st.h +0 -0
  372. package/SVF-osx/{include → svf/include}/CUDD/util.h +0 -0
  373. package/SVF-osx/svf/include/DDA/ContextDDA.h +230 -0
  374. package/SVF-osx/svf/include/DDA/DDAClient.h +168 -0
  375. package/SVF-osx/svf/include/DDA/DDAPass.h +99 -0
  376. package/SVF-osx/svf/include/DDA/DDAStat.h +138 -0
  377. package/SVF-osx/svf/include/DDA/DDAVFSolver.h +789 -0
  378. package/SVF-osx/svf/include/DDA/FlowDDA.h +178 -0
  379. package/SVF-osx/svf/include/FastCluster/LICENSE.TXT +13 -0
  380. package/SVF-osx/svf/include/FastCluster/fastcluster.h +80 -0
  381. package/SVF-osx/svf/include/Graphs/CFLGraph.h +215 -0
  382. package/SVF-osx/svf/include/Graphs/CHG.h +351 -0
  383. package/SVF-osx/svf/include/Graphs/ConsG.h +408 -0
  384. package/SVF-osx/svf/include/Graphs/ConsGEdge.h +353 -0
  385. package/SVF-osx/svf/include/Graphs/ConsGNode.h +391 -0
  386. package/SVF-osx/svf/include/Graphs/DOTGraphTraits.h +188 -0
  387. package/SVF-osx/{include → svf/include}/Graphs/ExternalPAG.h +0 -0
  388. package/SVF-osx/svf/include/Graphs/GenericGraph.h +620 -0
  389. package/SVF-osx/svf/include/Graphs/GraphPrinter.h +111 -0
  390. package/SVF-osx/svf/include/Graphs/GraphTraits.h +150 -0
  391. package/SVF-osx/svf/include/Graphs/GraphWriter.h +380 -0
  392. package/SVF-osx/svf/include/Graphs/ICFG.h +331 -0
  393. package/SVF-osx/svf/include/Graphs/ICFGEdge.h +264 -0
  394. package/SVF-osx/svf/include/Graphs/ICFGNode.h +523 -0
  395. package/SVF-osx/svf/include/Graphs/ICFGStat.h +164 -0
  396. package/SVF-osx/svf/include/Graphs/IRGraph.h +243 -0
  397. package/SVF-osx/{include → svf/include}/Graphs/OfflineConsG.h +0 -0
  398. package/SVF-osx/{include → svf/include}/Graphs/PAG.h +0 -0
  399. package/SVF-osx/{include → svf/include}/Graphs/PAGEdge.h +0 -0
  400. package/SVF-osx/{include → svf/include}/Graphs/PAGNode.h +0 -0
  401. package/SVF-osx/svf/include/Graphs/PTACallGraph.h +471 -0
  402. package/SVF-osx/svf/include/Graphs/SVFG.h +490 -0
  403. package/SVF-osx/svf/include/Graphs/SVFGEdge.h +237 -0
  404. package/SVF-osx/svf/include/Graphs/SVFGNode.h +513 -0
  405. package/SVF-osx/svf/include/Graphs/SVFGOPT.h +362 -0
  406. package/SVF-osx/svf/include/Graphs/SVFGStat.h +273 -0
  407. package/SVF-osx/svf/include/Graphs/ThreadCallGraph.h +422 -0
  408. package/SVF-osx/svf/include/Graphs/VFG.h +664 -0
  409. package/SVF-osx/svf/include/Graphs/VFGEdge.h +295 -0
  410. package/SVF-osx/svf/include/Graphs/VFGNode.h +1197 -0
  411. package/SVF-osx/svf/include/MSSA/MSSAMuChi.h +722 -0
  412. package/SVF-osx/svf/include/MSSA/MemPartition.h +169 -0
  413. package/SVF-osx/svf/include/MSSA/MemRegion.h +491 -0
  414. package/SVF-osx/svf/include/MSSA/MemSSA.h +452 -0
  415. package/SVF-osx/svf/include/MSSA/SVFGBuilder.h +98 -0
  416. package/SVF-osx/svf/include/MTA/FSMPTA.h +270 -0
  417. package/SVF-osx/svf/include/MTA/LockAnalysis.h +517 -0
  418. package/SVF-osx/{include → svf/include}/MTA/LockResultValidator.h +0 -0
  419. package/SVF-osx/svf/include/MTA/MHP.h +565 -0
  420. package/SVF-osx/svf/include/MTA/MTA.h +101 -0
  421. package/SVF-osx/{include → svf/include}/MTA/MTAAnnotator.h +0 -0
  422. package/SVF-osx/svf/include/MTA/MTAResultValidator.h +448 -0
  423. package/SVF-osx/svf/include/MTA/MTAStat.h +74 -0
  424. package/SVF-osx/svf/include/MTA/PCG.h +229 -0
  425. package/SVF-osx/svf/include/MTA/TCT.h +599 -0
  426. package/SVF-osx/svf/include/MemoryModel/AbstractPointsToDS.h +316 -0
  427. package/SVF-osx/svf/include/MemoryModel/ConditionalPT.h +878 -0
  428. package/SVF-osx/svf/include/MemoryModel/LocationSet.h +148 -0
  429. package/SVF-osx/{include → svf/include}/MemoryModel/MemModel.h +0 -0
  430. package/SVF-osx/svf/include/MemoryModel/MutablePointsToDS.h +1025 -0
  431. package/SVF-osx/{include → svf/include}/MemoryModel/PAGBuilderFromFile.h +0 -0
  432. package/SVF-osx/{include → svf/include}/MemoryModel/PTAStat.h +0 -0
  433. package/SVF-osx/{include → svf/include}/MemoryModel/PTAType.h +0 -0
  434. package/SVF-osx/svf/include/MemoryModel/PersistentPointsToCache.h +463 -0
  435. package/SVF-osx/svf/include/MemoryModel/PersistentPointsToDS.h +955 -0
  436. package/SVF-osx/svf/include/MemoryModel/PointerAnalysis.h +452 -0
  437. package/SVF-osx/svf/include/MemoryModel/PointerAnalysisImpl.h +590 -0
  438. package/SVF-osx/svf/include/MemoryModel/PointsTo.h +255 -0
  439. package/SVF-osx/{include → svf/include}/MemoryModel/PointsToDFDS.h +0 -0
  440. package/SVF-osx/{include → svf/include}/MemoryModel/PointsToDS.h +0 -0
  441. package/SVF-osx/{include → svf/include}/MemoryModel/SVFIR.h +0 -0
  442. package/SVF-osx/svf/include/MemoryModel/SVFLoop.h +164 -0
  443. package/SVF-osx/{include → svf/include}/MemoryModel/SVFStatements.h +0 -0
  444. package/SVF-osx/{include → svf/include}/MemoryModel/SVFSymbols.h +0 -0
  445. package/SVF-osx/{include → svf/include}/MemoryModel/SVFVariables.h +0 -0
  446. package/SVF-osx/{include → svf/include}/MemoryModel/SymbolTableInfo.h +0 -0
  447. package/SVF-osx/svf/include/SABER/DoubleFreeChecker.h +76 -0
  448. package/SVF-osx/svf/include/SABER/FileChecker.h +82 -0
  449. package/SVF-osx/svf/include/SABER/LeakChecker.h +124 -0
  450. package/SVF-osx/{include → svf/include}/SABER/PathCondAllocator.h +0 -0
  451. package/SVF-osx/svf/include/SABER/ProgSlice.h +313 -0
  452. package/SVF-osx/{include → svf/include}/SABER/SaberAnnotator.h +0 -0
  453. package/SVF-osx/svf/include/SABER/SaberCheckerAPI.h +166 -0
  454. package/SVF-osx/svf/include/SABER/SaberCondAllocator.h +310 -0
  455. package/SVF-osx/svf/include/SABER/SaberSVFGBuilder.h +104 -0
  456. package/SVF-osx/svf/include/SABER/SrcSnkDDA.h +321 -0
  457. package/SVF-osx/svf/include/SABER/SrcSnkSolver.h +186 -0
  458. package/SVF-osx/svf/include/SVFIR/PAGBuilderFromFile.h +80 -0
  459. package/SVF-osx/svf/include/SVFIR/SVFIR.h +659 -0
  460. package/SVF-osx/svf/include/SVFIR/SVFModule.h +233 -0
  461. package/SVF-osx/svf/include/SVFIR/SVFStatements.h +1136 -0
  462. package/SVF-osx/svf/include/SVFIR/SVFType.h +527 -0
  463. package/SVF-osx/svf/include/SVFIR/SVFValue.h +1120 -0
  464. package/SVF-osx/svf/include/SVFIR/SVFVariables.h +721 -0
  465. package/SVF-osx/svf/include/SVFIR/SymbolTableInfo.h +597 -0
  466. package/SVF-osx/svf/include/Util/Annotator.h +180 -0
  467. package/SVF-osx/{include → svf/include}/Util/BDDExpr.h +0 -0
  468. package/SVF-osx/{include → svf/include}/Util/BasicTypes.h +0 -0
  469. package/SVF-osx/svf/include/Util/BitVector.h +55 -0
  470. package/SVF-osx/{include → svf/include}/Util/CFLSolver.h +0 -0
  471. package/SVF-osx/svf/include/Util/CallGraphBuilder.h +74 -0
  472. package/SVF-osx/svf/include/Util/Casting.h +426 -0
  473. package/SVF-osx/svf/include/Util/CommandLine.h +530 -0
  474. package/SVF-osx/{include → svf/include}/Util/Conditions.h +0 -0
  475. package/SVF-osx/svf/include/Util/CoreBitVector.h +214 -0
  476. package/SVF-osx/svf/include/Util/CppUtil.h +81 -0
  477. package/SVF-osx/svf/include/Util/CxtStmt.h +501 -0
  478. package/SVF-osx/svf/include/Util/DPItem.h +618 -0
  479. package/SVF-osx/{include → svf/include}/Util/ExeState.h +0 -0
  480. package/SVF-osx/svf/include/Util/ExtAPI.h +339 -0
  481. package/SVF-osx/svf/include/Util/ExtAPI.json +5707 -0
  482. package/SVF-osx/svf/include/Util/GraphReachSolver.h +186 -0
  483. package/SVF-osx/{include → svf/include}/Util/IRAnnotator.h +0 -0
  484. package/SVF-osx/svf/include/Util/NodeIDAllocator.h +194 -0
  485. package/SVF-osx/svf/include/Util/Options.h +266 -0
  486. package/SVF-osx/svf/include/Util/PTAStat.h +65 -0
  487. package/SVF-osx/{include → svf/include}/Util/PathCondAllocator.h +0 -0
  488. package/SVF-osx/{include → svf/include}/Util/PathDPItem.h +0 -0
  489. package/SVF-osx/svf/include/Util/SCC.h +354 -0
  490. package/SVF-osx/{include → svf/include}/Util/SVFBasicTypes.h +0 -0
  491. package/SVF-osx/{include → svf/include}/Util/SVFInstruction.h +0 -0
  492. package/SVF-osx/{include → svf/include}/Util/SVFModule.h +0 -0
  493. package/SVF-osx/svf/include/Util/SVFStat.h +100 -0
  494. package/SVF-osx/svf/include/Util/SVFUtil.h +660 -0
  495. package/SVF-osx/svf/include/Util/SparseBitVector.h +1202 -0
  496. package/SVF-osx/{include → svf/include}/Util/SymState.h +0 -0
  497. package/SVF-osx/svf/include/Util/ThreadAPI.h +330 -0
  498. package/SVF-osx/{include → svf/include}/Util/TypeBasedHeapCloning.h +0 -0
  499. package/SVF-osx/svf/include/Util/WorkList.h +317 -0
  500. package/SVF-osx/svf/include/Util/Z3Expr.h +318 -0
  501. package/SVF-osx/svf/include/Util/cJSON.h +300 -0
  502. package/SVF-osx/{include → svf/include}/Util/config.h +0 -0
  503. package/SVF-osx/svf/include/Util/iterator.h +407 -0
  504. package/SVF-osx/svf/include/Util/iterator_range.h +76 -0
  505. package/SVF-osx/svf/include/WPA/Andersen.h +416 -0
  506. package/SVF-osx/svf/include/WPA/AndersenPWC.h +160 -0
  507. package/SVF-osx/{include → svf/include}/WPA/AndersenSFR.h +0 -0
  508. package/SVF-osx/svf/include/WPA/CSC.h +95 -0
  509. package/SVF-osx/svf/include/WPA/FlowSensitive.h +317 -0
  510. package/SVF-osx/{include → svf/include}/WPA/FlowSensitiveTBHC.h +0 -0
  511. package/SVF-osx/svf/include/WPA/Steensgaard.h +126 -0
  512. package/SVF-osx/svf/include/WPA/TypeAnalysis.h +83 -0
  513. package/SVF-osx/{include → svf/include}/WPA/TypeBasedHeapCloning.h +0 -0
  514. package/SVF-osx/svf/include/WPA/VersionedFlowSensitive.h +287 -0
  515. package/SVF-osx/svf/include/WPA/WPAFSSolver.h +254 -0
  516. package/SVF-osx/svf/include/WPA/WPAPass.h +119 -0
  517. package/SVF-osx/svf/include/WPA/WPASolver.h +205 -0
  518. package/SVF-osx/svf/include/WPA/WPAStat.h +222 -0
  519. package/SVF-osx/svf/include/include/AbstractExecution/AbstractValue.h +79 -0
  520. package/SVF-osx/svf/include/include/AbstractExecution/AddressValue.h +210 -0
  521. package/SVF-osx/svf/include/include/AbstractExecution/ExeState.h +223 -0
  522. package/SVF-osx/svf/include/include/AbstractExecution/IntervalExeState.h +425 -0
  523. package/SVF-osx/svf/include/include/AbstractExecution/IntervalValue.h +868 -0
  524. package/SVF-osx/svf/include/include/AbstractExecution/NumericLiteral.h +406 -0
  525. package/SVF-osx/svf/include/include/AbstractExecution/RelExeState.h +225 -0
  526. package/SVF-osx/svf/include/include/AbstractExecution/RelationSolver.h +68 -0
  527. package/SVF-osx/svf/include/include/AbstractExecution/SVFIR2ItvExeState.h +186 -0
  528. package/SVF-osx/svf/include/include/AbstractExecution/WTO.h +845 -0
  529. package/SVF-osx/svf/include/include/CFL/CFGNormalizer.h +84 -0
  530. package/SVF-osx/svf/include/include/CFL/CFLAlias.h +176 -0
  531. package/SVF-osx/svf/include/include/CFL/CFLBase.h +115 -0
  532. package/SVF-osx/svf/include/include/CFL/CFLData.h +316 -0
  533. package/SVF-osx/svf/include/include/CFL/CFLDataBuilder.h +91 -0
  534. package/SVF-osx/svf/include/include/CFL/CFLGramGraphChecker.h +74 -0
  535. package/SVF-osx/svf/include/include/CFL/CFLGrammar.h +468 -0
  536. package/SVF-osx/svf/include/include/CFL/CFLGrammar.txt +15 -0
  537. package/SVF-osx/svf/include/include/CFL/CFLGraphBuilder.h +193 -0
  538. package/SVF-osx/svf/include/include/CFL/CFLSolver.h +136 -0
  539. package/SVF-osx/svf/include/include/CFL/CFLStat.h +67 -0
  540. package/SVF-osx/svf/include/include/CFL/CFLVF.h +65 -0
  541. package/SVF-osx/svf/include/include/CFL/GrammarBuilder.h +100 -0
  542. package/SVF-osx/svf/include/include/CFL/PEGGrammar.txt +11 -0
  543. package/SVF-osx/svf/include/include/CFL/VFG.txt +7 -0
  544. package/SVF-osx/svf/include/include/DDA/ContextDDA.h +230 -0
  545. package/SVF-osx/svf/include/include/DDA/DDAClient.h +168 -0
  546. package/SVF-osx/svf/include/include/DDA/DDAPass.h +99 -0
  547. package/SVF-osx/svf/include/include/DDA/DDAStat.h +138 -0
  548. package/SVF-osx/svf/include/include/DDA/DDAVFSolver.h +789 -0
  549. package/SVF-osx/svf/include/include/DDA/FlowDDA.h +178 -0
  550. package/SVF-osx/svf/include/include/FastCluster/LICENSE.TXT +13 -0
  551. package/SVF-osx/svf/include/include/FastCluster/fastcluster.h +80 -0
  552. package/SVF-osx/svf/include/include/Graphs/CFLGraph.h +215 -0
  553. package/SVF-osx/svf/include/include/Graphs/CHG.h +351 -0
  554. package/SVF-osx/svf/include/include/Graphs/ConsG.h +408 -0
  555. package/SVF-osx/svf/include/include/Graphs/ConsGEdge.h +353 -0
  556. package/SVF-osx/svf/include/include/Graphs/ConsGNode.h +391 -0
  557. package/SVF-osx/svf/include/include/Graphs/DOTGraphTraits.h +188 -0
  558. package/SVF-osx/svf/include/include/Graphs/GenericGraph.h +620 -0
  559. package/SVF-osx/svf/include/include/Graphs/GraphPrinter.h +111 -0
  560. package/SVF-osx/svf/include/include/Graphs/GraphTraits.h +150 -0
  561. package/SVF-osx/svf/include/include/Graphs/GraphWriter.h +380 -0
  562. package/SVF-osx/svf/include/include/Graphs/ICFG.h +331 -0
  563. package/SVF-osx/svf/include/include/Graphs/ICFGEdge.h +264 -0
  564. package/SVF-osx/svf/include/include/Graphs/ICFGNode.h +523 -0
  565. package/SVF-osx/svf/include/include/Graphs/ICFGStat.h +164 -0
  566. package/SVF-osx/svf/include/include/Graphs/IRGraph.h +243 -0
  567. package/SVF-osx/svf/include/include/Graphs/PTACallGraph.h +471 -0
  568. package/SVF-osx/svf/include/include/Graphs/SVFG.h +490 -0
  569. package/SVF-osx/svf/include/include/Graphs/SVFGEdge.h +237 -0
  570. package/SVF-osx/svf/include/include/Graphs/SVFGNode.h +513 -0
  571. package/SVF-osx/svf/include/include/Graphs/SVFGOPT.h +362 -0
  572. package/SVF-osx/svf/include/include/Graphs/SVFGStat.h +273 -0
  573. package/SVF-osx/svf/include/include/Graphs/ThreadCallGraph.h +422 -0
  574. package/SVF-osx/svf/include/include/Graphs/VFG.h +664 -0
  575. package/SVF-osx/svf/include/include/Graphs/VFGEdge.h +295 -0
  576. package/SVF-osx/svf/include/include/Graphs/VFGNode.h +1197 -0
  577. package/SVF-osx/svf/include/include/MSSA/MSSAMuChi.h +722 -0
  578. package/SVF-osx/svf/include/include/MSSA/MemPartition.h +169 -0
  579. package/SVF-osx/svf/include/include/MSSA/MemRegion.h +491 -0
  580. package/SVF-osx/svf/include/include/MSSA/MemSSA.h +452 -0
  581. package/SVF-osx/svf/include/include/MSSA/SVFGBuilder.h +98 -0
  582. package/SVF-osx/svf/include/include/MTA/FSMPTA.h +270 -0
  583. package/SVF-osx/svf/include/include/MTA/LockAnalysis.h +517 -0
  584. package/SVF-osx/svf/include/include/MTA/MHP.h +565 -0
  585. package/SVF-osx/svf/include/include/MTA/MTA.h +101 -0
  586. package/SVF-osx/svf/include/include/MTA/MTAResultValidator.h +448 -0
  587. package/SVF-osx/svf/include/include/MTA/MTAStat.h +74 -0
  588. package/SVF-osx/svf/include/include/MTA/PCG.h +229 -0
  589. package/SVF-osx/svf/include/include/MTA/TCT.h +599 -0
  590. package/SVF-osx/svf/include/include/MemoryModel/AbstractPointsToDS.h +316 -0
  591. package/SVF-osx/svf/include/include/MemoryModel/ConditionalPT.h +878 -0
  592. package/SVF-osx/svf/include/include/MemoryModel/LocationSet.h +148 -0
  593. package/SVF-osx/svf/include/include/MemoryModel/MutablePointsToDS.h +1025 -0
  594. package/SVF-osx/svf/include/include/MemoryModel/PersistentPointsToCache.h +463 -0
  595. package/SVF-osx/svf/include/include/MemoryModel/PersistentPointsToDS.h +955 -0
  596. package/SVF-osx/svf/include/include/MemoryModel/PointerAnalysis.h +452 -0
  597. package/SVF-osx/svf/include/include/MemoryModel/PointerAnalysisImpl.h +590 -0
  598. package/SVF-osx/svf/include/include/MemoryModel/PointsTo.h +255 -0
  599. package/SVF-osx/svf/include/include/MemoryModel/SVFLoop.h +164 -0
  600. package/SVF-osx/svf/include/include/SABER/DoubleFreeChecker.h +76 -0
  601. package/SVF-osx/svf/include/include/SABER/FileChecker.h +82 -0
  602. package/SVF-osx/svf/include/include/SABER/LeakChecker.h +124 -0
  603. package/SVF-osx/svf/include/include/SABER/ProgSlice.h +313 -0
  604. package/SVF-osx/svf/include/include/SABER/SaberCheckerAPI.h +166 -0
  605. package/SVF-osx/svf/include/include/SABER/SaberCondAllocator.h +310 -0
  606. package/SVF-osx/svf/include/include/SABER/SaberSVFGBuilder.h +104 -0
  607. package/SVF-osx/svf/include/include/SABER/SrcSnkDDA.h +321 -0
  608. package/SVF-osx/svf/include/include/SABER/SrcSnkSolver.h +186 -0
  609. package/SVF-osx/svf/include/include/SVFIR/PAGBuilderFromFile.h +80 -0
  610. package/SVF-osx/svf/include/include/SVFIR/SVFIR.h +659 -0
  611. package/SVF-osx/svf/include/include/SVFIR/SVFModule.h +233 -0
  612. package/SVF-osx/svf/include/include/SVFIR/SVFStatements.h +1136 -0
  613. package/SVF-osx/svf/include/include/SVFIR/SVFType.h +527 -0
  614. package/SVF-osx/svf/include/include/SVFIR/SVFValue.h +1120 -0
  615. package/SVF-osx/svf/include/include/SVFIR/SVFVariables.h +721 -0
  616. package/SVF-osx/svf/include/include/SVFIR/SymbolTableInfo.h +597 -0
  617. package/SVF-osx/svf/include/include/Util/Annotator.h +180 -0
  618. package/SVF-osx/svf/include/include/Util/BitVector.h +55 -0
  619. package/SVF-osx/svf/include/include/Util/CallGraphBuilder.h +74 -0
  620. package/SVF-osx/svf/include/include/Util/Casting.h +426 -0
  621. package/SVF-osx/svf/include/include/Util/CommandLine.h +530 -0
  622. package/SVF-osx/svf/include/include/Util/CoreBitVector.h +214 -0
  623. package/SVF-osx/svf/include/include/Util/CppUtil.h +81 -0
  624. package/SVF-osx/svf/include/include/Util/CxtStmt.h +501 -0
  625. package/SVF-osx/svf/include/include/Util/DPItem.h +618 -0
  626. package/SVF-osx/svf/include/include/Util/ExtAPI.h +339 -0
  627. package/SVF-osx/svf/include/include/Util/ExtAPI.json +5707 -0
  628. package/SVF-osx/svf/include/include/Util/GraphReachSolver.h +186 -0
  629. package/SVF-osx/svf/include/include/Util/NodeIDAllocator.h +194 -0
  630. package/SVF-osx/svf/include/include/Util/Options.h +266 -0
  631. package/SVF-osx/svf/include/include/Util/PTAStat.h +65 -0
  632. package/SVF-osx/svf/include/include/Util/SCC.h +354 -0
  633. package/SVF-osx/svf/include/include/Util/SVFStat.h +100 -0
  634. package/SVF-osx/svf/include/include/Util/SVFUtil.h +660 -0
  635. package/SVF-osx/svf/include/include/Util/SparseBitVector.h +1202 -0
  636. package/SVF-osx/svf/include/include/Util/ThreadAPI.h +330 -0
  637. package/SVF-osx/svf/include/include/Util/WorkList.h +317 -0
  638. package/SVF-osx/svf/include/include/Util/Z3Expr.h +318 -0
  639. package/SVF-osx/svf/include/include/Util/cJSON.h +300 -0
  640. package/SVF-osx/svf/include/include/Util/iterator.h +407 -0
  641. package/SVF-osx/svf/include/include/Util/iterator_range.h +76 -0
  642. package/SVF-osx/svf/include/include/WPA/Andersen.h +416 -0
  643. package/SVF-osx/svf/include/include/WPA/AndersenPWC.h +160 -0
  644. package/SVF-osx/svf/include/include/WPA/CSC.h +95 -0
  645. package/SVF-osx/svf/include/include/WPA/FlowSensitive.h +317 -0
  646. package/SVF-osx/svf/include/include/WPA/Steensgaard.h +126 -0
  647. package/SVF-osx/svf/include/include/WPA/TypeAnalysis.h +83 -0
  648. package/SVF-osx/svf/include/include/WPA/VersionedFlowSensitive.h +287 -0
  649. package/SVF-osx/svf/include/include/WPA/WPAFSSolver.h +254 -0
  650. package/SVF-osx/svf/include/include/WPA/WPAPass.h +119 -0
  651. package/SVF-osx/svf/include/include/WPA/WPASolver.h +205 -0
  652. package/SVF-osx/svf/include/include/WPA/WPAStat.h +222 -0
  653. package/SVF-osx/svf-llvm/include/SVF-LLVM/BasicTypes.h +250 -0
  654. package/SVF-osx/svf-llvm/include/SVF-LLVM/BreakConstantExpr.h +94 -0
  655. package/SVF-osx/svf-llvm/include/SVF-LLVM/CHGBuilder.h +73 -0
  656. package/SVF-osx/{include → svf-llvm/include}/SVF-LLVM/CPPUtil.h +0 -0
  657. package/SVF-osx/svf-llvm/include/SVF-LLVM/DCHG.h +484 -0
  658. package/SVF-osx/svf-llvm/include/SVF-LLVM/GEPTypeBridgeIterator.h +183 -0
  659. package/SVF-osx/svf-llvm/include/SVF-LLVM/ICFGBuilder.h +106 -0
  660. package/SVF-osx/{include → svf-llvm/include}/SVF-LLVM/IRAnnotator.h +0 -0
  661. package/SVF-osx/svf-llvm/include/SVF-LLVM/LLVMLoopAnalysis.h +61 -0
  662. package/SVF-osx/svf-llvm/include/SVF-LLVM/LLVMModule.h +360 -0
  663. package/SVF-osx/svf-llvm/include/SVF-LLVM/LLVMUtil.h +466 -0
  664. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/BasicTypes.h +250 -0
  665. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/BreakConstantExpr.h +94 -0
  666. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/CHGBuilder.h +73 -0
  667. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/DCHG.h +484 -0
  668. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/GEPTypeBridgeIterator.h +183 -0
  669. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/ICFGBuilder.h +106 -0
  670. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMLoopAnalysis.h +61 -0
  671. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMModule.h +360 -0
  672. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMUtil.h +466 -0
  673. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/SVFIRBuilder.h +417 -0
  674. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/SymbolTableBuilder.h +110 -0
  675. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVFIRBuilder.h +417 -0
  676. package/SVF-osx/svf-llvm/include/SVF-LLVM/SymbolTableBuilder.h +110 -0
  677. package/package.json +1 -1
  678. package/SVF-linux/Release-build/lib/CUDD/libCudd.a +0 -0
  679. package/SVF-osx/Release-build/lib/CUDD/libCudd.a +0 -0
@@ -0,0 +1,65 @@
1
+ //===- PTAStat.h -- Base class for 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
+ * PTAStat.h
25
+ *
26
+ * Created on: Oct 12, 2013
27
+ * Author: Yulei Sui
28
+ */
29
+
30
+ #ifndef ANDERSENSTAT_H_
31
+ #define ANDERSENSTAT_H_
32
+
33
+ #include "SVFIR/SVFValue.h"
34
+ #include "MemoryModel/PointsTo.h"
35
+ #include "Util/SVFStat.h"
36
+ #include <iostream>
37
+ #include <map>
38
+ #include <string>
39
+
40
+ namespace SVF
41
+ {
42
+
43
+ class PointerAnalysis;
44
+
45
+ /*!
46
+ * Pointer Analysis Statistics
47
+ */
48
+ class PTAStat: public SVFStat
49
+ {
50
+ public:
51
+ PTAStat(PointerAnalysis* p);
52
+ virtual ~PTAStat() {}
53
+
54
+ NodeBS localVarInRecursion;
55
+
56
+ void performStat() override;
57
+
58
+ void callgraphStat() override;
59
+ private:
60
+ PointerAnalysis* pta;
61
+ };
62
+
63
+ } // End namespace SVF
64
+
65
+ #endif /* ANDERSENSTAT_H_ */
@@ -0,0 +1,354 @@
1
+ //===- SCC.h -- SCC detection algorithm---------------------------------------//
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
+ * SCC.h
25
+ *
26
+ * Esko Nuutila and Eljas Soisalon-Soininen, "On finding the
27
+ * strongly connected components in a directed graph".
28
+ * Inf. Process. Letters, 49(1):9-14, 1994.
29
+ *
30
+ * The implementation is derived from the pseudo code in the following paper:
31
+ * Pereira and Berlin, "Wave Propagation and Deep Propagation for Pointer Analysis",
32
+ * CGO 2009, 126-135, 2009.
33
+ *
34
+ * And influenced by implementation from Open64 compiler
35
+ *
36
+ * Created on: Jul 12, 2013
37
+ * Author: yusui
38
+ */
39
+
40
+ #ifndef SCC_H_
41
+ #define SCC_H_
42
+
43
+ #include "SVFIR/SVFValue.h" // for NodeBS
44
+ #include <limits.h>
45
+ #include <stack>
46
+ #include <map>
47
+
48
+ namespace SVF
49
+ {
50
+
51
+ class GNodeSCCInfo;
52
+
53
+ template<class GraphType>
54
+ class SCCDetection
55
+ {
56
+
57
+ private:
58
+ ///Define the GTraits and node iterator for printing
59
+ typedef SVF::GenericGraphTraits<GraphType> GTraits;
60
+ typedef typename GTraits::NodeRef GNODE;
61
+ typedef typename GTraits::nodes_iterator node_iterator;
62
+ typedef typename GTraits::ChildIteratorType child_iterator;
63
+ typedef unsigned NodeID ;
64
+
65
+ public:
66
+ typedef std::stack<NodeID> GNodeStack;
67
+
68
+ class GNodeSCCInfo
69
+ {
70
+ public:
71
+ GNodeSCCInfo() : _visited(false), _inSCC(false), _rep(UINT_MAX) {}
72
+
73
+ inline bool visited(void) const
74
+ {
75
+ return _visited;
76
+ }
77
+ inline void visited(bool v)
78
+ {
79
+ _visited = v;
80
+ }
81
+ inline bool inSCC(void) const
82
+ {
83
+ return _inSCC;
84
+ }
85
+ inline void inSCC(bool v)
86
+ {
87
+ _inSCC = v;
88
+ }
89
+ inline NodeID rep(void)const
90
+ {
91
+ return _rep;
92
+ }
93
+ inline void rep(NodeID n)
94
+ {
95
+ _rep = n;
96
+ }
97
+ inline void addSubNodes(NodeID n)
98
+ {
99
+ _subNodes.set(n);
100
+ }
101
+ inline NodeBS& subNodes()
102
+ {
103
+ return _subNodes;
104
+ }
105
+ inline const NodeBS& subNodes() const
106
+ {
107
+ return _subNodes;
108
+ }
109
+ private:
110
+ bool _visited;
111
+ bool _inSCC;
112
+ NodeID _rep;
113
+ NodeBS _subNodes; /// nodes in the scc represented by this node
114
+ };
115
+
116
+ typedef Map<NodeID,GNodeSCCInfo > GNODESCCInfoMap;
117
+ typedef Map<NodeID, NodeID> NodeToNodeMap;
118
+
119
+ SCCDetection(const GraphType &GT)
120
+ : _graph(GT),
121
+ _I(0)
122
+ {}
123
+
124
+
125
+ // Return a handle to the stack of nodes in topological
126
+ // order. This will be used to seed the initial solution
127
+ // and improve efficiency.
128
+ inline GNodeStack &topoNodeStack()
129
+ {
130
+ return _T;
131
+ }
132
+
133
+ const inline GNODESCCInfoMap &GNodeSCCInfo() const
134
+ {
135
+ return _NodeSCCAuxInfo;
136
+ }
137
+
138
+ /// get the rep node if not found return itself
139
+ inline NodeID repNode(NodeID n) const
140
+ {
141
+ typename GNODESCCInfoMap::const_iterator it = _NodeSCCAuxInfo.find(n);
142
+ assert(it!=_NodeSCCAuxInfo.end() && "scc rep not found");
143
+ NodeID rep = it->second.rep();
144
+ return rep!= UINT_MAX ? rep : n ;
145
+ }
146
+
147
+
148
+ /// whether the node is in a cycle
149
+ inline bool isInCycle(NodeID n) const
150
+ {
151
+ NodeID rep = repNode(n);
152
+ // multi-node cycle
153
+ if (subNodes(rep).count() > 1)
154
+ {
155
+ return true;
156
+ }
157
+ // self-cycle
158
+ else
159
+ {
160
+ child_iterator EI = GTraits::direct_child_begin(Node(rep));
161
+ child_iterator EE = GTraits::direct_child_end(Node(rep));
162
+ for (; EI != EE; ++EI)
163
+ {
164
+ NodeID w = Node_Index(*EI);
165
+ if(w==rep)
166
+ return true;
167
+ }
168
+ return false;
169
+ }
170
+ }
171
+
172
+ /// get all subnodes in one scc, if size is empty insert itself into the set
173
+ inline const NodeBS& subNodes(NodeID n) const
174
+ {
175
+ typename GNODESCCInfoMap::const_iterator it = _NodeSCCAuxInfo.find(n);
176
+ assert(it!=_NodeSCCAuxInfo.end() && "scc rep not found");
177
+ return it->second.subNodes();
178
+ }
179
+
180
+ /// get all repNodeID
181
+ inline const NodeBS &getRepNodes() const
182
+ {
183
+ return repNodes;
184
+ }
185
+
186
+ const inline GraphType & graph()
187
+ {
188
+ return _graph;
189
+ }
190
+ private:
191
+
192
+ GNODESCCInfoMap _NodeSCCAuxInfo;
193
+
194
+ const GraphType & _graph;
195
+ NodeID _I;
196
+ NodeToNodeMap _D;
197
+ GNodeStack _SS;
198
+ GNodeStack _T;
199
+ NodeBS repNodes;
200
+
201
+ inline bool visited(NodeID n)
202
+ {
203
+ return _NodeSCCAuxInfo[n].visited();
204
+ }
205
+ inline bool inSCC(NodeID n)
206
+ {
207
+ return _NodeSCCAuxInfo[n].inSCC();
208
+ }
209
+
210
+ inline void setVisited(NodeID n,bool v)
211
+ {
212
+ _NodeSCCAuxInfo[n].visited(v);
213
+ }
214
+ inline void setInSCC(NodeID n,bool v)
215
+ {
216
+ _NodeSCCAuxInfo[n].inSCC(v);
217
+ }
218
+ inline void rep(NodeID n, NodeID r)
219
+ {
220
+ _NodeSCCAuxInfo[n].rep(r);
221
+ _NodeSCCAuxInfo[r].addSubNodes(n);
222
+ if (n != r)
223
+ {
224
+ _NodeSCCAuxInfo[n].subNodes().clear();
225
+ repNodes.reset(n);
226
+ repNodes.set(r);
227
+ }
228
+ }
229
+
230
+ inline NodeID rep(NodeID n)
231
+ {
232
+ return _NodeSCCAuxInfo[n].rep();
233
+ }
234
+ inline bool isInSCC(NodeID n)
235
+ {
236
+ return _NodeSCCAuxInfo[n].inSCC();
237
+ }
238
+
239
+ inline GNODE Node(NodeID id) const
240
+ {
241
+ return GTraits::getNode(_graph, id);
242
+ }
243
+
244
+ inline NodeID Node_Index(GNODE node) const
245
+ {
246
+ return GTraits::getNodeID(node);
247
+ }
248
+
249
+ void visit(NodeID v)
250
+ {
251
+ // SVFUtil::outs() << "visit GNODE: " << Node_Index(v)<< "\n";
252
+ _I += 1;
253
+ _D[v] = _I;
254
+ this->rep(v,v);
255
+ this->setVisited(v,true);
256
+
257
+ child_iterator EI = GTraits::direct_child_begin(Node(v));
258
+ child_iterator EE = GTraits::direct_child_end(Node(v));
259
+
260
+ for (; EI != EE; ++EI)
261
+ {
262
+ NodeID w = Node_Index(*EI);
263
+
264
+ if (!this->visited(w))
265
+ visit(w);
266
+ if (!this->inSCC(w))
267
+ {
268
+ NodeID rep;
269
+ rep = _D[this->rep(v)] < _D[this->rep(w)] ?
270
+ this->rep(v) : this->rep(w);
271
+ this->rep(v,rep);
272
+ }
273
+ }
274
+ if (this->rep(v) == v)
275
+ {
276
+ this->setInSCC(v,true);
277
+ while (!_SS.empty())
278
+ {
279
+ NodeID w = _SS.top();
280
+ if (_D[w] <= _D[v])
281
+ break;
282
+ else
283
+ {
284
+ _SS.pop();
285
+ this->setInSCC(w,true);
286
+ this->rep(w,v);
287
+ }
288
+ }
289
+ _T.push(v);
290
+ }
291
+ else
292
+ _SS.push(v);
293
+ }
294
+
295
+ void clear()
296
+ {
297
+ _NodeSCCAuxInfo.clear();
298
+ _I = 0;
299
+ _D.clear();
300
+ repNodes.clear();
301
+ while(!_SS.empty())
302
+ _SS.pop();
303
+ while(!_T.empty())
304
+ _T.pop();
305
+ }
306
+ public:
307
+
308
+ void find(void)
309
+ {
310
+ // Visit each unvisited root node. A root node is defined
311
+ // to be a node that has no incoming copy/skew edges
312
+ clear();
313
+ node_iterator I = GTraits::nodes_begin(_graph);
314
+ node_iterator E = GTraits::nodes_end(_graph);
315
+ for (; I != E; ++I)
316
+ {
317
+ NodeID node = Node_Index(*I);
318
+ if (!this->visited(node))
319
+ {
320
+ // We skip any nodes that have a representative other than
321
+ // themselves. Such nodes occur as a result of merging
322
+ // nodes either through unifying an ACC or other node
323
+ // merging optimizations. Any such node should have no
324
+ // outgoing edges and therefore should no longer be a member
325
+ // of an SCC.
326
+ if (this->rep(node) == UINT_MAX || this->rep(node) == node)
327
+ visit(node);
328
+ else
329
+ this->visited(node);
330
+ }
331
+ }
332
+ }
333
+
334
+ void find(NodeSet &candidates)
335
+ {
336
+ // This function is reloaded to only visit candidate NODES
337
+ clear();
338
+ for (NodeID node : candidates)
339
+ {
340
+ if (!this->visited(node))
341
+ {
342
+ if (this->rep(node) == UINT_MAX || this->rep(node) == node)
343
+ visit(node);
344
+ else
345
+ this->visited(node);
346
+ }
347
+ }
348
+ }
349
+
350
+ };
351
+
352
+ } // End namespace SVF
353
+
354
+ #endif /* SCC_H_ */
@@ -0,0 +1,100 @@
1
+ //===- SVFStat.h -- Base class for 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
+ * SVFStat.h
25
+ *
26
+ * Created on: Sep 1, 2022
27
+ * Author: Xiao Cheng
28
+ */
29
+
30
+ #ifndef SVF_SVFSTAT_H
31
+ #define SVF_SVFSTAT_H
32
+
33
+ namespace SVF
34
+ {
35
+
36
+
37
+ /*!
38
+ * Pointer Analysis Statistics
39
+ */
40
+ class SVFStat
41
+ {
42
+ public:
43
+
44
+ typedef OrderedMap<const char *, u32_t> NUMStatMap;
45
+
46
+ typedef OrderedMap<const char *, double> TIMEStatMap;
47
+
48
+ enum ClockType
49
+ {
50
+ Wall,
51
+ CPU,
52
+ };
53
+
54
+ SVFStat();
55
+
56
+ virtual ~SVFStat() {}
57
+
58
+ virtual inline void startClk()
59
+ {
60
+ startTime = getClk(true);
61
+ }
62
+
63
+ virtual inline void endClk()
64
+ {
65
+ endTime = getClk(true);
66
+ }
67
+
68
+ /// When mark is true, real clock is always returned. When mark is false, it is
69
+ /// only returned when Options::MarkedClocksOnly is not set.
70
+ /// Default call for getClk is unmarked, while MarkedClocksOnly is false by default.
71
+ static double getClk(bool mark = false);
72
+
73
+ NUMStatMap generalNumMap;
74
+ NUMStatMap PTNumStatMap;
75
+ TIMEStatMap timeStatMap;
76
+
77
+ double startTime;
78
+ double endTime;
79
+
80
+ virtual void performStat() = 0;
81
+
82
+ virtual void printStat(std::string str = "");
83
+
84
+ virtual void performStatPerQuery(NodeID) {}
85
+
86
+ virtual void printStatPerQuery(NodeID, const PointsTo &) {}
87
+
88
+ virtual void callgraphStat() {}
89
+
90
+ static double timeOfBuildingLLVMModule;
91
+ static double timeOfBuildingSymbolTable;
92
+ static double timeOfBuildingSVFIR;
93
+
94
+ private:
95
+ void branchStat();
96
+ std::string moduleName;
97
+ }; // End class SVFStat
98
+
99
+ } // End namespace SVF
100
+ #endif //SVF_SVFSTAT_H