svf-tools 1.0.481 → 1.0.482

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 (337) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
  2. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +1 -1
  4. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +8 -8
  5. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +8 -8
  6. package/SVF-doxygen/html/html/Andersen_8h_source.html +6 -6
  7. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +5 -5
  8. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +1 -1
  9. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +7 -7
  11. package/SVF-doxygen/html/html/CHG_8cpp_source.html +3 -3
  12. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +14 -15
  13. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +14 -14
  14. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  15. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +13 -13
  16. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +7 -7
  17. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +8 -8
  19. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +5 -5
  20. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +4 -4
  21. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +2 -2
  22. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +6 -6
  23. package/SVF-doxygen/html/html/ExeState_8h_source.html +2 -2
  24. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +3 -3
  25. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +4 -4
  26. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +12 -12
  27. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +3 -3
  28. package/SVF-doxygen/html/html/FlowSensitive_8cpp.html +0 -1
  29. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +32 -38
  30. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +66 -67
  31. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
  32. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +6 -6
  33. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +1 -1
  34. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +2 -7
  35. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  36. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
  37. package/SVF-doxygen/html/html/MTA_8cpp_source.html +2 -2
  38. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +6 -6
  39. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +5 -5
  40. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  41. package/SVF-doxygen/html/html/Options_8cpp_source.html +17 -21
  42. package/SVF-doxygen/html/html/Options_8h_source.html +13 -16
  43. package/SVF-doxygen/html/html/PCG_8h_source.html +3 -3
  44. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +5 -5
  45. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +1 -1
  46. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +21 -22
  47. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +17 -17
  48. package/SVF-doxygen/html/html/PointerAnalysis_8cpp.html +0 -1
  49. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +64 -69
  50. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +109 -110
  51. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +2 -2
  52. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +3 -3
  53. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
  54. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +1 -1
  55. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +12 -12
  56. package/SVF-doxygen/html/html/SVFIR_8h_source.html +9 -9
  57. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +26 -32
  58. package/SVF-doxygen/html/html/SVFVariables_8h.html +0 -6
  59. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +109 -130
  60. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +1 -1
  61. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +8 -8
  62. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -2
  63. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
  64. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +4 -4
  66. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +5 -5
  67. package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
  68. package/SVF-doxygen/html/html/VFG_8cpp_source.html +9 -9
  69. package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
  70. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +16 -16
  71. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
  72. package/SVF-doxygen/html/html/WPAPass_8cpp.html +0 -1
  73. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +16 -19
  74. package/SVF-doxygen/html/html/WPAPass_8h_source.html +6 -6
  75. package/SVF-doxygen/html/html/annotated.html +248 -253
  76. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
  77. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
  78. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
  79. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +173 -174
  80. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +27 -29
  81. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +146 -147
  82. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +17 -19
  83. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +185 -186
  84. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +7 -8
  85. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +189 -190
  86. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +6 -7
  87. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +180 -181
  88. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +8 -9
  89. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +182 -183
  90. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +11 -12
  91. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +185 -186
  92. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +8 -9
  93. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +11 -11
  94. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +177 -178
  95. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +8 -9
  96. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +4 -4
  97. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +103 -104
  98. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +42 -48
  99. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.png +0 -0
  100. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +3 -3
  101. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +73 -74
  102. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +13 -14
  103. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  104. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +13 -13
  105. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +3 -3
  106. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +3 -3
  107. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +94 -95
  108. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +26 -28
  109. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +163 -164
  110. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +33 -35
  111. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +2 -2
  112. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +3 -3
  113. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +15 -15
  114. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +5 -5
  115. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +2 -2
  116. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +72 -75
  117. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +16 -27
  118. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.png +0 -0
  119. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +70 -73
  120. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +17 -20
  121. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +6 -6
  122. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +72 -75
  123. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +18 -29
  124. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.png +0 -0
  125. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +112 -114
  126. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +12 -15
  127. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +163 -164
  128. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +25 -27
  129. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +106 -108
  130. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +234 -314
  131. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.png +0 -0
  132. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +43 -43
  133. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
  134. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
  135. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +4 -4
  136. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar-members.html +77 -80
  137. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +38 -49
  138. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.png +0 -0
  139. package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +73 -76
  140. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +28 -31
  141. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +9 -9
  142. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +2 -2
  143. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  144. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +2 -2
  145. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +1 -1
  146. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +44 -45
  147. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +4 -45
  148. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +1 -1
  149. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +14 -14
  150. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +2 -2
  151. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +2 -2
  152. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +1 -1
  153. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +8 -8
  154. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +71 -74
  156. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +30 -42
  157. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.png +0 -0
  158. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +104 -107
  159. package/SVF-doxygen/html/html/classSVF_1_1Options.html +13 -94
  160. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +3 -3
  161. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +4 -4
  162. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +5 -5
  163. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +1 -1
  164. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +69 -70
  165. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +302 -319
  166. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.png +0 -0
  167. package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +70 -73
  168. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +18 -21
  169. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +5 -5
  170. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +2 -2
  171. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +18 -18
  172. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +2 -2
  173. package/SVF-doxygen/html/html/classSVF_1_1SVFVar-members.html +73 -76
  174. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +84 -99
  175. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.png +0 -0
  176. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +2 -2
  177. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +8 -8
  178. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +2 -3
  179. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +157 -158
  180. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +6 -7
  181. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +4 -4
  182. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +3 -3
  183. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +150 -151
  184. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +21 -23
  185. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
  186. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +9 -9
  187. package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +69 -72
  188. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +23 -26
  189. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +70 -73
  190. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +18 -21
  191. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +125 -127
  192. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +44 -48
  193. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +31 -31
  194. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +6 -7
  195. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.png +0 -0
  196. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +38 -40
  197. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +17 -15
  198. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.png +0 -0
  199. package/SVF-doxygen/html/html/classes.html +104 -105
  200. package/SVF-doxygen/html/html/dir_66541c162fd98954e2c32089ba9a721f.html +0 -4
  201. package/SVF-doxygen/html/html/dir_ea25a8a5b2904424d8a51916f8b475b2.html +0 -4
  202. package/SVF-doxygen/html/html/files.html +12 -16
  203. package/SVF-doxygen/html/html/functions_0x7e.html +0 -6
  204. package/SVF-doxygen/html/html/functions_a.html +8 -30
  205. package/SVF-doxygen/html/html/functions_b.html +8 -12
  206. package/SVF-doxygen/html/html/functions_c.html +24 -54
  207. package/SVF-doxygen/html/html/functions_d.html +1 -13
  208. package/SVF-doxygen/html/html/functions_e.html +1 -2
  209. package/SVF-doxygen/html/html/functions_eval_c.html +0 -9
  210. package/SVF-doxygen/html/html/functions_eval_f.html +0 -3
  211. package/SVF-doxygen/html/html/functions_f.html +19 -24
  212. package/SVF-doxygen/html/html/functions_func.html +6 -25
  213. package/SVF-doxygen/html/html/functions_func_0x7e.html +0 -6
  214. package/SVF-doxygen/html/html/functions_func_b.html +1 -5
  215. package/SVF-doxygen/html/html/functions_func_c.html +20 -37
  216. package/SVF-doxygen/html/html/functions_func_d.html +0 -6
  217. package/SVF-doxygen/html/html/functions_func_e.html +2 -3
  218. package/SVF-doxygen/html/html/functions_func_f.html +1 -5
  219. package/SVF-doxygen/html/html/functions_func_g.html +8 -48
  220. package/SVF-doxygen/html/html/functions_func_i.html +5 -15
  221. package/SVF-doxygen/html/html/functions_func_p.html +2 -16
  222. package/SVF-doxygen/html/html/functions_func_s.html +6 -19
  223. package/SVF-doxygen/html/html/functions_func_t.html +0 -6
  224. package/SVF-doxygen/html/html/functions_func_u.html +0 -4
  225. package/SVF-doxygen/html/html/functions_func_v.html +0 -3
  226. package/SVF-doxygen/html/html/functions_g.html +12 -55
  227. package/SVF-doxygen/html/html/functions_i.html +11 -21
  228. package/SVF-doxygen/html/html/functions_l.html +8 -14
  229. package/SVF-doxygen/html/html/functions_m.html +0 -6
  230. package/SVF-doxygen/html/html/functions_n.html +0 -36
  231. package/SVF-doxygen/html/html/functions_o.html +12 -20
  232. package/SVF-doxygen/html/html/functions_p.html +9 -31
  233. package/SVF-doxygen/html/html/functions_s.html +15 -31
  234. package/SVF-doxygen/html/html/functions_t.html +8 -18
  235. package/SVF-doxygen/html/html/functions_u.html +2 -9
  236. package/SVF-doxygen/html/html/functions_v.html +7 -10
  237. package/SVF-doxygen/html/html/functions_vars_a.html +0 -3
  238. package/SVF-doxygen/html/html/functions_vars_c.html +0 -6
  239. package/SVF-doxygen/html/html/functions_vars_d.html +0 -6
  240. package/SVF-doxygen/html/html/functions_vars_g.html +0 -3
  241. package/SVF-doxygen/html/html/functions_vars_l.html +0 -6
  242. package/SVF-doxygen/html/html/functions_vars_m.html +0 -6
  243. package/SVF-doxygen/html/html/functions_vars_n.html +0 -36
  244. package/SVF-doxygen/html/html/functions_vars_o.html +0 -12
  245. package/SVF-doxygen/html/html/functions_vars_p.html +0 -4
  246. package/SVF-doxygen/html/html/functions_vars_s.html +0 -3
  247. package/SVF-doxygen/html/html/functions_vars_t.html +0 -6
  248. package/SVF-doxygen/html/html/functions_vars_u.html +0 -3
  249. package/SVF-doxygen/html/html/functions_w.html +10 -6
  250. package/SVF-doxygen/html/html/globals_func_g.html +0 -3
  251. package/SVF-doxygen/html/html/globals_func_i.html +2 -7
  252. package/SVF-doxygen/html/html/globals_g.html +2 -5
  253. package/SVF-doxygen/html/html/globals_i.html +4 -7
  254. package/SVF-doxygen/html/html/globals_r.html +3 -3
  255. package/SVF-doxygen/html/html/globals_s.html +9 -7
  256. package/SVF-doxygen/html/html/hierarchy.html +13 -19
  257. package/SVF-doxygen/html/html/namespaceSVF.html +0 -10
  258. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +36 -38
  259. package/SVF-doxygen/html/html/search/all_1.js +1 -8
  260. package/SVF-doxygen/html/html/search/all_10.js +19 -21
  261. package/SVF-doxygen/html/html/search/all_12.js +1 -1
  262. package/SVF-doxygen/html/html/search/all_13.js +12 -17
  263. package/SVF-doxygen/html/html/search/all_14.js +8 -12
  264. package/SVF-doxygen/html/html/search/all_15.js +5 -6
  265. package/SVF-doxygen/html/html/search/all_16.js +4 -5
  266. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  267. package/SVF-doxygen/html/html/search/all_1b.js +0 -2
  268. package/SVF-doxygen/html/html/search/all_2.js +0 -1
  269. package/SVF-doxygen/html/html/search/all_3.js +2 -11
  270. package/SVF-doxygen/html/html/search/all_4.js +0 -4
  271. package/SVF-doxygen/html/html/search/all_5.js +2 -2
  272. package/SVF-doxygen/html/html/search/all_6.js +2 -6
  273. package/SVF-doxygen/html/html/search/all_7.js +3 -16
  274. package/SVF-doxygen/html/html/search/all_9.js +5 -8
  275. package/SVF-doxygen/html/html/search/all_c.js +4 -6
  276. package/SVF-doxygen/html/html/search/all_d.js +4 -6
  277. package/SVF-doxygen/html/html/search/all_e.js +3 -15
  278. package/SVF-doxygen/html/html/search/all_f.js +0 -4
  279. package/SVF-doxygen/html/html/search/classes_10.js +1 -2
  280. package/SVF-doxygen/html/html/search/classes_2.js +0 -3
  281. package/SVF-doxygen/html/html/search/classes_5.js +0 -1
  282. package/SVF-doxygen/html/html/search/enumvalues_2.js +0 -3
  283. package/SVF-doxygen/html/html/search/enumvalues_5.js +0 -1
  284. package/SVF-doxygen/html/html/search/files_5.js +0 -2
  285. package/SVF-doxygen/html/html/search/files_e.js +1 -3
  286. package/SVF-doxygen/html/html/search/functions_0.js +1 -7
  287. package/SVF-doxygen/html/html/search/functions_1.js +0 -1
  288. package/SVF-doxygen/html/html/search/functions_11.js +2 -6
  289. package/SVF-doxygen/html/html/search/functions_12.js +2 -3
  290. package/SVF-doxygen/html/html/search/functions_13.js +4 -4
  291. package/SVF-doxygen/html/html/search/functions_14.js +0 -1
  292. package/SVF-doxygen/html/html/search/functions_17.js +0 -2
  293. package/SVF-doxygen/html/html/search/functions_2.js +2 -6
  294. package/SVF-doxygen/html/html/search/functions_3.js +0 -2
  295. package/SVF-doxygen/html/html/search/functions_4.js +1 -1
  296. package/SVF-doxygen/html/html/search/functions_5.js +1 -2
  297. package/SVF-doxygen/html/html/search/functions_6.js +3 -15
  298. package/SVF-doxygen/html/html/search/functions_8.js +4 -7
  299. package/SVF-doxygen/html/html/search/functions_f.js +12 -13
  300. package/SVF-doxygen/html/html/search/variables_1.js +0 -1
  301. package/SVF-doxygen/html/html/search/variables_10.js +1 -2
  302. package/SVF-doxygen/html/html/search/variables_13.js +0 -1
  303. package/SVF-doxygen/html/html/search/variables_14.js +3 -5
  304. package/SVF-doxygen/html/html/search/variables_15.js +1 -2
  305. package/SVF-doxygen/html/html/search/variables_3.js +0 -2
  306. package/SVF-doxygen/html/html/search/variables_4.js +0 -2
  307. package/SVF-doxygen/html/html/search/variables_5.js +1 -1
  308. package/SVF-doxygen/html/html/search/variables_7.js +0 -1
  309. package/SVF-doxygen/html/html/search/variables_c.js +1 -3
  310. package/SVF-doxygen/html/html/search/variables_d.js +1 -3
  311. package/SVF-doxygen/html/html/search/variables_e.js +2 -14
  312. package/SVF-doxygen/html/html/search/variables_f.js +0 -4
  313. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  314. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +3 -3
  315. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +1 -1
  316. package/SVF-doxygen/html/html/svf-ex_8cpp.html +4 -4
  317. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +4 -4
  318. package/SVF-doxygen/html/html/wpa_8cpp.html +1 -1
  319. package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
  320. package/build.sh +1 -28
  321. package/include/MemoryModel/PointerAnalysis.h +0 -1
  322. package/include/MemoryModel/SVFVariables.h +11 -140
  323. package/include/SVF-FE/LLVMModule.h +0 -24
  324. package/include/Util/Options.h +0 -7
  325. package/include/WPA/FlowSensitive.h +0 -4
  326. package/lib/MemoryModel/PointerAnalysis.cpp +4 -22
  327. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
  328. package/lib/MemoryModel/SVFVariables.cpp +1 -28
  329. package/lib/SVF-FE/CPPUtil.cpp +0 -7
  330. package/lib/Util/Options.cpp +0 -24
  331. package/lib/WPA/FlowSensitive.cpp +1 -75
  332. package/lib/WPA/WPAPass.cpp +0 -4
  333. package/package.json +1 -1
  334. package/include/WPA/FlowSensitiveTBHC.h +0 -122
  335. package/include/WPA/TypeBasedHeapCloning.h +0 -188
  336. package/lib/WPA/FlowSensitiveTBHC.cpp +0 -695
  337. package/lib/WPA/TypeBasedHeapCloning.cpp +0 -795
@@ -58,7 +58,6 @@ public:
58
58
  /// GepValNode: tempory gep obj node for field sensitivity
59
59
  /// FIObjNode: for field insensitive analysis
60
60
  /// DummyValNode and DummyObjNode: for non-llvm-value node
61
- /// Clone*Node: objects created by TBHC.
62
61
  enum PNODEK
63
62
  {
64
63
  ValNode,
@@ -70,9 +69,6 @@ public:
70
69
  FIObjNode,
71
70
  DummyValNode,
72
71
  DummyObjNode,
73
- CloneGepObjNode, // NOTE: only used for TBHC.
74
- CloneFIObjNode, // NOTE: only used for TBHC.
75
- CloneDummyObjNode // NOTE: only used for TBHC.
76
72
  };
77
73
 
78
74
 
@@ -327,20 +323,14 @@ public:
327
323
  return node->getNodeKind() == SVFVar::ObjNode ||
328
324
  node->getNodeKind() == SVFVar::GepObjNode ||
329
325
  node->getNodeKind() == SVFVar::FIObjNode ||
330
- node->getNodeKind() == SVFVar::DummyObjNode ||
331
- node->getNodeKind() == SVFVar::CloneGepObjNode ||
332
- node->getNodeKind() == SVFVar::CloneFIObjNode ||
333
- node->getNodeKind() == SVFVar::CloneDummyObjNode;
326
+ node->getNodeKind() == SVFVar::DummyObjNode;
334
327
  }
335
328
  static inline bool classof(const GenericPAGNodeTy *node)
336
329
  {
337
330
  return node->getNodeKind() == SVFVar::ObjNode ||
338
331
  node->getNodeKind() == SVFVar::GepObjNode ||
339
332
  node->getNodeKind() == SVFVar::FIObjNode ||
340
- node->getNodeKind() == SVFVar::DummyObjNode ||
341
- node->getNodeKind() == SVFVar::CloneGepObjNode ||
342
- node->getNodeKind() == SVFVar::CloneFIObjNode ||
343
- node->getNodeKind() == SVFVar::CloneDummyObjNode;
333
+ node->getNodeKind() == SVFVar::DummyObjNode;
344
334
  }
345
335
  //@}
346
336
 
@@ -448,18 +438,15 @@ public:
448
438
  }
449
439
  static inline bool classof(const ObjVar * node)
450
440
  {
451
- return node->getNodeKind() == SVFVar::GepObjNode
452
- || node->getNodeKind() == SVFVar::CloneGepObjNode;
441
+ return node->getNodeKind() == SVFVar::GepObjNode;
453
442
  }
454
443
  static inline bool classof(const SVFVar *node)
455
444
  {
456
- return node->getNodeKind() == SVFVar::GepObjNode
457
- || node->getNodeKind() == SVFVar::CloneGepObjNode;
445
+ return node->getNodeKind() == SVFVar::GepObjNode;
458
446
  }
459
447
  static inline bool classof(const GenericPAGNodeTy *node)
460
448
  {
461
- return node->getNodeKind() == SVFVar::GepObjNode
462
- || node->getNodeKind() == SVFVar::CloneGepObjNode;
449
+ return node->getNodeKind() == SVFVar::GepObjNode;
463
450
  }
464
451
  //@}
465
452
 
@@ -527,18 +514,15 @@ public:
527
514
  }
528
515
  static inline bool classof(const ObjVar * node)
529
516
  {
530
- return node->getNodeKind() == SVFVar::FIObjNode
531
- || node->getNodeKind() == SVFVar::CloneFIObjNode;
517
+ return node->getNodeKind() == SVFVar::FIObjNode;
532
518
  }
533
519
  static inline bool classof(const SVFVar *node)
534
520
  {
535
- return node->getNodeKind() == SVFVar::FIObjNode
536
- || node->getNodeKind() == SVFVar::CloneFIObjNode;
521
+ return node->getNodeKind() == SVFVar::FIObjNode;
537
522
  }
538
523
  static inline bool classof(const GenericPAGNodeTy *node)
539
524
  {
540
- return node->getNodeKind() == SVFVar::FIObjNode
541
- || node->getNodeKind() == SVFVar::CloneFIObjNode;
525
+ return node->getNodeKind() == SVFVar::FIObjNode;
542
526
  }
543
527
  //@}
544
528
 
@@ -705,18 +689,15 @@ public:
705
689
  }
706
690
  static inline bool classof(const SVFVar *node)
707
691
  {
708
- return node->getNodeKind() == SVFVar::DummyObjNode
709
- || node->getNodeKind() == SVFVar::CloneDummyObjNode;
692
+ return node->getNodeKind() == SVFVar::DummyObjNode;
710
693
  }
711
694
  static inline bool classof(const ObjVar *node)
712
695
  {
713
- return node->getNodeKind() == SVFVar::DummyObjNode
714
- || node->getNodeKind() == SVFVar::CloneDummyObjNode;
696
+ return node->getNodeKind() == SVFVar::DummyObjNode;
715
697
  }
716
698
  static inline bool classof(const GenericPAGNodeTy *node)
717
699
  {
718
- return node->getNodeKind() == SVFVar::DummyObjNode
719
- || node->getNodeKind() == SVFVar::CloneDummyObjNode;
700
+ return node->getNodeKind() == SVFVar::DummyObjNode;
720
701
  }
721
702
  //@}
722
703
 
@@ -735,116 +716,6 @@ public:
735
716
  virtual const std::string toString() const;
736
717
  };
737
718
 
738
- /*
739
- * Clone object node for dummy objects.
740
- */
741
- class CloneDummyObjVar: public DummyObjVar
742
- {
743
- public:
744
- //@{ Methods to support type inquiry through isa, cast, and dyn_cast:
745
- static inline bool classof(const CloneDummyObjVar *)
746
- {
747
- return true;
748
- }
749
- static inline bool classof(const SVFVar *node)
750
- {
751
- return node->getNodeKind() == SVFVar::CloneDummyObjNode;
752
- }
753
- static inline bool classof(const GenericPAGNodeTy *node)
754
- {
755
- return node->getNodeKind() == SVFVar::CloneDummyObjNode;
756
- }
757
- //@}
758
-
759
- /// Constructor
760
- CloneDummyObjVar(NodeID i, const MemObj* m, PNODEK ty = CloneDummyObjNode)
761
- : DummyObjVar(i, m, ty)
762
- {
763
- }
764
-
765
- /// Return name of this node
766
- inline const std::string getValueName() const
767
- {
768
- return "clone of " + ObjVar::getValueName();
769
- }
770
-
771
- virtual const std::string toString() const;
772
- };
773
-
774
- /*
775
- * Clone object for GEP objects.
776
- */
777
- class CloneGepObjVar : public GepObjVar
778
- {
779
- public:
780
- //@{ Methods to support type inquiry through isa, cast, and dyn_cast:
781
- static inline bool classof(const CloneGepObjVar *)
782
- {
783
- return true;
784
- }
785
- static inline bool classof(const SVFVar *node)
786
- {
787
- return node->getNodeKind() == SVFVar::CloneGepObjNode;
788
- }
789
- static inline bool classof(const GenericPAGNodeTy *node)
790
- {
791
- return node->getNodeKind() == SVFVar::CloneGepObjNode;
792
- }
793
- //@}
794
-
795
- /// Constructor
796
- CloneGepObjVar(const MemObj* mem, NodeID i, const LocationSet& l, PNODEK ty = CloneGepObjNode) :
797
- GepObjVar(mem, i, l, ty)
798
- {
799
- }
800
-
801
- /// Return name of this node
802
- inline const std::string getValueName() const
803
- {
804
- return "clone (gep) of " + GepObjVar::getValueName();
805
- }
806
-
807
- virtual const std::string toString() const;
808
- };
809
-
810
- /*
811
- * Clone object for FI objects.
812
- */
813
- class CloneFIObjVar : public FIObjVar
814
- {
815
- public:
816
- //@{ Methods to support type inquiry through isa, cast, and dyn_cast:
817
- static inline bool classof(const CloneFIObjVar *)
818
- {
819
- return true;
820
- }
821
- static inline bool classof(const SVFVar *node)
822
- {
823
- return node->getNodeKind() == SVFVar::CloneFIObjNode;
824
- }
825
- static inline bool classof(const GenericPAGNodeTy *node)
826
- {
827
- return node->getNodeKind() == SVFVar::CloneFIObjNode;
828
- }
829
- //@}
830
-
831
- /// Constructor
832
- CloneFIObjVar(const Value* val, NodeID i, const MemObj* mem, PNODEK ty = CloneFIObjNode) :
833
- FIObjVar(val, i, mem, ty)
834
- {
835
- }
836
-
837
- /// Return name of this node
838
- inline const std::string getValueName() const
839
- {
840
- return "clone (FI) of " + FIObjVar::getValueName();
841
- }
842
-
843
- virtual const std::string toString() const;
844
- };
845
-
846
719
  } // End namespace SVF
847
720
 
848
-
849
-
850
721
  #endif /* OBJECTANDSYMBOL_H_ */
@@ -208,30 +208,6 @@ public:
208
208
  return getModuleNum() == 0;
209
209
  }
210
210
 
211
- /// Returns true if all LLVM modules are compiled with ctir.
212
- bool allCTir(void) const
213
- {
214
- // Iterate over all modules. If a single module does not have the correct ctir module flag,
215
- // short-circuit and return false.
216
- for (u32_t i = 0; i < getModuleNum(); ++i)
217
- {
218
- llvm::Metadata *ctirModuleFlag = llvmModuleSet->getModule(i)->getModuleFlag(cppUtil::ctir::derefMDName);
219
- if (ctirModuleFlag == nullptr)
220
- {
221
- return false;
222
- }
223
-
224
- llvm::ConstantAsMetadata *flagConstMetadata = SVFUtil::dyn_cast<llvm::ConstantAsMetadata>(ctirModuleFlag);
225
- ConstantInt *flagConstInt = SVFUtil::dyn_cast<ConstantInt>(flagConstMetadata->getValue());
226
- if (flagConstInt->getZExtValue() != cppUtil::ctir::moduleFlagValue)
227
- {
228
- return false;
229
- }
230
- }
231
-
232
- return true;
233
- }
234
-
235
211
  private:
236
212
  void loadModules(const std::vector<std::string> &moduleNameVec);
237
213
  void addSVFMain();
@@ -237,13 +237,6 @@ public:
237
237
  static const llvm::cl::opt<bool> PtsDiff;
238
238
  static const llvm::cl::opt<bool> MergePWC;
239
239
 
240
- // FlowSensitive.cpp
241
- static const llvm::cl::opt<bool> CTirAliasEval;
242
-
243
- //FlowSensitiveTBHC.cpp
244
- static const llvm::cl::opt<bool> TBHCStoreReuse;
245
- static const llvm::cl::opt<bool> TBHCAllReuse;
246
-
247
240
  // WPAPass.cpp
248
241
  static const llvm::cl::opt<bool> AnderSVFG;
249
242
  static const llvm::cl::opt<bool> SABERFULLSVFG;
@@ -240,10 +240,6 @@ protected:
240
240
  /// Return TRUE if this is a strong update STORE statement.
241
241
  bool isStrongUpdate(const SVFGNode* node, NodeID& singleton);
242
242
 
243
- /// Prints some easily parseable stats on aliasing of relevant CTir TL PTS.
244
- /// Format: eval-ctir-aliases #TOTAL_TESTS #MAY_ALIAS #NO_ALIAS
245
- virtual void printCTirAliasStats(void);
246
-
247
243
  /// Fills may/noAliases for the location/pointer pairs in cmp.
248
244
  virtual void countAliases(Set<std::pair<NodeID, NodeID>> cmp, unsigned *mayAliases, unsigned *noAliases);
249
245
 
@@ -42,7 +42,6 @@
42
42
  #include "MemoryModel/PTAStat.h"
43
43
  #include "Graphs/ThreadCallGraph.h"
44
44
  #include "Graphs/ICFG.h"
45
- #include "WPA/FlowSensitiveTBHC.h"
46
45
 
47
46
  #include <iomanip>
48
47
  #include <iostream>
@@ -117,20 +116,10 @@ void PointerAnalysis::initialize()
117
116
  assert(pag && "SVFIR has not been built!");
118
117
  if (chgraph == nullptr)
119
118
  {
120
- if (LLVMModuleSet::getLLVMModuleSet()->allCTir())
121
- {
122
- DCHGraph *dchg = new DCHGraph(pag->getModule());
123
- // TODO: we might want to have an option for extending.
124
- dchg->buildCHG(true);
125
- chgraph = dchg;
126
- }
127
- else
128
- {
129
- CHGraph *chg = new CHGraph(pag->getModule());
130
- CHGBuilder builder(chg);
131
- builder.buildCHG();
132
- chgraph = chg;
133
- }
119
+ CHGraph *chg = new CHGraph(pag->getModule());
120
+ CHGBuilder builder(chg);
121
+ builder.buildCHG();
122
+ chgraph = chg;
134
123
  }
135
124
 
136
125
  svfMod = pag->getModule();
@@ -209,8 +198,6 @@ void PointerAnalysis::finalize()
209
198
  /// Print statistics
210
199
  dumpStat();
211
200
 
212
- SVFIR* pag = SVFIR::getPAG();
213
-
214
201
  /// Dump results
215
202
  if (Options::PTSPrint)
216
203
  {
@@ -233,11 +220,6 @@ void PointerAnalysis::finalize()
233
220
  if (Options::CallGraphDotGraph)
234
221
  getPTACallGraph()->dump("callgraph_final");
235
222
 
236
- // FSTBHC has its own TBHC-specific test validation.
237
- if(!pag->isBuiltFromFile() && alias_validation
238
- && !SVFUtil::isa<FlowSensitiveTBHC>(this))
239
- validateTests();
240
-
241
223
  if (!Options::UsePreCompFieldSensitive)
242
224
  resetObjFieldSensitive();
243
225
  }
@@ -43,7 +43,7 @@ BVDataPTAImpl::BVDataPTAImpl(SVFIR* p, PointerAnalysis::PTATY type, bool alias_c
43
43
  else if (Options::ptDataBacking == PTBackingType::Persistent) ptD = new PersDiffPTDataTy(getPtCache(), false);
44
44
  else assert(false && "BVDataPTAImpl::BVDataPTAImpl: unexpected points-to backing type!");
45
45
  }
46
- else if (type == FSSPARSE_WPA || type == FSTBHC_WPA)
46
+ else if (type == FSSPARSE_WPA)
47
47
  {
48
48
  if (Options::INCDFPTData)
49
49
  {
@@ -41,7 +41,7 @@ using namespace SVFUtil;
41
41
  SVFVar::SVFVar(const Value* val, NodeID i, PNODEK k) :
42
42
  GenericPAGNodeTy(i,k), value(val)
43
43
  {
44
- assert( ValNode <= k && k <= CloneDummyObjNode && "new SVFIR node kind?");
44
+ assert( ValNode <= k && k <= DummyObjNode && "new SVFIR node kind?");
45
45
  switch (k)
46
46
  {
47
47
  case ValNode:
@@ -67,9 +67,6 @@ SVFVar::SVFVar(const Value* val, NodeID i, PNODEK k) :
67
67
  case GepObjNode:
68
68
  case FIObjNode:
69
69
  case DummyObjNode:
70
- case CloneGepObjNode:
71
- case CloneFIObjNode:
72
- case CloneDummyObjNode:
73
70
  {
74
71
  isPtr = true;
75
72
  if(val)
@@ -202,30 +199,6 @@ const std::string DummyObjVar::toString() const
202
199
  return rawstr.str();
203
200
  }
204
201
 
205
- const std::string CloneDummyObjVar::toString() const
206
- {
207
- std::string str;
208
- raw_string_ostream rawstr(str);
209
- rawstr << "CloneDummyObjVar ID: " << getId();
210
- return rawstr.str();
211
- }
212
-
213
- const std::string CloneGepObjVar::toString() const
214
- {
215
- std::string str;
216
- raw_string_ostream rawstr(str);
217
- rawstr << "CloneGepObjVar ID: " << getId();
218
- return rawstr.str();
219
- }
220
-
221
- const std::string CloneFIObjVar::toString() const
222
- {
223
- std::string str;
224
- raw_string_ostream rawstr(str);
225
- rawstr << "CloneFIObjVar ID: " << getId();
226
- return rawstr.str();
227
- }
228
-
229
202
  /// Whether it is constant data, i.e., "0", "1.001", "str"
230
203
  /// or llvm's metadata, i.e., metadata !4087
231
204
  bool SVFVar::isConstantData() const
@@ -263,13 +263,6 @@ bool cppUtil::isVirtualCallSite(CallSite cs)
263
263
  if (cs.getCalledFunction() != nullptr || cs.arg_empty())
264
264
  return false;
265
265
 
266
- // When compiled with ctir, we'd be using the DCHG which has its own
267
- // virtual annotations.
268
- if (LLVMModuleSet::getLLVMModuleSet()->allCTir())
269
- {
270
- return cs.getInstruction()->getMetadata(cppUtil::ctir::derefMDName) != nullptr;
271
- }
272
-
273
266
  const Value *vfunc = cs.getCalledValue();
274
267
  if (const LoadInst *vfuncloadinst = SVFUtil::dyn_cast<LoadInst>(vfunc))
275
268
  {
@@ -727,29 +727,6 @@ const llvm::cl::opt<bool> Options::MergePWC(
727
727
  );
728
728
 
729
729
 
730
- // FlowSensitive.cpp
731
- const llvm::cl::opt<bool> Options::CTirAliasEval(
732
- "ctir-alias-eval",
733
- llvm::cl::init(false),
734
- llvm::cl::desc("Prints alias evaluation of ctir instructions in FS analyses")
735
- );
736
-
737
-
738
- // FlowSensitiveTBHC.cpp
739
- /// Whether we allow reuse for TBHC.
740
- const llvm::cl::opt<bool> Options::TBHCStoreReuse(
741
- "tbhc-store-reuse",
742
- llvm::cl::init(false),
743
- llvm::cl::desc("Allow for object reuse in at stores in FSTBHC")
744
- );
745
-
746
- const llvm::cl::opt<bool> Options::TBHCAllReuse(
747
- "tbhc-all-reuse",
748
- llvm::cl::init(false),
749
- llvm::cl::desc("Allow for object reuse everywhere in FSTBHC")
750
- );
751
-
752
-
753
730
  //WPAPass.cpp
754
731
  const llvm::cl::opt<bool> Options::AnderSVFG(
755
732
  "svfg",
@@ -783,7 +760,6 @@ llvm::cl::bits<PointerAnalysis::PTATY> Options::PASelected(
783
760
  // Disabled till further work is done.
784
761
  // clEnumValN(PointerAnalysis::AndersenWaveDiffWithType_WPA, "andertype", "Diff wave propagation with type inclusion-based analysis"),
785
762
  clEnumValN(PointerAnalysis::FSSPARSE_WPA, "fspta", "Sparse flow sensitive pointer analysis"),
786
- clEnumValN(PointerAnalysis::FSTBHC_WPA, "fstbhc", "Sparse flow-sensitive type-based heap cloning pointer analysis"),
787
763
  clEnumValN(PointerAnalysis::VFS_WPA, "vfspta", "Versioned sparse flow-sensitive points-to analysis"),
788
764
  clEnumValN(PointerAnalysis::TypeCPP_WPA, "type", "Type-based fast analysis for Callgraph, SVFIR and CHA")
789
765
  ));
@@ -30,13 +30,11 @@
30
30
  #include "Util/Options.h"
31
31
  #include "SVF-FE/DCHG.h"
32
32
  #include "Util/SVFModule.h"
33
- #include "WPA/TypeBasedHeapCloning.h"
34
33
  #include "WPA/WPAStat.h"
35
34
  #include "WPA/FlowSensitive.h"
36
35
  #include "WPA/Andersen.h"
37
36
  #include "MemoryModel/PointsTo.h"
38
37
 
39
-
40
38
  using namespace SVF;
41
39
  using namespace SVFUtil;
42
40
 
@@ -72,9 +70,7 @@ void FlowSensitive::initialize()
72
70
  getPtCache().reset();
73
71
  }
74
72
 
75
- // When evaluating ctir aliases, we want the whole SVFG.
76
-
77
- svfg = Options::CTirAliasEval ? memSSA.buildFullSVFG(ander) : memSSA.buildPTROnlySVFG(ander);
73
+ svfg = memSSA.buildPTROnlySVFG(ander);
78
74
 
79
75
  setGraph(svfg);
80
76
  //AndersenWaveDiff::releaseAndersenWaveDiff();
@@ -116,11 +112,6 @@ void FlowSensitive::analyze()
116
112
  double end = stat->getClk(true);
117
113
  solveTime += (end - start) / TIMEINTERVAL;
118
114
 
119
- if (Options::CTirAliasEval)
120
- {
121
- printCTirAliasStats();
122
- }
123
-
124
115
  /// finalize the analysis
125
116
  finalize();
126
117
  }
@@ -815,71 +806,6 @@ void FlowSensitive::plainMap(void) const
815
806
  PointsTo::setCurrentBestNodeMapping(plainMapping, reversePlainMapping);
816
807
  }
817
808
 
818
- void FlowSensitive::printCTirAliasStats(void)
819
- {
820
- DCHGraph *dchg = SVFUtil::dyn_cast<DCHGraph>(chgraph);
821
- assert(dchg && "eval-ctir-aliases needs DCHG.");
822
-
823
- // < SVFG node ID (loc), SVFIR node of interest (top-level pointer) >.
824
- Set<std::pair<NodeID, NodeID>> cmpLocs;
825
- for (SVFG::iterator npair = svfg->begin(); npair != svfg->end(); ++npair)
826
- {
827
- NodeID loc = npair->first;
828
- SVFGNode *node = npair->second;
829
-
830
- // Only care about loads, stores, and GEPs.
831
- if (StmtSVFGNode *stmt = SVFUtil::dyn_cast<StmtSVFGNode>(node))
832
- {
833
- if (!SVFUtil::isa<LoadSVFGNode>(stmt) && !SVFUtil::isa<StoreSVFGNode>(stmt)
834
- && !SVFUtil::isa<GepSVFGNode>(stmt))
835
- {
836
- continue;
837
- }
838
-
839
- if (!TypeBasedHeapCloning::getRawCTirMetadata(stmt->getInst() ? stmt->getInst() : stmt->getPAGEdge()->getValue()))
840
- {
841
- continue;
842
- }
843
-
844
- NodeID p = 0;
845
- if (SVFUtil::isa<LoadSVFGNode>(stmt))
846
- {
847
- p = stmt->getPAGSrcNodeID();
848
- }
849
- else if (SVFUtil::isa<StoreSVFGNode>(stmt))
850
- {
851
- p = stmt->getPAGDstNodeID();
852
- }
853
- else if (SVFUtil::isa<GepSVFGNode>(stmt))
854
- {
855
- p = stmt->getPAGSrcNodeID();
856
- }
857
- else
858
- {
859
- // Not interested.
860
- continue;
861
- }
862
-
863
- cmpLocs.insert(std::make_pair(loc, p));
864
- }
865
- }
866
-
867
- unsigned mayAliases = 0, noAliases = 0;
868
- countAliases(cmpLocs, &mayAliases, &noAliases);
869
-
870
- unsigned total = mayAliases + noAliases;
871
- SVFUtil::outs() << "eval-ctir-aliases "
872
- << total << " "
873
- << mayAliases << " "
874
- << noAliases << " "
875
- << "\n";
876
- SVFUtil::outs() << " " << "TOTAL : " << total << "\n"
877
- << " " << "MAY : " << mayAliases << "\n"
878
- << " " << "MAY % : " << 100 * ((double)mayAliases/(double)(total)) << "\n"
879
- << " " << "NO : " << noAliases << "\n"
880
- << " " << "NO % : " << 100 * ((double)noAliases/(double)(total)) << "\n";
881
- }
882
-
883
809
  void FlowSensitive::countAliases(Set<std::pair<NodeID, NodeID>> cmp, unsigned *mayAliases, unsigned *noAliases)
884
810
  {
885
811
  for (std::pair<NodeID, NodeID> locPA : cmp)
@@ -40,7 +40,6 @@
40
40
  #include "WPA/Andersen.h"
41
41
  #include "WPA/AndersenSFR.h"
42
42
  #include "WPA/FlowSensitive.h"
43
- #include "WPA/FlowSensitiveTBHC.h"
44
43
  #include "WPA/VersionedFlowSensitive.h"
45
44
  #include "WPA/TypeAnalysis.h"
46
45
  #include "WPA/Steensgaard.h"
@@ -126,9 +125,6 @@ void WPAPass::runPointerAnalysis(SVFModule* svfModule, u32_t kind)
126
125
  case PointerAnalysis::FSSPARSE_WPA:
127
126
  _pta = new FlowSensitive(pag);
128
127
  break;
129
- case PointerAnalysis::FSTBHC_WPA:
130
- _pta = new FlowSensitiveTBHC(pag);
131
- break;
132
128
  case PointerAnalysis::VFS_WPA:
133
129
  _pta = new VersionedFlowSensitive(pag);
134
130
  break;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svf-tools",
3
- "version": "1.0.481",
3
+ "version": "1.0.482",
4
4
  "description": "* <b>[TypeClone](https://github.com/SVF-tools/SVF/wiki/TypeClone) published in our [ECOOP paper](https://yuleisui.github.io/publications/ecoop20.pdf) is now available in SVF </b> * <b>SVF now uses a single script for its build. Just type [`source ./build.sh`](https://github.com/SVF-tools/SVF/blob/master/build.sh) in your terminal, that's it!</b> * <b>SVF now supports LLVM-10.0.0! </b> * <b>We thank [bsauce](https://github.com/bsauce) for writing a user manual of SVF ([link1](https://www.jianshu.com/p/068a08ec749c) and [link2](https://www.jianshu.com/p/777c30d4240e)) in Chinese </b> * <b>SVF now supports LLVM-9.0.0 (Thank [Byoungyoung Lee](https://github.com/SVF-tools/SVF/issues/142) for his help!). </b> * <b>SVF now supports a set of [field-sensitive pointer analyses](https://yuleisui.github.io/publications/sas2019a.pdf). </b> * <b>[Use SVF as an external lib](https://github.com/SVF-tools/SVF/wiki/Using-SVF-as-a-lib-in-your-own-tool) for your own project (Contributed by [Hongxu Chen](https://github.com/HongxuChen)). </b> * <b>SVF now supports LLVM-7.0.0. </b> * <b>SVF now supports Docker. [Try SVF in Docker](https://github.com/SVF-tools/SVF/wiki/Try-SVF-in-Docker)! </b> * <b>SVF now supports [LLVM-6.0.0](https://github.com/svf-tools/SVF/pull/38) (Contributed by [Jack Anthony](https://github.com/jackanth)). </b> * <b>SVF now supports [LLVM-4.0.0](https://github.com/svf-tools/SVF/pull/23) (Contributed by Jared Carlson. Thank [Jared](https://github.com/jcarlson23) and [Will](https://github.com/dtzWill) for their in-depth [discussions](https://github.com/svf-tools/SVF/pull/18) about updating SVF!) </b> * <b>SVF now supports analysis for C++ programs.</b> <br />",
5
5
  "main": "index.js",
6
6
  "scripts": {