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.
Files changed (292) hide show
  1. package/SVF-osx/Release-build/svf-llvm/libSvfLLVM.a +0 -0
  2. package/package.json +1 -1
  3. package/SVF-linux/svf/include/include/AbstractExecution/AbstractValue.h +0 -79
  4. package/SVF-linux/svf/include/include/AbstractExecution/AddressValue.h +0 -210
  5. package/SVF-linux/svf/include/include/AbstractExecution/ExeState.h +0 -223
  6. package/SVF-linux/svf/include/include/AbstractExecution/IntervalExeState.h +0 -425
  7. package/SVF-linux/svf/include/include/AbstractExecution/IntervalValue.h +0 -868
  8. package/SVF-linux/svf/include/include/AbstractExecution/NumericLiteral.h +0 -406
  9. package/SVF-linux/svf/include/include/AbstractExecution/RelExeState.h +0 -225
  10. package/SVF-linux/svf/include/include/AbstractExecution/RelationSolver.h +0 -68
  11. package/SVF-linux/svf/include/include/AbstractExecution/SVFIR2ItvExeState.h +0 -186
  12. package/SVF-linux/svf/include/include/AbstractExecution/WTO.h +0 -845
  13. package/SVF-linux/svf/include/include/CFL/CFGNormalizer.h +0 -84
  14. package/SVF-linux/svf/include/include/CFL/CFLAlias.h +0 -176
  15. package/SVF-linux/svf/include/include/CFL/CFLBase.h +0 -115
  16. package/SVF-linux/svf/include/include/CFL/CFLData.h +0 -316
  17. package/SVF-linux/svf/include/include/CFL/CFLDataBuilder.h +0 -91
  18. package/SVF-linux/svf/include/include/CFL/CFLGramGraphChecker.h +0 -74
  19. package/SVF-linux/svf/include/include/CFL/CFLGrammar.h +0 -468
  20. package/SVF-linux/svf/include/include/CFL/CFLGrammar.txt +0 -15
  21. package/SVF-linux/svf/include/include/CFL/CFLGraphBuilder.h +0 -193
  22. package/SVF-linux/svf/include/include/CFL/CFLSolver.h +0 -136
  23. package/SVF-linux/svf/include/include/CFL/CFLStat.h +0 -67
  24. package/SVF-linux/svf/include/include/CFL/CFLVF.h +0 -65
  25. package/SVF-linux/svf/include/include/CFL/GrammarBuilder.h +0 -100
  26. package/SVF-linux/svf/include/include/CFL/PEGGrammar.txt +0 -11
  27. package/SVF-linux/svf/include/include/CFL/VFG.txt +0 -7
  28. package/SVF-linux/svf/include/include/DDA/ContextDDA.h +0 -230
  29. package/SVF-linux/svf/include/include/DDA/DDAClient.h +0 -168
  30. package/SVF-linux/svf/include/include/DDA/DDAPass.h +0 -99
  31. package/SVF-linux/svf/include/include/DDA/DDAStat.h +0 -138
  32. package/SVF-linux/svf/include/include/DDA/DDAVFSolver.h +0 -789
  33. package/SVF-linux/svf/include/include/DDA/FlowDDA.h +0 -178
  34. package/SVF-linux/svf/include/include/FastCluster/LICENSE.TXT +0 -13
  35. package/SVF-linux/svf/include/include/FastCluster/fastcluster.h +0 -80
  36. package/SVF-linux/svf/include/include/Graphs/CFLGraph.h +0 -215
  37. package/SVF-linux/svf/include/include/Graphs/CHG.h +0 -351
  38. package/SVF-linux/svf/include/include/Graphs/ConsG.h +0 -408
  39. package/SVF-linux/svf/include/include/Graphs/ConsGEdge.h +0 -353
  40. package/SVF-linux/svf/include/include/Graphs/ConsGNode.h +0 -391
  41. package/SVF-linux/svf/include/include/Graphs/DOTGraphTraits.h +0 -188
  42. package/SVF-linux/svf/include/include/Graphs/GenericGraph.h +0 -620
  43. package/SVF-linux/svf/include/include/Graphs/GraphPrinter.h +0 -111
  44. package/SVF-linux/svf/include/include/Graphs/GraphTraits.h +0 -150
  45. package/SVF-linux/svf/include/include/Graphs/GraphWriter.h +0 -380
  46. package/SVF-linux/svf/include/include/Graphs/ICFG.h +0 -331
  47. package/SVF-linux/svf/include/include/Graphs/ICFGEdge.h +0 -264
  48. package/SVF-linux/svf/include/include/Graphs/ICFGNode.h +0 -523
  49. package/SVF-linux/svf/include/include/Graphs/ICFGStat.h +0 -164
  50. package/SVF-linux/svf/include/include/Graphs/IRGraph.h +0 -243
  51. package/SVF-linux/svf/include/include/Graphs/PTACallGraph.h +0 -471
  52. package/SVF-linux/svf/include/include/Graphs/SVFG.h +0 -490
  53. package/SVF-linux/svf/include/include/Graphs/SVFGEdge.h +0 -237
  54. package/SVF-linux/svf/include/include/Graphs/SVFGNode.h +0 -513
  55. package/SVF-linux/svf/include/include/Graphs/SVFGOPT.h +0 -362
  56. package/SVF-linux/svf/include/include/Graphs/SVFGStat.h +0 -273
  57. package/SVF-linux/svf/include/include/Graphs/ThreadCallGraph.h +0 -422
  58. package/SVF-linux/svf/include/include/Graphs/VFG.h +0 -664
  59. package/SVF-linux/svf/include/include/Graphs/VFGEdge.h +0 -295
  60. package/SVF-linux/svf/include/include/Graphs/VFGNode.h +0 -1197
  61. package/SVF-linux/svf/include/include/MSSA/MSSAMuChi.h +0 -722
  62. package/SVF-linux/svf/include/include/MSSA/MemPartition.h +0 -169
  63. package/SVF-linux/svf/include/include/MSSA/MemRegion.h +0 -491
  64. package/SVF-linux/svf/include/include/MSSA/MemSSA.h +0 -452
  65. package/SVF-linux/svf/include/include/MSSA/SVFGBuilder.h +0 -98
  66. package/SVF-linux/svf/include/include/MTA/FSMPTA.h +0 -270
  67. package/SVF-linux/svf/include/include/MTA/LockAnalysis.h +0 -517
  68. package/SVF-linux/svf/include/include/MTA/MHP.h +0 -565
  69. package/SVF-linux/svf/include/include/MTA/MTA.h +0 -101
  70. package/SVF-linux/svf/include/include/MTA/MTAResultValidator.h +0 -448
  71. package/SVF-linux/svf/include/include/MTA/MTAStat.h +0 -74
  72. package/SVF-linux/svf/include/include/MTA/PCG.h +0 -229
  73. package/SVF-linux/svf/include/include/MTA/TCT.h +0 -599
  74. package/SVF-linux/svf/include/include/MemoryModel/AbstractPointsToDS.h +0 -316
  75. package/SVF-linux/svf/include/include/MemoryModel/ConditionalPT.h +0 -878
  76. package/SVF-linux/svf/include/include/MemoryModel/LocationSet.h +0 -148
  77. package/SVF-linux/svf/include/include/MemoryModel/MutablePointsToDS.h +0 -1025
  78. package/SVF-linux/svf/include/include/MemoryModel/PersistentPointsToCache.h +0 -463
  79. package/SVF-linux/svf/include/include/MemoryModel/PersistentPointsToDS.h +0 -955
  80. package/SVF-linux/svf/include/include/MemoryModel/PointerAnalysis.h +0 -452
  81. package/SVF-linux/svf/include/include/MemoryModel/PointerAnalysisImpl.h +0 -590
  82. package/SVF-linux/svf/include/include/MemoryModel/PointsTo.h +0 -255
  83. package/SVF-linux/svf/include/include/MemoryModel/SVFLoop.h +0 -164
  84. package/SVF-linux/svf/include/include/SABER/DoubleFreeChecker.h +0 -76
  85. package/SVF-linux/svf/include/include/SABER/FileChecker.h +0 -82
  86. package/SVF-linux/svf/include/include/SABER/LeakChecker.h +0 -124
  87. package/SVF-linux/svf/include/include/SABER/ProgSlice.h +0 -313
  88. package/SVF-linux/svf/include/include/SABER/SaberCheckerAPI.h +0 -166
  89. package/SVF-linux/svf/include/include/SABER/SaberCondAllocator.h +0 -310
  90. package/SVF-linux/svf/include/include/SABER/SaberSVFGBuilder.h +0 -104
  91. package/SVF-linux/svf/include/include/SABER/SrcSnkDDA.h +0 -321
  92. package/SVF-linux/svf/include/include/SABER/SrcSnkSolver.h +0 -186
  93. package/SVF-linux/svf/include/include/SVFIR/PAGBuilderFromFile.h +0 -80
  94. package/SVF-linux/svf/include/include/SVFIR/SVFIR.h +0 -659
  95. package/SVF-linux/svf/include/include/SVFIR/SVFModule.h +0 -233
  96. package/SVF-linux/svf/include/include/SVFIR/SVFStatements.h +0 -1136
  97. package/SVF-linux/svf/include/include/SVFIR/SVFType.h +0 -527
  98. package/SVF-linux/svf/include/include/SVFIR/SVFValue.h +0 -1120
  99. package/SVF-linux/svf/include/include/SVFIR/SVFVariables.h +0 -721
  100. package/SVF-linux/svf/include/include/SVFIR/SymbolTableInfo.h +0 -597
  101. package/SVF-linux/svf/include/include/Util/Annotator.h +0 -180
  102. package/SVF-linux/svf/include/include/Util/BitVector.h +0 -55
  103. package/SVF-linux/svf/include/include/Util/CallGraphBuilder.h +0 -74
  104. package/SVF-linux/svf/include/include/Util/Casting.h +0 -426
  105. package/SVF-linux/svf/include/include/Util/CommandLine.h +0 -530
  106. package/SVF-linux/svf/include/include/Util/CoreBitVector.h +0 -214
  107. package/SVF-linux/svf/include/include/Util/CppUtil.h +0 -81
  108. package/SVF-linux/svf/include/include/Util/CxtStmt.h +0 -501
  109. package/SVF-linux/svf/include/include/Util/DPItem.h +0 -618
  110. package/SVF-linux/svf/include/include/Util/ExtAPI.h +0 -339
  111. package/SVF-linux/svf/include/include/Util/ExtAPI.json +0 -5707
  112. package/SVF-linux/svf/include/include/Util/GraphReachSolver.h +0 -186
  113. package/SVF-linux/svf/include/include/Util/NodeIDAllocator.h +0 -194
  114. package/SVF-linux/svf/include/include/Util/Options.h +0 -266
  115. package/SVF-linux/svf/include/include/Util/PTAStat.h +0 -65
  116. package/SVF-linux/svf/include/include/Util/SCC.h +0 -354
  117. package/SVF-linux/svf/include/include/Util/SVFStat.h +0 -100
  118. package/SVF-linux/svf/include/include/Util/SVFUtil.h +0 -660
  119. package/SVF-linux/svf/include/include/Util/SparseBitVector.h +0 -1202
  120. package/SVF-linux/svf/include/include/Util/ThreadAPI.h +0 -330
  121. package/SVF-linux/svf/include/include/Util/WorkList.h +0 -317
  122. package/SVF-linux/svf/include/include/Util/Z3Expr.h +0 -318
  123. package/SVF-linux/svf/include/include/Util/cJSON.h +0 -300
  124. package/SVF-linux/svf/include/include/Util/iterator.h +0 -407
  125. package/SVF-linux/svf/include/include/Util/iterator_range.h +0 -76
  126. package/SVF-linux/svf/include/include/WPA/Andersen.h +0 -416
  127. package/SVF-linux/svf/include/include/WPA/AndersenPWC.h +0 -160
  128. package/SVF-linux/svf/include/include/WPA/CSC.h +0 -95
  129. package/SVF-linux/svf/include/include/WPA/FlowSensitive.h +0 -317
  130. package/SVF-linux/svf/include/include/WPA/Steensgaard.h +0 -126
  131. package/SVF-linux/svf/include/include/WPA/TypeAnalysis.h +0 -83
  132. package/SVF-linux/svf/include/include/WPA/VersionedFlowSensitive.h +0 -287
  133. package/SVF-linux/svf/include/include/WPA/WPAFSSolver.h +0 -254
  134. package/SVF-linux/svf/include/include/WPA/WPAPass.h +0 -119
  135. package/SVF-linux/svf/include/include/WPA/WPASolver.h +0 -205
  136. package/SVF-linux/svf/include/include/WPA/WPAStat.h +0 -222
  137. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/BasicTypes.h +0 -250
  138. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/BreakConstantExpr.h +0 -94
  139. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/CHGBuilder.h +0 -73
  140. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/DCHG.h +0 -484
  141. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/GEPTypeBridgeIterator.h +0 -183
  142. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/ICFGBuilder.h +0 -106
  143. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMLoopAnalysis.h +0 -61
  144. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMModule.h +0 -360
  145. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMUtil.h +0 -466
  146. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/SVFIRBuilder.h +0 -417
  147. package/SVF-linux/svf-llvm/include/SVF-LLVM/SVF-LLVM/SymbolTableBuilder.h +0 -110
  148. package/SVF-osx/svf/include/include/AbstractExecution/AbstractValue.h +0 -79
  149. package/SVF-osx/svf/include/include/AbstractExecution/AddressValue.h +0 -210
  150. package/SVF-osx/svf/include/include/AbstractExecution/ExeState.h +0 -223
  151. package/SVF-osx/svf/include/include/AbstractExecution/IntervalExeState.h +0 -425
  152. package/SVF-osx/svf/include/include/AbstractExecution/IntervalValue.h +0 -868
  153. package/SVF-osx/svf/include/include/AbstractExecution/NumericLiteral.h +0 -406
  154. package/SVF-osx/svf/include/include/AbstractExecution/RelExeState.h +0 -225
  155. package/SVF-osx/svf/include/include/AbstractExecution/RelationSolver.h +0 -68
  156. package/SVF-osx/svf/include/include/AbstractExecution/SVFIR2ItvExeState.h +0 -186
  157. package/SVF-osx/svf/include/include/AbstractExecution/WTO.h +0 -845
  158. package/SVF-osx/svf/include/include/CFL/CFGNormalizer.h +0 -84
  159. package/SVF-osx/svf/include/include/CFL/CFLAlias.h +0 -176
  160. package/SVF-osx/svf/include/include/CFL/CFLBase.h +0 -115
  161. package/SVF-osx/svf/include/include/CFL/CFLData.h +0 -316
  162. package/SVF-osx/svf/include/include/CFL/CFLDataBuilder.h +0 -91
  163. package/SVF-osx/svf/include/include/CFL/CFLGramGraphChecker.h +0 -74
  164. package/SVF-osx/svf/include/include/CFL/CFLGrammar.h +0 -468
  165. package/SVF-osx/svf/include/include/CFL/CFLGrammar.txt +0 -15
  166. package/SVF-osx/svf/include/include/CFL/CFLGraphBuilder.h +0 -193
  167. package/SVF-osx/svf/include/include/CFL/CFLSolver.h +0 -136
  168. package/SVF-osx/svf/include/include/CFL/CFLStat.h +0 -67
  169. package/SVF-osx/svf/include/include/CFL/CFLVF.h +0 -65
  170. package/SVF-osx/svf/include/include/CFL/GrammarBuilder.h +0 -100
  171. package/SVF-osx/svf/include/include/CFL/PEGGrammar.txt +0 -11
  172. package/SVF-osx/svf/include/include/CFL/VFG.txt +0 -7
  173. package/SVF-osx/svf/include/include/DDA/ContextDDA.h +0 -230
  174. package/SVF-osx/svf/include/include/DDA/DDAClient.h +0 -168
  175. package/SVF-osx/svf/include/include/DDA/DDAPass.h +0 -99
  176. package/SVF-osx/svf/include/include/DDA/DDAStat.h +0 -138
  177. package/SVF-osx/svf/include/include/DDA/DDAVFSolver.h +0 -789
  178. package/SVF-osx/svf/include/include/DDA/FlowDDA.h +0 -178
  179. package/SVF-osx/svf/include/include/FastCluster/LICENSE.TXT +0 -13
  180. package/SVF-osx/svf/include/include/FastCluster/fastcluster.h +0 -80
  181. package/SVF-osx/svf/include/include/Graphs/CFLGraph.h +0 -215
  182. package/SVF-osx/svf/include/include/Graphs/CHG.h +0 -351
  183. package/SVF-osx/svf/include/include/Graphs/ConsG.h +0 -408
  184. package/SVF-osx/svf/include/include/Graphs/ConsGEdge.h +0 -353
  185. package/SVF-osx/svf/include/include/Graphs/ConsGNode.h +0 -391
  186. package/SVF-osx/svf/include/include/Graphs/DOTGraphTraits.h +0 -188
  187. package/SVF-osx/svf/include/include/Graphs/GenericGraph.h +0 -620
  188. package/SVF-osx/svf/include/include/Graphs/GraphPrinter.h +0 -111
  189. package/SVF-osx/svf/include/include/Graphs/GraphTraits.h +0 -150
  190. package/SVF-osx/svf/include/include/Graphs/GraphWriter.h +0 -380
  191. package/SVF-osx/svf/include/include/Graphs/ICFG.h +0 -331
  192. package/SVF-osx/svf/include/include/Graphs/ICFGEdge.h +0 -264
  193. package/SVF-osx/svf/include/include/Graphs/ICFGNode.h +0 -523
  194. package/SVF-osx/svf/include/include/Graphs/ICFGStat.h +0 -164
  195. package/SVF-osx/svf/include/include/Graphs/IRGraph.h +0 -243
  196. package/SVF-osx/svf/include/include/Graphs/PTACallGraph.h +0 -471
  197. package/SVF-osx/svf/include/include/Graphs/SVFG.h +0 -490
  198. package/SVF-osx/svf/include/include/Graphs/SVFGEdge.h +0 -237
  199. package/SVF-osx/svf/include/include/Graphs/SVFGNode.h +0 -513
  200. package/SVF-osx/svf/include/include/Graphs/SVFGOPT.h +0 -362
  201. package/SVF-osx/svf/include/include/Graphs/SVFGStat.h +0 -273
  202. package/SVF-osx/svf/include/include/Graphs/ThreadCallGraph.h +0 -422
  203. package/SVF-osx/svf/include/include/Graphs/VFG.h +0 -664
  204. package/SVF-osx/svf/include/include/Graphs/VFGEdge.h +0 -295
  205. package/SVF-osx/svf/include/include/Graphs/VFGNode.h +0 -1197
  206. package/SVF-osx/svf/include/include/MSSA/MSSAMuChi.h +0 -722
  207. package/SVF-osx/svf/include/include/MSSA/MemPartition.h +0 -169
  208. package/SVF-osx/svf/include/include/MSSA/MemRegion.h +0 -491
  209. package/SVF-osx/svf/include/include/MSSA/MemSSA.h +0 -452
  210. package/SVF-osx/svf/include/include/MSSA/SVFGBuilder.h +0 -98
  211. package/SVF-osx/svf/include/include/MTA/FSMPTA.h +0 -270
  212. package/SVF-osx/svf/include/include/MTA/LockAnalysis.h +0 -517
  213. package/SVF-osx/svf/include/include/MTA/MHP.h +0 -565
  214. package/SVF-osx/svf/include/include/MTA/MTA.h +0 -101
  215. package/SVF-osx/svf/include/include/MTA/MTAResultValidator.h +0 -448
  216. package/SVF-osx/svf/include/include/MTA/MTAStat.h +0 -74
  217. package/SVF-osx/svf/include/include/MTA/PCG.h +0 -229
  218. package/SVF-osx/svf/include/include/MTA/TCT.h +0 -599
  219. package/SVF-osx/svf/include/include/MemoryModel/AbstractPointsToDS.h +0 -316
  220. package/SVF-osx/svf/include/include/MemoryModel/ConditionalPT.h +0 -878
  221. package/SVF-osx/svf/include/include/MemoryModel/LocationSet.h +0 -148
  222. package/SVF-osx/svf/include/include/MemoryModel/MutablePointsToDS.h +0 -1025
  223. package/SVF-osx/svf/include/include/MemoryModel/PersistentPointsToCache.h +0 -463
  224. package/SVF-osx/svf/include/include/MemoryModel/PersistentPointsToDS.h +0 -955
  225. package/SVF-osx/svf/include/include/MemoryModel/PointerAnalysis.h +0 -452
  226. package/SVF-osx/svf/include/include/MemoryModel/PointerAnalysisImpl.h +0 -590
  227. package/SVF-osx/svf/include/include/MemoryModel/PointsTo.h +0 -255
  228. package/SVF-osx/svf/include/include/MemoryModel/SVFLoop.h +0 -164
  229. package/SVF-osx/svf/include/include/SABER/DoubleFreeChecker.h +0 -76
  230. package/SVF-osx/svf/include/include/SABER/FileChecker.h +0 -82
  231. package/SVF-osx/svf/include/include/SABER/LeakChecker.h +0 -124
  232. package/SVF-osx/svf/include/include/SABER/ProgSlice.h +0 -313
  233. package/SVF-osx/svf/include/include/SABER/SaberCheckerAPI.h +0 -166
  234. package/SVF-osx/svf/include/include/SABER/SaberCondAllocator.h +0 -310
  235. package/SVF-osx/svf/include/include/SABER/SaberSVFGBuilder.h +0 -104
  236. package/SVF-osx/svf/include/include/SABER/SrcSnkDDA.h +0 -321
  237. package/SVF-osx/svf/include/include/SABER/SrcSnkSolver.h +0 -186
  238. package/SVF-osx/svf/include/include/SVFIR/PAGBuilderFromFile.h +0 -80
  239. package/SVF-osx/svf/include/include/SVFIR/SVFIR.h +0 -659
  240. package/SVF-osx/svf/include/include/SVFIR/SVFModule.h +0 -233
  241. package/SVF-osx/svf/include/include/SVFIR/SVFStatements.h +0 -1136
  242. package/SVF-osx/svf/include/include/SVFIR/SVFType.h +0 -527
  243. package/SVF-osx/svf/include/include/SVFIR/SVFValue.h +0 -1120
  244. package/SVF-osx/svf/include/include/SVFIR/SVFVariables.h +0 -721
  245. package/SVF-osx/svf/include/include/SVFIR/SymbolTableInfo.h +0 -597
  246. package/SVF-osx/svf/include/include/Util/Annotator.h +0 -180
  247. package/SVF-osx/svf/include/include/Util/BitVector.h +0 -55
  248. package/SVF-osx/svf/include/include/Util/CallGraphBuilder.h +0 -74
  249. package/SVF-osx/svf/include/include/Util/Casting.h +0 -426
  250. package/SVF-osx/svf/include/include/Util/CommandLine.h +0 -530
  251. package/SVF-osx/svf/include/include/Util/CoreBitVector.h +0 -214
  252. package/SVF-osx/svf/include/include/Util/CppUtil.h +0 -81
  253. package/SVF-osx/svf/include/include/Util/CxtStmt.h +0 -501
  254. package/SVF-osx/svf/include/include/Util/DPItem.h +0 -618
  255. package/SVF-osx/svf/include/include/Util/ExtAPI.h +0 -339
  256. package/SVF-osx/svf/include/include/Util/ExtAPI.json +0 -5707
  257. package/SVF-osx/svf/include/include/Util/GraphReachSolver.h +0 -186
  258. package/SVF-osx/svf/include/include/Util/NodeIDAllocator.h +0 -194
  259. package/SVF-osx/svf/include/include/Util/Options.h +0 -266
  260. package/SVF-osx/svf/include/include/Util/PTAStat.h +0 -65
  261. package/SVF-osx/svf/include/include/Util/SCC.h +0 -354
  262. package/SVF-osx/svf/include/include/Util/SVFStat.h +0 -100
  263. package/SVF-osx/svf/include/include/Util/SVFUtil.h +0 -660
  264. package/SVF-osx/svf/include/include/Util/SparseBitVector.h +0 -1202
  265. package/SVF-osx/svf/include/include/Util/ThreadAPI.h +0 -330
  266. package/SVF-osx/svf/include/include/Util/WorkList.h +0 -317
  267. package/SVF-osx/svf/include/include/Util/Z3Expr.h +0 -318
  268. package/SVF-osx/svf/include/include/Util/cJSON.h +0 -300
  269. package/SVF-osx/svf/include/include/Util/iterator.h +0 -407
  270. package/SVF-osx/svf/include/include/Util/iterator_range.h +0 -76
  271. package/SVF-osx/svf/include/include/WPA/Andersen.h +0 -416
  272. package/SVF-osx/svf/include/include/WPA/AndersenPWC.h +0 -160
  273. package/SVF-osx/svf/include/include/WPA/CSC.h +0 -95
  274. package/SVF-osx/svf/include/include/WPA/FlowSensitive.h +0 -317
  275. package/SVF-osx/svf/include/include/WPA/Steensgaard.h +0 -126
  276. package/SVF-osx/svf/include/include/WPA/TypeAnalysis.h +0 -83
  277. package/SVF-osx/svf/include/include/WPA/VersionedFlowSensitive.h +0 -287
  278. package/SVF-osx/svf/include/include/WPA/WPAFSSolver.h +0 -254
  279. package/SVF-osx/svf/include/include/WPA/WPAPass.h +0 -119
  280. package/SVF-osx/svf/include/include/WPA/WPASolver.h +0 -205
  281. package/SVF-osx/svf/include/include/WPA/WPAStat.h +0 -222
  282. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/BasicTypes.h +0 -250
  283. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/BreakConstantExpr.h +0 -94
  284. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/CHGBuilder.h +0 -73
  285. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/DCHG.h +0 -484
  286. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/GEPTypeBridgeIterator.h +0 -183
  287. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/ICFGBuilder.h +0 -106
  288. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMLoopAnalysis.h +0 -61
  289. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMModule.h +0 -360
  290. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/LLVMUtil.h +0 -466
  291. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/SVFIRBuilder.h +0 -417
  292. package/SVF-osx/svf-llvm/include/SVF-LLVM/SVF-LLVM/SymbolTableBuilder.h +0 -110
@@ -1,91 +0,0 @@
1
- //===----- CFLDataBuilder.h -- CFL Data Builder --------------//
2
- //
3
- // SVF: Static Value-Flow Analysis
4
- //
5
- // Copyright (C) <2013-> <Yulei Sui>
6
- //
7
-
8
- // This program is free software: you can redistribute it and/or modify
9
- // it under the terms of the GNU General Public License as published by
10
- // the Free Software Foundation, either version 3 of the License, or
11
- // (at your option) any later version.
12
-
13
- // This program is distributed in the hope that it will be useful,
14
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- // GNU General Public License for more details.
17
-
18
- // You should have received a copy of the GNU General Public License
19
- // along with this program. If not, see <http://www.gnu.org/licenses/>.
20
- //
21
- //===----------------------------------------------------------------------===//
22
-
23
- /*
24
- * CFLGraphBuilder.h
25
- *
26
- * Created on: Nov 6, 2022
27
- * Author: Pei Xu
28
- */
29
-
30
- #ifndef INCLUDE_CFL_CFLDATABUILDER_H_
31
- #define INCLUDE_CFL_CFLDATABUILDER_H_
32
-
33
- #include "CFL/CFLData.h"
34
- #include "Graphs/CFLGraph.h"
35
-
36
- namespace SVF
37
- {
38
-
39
- /*!
40
- * Build CFLData from CFL graph
41
-
42
- */
43
-
44
- class CFLDataBuilder
45
- {
46
- protected:
47
- CFLData* _cflData;
48
- CFLGraph* _graph;
49
-
50
- public:
51
- /// Constructor
52
- CFLDataBuilder(CFLGraph* cflgraph) : _cflData(NULL), _graph(cflgraph)
53
- {
54
- if (!_cflData)
55
- _cflData = new CFLData();
56
- }
57
-
58
- /// Destructor
59
- virtual ~CFLDataBuilder()
60
- {
61
- }
62
-
63
- CFLData* cflData()
64
- {
65
- return _cflData;
66
- }
67
-
68
- //CFL data operations
69
- //@{
70
- virtual bool addEdge(const NodeID srcId, const NodeID dstId, const Label ty)
71
- {
72
- return cflData()->addEdge(srcId, dstId, ty);
73
- }
74
-
75
- virtual NodeBS addEdges(const NodeID srcId, const NodeBS& dstData, const Label ty)
76
- {
77
- return cflData()->addEdges(srcId, dstData, ty);
78
- }
79
- //@}
80
- CFLData* build()
81
- {
82
- for (CFLEdge* edge: _graph->getCFLEdges())
83
- addEdge(edge->getSrcID(), edge->getDstID(), edge->getEdgeKind());
84
- return cflData();
85
- }
86
-
87
-
88
- };
89
- }// SVF
90
-
91
- #endif /* INCLUDE_CFL_CFLGRAPHBUILDER_H_*/
@@ -1,74 +0,0 @@
1
- //===----- CFLGramGraphChecker.h -- CFL Checker for Grammar and graphBuilder alignment --------------//
2
- //
3
- // SVF: Static Value-Flow Analysis
4
- //
5
- // Copyright (C) <2013-> <Yulei Sui>
6
- //
7
-
8
- // This program is free software: you can redistribute it and/or modify
9
- // it under the terms of the GNU General Public License as published by
10
- // the Free Software Foundation, either version 3 of the License, or
11
- // (at your option) any later version.
12
-
13
- // This program is distributed in the hope that it will be useful,
14
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- // GNU General Public License for more details.
17
-
18
- // You should have received a copy of the GNU General Public License
19
- // along with this program. If not, see <http://www.gnu.org/licenses/>.
20
- //
21
- //===----------------------------------------------------------------------===//
22
-
23
- /*
24
- * CFLGramGraphChecker.h
25
- *
26
- * Created on: May 23, 2022
27
- * Author: Pei Xu
28
- */
29
- #ifndef INCLUDE_CFL_CFLGRAMGRAPHCHECKER_H_
30
- #define INCLUDE_CFL_CFLGRAMGRAPHCHECKER_H_
31
-
32
- #include "CFL/CFLGrammar.h"
33
- #include "Graphs/CFLGraph.h"
34
- namespace SVF
35
- {
36
-
37
- class CFLGramGraphChecker
38
- {
39
- public:
40
- void check(GrammarBase *grammar, CFLGraphBuilder *graphBuilder, CFLGraph *graph)
41
- {
42
- /// Check all kinds in grammar in graphBuilder with the same label
43
- for(auto pairV : grammar->getTerminals())
44
- {
45
- if (graphBuilder->getLabel2KindMap().find(pairV.first) != graphBuilder->getLabel2KindMap().end())
46
- {
47
- assert(graphBuilder->getLabel2KindMap()[pairV.first] == pairV.second);
48
- assert(graphBuilder->getKind2LabelMap()[pairV.second] == pairV.first);
49
- }
50
- }
51
-
52
- for(auto pairV : grammar->getNonterminals())
53
- {
54
- if (graphBuilder->getLabel2KindMap().find(pairV.first) != graphBuilder->getLabel2KindMap().end())
55
- {
56
- assert(graphBuilder->getLabel2KindMap()[pairV.first] == pairV.second);
57
- assert(graphBuilder->getKind2LabelMap()[pairV.second] == pairV.first);
58
- }
59
- else
60
- {
61
- graphBuilder->getLabel2KindMap().insert(std::make_pair (pairV.first,pairV.second));
62
- graphBuilder->getKind2LabelMap().insert(std::make_pair (pairV.second, pairV.first));
63
- }
64
- }
65
-
66
- /// Get Kind2Attrs Map from Graph to Grammar
67
- grammar->setKind2AttrsMap(graphBuilder->getKind2AttrsMap());
68
- graph->startKind = grammar->getStartKind();
69
- }
70
- };
71
-
72
- }// SVF
73
-
74
- #endif /* INCLUDE_CFL_CFLGRAMGRAPHCHECKER_H_*/
@@ -1,468 +0,0 @@
1
- //===----- CFLGrammar.h -- Context-free grammar --------------------------//
2
- //
3
- // SVF: Static Value-Flow Analysis
4
- //
5
- // Copyright (C) <2013-> <Yulei Sui>
6
- //
7
-
8
- // This program is free software: you can redistribute it and/or modify
9
- // it under the terms of the GNU General Public License as published by
10
- // the Free Software Foundation, either version 3 of the License, or
11
- // (at your option) any later version.
12
-
13
- // This program is distributed in the hope that it will be useful,
14
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- // GNU General Public License for more details.
17
-
18
- // You should have received a copy of the GNU General Public License
19
- // along with this program. If not, see <http://www.gnu.org/licenses/>.
20
- //
21
- //===----------------------------------------------------------------------===//
22
-
23
- /*
24
- * CFLGrammar.h
25
- *
26
- * Created on: March 5, 2022
27
- * Author: Yulei Sui
28
- */
29
- #ifndef CFLGrammar_H_
30
- #define CFLGrammar_H_
31
- #include "SVFIR/SVFType.h"
32
-
33
- namespace SVF
34
- {
35
-
36
- class GrammarBase
37
- {
38
- public:
39
- typedef u32_t Kind;
40
- typedef u32_t Attribute;
41
- typedef u32_t VariableAttribute;
42
- typedef struct Symbol
43
- {
44
- Kind kind: 8;
45
- Attribute attribute: 16;
46
- VariableAttribute variableAttribute: 8;
47
-
48
- /// Default Value for Symbol is 0.
49
- Symbol() : kind(0), attribute(0), variableAttribute(0) {}
50
-
51
- /// Contruct from u32_t move the bit to right field
52
- Symbol(const u32_t& num) : kind(num & 0xFF), attribute((num >> 8 ) & 0xFFFF), variableAttribute((num >> 24)) {}
53
-
54
- /// Conversion of u32_t
55
- operator u32_t()
56
- {
57
- static_assert(sizeof(struct Symbol)==sizeof(u32_t), "sizeof(struct Symbol)!=sizeof(u32_t)");
58
- u32_t num = 0;
59
- num += this->variableAttribute << 24;
60
- num += this->attribute << 8;
61
- num += this->kind;
62
- return num;
63
- }
64
-
65
- operator u32_t() const
66
- {
67
- static_assert(sizeof(struct Symbol)==sizeof(u32_t), "sizeof(struct Symbol)!=sizeof(u32_t)");
68
- u32_t num = 0;
69
- num += this->variableAttribute << 24;
70
- num += this->attribute << 8;
71
- num += this->kind;
72
- return num;
73
- }
74
-
75
- bool operator<(const Symbol& rhs)
76
- {
77
- return u32_t(*this) < u32_t(rhs);
78
- }
79
-
80
- void operator=(const u32_t& i)
81
- {
82
- this->kind = EdgeKindMask & i;
83
- this->attribute = i >> EdgeKindMaskBits;
84
- this->variableAttribute = i >> AttributedKindMaskBits;
85
- }
86
-
87
- void operator=(unsigned long long num)
88
- {
89
- this->kind = num & 0xFF;
90
- this->attribute = (num >> 8 ) & 0xFFFF;
91
- this->variableAttribute = num >> 24;
92
- }
93
-
94
- bool operator==(const Symbol& s)
95
- {
96
- return ((this->kind == s.kind) && (this->attribute == s.attribute) && (this->variableAttribute == s.variableAttribute));
97
- }
98
-
99
- bool operator==(const Symbol& s) const
100
- {
101
- return ((kind == s.kind) && (attribute == s.attribute) && (variableAttribute == s.variableAttribute));
102
- }
103
-
104
- bool operator!=(const Symbol& s) const
105
- {
106
- return ! (*this == s) ;
107
- }
108
-
109
- bool operator==(const u32_t& i)
110
- {
111
- return u32_t(*this) == u32_t(i);
112
- }
113
-
114
- bool operator==(const Kind& k) const
115
- {
116
- return (this->kind == k);
117
- }
118
- } Symbol;
119
-
120
- class SymbolHash
121
- {
122
- public:
123
- size_t operator()(const Symbol &s) const
124
- {
125
- std::hash<u32_t> h;
126
- return h(u32_t(s));
127
- }
128
- };
129
-
130
-
131
- struct SymbolVectorHash
132
- {
133
- size_t operator()(const std::vector<Symbol> &v) const
134
- {
135
- size_t h = v.size();
136
-
137
- SymbolHash hf;
138
- for (const Symbol &t : v)
139
- {
140
- h ^= hf(t) + 0x9e3779b9 + (h << 6) + (h >> 2);
141
- }
142
-
143
- return h;
144
- }
145
- };
146
-
147
- template<typename Key, typename Value, typename Hash = SymbolHash,
148
- typename KeyEqual = std::equal_to<Key>,
149
- typename Allocator = std::allocator<std::pair<const Key, Value>>>
150
- using SymbolMap = std::unordered_map<Key, Value, Hash, KeyEqual, Allocator>;
151
-
152
- template <typename Key, typename Hash = SymbolVectorHash, typename KeyEqual = std::equal_to<Key>,
153
- typename Allocator = std::allocator<Key>>
154
- using SymbolSet = std::unordered_set<Key, Hash, KeyEqual, Allocator>;
155
-
156
- typedef std::vector<Symbol> Production;
157
- typedef SymbolSet<Production> Productions;
158
-
159
-
160
- inline Map<std::string, Kind>& getNonterminals()
161
- {
162
- return this->nonterminals;
163
- }
164
-
165
- inline void setNonterminals(Map<std::string, Kind>& nonterminals)
166
- {
167
- this->nonterminals = nonterminals;
168
- }
169
-
170
- inline Map<std::string, Kind>& getTerminals()
171
- {
172
- return this->terminals;
173
- }
174
-
175
- inline void setTerminals(Map<std::string, Kind>& terminals)
176
- {
177
- this->terminals = terminals;
178
- }
179
-
180
- inline Map<std::string, Kind>& getEBNFSigns()
181
- {
182
- return this->EBNFSigns;
183
- }
184
-
185
- inline void setEBNFSigns(Map<std::string, Kind>& EBNFSigns)
186
- {
187
- this->EBNFSigns = EBNFSigns;
188
- }
189
-
190
- inline SymbolMap<Symbol, Productions>& getRawProductions()
191
- {
192
- return this->rawProductions;
193
- }
194
-
195
- inline const Map<Kind, Set<Attribute>>& getKind2AttrsMap() const
196
- {
197
- return this->kind2AttrsMap;
198
- }
199
-
200
- inline Kind getTotalKind()
201
- {
202
- return this->totalKind;
203
- }
204
-
205
- inline Kind getStartKind()
206
- {
207
- return this->startKind;
208
- }
209
-
210
- inline void setStartKind(Kind startKind)
211
- {
212
- this->startKind = startKind;
213
- }
214
-
215
- inline void setTotalKind(Kind totalKind)
216
- {
217
- this->totalKind = totalKind;
218
- }
219
-
220
- std::string extractKindStrFromSymbolStr(const std::string symbolStr) const;
221
-
222
- std::string extractAttributeStrFromSymbolStr(const std::string symbolStr) const;
223
-
224
- void setRawProductions(SymbolMap<Symbol, Productions>& rawProductions);
225
-
226
- void setKind2AttrsMap(const Map<Kind, Set<Attribute>>& kind2AttrsMap);
227
-
228
- void setAttributeKinds(const Set<Kind>& attributeKind);
229
-
230
- Kind str2Kind(std::string str) const;
231
-
232
- Symbol str2Symbol(const std::string str) const;
233
-
234
- std::string kind2Str(Kind kind) const;
235
-
236
- std::string sym2StrDump(Symbol sym) const;
237
-
238
- Symbol getSymbol(const Production& prod, u32_t pos)
239
- {
240
- return prod.at(pos);
241
- }
242
-
243
- inline const Set<Kind>& getAttrSyms() const
244
- {
245
- return this->attributeKinds;
246
- }
247
-
248
- /// Insert kind to nonterminal and return kind.
249
- Kind insertNonterminalKind(std::string const kindStr);
250
-
251
- /// From SymbolStr extract kind to inserted in nonterminal
252
- /// symbolStr = <kindStr> [_] [ attributeStr | variableattributeStr ]
253
- Kind insertTerminalKind(std::string strLit);
254
-
255
- Symbol insertSymbol(std::string strLit);
256
-
257
- Symbol insertNonTerminalSymbol(std::string strLit);
258
-
259
- Symbol insertTerminalSymbol(std::string strLit);
260
-
261
- Symbol insertEBNFSigns(std::string strLit);
262
-
263
- void insertAttribute(Kind kind, Attribute a);
264
-
265
- inline static Kind getAttributedKind(Attribute attribute, Kind kind)
266
- {
267
- return ((attribute << EdgeKindMaskBits)| kind );
268
- }
269
-
270
- inline static Kind getVariabledKind(VariableAttribute variableAttribute, Kind kind)
271
- {
272
- return ((variableAttribute << AttributedKindMaskBits) | kind);
273
- }
274
-
275
- protected:
276
- static constexpr unsigned char EdgeKindMaskBits = 8; ///< We use the lower 8 bits to denote edge kind
277
- static constexpr unsigned char AttributedKindMaskBits = 24; ///< We use the lower 24 bits to denote attributed kind
278
- static constexpr u64_t EdgeKindMask = (~0ULL) >> (64 - EdgeKindMaskBits);
279
- Kind startKind;
280
- private:
281
- Map<std::string, Kind> nonterminals;
282
- Map<std::string, Kind> terminals;
283
- Map<std::string, Kind> EBNFSigns; /// Map contains Signs' String and associated Symbols
284
- Set<Kind> attributeKinds;
285
- Map<Kind, Set<Attribute>> kind2AttrsMap;
286
- SymbolMap<Symbol, Productions> rawProductions;
287
- u32_t totalKind;
288
- };
289
-
290
- class CFLGrammar : public GrammarBase
291
- {
292
-
293
- public:
294
- CFLGrammar();
295
-
296
- /// Methods for support type inquiry through isa, cast, and dyn_cast:
297
- //@{
298
- static inline bool classof(const CFLGrammar *)
299
- {
300
- return true;
301
- }
302
-
303
- static inline bool classof(const GrammarBase *node)
304
- {
305
- return true;
306
- }
307
-
308
- Productions& getEpsilonProds()
309
- {
310
- return epsilonProds;
311
- }
312
-
313
- SymbolMap<Symbol, Productions>& getSingleRHS2Prods()
314
- {
315
- return singleRHS2Prods;
316
- }
317
-
318
- SymbolMap<Symbol, Productions>& getFirstRHS2Prods()
319
- {
320
- return firstRHS2Prods;
321
- }
322
-
323
- SymbolMap<Symbol, Productions>& getSecondRHS2Prods()
324
- {
325
- return secondRHS2Prods;
326
- }
327
-
328
- const bool hasProdsFromFirstRHS(const Symbol sym) const
329
- {
330
- auto it = firstRHS2Prods.find(sym);
331
- return it!=firstRHS2Prods.end();
332
- }
333
-
334
- const bool hasProdsFromSingleRHS(const Symbol sym) const
335
- {
336
- auto it = singleRHS2Prods.find(sym);
337
- return it!=singleRHS2Prods.end();
338
- }
339
-
340
- const bool hasProdsFromSecondRHS(const Symbol sym) const
341
- {
342
- auto it = secondRHS2Prods.find(sym);
343
- return it!=secondRHS2Prods.end();
344
- }
345
-
346
- const Productions& getProdsFromSingleRHS(const Symbol sym) const
347
- {
348
- auto it = singleRHS2Prods.find(sym);
349
- assert(it!=singleRHS2Prods.end() && "production (X -> sym) not found for sym!!");
350
- return it->second;
351
- }
352
-
353
- const Productions& getProdsFromFirstRHS(const Symbol sym) const
354
- {
355
- auto it = firstRHS2Prods.find(sym);
356
- assert(it!=firstRHS2Prods.end() && "production (X -> sym Y ) not found for sym!!");
357
- return it->second;
358
- }
359
-
360
- const Productions& getProdsFromSecondRHS(const Symbol sym) const
361
- {
362
- auto it = secondRHS2Prods.find(sym);
363
- assert(it!=secondRHS2Prods.end() && "production (X -> Y sym) not found for sym!!");
364
- return it->second;
365
- }
366
-
367
-
368
- const Symbol& getLHSSymbol(const Production& prod) const
369
- {
370
- return prod.at(0);
371
- }
372
-
373
- const Symbol& getFirstRHSSymbol(const Production& prod) const
374
- {
375
- return prod.at(1);
376
- }
377
-
378
- const Symbol& getSecondRHSSymbol(const Production& prod) const
379
- {
380
- return prod.at(2);
381
- }
382
-
383
- void dump() const;
384
-
385
- void dump(std::string fileName) const;
386
-
387
-
388
- const inline u32_t num_generator()
389
- {
390
- return newTerminalSubscript++;
391
- }
392
-
393
- private:
394
- SymbolSet<Production> epsilonProds;
395
- SymbolMap<Symbol, Productions> singleRHS2Prods;
396
- SymbolMap<Symbol, Productions> firstRHS2Prods;
397
- SymbolMap<Symbol, Productions> secondRHS2Prods;
398
- u32_t newTerminalSubscript;
399
- };
400
-
401
- /**
402
- * Worklist with "first in first out" order.
403
- * New nodes will be pushed at back and popped from front.
404
- * Elements in the list are unique as they're recorded by Set.
405
- */
406
- template<class Data>
407
- class CFLFIFOWorkList
408
- {
409
- typedef GrammarBase::SymbolSet<Data> DataSet;
410
- typedef std::deque<Data> DataDeque;
411
- public:
412
- CFLFIFOWorkList() {}
413
-
414
- ~CFLFIFOWorkList() {}
415
-
416
- inline bool empty() const
417
- {
418
- return data_list.empty();
419
- }
420
-
421
- inline bool find(Data data) const
422
- {
423
- return (data_set.find(data) == data_set.end() ? false : true);
424
- }
425
-
426
- /**
427
- * Push a data into the work list.
428
- */
429
- inline bool push(Data data)
430
- {
431
- if (data_set.find(data) == data_set.end())
432
- {
433
- data_list.push_back(data);
434
- data_set.insert(data);
435
- return true;
436
- }
437
- else
438
- return false;
439
- }
440
-
441
- /**
442
- * Pop a data from the END of work list.
443
- */
444
- inline Data pop()
445
- {
446
- assert(!empty() && "work list is empty");
447
- Data data = data_list.front();
448
- data_list.pop_front();
449
- data_set.erase(data);
450
- return data;
451
- }
452
-
453
- /*!
454
- * Clear all the data
455
- */
456
- inline void clear()
457
- {
458
- data_list.clear();
459
- data_set.clear();
460
- }
461
-
462
- private:
463
- DataSet data_set; ///< store all data in the work list.
464
- DataDeque data_list; ///< work list using std::vector.
465
- };
466
-
467
- }
468
- #endif /* CFLGrammar_H_ */
@@ -1,15 +0,0 @@
1
- Start:
2
- V
3
- Terminal:
4
- addr copy store load gep vgep
5
- Productions:
6
- F -> epsilon | F copy | addr Memflow | F store V load | store Memflow load;
7
- Fbar -> epsilon | copybar Fbar | Memflowbar addrbar | loadbar V storebar Fbar | loadbar Memflowbar storebar;
8
- V -> Fbar V F | addrbar addr | gepbar_i V gep_i | gepbarpath V gep_0 | gepbar_i F gep_i | gepbar_i Fbar gep_i;
9
- copy -> vgep;
10
- copybar -> vgepbar;
11
- gep_1 -> gep_0 F vgep | gep_0 F gep_1;
12
- gepbar_1 -> gepbar_1 Fbar gepbar_0 | vgepbar Fbar gepbar_0;
13
- gepbarpath -> gepbar_0 gepbar_0 | gepbarpath gepbar_0;
14
- Memflow -> load store | Fbar Memflow | F Memflow Fbar | gep_i Memflow gepbar_i | gepbar_i Memflow gep_i;
15
- Memflowbar -> storebar loadbar | Memflowbar F | F Memflowbar Fbar | gep_i Memflowbar gepbar_i | gepbar_i Memflowbar gep_i;