svf-tools 1.0.464 → 1.0.467

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 (409) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +2 -2
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +11 -11
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  5. package/SVF-doxygen/html/html/Annotator_8h_source.html +3 -3
  6. package/SVF-doxygen/html/html/BDDExpr_8cpp_source.html +2 -2
  7. package/SVF-doxygen/html/html/BDDExpr_8h_source.html +1 -1
  8. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +6 -6
  9. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +6 -6
  10. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +3 -3
  11. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +4 -4
  12. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +1 -1
  13. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +17 -17
  15. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +5 -5
  16. package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
  17. package/SVF-doxygen/html/html/CHG_8cpp_source.html +10 -10
  18. package/SVF-doxygen/html/html/CHG_8h_source.html +3 -3
  19. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +21 -20
  20. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +3 -3
  21. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +3 -3
  22. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
  23. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
  24. package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
  25. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +4 -4
  26. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +2 -2
  27. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +4 -4
  28. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +12 -12
  29. package/SVF-doxygen/html/html/DCHG_8h_source.html +5 -5
  30. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +3 -3
  32. package/SVF-doxygen/html/html/DDAPass_8h_source.html +2 -2
  33. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +2 -2
  34. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +2 -2
  35. package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
  36. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +7 -7
  37. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +8 -8
  38. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +3 -3
  39. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
  40. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +4 -4
  41. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  42. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  43. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +2 -2
  44. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +2 -2
  45. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +2 -2
  46. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +5 -5
  47. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +1 -1
  48. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +2 -2
  49. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +3 -3
  50. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
  51. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +6 -6
  52. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +2 -2
  53. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +2 -2
  54. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +3 -3
  55. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +6 -6
  56. package/SVF-doxygen/html/html/ICFG_8h_source.html +3 -3
  57. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +9 -9
  58. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
  59. package/SVF-doxygen/html/html/IRGraph_8h_source.html +3 -3
  60. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +8 -8
  61. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +6 -6
  62. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +24 -23
  63. package/SVF-doxygen/html/html/LLVMUtil_8h.html +2 -0
  64. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +61 -60
  65. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
  66. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
  67. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +7 -6
  68. package/SVF-doxygen/html/html/LocationSet_8h_source.html +2 -2
  69. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +9 -9
  70. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +4 -4
  71. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +10 -10
  72. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +2 -2
  73. package/SVF-doxygen/html/html/MHP_8cpp.html +1 -1
  74. package/SVF-doxygen/html/html/MHP_8cpp_source.html +10 -10
  75. package/SVF-doxygen/html/html/MHP_8h_source.html +5 -5
  76. package/SVF-doxygen/html/html/MSSAMuChi_8h.html +7 -1
  77. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +4 -3
  78. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +6 -6
  79. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +5 -5
  80. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +14 -14
  81. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +6 -6
  82. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +6 -6
  83. package/SVF-doxygen/html/html/MTA_8cpp_source.html +4 -4
  84. package/SVF-doxygen/html/html/MTA_8h_source.html +2 -2
  85. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  86. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  87. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +18 -9
  88. package/SVF-doxygen/html/html/MemRegion_8h_source.html +3 -3
  89. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +9 -9
  90. package/SVF-doxygen/html/html/MemSSA_8h_source.html +4 -4
  91. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  92. package/SVF-doxygen/html/html/Options_8cpp_source.html +50 -48
  93. package/SVF-doxygen/html/html/Options_8h_source.html +51 -49
  94. package/SVF-doxygen/html/html/PCG_8cpp_source.html +7 -7
  95. package/SVF-doxygen/html/html/PCG_8h_source.html +3 -3
  96. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +4 -4
  97. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  98. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +6 -6
  99. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +12 -12
  100. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +7 -7
  101. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -1
  102. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
  103. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +15 -14
  104. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +2 -2
  105. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +3 -3
  106. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +1 -1
  107. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +2 -2
  108. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +3 -3
  109. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  110. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  111. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
  112. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp.html +86 -0
  113. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +125 -0
  114. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +1 -1
  115. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +53 -48
  116. package/SVF-doxygen/html/html/SVFG_8h_source.html +42 -39
  117. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +53 -52
  118. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +13 -13
  119. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +3 -3
  120. package/SVF-doxygen/html/html/SVFIR_8h_source.html +3 -3
  121. package/SVF-doxygen/html/html/SVFModule_8h_source.html +4 -4
  122. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  123. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +3 -3
  124. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +13 -13
  125. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +9 -9
  126. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
  127. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +6 -6
  128. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +3 -3
  129. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +2 -2
  130. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
  131. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +3 -3
  132. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  133. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +35 -34
  134. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +5 -5
  135. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +14 -13
  136. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +6 -6
  137. package/SVF-doxygen/html/html/TCT_8cpp_source.html +14 -14
  138. package/SVF-doxygen/html/html/TCT_8h_source.html +10 -10
  139. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +4 -4
  140. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +6 -6
  141. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
  142. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +2 -2
  143. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +3 -3
  144. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +9 -9
  145. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +2 -2
  146. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +77 -77
  147. package/SVF-doxygen/html/html/VFGNode_8h_source.html +3 -3
  148. package/SVF-doxygen/html/html/VFG_8cpp_source.html +4 -4
  149. package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
  150. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
  151. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
  152. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +8 -8
  153. package/SVF-doxygen/html/html/WPAPass_8h_source.html +3 -3
  154. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  156. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
  157. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
  158. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  159. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +1 -1
  160. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +7 -7
  161. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +5 -5
  162. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
  163. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +3 -3
  164. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  165. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +1 -1
  166. package/SVF-doxygen/html/html/classSVF_1_1BDDExprManager.html +2 -2
  167. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +1 -1
  168. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  169. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  170. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  171. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +1 -1
  172. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +5 -5
  173. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +3 -3
  174. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  175. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +31 -31
  176. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +7 -7
  177. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  178. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +3 -3
  180. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
  181. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +1 -1
  182. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  183. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
  184. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +1 -1
  185. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +1 -1
  186. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +1 -1
  187. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  188. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +1 -1
  190. package/SVF-doxygen/html/html/classSVF_1_1CondVar.html +1 -1
  191. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +1 -1
  192. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +7 -7
  193. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  194. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +1 -1
  195. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
  196. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
  197. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
  198. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +13 -13
  199. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +2 -2
  200. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +2 -2
  201. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +1 -1
  202. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +1 -1
  203. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
  204. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
  205. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
  206. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +5 -5
  207. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  208. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +1 -1
  209. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +6 -6
  210. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +2 -2
  211. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +9 -9
  212. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +21 -21
  213. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +1 -1
  214. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +1 -1
  215. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
  216. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
  217. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +2 -2
  218. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +4 -4
  219. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
  220. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  221. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  222. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +1 -1
  223. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  224. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
  225. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
  226. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +11 -11
  227. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +1 -1
  228. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  229. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +3 -3
  230. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +1 -1
  231. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  232. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  233. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  234. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  235. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +1 -1
  236. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
  237. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  238. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +1 -1
  239. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
  240. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  241. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +3 -3
  242. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +18 -18
  243. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +4 -4
  244. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  245. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +1 -1
  246. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +10 -8
  247. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +32 -32
  248. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +12 -12
  249. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +26 -26
  250. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +12 -12
  251. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
  253. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +3 -3
  254. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +12 -12
  255. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +28 -28
  256. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +16 -16
  257. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +10 -10
  258. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  259. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +17 -17
  260. package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +1 -1
  261. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +1 -1
  262. package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +2 -2
  263. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
  264. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
  265. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  266. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +28 -26
  267. package/SVF-doxygen/html/html/classSVF_1_1Options.html +101 -49
  268. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +19 -19
  269. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  270. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +7 -7
  271. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
  272. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +2 -2
  273. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +2 -2
  274. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +14 -13
  275. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +25 -25
  276. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  277. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +21 -20
  278. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +4 -4
  279. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +8 -8
  280. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  281. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +1 -1
  282. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +1 -1
  283. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +1 -1
  284. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  285. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +1 -1
  286. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
  287. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +27 -27
  288. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +91 -88
  289. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +302 -116
  290. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +5 -5
  291. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +100 -97
  292. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +18 -12
  293. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +2 -2
  294. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
  295. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +1 -1
  296. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +110 -107
  297. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +2 -2
  298. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +5 -5
  299. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +7 -7
  300. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +3 -3
  301. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  302. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +4 -4
  303. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +1 -1
  304. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  305. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
  306. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +44 -42
  307. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +19 -18
  308. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +32 -32
  309. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  310. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  311. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +4 -4
  312. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +9 -9
  313. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +2 -2
  314. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +1 -1
  315. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +1 -1
  316. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +1 -1
  317. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +3 -3
  318. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +10 -10
  319. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  320. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  321. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +4 -4
  322. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
  323. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
  324. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  325. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +1 -1
  326. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +3 -3
  327. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
  328. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +12 -12
  329. package/SVF-doxygen/html/html/classllvm_1_1generic__bridge__gep__type__iterator.html +3 -3
  330. package/SVF-doxygen/html/html/dir_1870ebf480d659cc38d2dd7ac3aa8993.html +2 -0
  331. package/SVF-doxygen/html/html/files.html +4 -3
  332. package/SVF-doxygen/html/html/functions_c.html +5 -9
  333. package/SVF-doxygen/html/html/functions_func_g.html +7 -4
  334. package/SVF-doxygen/html/html/functions_func_r.html +7 -4
  335. package/SVF-doxygen/html/html/functions_func_w.html +1 -0
  336. package/SVF-doxygen/html/html/functions_g.html +9 -6
  337. package/SVF-doxygen/html/html/functions_i.html +3 -3
  338. package/SVF-doxygen/html/html/functions_l.html +8 -8
  339. package/SVF-doxygen/html/html/functions_o.html +14 -14
  340. package/SVF-doxygen/html/html/functions_p.html +10 -14
  341. package/SVF-doxygen/html/html/functions_r.html +11 -7
  342. package/SVF-doxygen/html/html/functions_s.html +14 -12
  343. package/SVF-doxygen/html/html/functions_v.html +3 -3
  344. package/SVF-doxygen/html/html/functions_vars_r.html +3 -0
  345. package/SVF-doxygen/html/html/functions_vars_w.html +3 -0
  346. package/SVF-doxygen/html/html/functions_w.html +4 -0
  347. package/SVF-doxygen/html/html/globals_s.html +7 -3
  348. package/SVF-doxygen/html/html/namespaceSVF.html +80 -41
  349. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +233 -199
  350. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +38 -36
  351. package/SVF-doxygen/html/html/namespacemembers_func.html +4 -1
  352. package/SVF-doxygen/html/html/namespacemembers_g.html +8 -5
  353. package/SVF-doxygen/html/html/namespacemembers_o.html +1 -1
  354. package/SVF-doxygen/html/html/search/all_10.js +3 -3
  355. package/SVF-doxygen/html/html/search/all_12.js +4 -2
  356. package/SVF-doxygen/html/html/search/all_13.js +10 -9
  357. package/SVF-doxygen/html/html/search/all_14.js +3 -3
  358. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  359. package/SVF-doxygen/html/html/search/all_17.js +2 -1
  360. package/SVF-doxygen/html/html/search/all_3.js +1 -1
  361. package/SVF-doxygen/html/html/search/all_7.js +2 -0
  362. package/SVF-doxygen/html/html/search/all_9.js +1 -1
  363. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  364. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  365. package/SVF-doxygen/html/html/search/all_d.js +2 -2
  366. package/SVF-doxygen/html/html/search/all_e.js +3 -3
  367. package/SVF-doxygen/html/html/search/all_f.js +3 -3
  368. package/SVF-doxygen/html/html/search/files_d.js +1 -0
  369. package/SVF-doxygen/html/html/search/functions_14.js +1 -1
  370. package/SVF-doxygen/html/html/search/functions_6.js +2 -0
  371. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  372. package/SVF-doxygen/html/html/search/functions_f.js +1 -0
  373. package/SVF-doxygen/html/html/search/variables_12.js +1 -0
  374. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  375. package/SVF-doxygen/html/html/search/variables_17.js +2 -1
  376. package/SVF-doxygen/html/html/search/variables_e.js +3 -3
  377. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +3 -3
  378. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  379. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
  380. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  381. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +1 -1
  382. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +2 -2
  383. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +24 -24
  384. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +4 -4
  385. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +2 -2
  386. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  387. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  388. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
  389. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  390. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +3 -3
  391. package/include/Graphs/SVFG.h +4 -0
  392. package/include/MSSA/MSSAMuChi.h +1 -0
  393. package/include/SVF-FE/LLVMUtil.h +11 -1
  394. package/include/Util/BasicTypes.h +4 -0
  395. package/include/Util/Options.h +3 -0
  396. package/lib/Graphs/SVFG.cpp +31 -27
  397. package/lib/Graphs/SVFGReadWrite.cpp +478 -0
  398. package/lib/MSSA/MemRegion.cpp +7 -0
  399. package/lib/MemoryModel/LocationSet.cpp +2 -2
  400. package/lib/MemoryModel/PointerAnalysis.cpp +1 -1
  401. package/lib/MemoryModel/SymbolTableInfo.cpp +1 -1
  402. package/lib/SVF-FE/BreakConstantExpr.cpp +3 -1
  403. package/lib/SVF-FE/CPPUtil.cpp +2 -2
  404. package/lib/SVF-FE/LLVMUtil.cpp +2 -2
  405. package/lib/SVF-FE/SVFIRBuilder.cpp +3 -3
  406. package/lib/SVF-FE/SymbolTableBuilder.cpp +2 -2
  407. package/lib/Util/Options.cpp +11 -0
  408. package/lib/Util/PTAStat.cpp +1 -0
  409. package/package.json +1 -1
@@ -68,17 +68,17 @@ $(function() {
68
68
  <div class="contents">
69
69
  <a href="DataFlowUtil_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- DataFlowUtil.cpp -- Helper class for data-flow analysis----------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * DataFlowUtil.cpp</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Created on: Jun 4, 2013</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="DataFlowUtil_8h.html">SVF-FE/DataFlowUtil.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LLVMModule_8h.html">SVF-FE/LLVMModule.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keywordtype">char</span> <a class="code" href="classSVF_1_1IteratedDominanceFrontier.html#aaae6f876063759941ac236f17a80cea2">IteratedDominanceFrontier::ID</a> = 0;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">//static RegisterPass&lt;IteratedDominanceFrontier&gt; IDF(&quot;IDF&quot;,</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// &quot;IteratedDominanceFrontier Pass&quot;);</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classSVF_1_1PTACFInfoBuilder.html#abf1c70ba37181884e7848f6a7c6acf2c"> 41</a></span>&#160;<a class="code" href="classSVF_1_1PTACFInfoBuilder.html#abf1c70ba37181884e7848f6a7c6acf2c">PTACFInfoBuilder::PTACFInfoBuilder</a>()</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Module* mod = LLVMModuleSet::getLLVMModuleSet()-&gt;getMainLLVMModule();</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// llvm::legacy::PassManager PM;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// PM.add(new llvm::PTACFInfoBuilderPass());</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">// PM.run(*mod);</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1PTACFInfoBuilder.html#a772d751f20884e0103703e0b33ae0a16"> 49</a></span>&#160;<a class="code" href="classSVF_1_1PTACFInfoBuilder.html#a772d751f20884e0103703e0b33ae0a16">PTACFInfoBuilder::~PTACFInfoBuilder</a>()</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">for</span>(FunToLoopInfoMap::iterator it = funToLoopInfoMap.begin(), eit = funToLoopInfoMap.end(); it!=eit; ++it)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span>(it-&gt;second != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">delete</span> it-&gt;second;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">for</span>(FunToDTMap::iterator it = funToDTMap.begin(), eit = funToDTMap.end(); it!=eit; ++it)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span>(it-&gt;second != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">delete</span> it-&gt;second;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">for</span>(FunToPostDTMap::iterator it = funToPDTMap.begin(), eit = funToPDTMap.end(); it!=eit; ++it)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span>(it-&gt;second != <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">delete</span> it-&gt;second;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1PTACFInfoBuilder.html#a418e6009760a7c9a048d2ffd9cd29956"> 75</a></span>&#160;<a class="code" href="namespaceSVF.html#a77e088bfe47c0b0ddcbbe0693dec6fe5">LoopInfo</a>* <a class="code" href="classSVF_1_1PTACFInfoBuilder.html#a418e6009760a7c9a048d2ffd9cd29956">PTACFInfoBuilder::getLoopInfo</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* f)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;{</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(f-&gt;isDeclaration()==<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;external function (without body) does not have a loopInfo&quot;</span>);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = <span class="keyword">const_cast&lt;</span><a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>*<span class="keyword">&gt;</span>(f);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; FunToLoopInfoMap::iterator it = funToLoopInfoMap.find(fun);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">if</span>(it==funToLoopInfoMap.end())</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>* dt = <span class="keyword">new</span> <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>(*fun);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="namespaceSVF.html#a77e088bfe47c0b0ddcbbe0693dec6fe5">LoopInfo</a>* loopInfo = <span class="keyword">new</span> <a class="code" href="namespaceSVF.html#a77e088bfe47c0b0ddcbbe0693dec6fe5">LoopInfo</a>(*dt);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; funToLoopInfoMap[fun] = loopInfo;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> loopInfo;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;}</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classSVF_1_1PTACFInfoBuilder.html#a00e3339dab62325354e8ecd8251da0f1"> 92</a></span>&#160;<a class="code" href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">PostDominatorTree</a>* <a class="code" href="classSVF_1_1PTACFInfoBuilder.html#a00e3339dab62325354e8ecd8251da0f1">PTACFInfoBuilder::getPostDT</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* f)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(f-&gt;isDeclaration()==<span class="keyword">false</span> &amp;&amp; <span class="stringliteral">&quot;external function (without body) does not have a PostDominatorTree&quot;</span>);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = <span class="keyword">const_cast&lt;</span><a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>*<span class="keyword">&gt;</span>(f);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span>(f-&gt;isDeclaration())</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; FunToPostDTMap::iterator it = funToPDTMap.find(fun);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span>(it==funToPDTMap.end())</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">PostDominatorTree</a> * PDT = <span class="keyword">new</span> <a class="code" href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">PostDominatorTree</a>(*fun);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; funToPDTMap[fun] = PDT;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> PDT;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;}</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1PTACFInfoBuilder.html#afb3864bae4ac95c7d3b731634c1abdab"> 111</a></span>&#160;<a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>* <a class="code" href="classSVF_1_1PTACFInfoBuilder.html#afb3864bae4ac95c7d3b731634c1abdab">PTACFInfoBuilder::getDT</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* f)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;{</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = <span class="keyword">const_cast&lt;</span><a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>*<span class="keyword">&gt;</span>(f);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; FunToDTMap::iterator it = funToDTMap.find(fun);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span>(it==funToDTMap.end())</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>* dt = <span class="keyword">new</span> <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>(*fun);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; funToDTMap[fun] = dt;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> dt;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classSVF_1_1IteratedDominanceFrontier.html#ab459b40b7b0fd921a2c80461fa0ae54d"> 126</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="classSVF_1_1IteratedDominanceFrontier.html#ab459b40b7b0fd921a2c80461fa0ae54d">IteratedDominanceFrontier::calculate</a>(<a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> * bb,</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">DominanceFrontier</a> &amp;DF)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;{</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; DomSetType worklist;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="namespaceSVF.html#aefa7ddc97343be9e528108d0a52293de">DominanceFrontierBase&lt;BasicBlock, false&gt;::const_iterator</a> it = DF.find(bb);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != DF.end());</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; worklist.insert(it-&gt;second.begin(), it-&gt;second.end());</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">while</span> (!worklist.empty())</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *item = *worklist.begin();</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; worklist.erase(worklist.begin());</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span> (Frontiers[bb].find(item) == Frontiers[bb].end())</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; Frontiers[bb].insert(item);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; const_iterator parent = DF.find(item);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(parent != DF.end());</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; worklist.insert(parent-&gt;second.begin(), parent-&gt;second.end());</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;}</div><div class="ttc" id="classSVF_1_1IteratedDominanceFrontier_html_ab459b40b7b0fd921a2c80461fa0ae54d"><div class="ttname"><a href="classSVF_1_1IteratedDominanceFrontier.html#ab459b40b7b0fd921a2c80461fa0ae54d">SVF::IteratedDominanceFrontier::calculate</a></div><div class="ttdeci">void calculate(BasicBlock *, const DominanceFrontier &amp;DF)</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8cpp_source.html#l00126">DataFlowUtil.cpp:126</a></div></div>
70
70
  <div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00131">CFLGraph.h:131</a></div></div>
71
- <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
71
+ <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00071">BasicTypes.h:71</a></div></div>
72
72
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
73
- <div class="ttc" id="namespaceSVF_html_a77e088bfe47c0b0ddcbbe0693dec6fe5"><div class="ttname"><a href="namespaceSVF.html#a77e088bfe47c0b0ddcbbe0693dec6fe5">SVF::LoopInfo</a></div><div class="ttdeci">llvm::LoopInfo LoopInfo</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
73
+ <div class="ttc" id="namespaceSVF_html_a77e088bfe47c0b0ddcbbe0693dec6fe5"><div class="ttname"><a href="namespaceSVF.html#a77e088bfe47c0b0ddcbbe0693dec6fe5">SVF::LoopInfo</a></div><div class="ttdeci">llvm::LoopInfo LoopInfo</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00080">BasicTypes.h:80</a></div></div>
74
74
  <div class="ttc" id="LLVMModule_8h_html"><div class="ttname"><a href="LLVMModule_8h.html">LLVMModule.h</a></div></div>
75
- <div class="ttc" id="namespaceSVF_html_ab44d20f806be99699895260b14a942d7"><div class="ttname"><a href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">SVF::DominanceFrontier</a></div><div class="ttdeci">llvm::DominanceFrontier DominanceFrontier</div><div class="ttdoc">LLVM Dominators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00106">BasicTypes.h:106</a></div></div>
75
+ <div class="ttc" id="namespaceSVF_html_ab44d20f806be99699895260b14a942d7"><div class="ttname"><a href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">SVF::DominanceFrontier</a></div><div class="ttdeci">llvm::DominanceFrontier DominanceFrontier</div><div class="ttdoc">LLVM Dominators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00110">BasicTypes.h:110</a></div></div>
76
76
  <div class="ttc" id="classSVF_1_1PTACFInfoBuilder_html_a00e3339dab62325354e8ecd8251da0f1"><div class="ttname"><a href="classSVF_1_1PTACFInfoBuilder.html#a00e3339dab62325354e8ecd8251da0f1">SVF::PTACFInfoBuilder::getPostDT</a></div><div class="ttdeci">PostDominatorTree * getPostDT(const Function *f)</div><div class="ttdoc">Get post dominator tree of a function. </div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8cpp_source.html#l00092">DataFlowUtil.cpp:92</a></div></div>
77
- <div class="ttc" id="namespaceSVF_html_ab34383ee87cd45eb485fa29db482ffef"><div class="ttname"><a href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">SVF::PostDominatorTree</a></div><div class="ttdeci">llvm::PostDominatorTree PostDominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00108">BasicTypes.h:108</a></div></div>
78
- <div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
77
+ <div class="ttc" id="namespaceSVF_html_ab34383ee87cd45eb485fa29db482ffef"><div class="ttname"><a href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">SVF::PostDominatorTree</a></div><div class="ttdeci">llvm::PostDominatorTree PostDominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00112">BasicTypes.h:112</a></div></div>
78
+ <div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00070">BasicTypes.h:70</a></div></div>
79
79
  <div class="ttc" id="classSVF_1_1PTACFInfoBuilder_html_a418e6009760a7c9a048d2ffd9cd29956"><div class="ttname"><a href="classSVF_1_1PTACFInfoBuilder.html#a418e6009760a7c9a048d2ffd9cd29956">SVF::PTACFInfoBuilder::getLoopInfo</a></div><div class="ttdeci">LoopInfo * getLoopInfo(const Function *f)</div><div class="ttdoc">Get loop info of a function. </div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8cpp_source.html#l00075">DataFlowUtil.cpp:75</a></div></div>
80
- <div class="ttc" id="namespaceSVF_html_aefa7ddc97343be9e528108d0a52293de"><div class="ttname"><a href="namespaceSVF.html#aefa7ddc97343be9e528108d0a52293de">SVF::DominanceFrontierBase</a></div><div class="ttdeci">llvm::DominanceFrontierBase&lt; BasicBlock, false &gt; DominanceFrontierBase</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00110">BasicTypes.h:110</a></div></div>
81
- <div class="ttc" id="namespaceSVF_html_aecbb42b8e9d17fa0189c50dda9fd5fdd"><div class="ttname"><a href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">SVF::DominatorTree</a></div><div class="ttdeci">llvm::DominatorTree DominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00107">BasicTypes.h:107</a></div></div>
80
+ <div class="ttc" id="namespaceSVF_html_aefa7ddc97343be9e528108d0a52293de"><div class="ttname"><a href="namespaceSVF.html#aefa7ddc97343be9e528108d0a52293de">SVF::DominanceFrontierBase</a></div><div class="ttdeci">llvm::DominanceFrontierBase&lt; BasicBlock, false &gt; DominanceFrontierBase</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00114">BasicTypes.h:114</a></div></div>
81
+ <div class="ttc" id="namespaceSVF_html_aecbb42b8e9d17fa0189c50dda9fd5fdd"><div class="ttname"><a href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">SVF::DominatorTree</a></div><div class="ttdeci">llvm::DominatorTree DominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00111">BasicTypes.h:111</a></div></div>
82
82
  <div class="ttc" id="classSVF_1_1IteratedDominanceFrontier_html_aaae6f876063759941ac236f17a80cea2"><div class="ttname"><a href="classSVF_1_1IteratedDominanceFrontier.html#aaae6f876063759941ac236f17a80cea2">SVF::IteratedDominanceFrontier::ID</a></div><div class="ttdeci">static char ID</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00163">DataFlowUtil.h:163</a></div></div>
83
83
  <div class="ttc" id="classSVF_1_1PTACFInfoBuilder_html_afb3864bae4ac95c7d3b731634c1abdab"><div class="ttname"><a href="classSVF_1_1PTACFInfoBuilder.html#afb3864bae4ac95c7d3b731634c1abdab">SVF::PTACFInfoBuilder::getDT</a></div><div class="ttdeci">DominatorTree * getDT(const Function *f)</div><div class="ttdoc">Get dominator tree of a function. </div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8cpp_source.html#l00111">DataFlowUtil.cpp:111</a></div></div>
84
84
  <div class="ttc" id="DataFlowUtil_8h_html"><div class="ttname"><a href="DataFlowUtil_8h.html">DataFlowUtil.h</a></div></div>
@@ -69,27 +69,27 @@ $(function() {
69
69
  <a href="DataFlowUtil_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- DataFlowUtil.h -- Helper functions for data-flow analysis--------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * DataFlowUtil.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Jun 4, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef DATAFLOWUTIL_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define DATAFLOWUTIL_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Util_2BasicTypes_8h.html">Util/BasicTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;llvm/IR/LegacyPassManager.h&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;llvm/Transforms/IPO/PassManagerBuilder.h&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVF-FE_2BasicTypes_8h.html">SVF-FE/BasicTypes.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="classSVF_1_1PTASCEV.html"> 44</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1PTASCEV.html">PTASCEV</a></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classSVF_1_1PTASCEV.html#afb1582fa355f2ae93a877f4f5bed56d3"> 48</a></span>&#160; <a class="code" href="classSVF_1_1PTASCEV.html#afb1582fa355f2ae93a877f4f5bed56d3">PTASCEV</a>():<a class="code" href="classSVF_1_1PTASCEV.html#af1d494e97cfb2f555d47227ca25172b3">scev</a>(nullptr), <a class="code" href="classSVF_1_1PTASCEV.html#a0de1531fc72f5aa0bafc59101faae68d">start</a>(nullptr), <a class="code" href="classSVF_1_1PTASCEV.html#aead435732fbb492627f746b3d0654ce2">step</a>(nullptr),<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>(nullptr),<a class="code" href="classSVF_1_1PTASCEV.html#ac6636f0c39ef55e2b5f126532bf2d411">inloop</a>(false),<a class="code" href="classSVF_1_1PTASCEV.html#aa92f2da24c8b6d3548f8b4920a8d157f">tripcount</a>(0) {}</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classSVF_1_1PTASCEV.html#a6a134ca4f7f50de053805e75431aa856"> 51</a></span>&#160; <a class="code" href="classSVF_1_1PTASCEV.html#a6a134ca4f7f50de053805e75431aa856">PTASCEV</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* p, <span class="keyword">const</span> <a class="code" href="SVF-FE_2BasicTypes_8h.html#a926a4429043d19e5b5fb425a31631d12">SCEV</a>* s, <a class="code" href="SVF-FE_2BasicTypes_8h.html#a14e646200d8836461877804ee4a203d1">ScalarEvolution</a>* SE): <a class="code" href="classSVF_1_1PTASCEV.html#af1d494e97cfb2f555d47227ca25172b3">scev</a>(s),<a class="code" href="classSVF_1_1PTASCEV.html#a0de1531fc72f5aa0bafc59101faae68d">start</a>(nullptr), <a class="code" href="classSVF_1_1PTASCEV.html#aead435732fbb492627f746b3d0654ce2">step</a>(nullptr), <a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>(p), <a class="code" href="classSVF_1_1PTASCEV.html#ac6636f0c39ef55e2b5f126532bf2d411">inloop</a>(false), <a class="code" href="classSVF_1_1PTASCEV.html#aa92f2da24c8b6d3548f8b4920a8d157f">tripcount</a>(0)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">/*if(const SCEVAddRecExpr* ar = SVFUtil::dyn_cast&lt;SCEVAddRecExpr&gt;(s))</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment"> {</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment"> if (const SCEVConstant *startExpr = SVFUtil::dyn_cast&lt;SCEVConstant&gt;(ar-&gt;getStart()))</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment"> start = startExpr-&gt;getValue();</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="comment"> if (const SCEVConstant *stepExpr = SVFUtil::dyn_cast&lt;SCEVConstant&gt;(ar-&gt;getStepRecurrence(*SE)))</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment"> step = stepExpr-&gt;getValue();</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment"> tripcount = SE-&gt;getSmallConstantTripCount(const_cast&lt;Loop*&gt;(ar-&gt;getLoop()));</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment"> inloop = true;</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment"> }*/</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classSVF_1_1PTASCEV.html#ac6636f0c39ef55e2b5f126532bf2d411">inloop</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1PTASCEV.html#a3f4fbad38457025f35e151e54ab96b70"> 65</a></span>&#160; <a class="code" href="classSVF_1_1PTASCEV.html#a3f4fbad38457025f35e151e54ab96b70">PTASCEV</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTASCEV.html">PTASCEV</a>&amp; ptase): <a class="code" href="classSVF_1_1PTASCEV.html#af1d494e97cfb2f555d47227ca25172b3">scev</a>(ptase.<a class="code" href="classSVF_1_1PTASCEV.html#af1d494e97cfb2f555d47227ca25172b3">scev</a>), <a class="code" href="classSVF_1_1PTASCEV.html#a0de1531fc72f5aa0bafc59101faae68d">start</a>(ptase.<a class="code" href="classSVF_1_1PTASCEV.html#a0de1531fc72f5aa0bafc59101faae68d">start</a>), <a class="code" href="classSVF_1_1PTASCEV.html#aead435732fbb492627f746b3d0654ce2">step</a>(ptase.<a class="code" href="classSVF_1_1PTASCEV.html#aead435732fbb492627f746b3d0654ce2">step</a>), <a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>(ptase.<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>), <a class="code" href="classSVF_1_1PTASCEV.html#ac6636f0c39ef55e2b5f126532bf2d411">inloop</a>(ptase.<a class="code" href="classSVF_1_1PTASCEV.html#ac6636f0c39ef55e2b5f126532bf2d411">inloop</a>),<a class="code" href="classSVF_1_1PTASCEV.html#aa92f2da24c8b6d3548f8b4920a8d157f">tripcount</a>(ptase.<a class="code" href="classSVF_1_1PTASCEV.html#aa92f2da24c8b6d3548f8b4920a8d157f">tripcount</a>)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1PTASCEV.html#acb766a793141723a971d87cbc3e5aaac"> 71</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1PTASCEV.html#acb766a793141723a971d87cbc3e5aaac">~PTASCEV</a>()</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1PTASCEV.html#af1d494e97cfb2f555d47227ca25172b3"> 75</a></span>&#160; <span class="keyword">const</span> <a class="code" href="SVF-FE_2BasicTypes_8h.html#a926a4429043d19e5b5fb425a31631d12">SCEV</a> *<a class="code" href="classSVF_1_1PTASCEV.html#af1d494e97cfb2f555d47227ca25172b3">scev</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1PTASCEV.html#a0de1531fc72f5aa0bafc59101faae68d"> 76</a></span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1PTASCEV.html#a0de1531fc72f5aa0bafc59101faae68d">start</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classSVF_1_1PTASCEV.html#aead435732fbb492627f746b3d0654ce2"> 77</a></span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="classSVF_1_1PTASCEV.html#aead435732fbb492627f746b3d0654ce2">step</a>;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421"> 78</a></span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classSVF_1_1PTASCEV.html#ac6636f0c39ef55e2b5f126532bf2d411"> 79</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTASCEV.html#ac6636f0c39ef55e2b5f126532bf2d411">inloop</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classSVF_1_1PTASCEV.html#aa92f2da24c8b6d3548f8b4920a8d157f"> 80</a></span>&#160; <span class="keywordtype">unsigned</span> <a class="code" href="classSVF_1_1PTASCEV.html#aa92f2da24c8b6d3548f8b4920a8d157f">tripcount</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1PTASCEV.html#ad85500e4caaa70ecacfdf5fbbbcc330e"> 84</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTASCEV.html#ad85500e4caaa70ecacfdf5fbbbcc330e">operator&lt; </a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTASCEV.html">PTASCEV</a>&amp; rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span>(start!=rhs.<a class="code" href="classSVF_1_1PTASCEV.html#a0de1531fc72f5aa0bafc59101faae68d">start</a>)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> start &lt; rhs.<a class="code" href="classSVF_1_1PTASCEV.html#a0de1531fc72f5aa0bafc59101faae68d">start</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(step!=rhs.<a class="code" href="classSVF_1_1PTASCEV.html#aead435732fbb492627f746b3d0654ce2">step</a>)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> step &lt; rhs.<a class="code" href="classSVF_1_1PTASCEV.html#aead435732fbb492627f746b3d0654ce2">step</a>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(ptr!=rhs.<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">return</span> ptr &lt; rhs.<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(tripcount!=rhs.<a class="code" href="classSVF_1_1PTASCEV.html#aa92f2da24c8b6d3548f8b4920a8d157f">tripcount</a>)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> tripcount &lt; rhs.<a class="code" href="classSVF_1_1PTASCEV.html#aa92f2da24c8b6d3548f8b4920a8d157f">tripcount</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">return</span> inloop &lt; rhs.<a class="code" href="classSVF_1_1PTASCEV.html#ac6636f0c39ef55e2b5f126532bf2d411">inloop</a>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classSVF_1_1PTASCEV.html#a144e7fa8c5f4987067914416a85656ca"> 98</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1PTASCEV.html">PTASCEV</a>&amp; <a class="code" href="classSVF_1_1PTASCEV.html#a144e7fa8c5f4987067914416a85656ca">operator= </a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTASCEV.html">PTASCEV</a>&amp; rhs)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span>(*<span class="keyword">this</span>!=rhs)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; start = rhs.<a class="code" href="classSVF_1_1PTASCEV.html#a0de1531fc72f5aa0bafc59101faae68d">start</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; step = rhs.<a class="code" href="classSVF_1_1PTASCEV.html#aead435732fbb492627f746b3d0654ce2">step</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; ptr = rhs.<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; tripcount = rhs.<a class="code" href="classSVF_1_1PTASCEV.html#aa92f2da24c8b6d3548f8b4920a8d157f">tripcount</a>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; inloop = rhs.<a class="code" href="classSVF_1_1PTASCEV.html#ac6636f0c39ef55e2b5f126532bf2d411">inloop</a>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1PTASCEV.html#a71c30ee51274f2d9b3c202d06f1443f4"> 111</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTASCEV.html#a71c30ee51274f2d9b3c202d06f1443f4">operator== </a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTASCEV.html">PTASCEV</a>&amp; rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> (start == rhs.<a class="code" href="classSVF_1_1PTASCEV.html#a0de1531fc72f5aa0bafc59101faae68d">start</a> &amp;&amp; step == rhs.<a class="code" href="classSVF_1_1PTASCEV.html#aead435732fbb492627f746b3d0654ce2">step</a> &amp;&amp; ptr == rhs.<a class="code" href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">ptr</a> &amp;&amp; tripcount == rhs.<a class="code" href="classSVF_1_1PTASCEV.html#aa92f2da24c8b6d3548f8b4920a8d157f">tripcount</a> &amp;&amp; inloop == rhs.<a class="code" href="classSVF_1_1PTASCEV.html#ac6636f0c39ef55e2b5f126532bf2d411">inloop</a>);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classSVF_1_1PTASCEV.html#a0541ce30f889355425d2aaeedbc857b9"> 116</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1PTASCEV.html#a0541ce30f889355425d2aaeedbc857b9">operator!= </a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PTASCEV.html">PTASCEV</a>&amp; rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> !(*<span class="keyword">this</span>==rhs);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;};</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classSVF_1_1PTACFInfoBuilder.html"> 123</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1PTACFInfoBuilder.html">PTACFInfoBuilder</a></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classSVF_1_1PTACFInfoBuilder.html#a69109de5fddf4042037bc6d66563a9e5"> 126</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const Function*, DominatorTree*&gt;</a> <a class="code" href="classSVF_1_1PTACFInfoBuilder.html#a69109de5fddf4042037bc6d66563a9e5">FunToDTMap</a>; </div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classSVF_1_1PTACFInfoBuilder.html#a8e4d95e3c98ad17b060844063a494946"> 127</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const Function*, PostDominatorTree*&gt;</a> <a class="code" href="classSVF_1_1PTACFInfoBuilder.html#a8e4d95e3c98ad17b060844063a494946">FunToPostDTMap</a>; </div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classSVF_1_1PTACFInfoBuilder.html#ad76c187197c73fad8dd0c8bdb57b10f7"> 128</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const Function*, LoopInfo*&gt;</a> <a class="code" href="classSVF_1_1PTACFInfoBuilder.html#ad76c187197c73fad8dd0c8bdb57b10f7">FunToLoopInfoMap</a>; </div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="classSVF_1_1PTACFInfoBuilder.html">PTACFInfoBuilder</a>();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; ~<a class="code" href="classSVF_1_1PTACFInfoBuilder.html">PTACFInfoBuilder</a>();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="namespaceSVF.html#a77e088bfe47c0b0ddcbbe0693dec6fe5">LoopInfo</a>* getLoopInfo(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* f);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">PostDominatorTree</a>* getPostDT(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* f);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>* getDT(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* f);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classSVF_1_1PTACFInfoBuilder.html#a155db92ff5057abcb929c0ca8e8bee89"> 145</a></span>&#160; FunToLoopInfoMap <a class="code" href="classSVF_1_1PTACFInfoBuilder.html#a155db92ff5057abcb929c0ca8e8bee89">funToLoopInfoMap</a>; </div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classSVF_1_1PTACFInfoBuilder.html#a99580fd5a2cc7185d26198c53efe422d"> 146</a></span>&#160; FunToDTMap <a class="code" href="classSVF_1_1PTACFInfoBuilder.html#a99580fd5a2cc7185d26198c53efe422d">funToDTMap</a>; </div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classSVF_1_1PTACFInfoBuilder.html#a11a1bb877406f45ea4c8f7c4678bfa15"> 147</a></span>&#160; FunToPostDTMap <a class="code" href="classSVF_1_1PTACFInfoBuilder.html#a11a1bb877406f45ea4c8f7c4678bfa15">funToPDTMap</a>; </div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;};</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classSVF_1_1IteratedDominanceFrontier.html"> 154</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1IteratedDominanceFrontier.html">IteratedDominanceFrontier</a>: <span class="keyword">public</span> <a class="code" href="namespaceSVF.html#aefa7ddc97343be9e528108d0a52293de">llvm::DominanceFrontierBase</a>&lt;BasicBlock, false&gt;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;{</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classSVF_1_1IteratedDominanceFrontier.html#aa50321ef8e3c9ee5e0b04f95a5a72e24"> 158</a></span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">DominanceFrontier</a> *<a class="code" href="classSVF_1_1IteratedDominanceFrontier.html#aa50321ef8e3c9ee5e0b04f95a5a72e24">DF</a>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordtype">void</span> calculate(<a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">DominanceFrontier</a> &amp;DF);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classSVF_1_1IteratedDominanceFrontier.html#aaae6f876063759941ac236f17a80cea2"> 163</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">char</span> <a class="code" href="classSVF_1_1IteratedDominanceFrontier.html#aaae6f876063759941ac236f17a80cea2">ID</a>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classSVF_1_1IteratedDominanceFrontier.html#ab8cc0708e71ee0d3d2edfc6c99a59237"> 165</a></span>&#160; <a class="code" href="classSVF_1_1IteratedDominanceFrontier.html#ab8cc0708e71ee0d3d2edfc6c99a59237">IteratedDominanceFrontier</a>() :</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="namespaceSVF.html#aefa7ddc97343be9e528108d0a52293de">DominanceFrontierBase</a>(), DF(nullptr)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classSVF_1_1IteratedDominanceFrontier.html#ab4844d80db9046eb41d033d11fbdefc1"> 170</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1IteratedDominanceFrontier.html#ab4844d80db9046eb41d033d11fbdefc1">~IteratedDominanceFrontier</a>()</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment">// virtual bool runOnFunction(Function &amp;m) {</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment">// Frontiers.clear();</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="comment">// DF = &amp;getAnalysis&lt;DominanceFrontier&gt;();</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment">// return false;</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment">// }</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1IteratedDominanceFrontier.html#a9469ee9a9a7712a261076c9a747b6a22"> 180</a></span>&#160; iterator <a class="code" href="classSVF_1_1IteratedDominanceFrontier.html#a9469ee9a9a7712a261076c9a747b6a22">getIDFSet</a>(<a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *B)</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span> (Frontiers.find(B) == Frontiers.end())</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; calculate(B, *DF);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> Frontiers.find(B);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;};</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* DATAFLOWUTIL_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1IteratedDominanceFrontier_html_ab8cc0708e71ee0d3d2edfc6c99a59237"><div class="ttname"><a href="classSVF_1_1IteratedDominanceFrontier.html#ab8cc0708e71ee0d3d2edfc6c99a59237">SVF::IteratedDominanceFrontier::IteratedDominanceFrontier</a></div><div class="ttdeci">IteratedDominanceFrontier()</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00165">DataFlowUtil.h:165</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1PTACFInfoBuilder_html_a11a1bb877406f45ea4c8f7c4678bfa15"><div class="ttname"><a href="classSVF_1_1PTACFInfoBuilder.html#a11a1bb877406f45ea4c8f7c4678bfa15">SVF::PTACFInfoBuilder::funToPDTMap</a></div><div class="ttdeci">FunToPostDTMap funToPDTMap</div><div class="ttdoc">map a function to its post dominator tree </div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00147">DataFlowUtil.h:147</a></div></div>
71
71
  <div class="ttc" id="classSVF_1_1PTACFInfoBuilder_html_ad76c187197c73fad8dd0c8bdb57b10f7"><div class="ttname"><a href="classSVF_1_1PTACFInfoBuilder.html#ad76c187197c73fad8dd0c8bdb57b10f7">SVF::PTACFInfoBuilder::FunToLoopInfoMap</a></div><div class="ttdeci">Map&lt; const Function *, LoopInfo * &gt; FunToLoopInfoMap</div><div class="ttdoc">map a function to its loop info </div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00128">DataFlowUtil.h:128</a></div></div>
72
- <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
72
+ <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00071">BasicTypes.h:71</a></div></div>
73
73
  <div class="ttc" id="classSVF_1_1PTASCEV_html_acb766a793141723a971d87cbc3e5aaac"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#acb766a793141723a971d87cbc3e5aaac">SVF::PTASCEV::~PTASCEV</a></div><div class="ttdeci">virtual ~PTASCEV()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00071">DataFlowUtil.h:71</a></div></div>
74
74
  <div class="ttc" id="Util_2BasicTypes_8h_html"><div class="ttname"><a href="Util_2BasicTypes_8h.html">BasicTypes.h</a></div></div>
75
- <div class="ttc" id="namespaceSVF_html_a77e088bfe47c0b0ddcbbe0693dec6fe5"><div class="ttname"><a href="namespaceSVF.html#a77e088bfe47c0b0ddcbbe0693dec6fe5">SVF::LoopInfo</a></div><div class="ttdeci">llvm::LoopInfo LoopInfo</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
75
+ <div class="ttc" id="namespaceSVF_html_a77e088bfe47c0b0ddcbbe0693dec6fe5"><div class="ttname"><a href="namespaceSVF.html#a77e088bfe47c0b0ddcbbe0693dec6fe5">SVF::LoopInfo</a></div><div class="ttdeci">llvm::LoopInfo LoopInfo</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00080">BasicTypes.h:80</a></div></div>
76
76
  <div class="ttc" id="classSVF_1_1PTASCEV_html_aa6b49b5cbe5057d779685c9ebe763421"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#aa6b49b5cbe5057d779685c9ebe763421">SVF::PTASCEV::ptr</a></div><div class="ttdeci">const Value * ptr</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00078">DataFlowUtil.h:78</a></div></div>
77
77
  <div class="ttc" id="classSVF_1_1PTASCEV_html_aead435732fbb492627f746b3d0654ce2"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#aead435732fbb492627f746b3d0654ce2">SVF::PTASCEV::step</a></div><div class="ttdeci">const Value * step</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00077">DataFlowUtil.h:77</a></div></div>
78
78
  <div class="ttc" id="classSVF_1_1PTACFInfoBuilder_html_a155db92ff5057abcb929c0ca8e8bee89"><div class="ttname"><a href="classSVF_1_1PTACFInfoBuilder.html#a155db92ff5057abcb929c0ca8e8bee89">SVF::PTACFInfoBuilder::funToLoopInfoMap</a></div><div class="ttdeci">FunToLoopInfoMap funToLoopInfoMap</div><div class="ttdoc">map a function to its loop info </div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00145">DataFlowUtil.h:145</a></div></div>
79
79
  <div class="ttc" id="classSVF_1_1PTASCEV_html_a3f4fbad38457025f35e151e54ab96b70"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#a3f4fbad38457025f35e151e54ab96b70">SVF::PTASCEV::PTASCEV</a></div><div class="ttdeci">PTASCEV(const PTASCEV &amp;ptase)</div><div class="ttdoc">Copy Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00065">DataFlowUtil.h:65</a></div></div>
80
80
  <div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00109">SVFBasicTypes.h:109</a></div></div>
81
- <div class="ttc" id="namespaceSVF_html_ab44d20f806be99699895260b14a942d7"><div class="ttname"><a href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">SVF::DominanceFrontier</a></div><div class="ttdeci">llvm::DominanceFrontier DominanceFrontier</div><div class="ttdoc">LLVM Dominators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00106">BasicTypes.h:106</a></div></div>
81
+ <div class="ttc" id="namespaceSVF_html_ab44d20f806be99699895260b14a942d7"><div class="ttname"><a href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">SVF::DominanceFrontier</a></div><div class="ttdeci">llvm::DominanceFrontier DominanceFrontier</div><div class="ttdoc">LLVM Dominators. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00110">BasicTypes.h:110</a></div></div>
82
82
  <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a926a4429043d19e5b5fb425a31631d12"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a926a4429043d19e5b5fb425a31631d12">SCEV</a></div><div class="ttdeci">llvm::SCEV SCEV</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00120">BasicTypes.h:120</a></div></div>
83
83
  <div class="ttc" id="classSVF_1_1PTASCEV_html_a144e7fa8c5f4987067914416a85656ca"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#a144e7fa8c5f4987067914416a85656ca">SVF::PTASCEV::operator=</a></div><div class="ttdeci">PTASCEV &amp; operator=(const PTASCEV &amp;rhs)</div><div class="ttdoc">Overloading operator=. </div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00098">DataFlowUtil.h:98</a></div></div>
84
84
  <div class="ttc" id="classSVF_1_1IteratedDominanceFrontier_html"><div class="ttname"><a href="classSVF_1_1IteratedDominanceFrontier.html">SVF::IteratedDominanceFrontier</a></div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00154">DataFlowUtil.h:154</a></div></div>
85
- <div class="ttc" id="namespaceSVF_html_ab34383ee87cd45eb485fa29db482ffef"><div class="ttname"><a href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">SVF::PostDominatorTree</a></div><div class="ttdeci">llvm::PostDominatorTree PostDominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00108">BasicTypes.h:108</a></div></div>
85
+ <div class="ttc" id="namespaceSVF_html_ab34383ee87cd45eb485fa29db482ffef"><div class="ttname"><a href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">SVF::PostDominatorTree</a></div><div class="ttdeci">llvm::PostDominatorTree PostDominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00112">BasicTypes.h:112</a></div></div>
86
86
  <div class="ttc" id="classSVF_1_1PTASCEV_html_ac6636f0c39ef55e2b5f126532bf2d411"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#ac6636f0c39ef55e2b5f126532bf2d411">SVF::PTASCEV::inloop</a></div><div class="ttdeci">bool inloop</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00079">DataFlowUtil.h:79</a></div></div>
87
- <div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00066">BasicTypes.h:66</a></div></div>
87
+ <div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00070">BasicTypes.h:70</a></div></div>
88
88
  <div class="ttc" id="SVF-FE_2BasicTypes_8h_html"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html">BasicTypes.h</a></div></div>
89
89
  <div class="ttc" id="classSVF_1_1IteratedDominanceFrontier_html_ab4844d80db9046eb41d033d11fbdefc1"><div class="ttname"><a href="classSVF_1_1IteratedDominanceFrontier.html#ab4844d80db9046eb41d033d11fbdefc1">SVF::IteratedDominanceFrontier::~IteratedDominanceFrontier</a></div><div class="ttdeci">virtual ~IteratedDominanceFrontier()</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00170">DataFlowUtil.h:170</a></div></div>
90
- <div class="ttc" id="namespaceSVF_html_aefa7ddc97343be9e528108d0a52293de"><div class="ttname"><a href="namespaceSVF.html#aefa7ddc97343be9e528108d0a52293de">SVF::DominanceFrontierBase</a></div><div class="ttdeci">llvm::DominanceFrontierBase&lt; BasicBlock, false &gt; DominanceFrontierBase</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00110">BasicTypes.h:110</a></div></div>
90
+ <div class="ttc" id="namespaceSVF_html_aefa7ddc97343be9e528108d0a52293de"><div class="ttname"><a href="namespaceSVF.html#aefa7ddc97343be9e528108d0a52293de">SVF::DominanceFrontierBase</a></div><div class="ttdeci">llvm::DominanceFrontierBase&lt; BasicBlock, false &gt; DominanceFrontierBase</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00114">BasicTypes.h:114</a></div></div>
91
91
  <div class="ttc" id="classSVF_1_1PTACFInfoBuilder_html_a69109de5fddf4042037bc6d66563a9e5"><div class="ttname"><a href="classSVF_1_1PTACFInfoBuilder.html#a69109de5fddf4042037bc6d66563a9e5">SVF::PTACFInfoBuilder::FunToDTMap</a></div><div class="ttdeci">Map&lt; const Function *, DominatorTree * &gt; FunToDTMap</div><div class="ttdoc">map a function to its dominator tree </div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00126">DataFlowUtil.h:126</a></div></div>
92
- <div class="ttc" id="namespaceSVF_html_aecbb42b8e9d17fa0189c50dda9fd5fdd"><div class="ttname"><a href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">SVF::DominatorTree</a></div><div class="ttdeci">llvm::DominatorTree DominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00107">BasicTypes.h:107</a></div></div>
92
+ <div class="ttc" id="namespaceSVF_html_aecbb42b8e9d17fa0189c50dda9fd5fdd"><div class="ttname"><a href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">SVF::DominatorTree</a></div><div class="ttdeci">llvm::DominatorTree DominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00111">BasicTypes.h:111</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1IteratedDominanceFrontier_html_aa50321ef8e3c9ee5e0b04f95a5a72e24"><div class="ttname"><a href="classSVF_1_1IteratedDominanceFrontier.html#aa50321ef8e3c9ee5e0b04f95a5a72e24">SVF::IteratedDominanceFrontier::DF</a></div><div class="ttdeci">const DominanceFrontier * DF</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00158">DataFlowUtil.h:158</a></div></div>
94
94
  <div class="ttc" id="classSVF_1_1IteratedDominanceFrontier_html_aaae6f876063759941ac236f17a80cea2"><div class="ttname"><a href="classSVF_1_1IteratedDominanceFrontier.html#aaae6f876063759941ac236f17a80cea2">SVF::IteratedDominanceFrontier::ID</a></div><div class="ttdeci">static char ID</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00163">DataFlowUtil.h:163</a></div></div>
95
95
  <div class="ttc" id="classSVF_1_1PTASCEV_html_a6a134ca4f7f50de053805e75431aa856"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#a6a134ca4f7f50de053805e75431aa856">SVF::PTASCEV::PTASCEV</a></div><div class="ttdeci">PTASCEV(const Value *p, const SCEV *s, ScalarEvolution *SE)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00051">DataFlowUtil.h:51</a></div></div>
@@ -103,7 +103,7 @@ $(function() {
103
103
  <div class="ttc" id="classSVF_1_1PTACFInfoBuilder_html_a8e4d95e3c98ad17b060844063a494946"><div class="ttname"><a href="classSVF_1_1PTACFInfoBuilder.html#a8e4d95e3c98ad17b060844063a494946">SVF::PTACFInfoBuilder::FunToPostDTMap</a></div><div class="ttdeci">Map&lt; const Function *, PostDominatorTree * &gt; FunToPostDTMap</div><div class="ttdoc">map a function to its post dominator tree </div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00127">DataFlowUtil.h:127</a></div></div>
104
104
  <div class="ttc" id="classSVF_1_1IteratedDominanceFrontier_html_a9469ee9a9a7712a261076c9a747b6a22"><div class="ttname"><a href="classSVF_1_1IteratedDominanceFrontier.html#a9469ee9a9a7712a261076c9a747b6a22">SVF::IteratedDominanceFrontier::getIDFSet</a></div><div class="ttdeci">iterator getIDFSet(BasicBlock *B)</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00180">DataFlowUtil.h:180</a></div></div>
105
105
  <div class="ttc" id="classSVF_1_1PTASCEV_html_af1d494e97cfb2f555d47227ca25172b3"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#af1d494e97cfb2f555d47227ca25172b3">SVF::PTASCEV::scev</a></div><div class="ttdeci">const SCEV * scev</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00075">DataFlowUtil.h:75</a></div></div>
106
- <div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00068">BasicTypes.h:68</a></div></div>
106
+ <div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00072">BasicTypes.h:72</a></div></div>
107
107
  <div class="ttc" id="classSVF_1_1PTASCEV_html_a0de1531fc72f5aa0bafc59101faae68d"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#a0de1531fc72f5aa0bafc59101faae68d">SVF::PTASCEV::start</a></div><div class="ttdeci">const Value * start</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00076">DataFlowUtil.h:76</a></div></div>
108
108
  <div class="ttc" id="classSVF_1_1PTASCEV_html_aa92f2da24c8b6d3548f8b4920a8d157f"><div class="ttname"><a href="classSVF_1_1PTASCEV.html#aa92f2da24c8b6d3548f8b4920a8d157f">SVF::PTASCEV::tripcount</a></div><div class="ttdeci">unsigned tripcount</div><div class="ttdef"><b>Definition:</b> <a href="DataFlowUtil_8h_source.html#l00080">DataFlowUtil.h:80</a></div></div>
109
109
  <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a14e646200d8836461877804ee4a203d1"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a14e646200d8836461877804ee4a203d1">ScalarEvolution</a></div><div class="ttdeci">llvm::ScalarEvolution ScalarEvolution</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00119">BasicTypes.h:119</a></div></div>
@@ -71,7 +71,7 @@ $(function() {
71
71
  <div class="ttc" id="classSVF_1_1ValVar_html"><div class="ttname"><a href="classSVF_1_1ValVar.html">SVF::ValVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00260">SVFVariables.h:260</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1ExeState_html_a80bd7f3746198459bbcb59274cebc013"><div class="ttname"><a href="classSVF_1_1ExeState.html#a80bd7f3746198459bbcb59274cebc013">SVF::ExeState::load</a></div><div class="ttdeci">Z3Expr &amp; load(const Z3Expr &amp;loc)</div><div class="ttdoc">Load value at location. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00243">ExeState.cpp:243</a></div></div>
73
73
  <div class="ttc" id="classSVF_1_1ExeState_html_a4ee40de7eca22ac055b52360e0101623"><div class="ttname"><a href="classSVF_1_1ExeState.html#a4ee40de7eca22ac055b52360e0101623">SVF::ExeState::getLocToVal</a></div><div class="ttdeci">const LocToValMap &amp; getLocToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00092">ExeState.h:92</a></div></div>
74
- <div class="ttc" id="namespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdoc">LLVM Basic classes. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00061">BasicTypes.h:61</a></div></div>
74
+ <div class="ttc" id="namespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdoc">LLVM Basic classes. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
75
75
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
76
76
  <div class="ttc" id="classSVF_1_1ExeState_html_a10a12722f1974d466ef07a35d9dff108"><div class="ttname"><a href="classSVF_1_1ExeState.html#a10a12722f1974d466ef07a35d9dff108">SVF::ExeState::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const ExeState &amp;rhs) const</div><div class="ttdoc">Overloading Operator==. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00187">ExeState.cpp:187</a></div></div>
77
77
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_ac1a9d20d62066ec4e181fad223669e32"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">SVF::LLVMModuleSet::getContext</a></div><div class="ttdeci">LLVMContext &amp; getContext() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00200">LLVMModule.h:200</a></div></div>
@@ -82,7 +82,7 @@ $(function() {
82
82
  <div class="ttc" id="classSVF_1_1ObjVar_html"><div class="ttname"><a href="classSVF_1_1ObjVar.html">SVF::ObjVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00308">SVFVariables.h:308</a></div></div>
83
83
  <div class="ttc" id="classSVF_1_1SVFIR_html_a37cfa2aa4e7b98ef9dc8179f581a2362"><div class="ttname"><a href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVF::SVFIR::getPAG</a></div><div class="ttdeci">static SVFIR * getPAG(bool buildFromFile=false)</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="SVFIR_8h_source.html#l00106">SVFIR.h:106</a></div></div>
84
84
  <div class="ttc" id="classSVF_1_1ExeState_html_afc4aad166cd39a6cfbd8e9b897104f3f"><div class="ttname"><a href="classSVF_1_1ExeState.html#afc4aad166cd39a6cfbd8e9b897104f3f">SVF::ExeState::VarToValMap</a></div><div class="ttdeci">Map&lt; u32_t, Z3Expr &gt; VarToValMap</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00043">ExeState.h:43</a></div></div>
85
- <div class="ttc" id="namespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00091">BasicTypes.h:91</a></div></div>
85
+ <div class="ttc" id="namespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00095">BasicTypes.h:95</a></div></div>
86
86
  <div class="ttc" id="classSVF_1_1ObjVar_html_a6a4feb73b54e602407e35eeb09f55930"><div class="ttname"><a href="classSVF_1_1ObjVar.html#a6a4feb73b54e602407e35eeb09f55930">SVF::ObjVar::getMemObj</a></div><div class="ttdeci">const MemObj * getMemObj() const</div><div class="ttdoc">Return memory object. </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00348">SVFVariables.h:348</a></div></div>
87
87
  <div class="ttc" id="SVFIR_8h_html"><div class="ttname"><a href="SVFIR_8h.html">SVFIR.h</a></div></div>
88
88
  <div class="ttc" id="classSVF_1_1MemObj_html_a019a77516c403f1f3cc72917b810a41f"><div class="ttname"><a href="classSVF_1_1MemObj.html#a019a77516c403f1f3cc72917b810a41f">SVF::MemObj::isConstantStruct</a></div><div class="ttdeci">bool isConstantStruct() const</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00750">SymbolTableInfo.cpp:750</a></div></div>
@@ -95,7 +95,7 @@ $(function() {
95
95
  <div class="ttc" id="classSVF_1_1Z3Expr_html_afb3478316592a395c6d473791b5a0981"><div class="ttname"><a href="classSVF_1_1Z3Expr.html#afb3478316592a395c6d473791b5a0981">SVF::Z3Expr::simplify</a></div><div class="ttdeci">Z3Expr simplify() const</div><div class="ttdef"><b>Definition:</b> <a href="Z3Expr_8h_source.html#l00127">Z3Expr.h:127</a></div></div>
96
96
  <div class="ttc" id="classSVF_1_1ExeState_html_aee8eece3daa2b7cbebb8dcde761931c2"><div class="ttname"><a href="classSVF_1_1ExeState.html#aee8eece3daa2b7cbebb8dcde761931c2">SVF::ExeState::printExprValues</a></div><div class="ttdeci">void printExprValues()</div><div class="ttdoc">Print values of all expressions. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8cpp_source.html#l00256">ExeState.cpp:256</a></div></div>
97
97
  <div class="ttc" id="classSVF_1_1IRGraph_html_a3de9a2a565c303f68a90c32dc59febd5"><div class="ttname"><a href="classSVF_1_1IRGraph.html#a3de9a2a565c303f68a90c32dc59febd5">SVF::IRGraph::getNullPtr</a></div><div class="ttdeci">NodeID getNullPtr() const</div><div class="ttdef"><b>Definition:</b> <a href="IRGraph_8h_source.html#l00160">IRGraph.h:160</a></div></div>
98
- <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00079">BasicTypes.h:79</a></div></div>
98
+ <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00083">BasicTypes.h:83</a></div></div>
99
99
  <div class="ttc" id="ExeState_8h_html"><div class="ttname"><a href="ExeState_8h.html">ExeState.h</a></div></div>
100
100
  <div class="ttc" id="classSVF_1_1ExeState_html_abf1237f5e4661a2da6e479f147957b18"><div class="ttname"><a href="classSVF_1_1ExeState.html#abf1237f5e4661a2da6e479f147957b18">SVF::ExeState::getVarToVal</a></div><div class="ttdeci">const VarToValMap &amp; getVarToVal() const</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00087">ExeState.h:87</a></div></div>
101
101
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
@@ -74,8 +74,8 @@ $(function() {
74
74
  <div class="ttc" id="classSVF_1_1ExtAPI_html_aaf94c82d98f8ed1514ee49c9881a4094a66bcd64afcfaf09c49d2f445cd112f1d"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#aaf94c82d98f8ed1514ee49c9881a4094a66bcd64afcfaf09c49d2f445cd112f1d">SVF::ExtAPI::EFT_FREE_MULTILEVEL</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00056">ExtAPI.h:56</a></div></div>
75
75
  <div class="ttc" id="Util_2BasicTypes_8h_html"><div class="ttname"><a href="Util_2BasicTypes_8h.html">BasicTypes.h</a></div></div>
76
76
  <div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
77
- <div class="ttc" id="classSVF_1_1SVFFunction_html_ab672f0255ec8e42d5e414bc8c72b7c76"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ab672f0255ec8e42d5e414bc8c72b7c76">SVF::SVFFunction::isDeclaration</a></div><div class="ttdeci">bool isDeclaration() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00146">BasicTypes.h:146</a></div></div>
78
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00124">BasicTypes.h:124</a></div></div>
77
+ <div class="ttc" id="classSVF_1_1SVFFunction_html_ab672f0255ec8e42d5e414bc8c72b7c76"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ab672f0255ec8e42d5e414bc8c72b7c76">SVF::SVFFunction::isDeclaration</a></div><div class="ttdeci">bool isDeclaration() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00150">BasicTypes.h:150</a></div></div>
78
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00128">BasicTypes.h:128</a></div></div>
79
79
  <div class="ttc" id="classSVF_1_1ExtAPI_html_aab5731ba773144c7cbb5609e9b807eae"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#aab5731ba773144c7cbb5609e9b807eae">SVF::ExtAPI::has_static2</a></div><div class="ttdeci">bool has_static2(const SVFFunction *F) const</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00157">ExtAPI.h:157</a></div></div>
80
80
  <div class="ttc" id="classSVF_1_1ExtAPI_html_aaf94c82d98f8ed1514ee49c9881a4094aed5f4c75cc5016c61f441abf06a2bf21"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#aaf94c82d98f8ed1514ee49c9881a4094aed5f4c75cc5016c61f441abf06a2bf21">SVF::ExtAPI::EFT_STD_LIST_HOOK</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00084">ExtAPI.h:84</a></div></div>
81
81
  <div class="ttc" id="classSVF_1_1ExtAPI_html_aaf94c82d98f8ed1514ee49c9881a4094a7f75d2265448acf50cd59151a1241054"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#aaf94c82d98f8ed1514ee49c9881a4094a7f75d2265448acf50cd59151a1241054">SVF::ExtAPI::CPP_EFT_A0R_A1R</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00087">ExtAPI.h:87</a></div></div>
@@ -121,7 +121,7 @@ $(function() {
121
121
  <div class="ttc" id="classSVF_1_1ExtAPI_html_aaf94c82d98f8ed1514ee49c9881a4094a515c2184a7461fc1788a514432a7ec22"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#aaf94c82d98f8ed1514ee49c9881a4094a515c2184a7461fc1788a514432a7ec22">SVF::ExtAPI::EFT_STAT2</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00059">ExtAPI.h:59</a></div></div>
122
122
  <div class="ttc" id="classSVF_1_1ExtAPI_html_aaf94c82d98f8ed1514ee49c9881a4094a4c1361546aa103c26b11b0b89dc8d482"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#aaf94c82d98f8ed1514ee49c9881a4094a4c1361546aa103c26b11b0b89dc8d482">SVF::ExtAPI::EFT_A1R_A0</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00072">ExtAPI.h:72</a></div></div>
123
123
  <div class="ttc" id="classSVF_1_1ExtAPI_html_aaf94c82d98f8ed1514ee49c9881a4094afe69efc20e29f95e0e333d1a462576a2"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#aaf94c82d98f8ed1514ee49c9881a4094afe69efc20e29f95e0e333d1a462576a2">SVF::ExtAPI::EFT_A4R_NEW</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00080">ExtAPI.h:80</a></div></div>
124
- <div class="ttc" id="classSVF_1_1SVFFunction_html_a7b4c6c7143d012802ea5ee962bec2deb"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a7b4c6c7143d012802ea5ee962bec2deb">SVF::SVFFunction::isIntrinsic</a></div><div class="ttdeci">bool isIntrinsic() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00151">BasicTypes.h:151</a></div></div>
124
+ <div class="ttc" id="classSVF_1_1SVFFunction_html_a7b4c6c7143d012802ea5ee962bec2deb"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a7b4c6c7143d012802ea5ee962bec2deb">SVF::SVFFunction::isIntrinsic</a></div><div class="ttdeci">bool isIntrinsic() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00155">BasicTypes.h:155</a></div></div>
125
125
  <div class="ttc" id="classSVF_1_1ExtAPI_html_aaf94c82d98f8ed1514ee49c9881a4094a54aa3d7051aab7d65ee1154538bfbb48"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#aaf94c82d98f8ed1514ee49c9881a4094a54aa3d7051aab7d65ee1154538bfbb48">SVF::ExtAPI::EFT_L_A0__A0R_A1R</a></div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00065">ExtAPI.h:65</a></div></div>
126
126
  <div class="ttc" id="classSVF_1_1ExtAPI_html_af09ae44b9311d3dfd9eafd41da8c31be"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#af09ae44b9311d3dfd9eafd41da8c31be">SVF::ExtAPI::is_dealloc</a></div><div class="ttdeci">bool is_dealloc(const SVFFunction *F) const</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00200">ExtAPI.h:200</a></div></div>
127
127
  <div class="ttc" id="classSVF_1_1ExtAPI_html_a90b433cf855adcf34c6ef7f7e5be62b1"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a90b433cf855adcf34c6ef7f7e5be62b1">SVF::ExtAPI::get_type</a></div><div class="ttdeci">extf_t get_type(const SVFFunction *F) const</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8h_source.html#l00133">ExtAPI.h:133</a></div></div>
@@ -94,7 +94,7 @@ $(function() {
94
94
  <div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a55da7f1a8921727f84232e5905d6135f"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a55da7f1a8921727f84232e5905d6135f">SVF::MTASVFGBuilder::recordEdge</a></div><div class="ttdeci">bool recordEdge(NodeID id1, NodeID id2, PointsTo pts)</div><div class="ttdoc">Record edges. </div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00066">FSMPTA.cpp:66</a></div></div>
95
95
  <div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
96
96
  <div class="ttc" id="classSVF_1_1FSMPTA_html"><div class="ttname"><a href="classSVF_1_1FSMPTA.html">SVF::FSMPTA</a></div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00176">FSMPTA.h:176</a></div></div>
97
- <div class="ttc" id="classSVF_1_1Options_html_af129d2ff94af3f6830c0678cb4b72371"><div class="ttname"><a href="classSVF_1_1Options.html#af129d2ff94af3f6830c0678cb4b72371">SVF::Options::AddModelFlag</a></div><div class="ttdeci">static const llvm::cl::opt&lt; u32_t &gt; AddModelFlag</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00165">Options.h:165</a></div></div>
97
+ <div class="ttc" id="classSVF_1_1Options_html_af129d2ff94af3f6830c0678cb4b72371"><div class="ttname"><a href="classSVF_1_1Options.html#af129d2ff94af3f6830c0678cb4b72371">SVF::Options::AddModelFlag</a></div><div class="ttdeci">static const llvm::cl::opt&lt; u32_t &gt; AddModelFlag</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00168">Options.h:168</a></div></div>
98
98
  <div class="ttc" id="classSVF_1_1GenericNode_html_ae5b113921530eee6afe58a65d8e5b3a7"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ae5b113921530eee6afe58a65d8e5b3a7">SVF::GenericNode::InEdgeBegin</a></div><div class="ttdeci">iterator InEdgeBegin()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00214">GenericGraph.h:214</a></div></div>
99
99
  <div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a7033805052c8fae5cd0104fdd9e345c0"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a7033805052c8fae5cd0104fdd9e345c0">SVF::MTASVFGBuilder::getSuccNodes</a></div><div class="ttdeci">SVFGNodeIDSet getSuccNodes(const StmtSVFGNode *n)</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00359">FSMPTA.cpp:359</a></div></div>
100
100
  <div class="ttc" id="classSVF_1_1GenericGraph_html_a5dfa3f178d4abf37177d0d74ff4c6a97"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">SVF::GenericGraph::const_iterator</a></div><div class="ttdeci">IDToNodeMapTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00343">GenericGraph.h:343</a></div></div>
@@ -115,7 +115,7 @@ $(function() {
115
115
  <div class="ttc" id="classSVF_1_1GenericEdge_html_aeaa31a2c8479e831b36ce2e2582ceb86"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#aeaa31a2c8479e831b36ce2e2582ceb86">SVF::GenericEdge::getDstNode</a></div><div class="ttdeci">NodeType * getDstNode() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00093">GenericGraph.h:93</a></div></div>
116
116
  <div class="ttc" id="classSVF_1_1MemSSA_html"><div class="ttname"><a href="classSVF_1_1MemSSA.html">SVF::MemSSA</a></div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00046">MemSSA.h:46</a></div></div>
117
117
  <div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set&lt; Key, Hash, KeyEqual, Allocator &gt; Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00104">SVFBasicTypes.h:104</a></div></div>
118
- <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00069">BasicTypes.h:69</a></div></div>
118
+ <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00073">BasicTypes.h:73</a></div></div>
119
119
  <div class="ttc" id="classSVF_1_1PointsTo_html_a879783ba6629e500af9aa7dfcda2563d"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">SVF::PointsTo::count</a></div><div class="ttdeci">u32_t count(void) const</div><div class="ttdoc">Returns number of elements. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00107">PointsTo.cpp:107</a></div></div>
120
120
  <div class="ttc" id="classSVF_1_1GenericNode_html_afe6a7b286d9af4992f41b59612fd2900"><div class="ttname"><a href="classSVF_1_1GenericNode.html#afe6a7b286d9af4992f41b59612fd2900">SVF::GenericNode::InEdgeEnd</a></div><div class="ttdeci">iterator InEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00218">GenericGraph.h:218</a></div></div>
121
121
  <div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a3b75cd10a314c920669cd0d4790e1a16"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a3b75cd10a314c920669cd0d4790e1a16">SVF::MTASVFGBuilder::buildSVFG</a></div><div class="ttdeci">virtual void buildSVFG()</div><div class="ttdoc">Re-write create SVFG method. </div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00025">FSMPTA.cpp:25</a></div></div>
@@ -140,7 +140,7 @@ $(function() {
140
140
  <div class="ttc" id="SVFBasicTypes_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFBasicTypes_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdoc">General debug flag is for each phase of a pass, it is often in a colorful output format. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00159">SVFBasicTypes.h:159</a></div></div>
141
141
  <div class="ttc" id="classSVF_1_1AndersenWaveDiff_html_a48ff6fc4badc79ad3204ae9bd95cc540"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">SVF::AndersenWaveDiff::createAndersenWaveDiff</a></div><div class="ttdeci">static AndersenWaveDiff * createAndersenWaveDiff(SVFIR *_pag)</div><div class="ttdoc">Create an singleton instance directly instead of invoking llvm pass manager. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00430">Andersen.h:430</a></div></div>
142
142
  <div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a29a14309cfa1d7c4454fb1237704e487"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a29a14309cfa1d7c4454fb1237704e487">SVF::MTASVFGBuilder::handleStoreStore</a></div><div class="ttdeci">void handleStoreStore(const StmtSVFGNode *n1, const StmtSVFGNode *n2, PointerAnalysis *pta)</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00495">FSMPTA.cpp:495</a></div></div>
143
- <div class="ttc" id="classSVF_1_1Options_html_af2f66307e1d51947676f622c98ef0762"><div class="ttname"><a href="classSVF_1_1Options.html#af2f66307e1d51947676f622c98ef0762">SVF::Options::UsePCG</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; UsePCG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00162">Options.h:162</a></div></div>
143
+ <div class="ttc" id="classSVF_1_1Options_html_af2f66307e1d51947676f622c98ef0762"><div class="ttname"><a href="classSVF_1_1Options.html#af2f66307e1d51947676f622c98ef0762">SVF::Options::UsePCG</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; UsePCG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00165">Options.h:165</a></div></div>
144
144
  <div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a467e7b445394acb735b1b24ce39e966a"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a467e7b445394acb735b1b24ce39e966a">SVF::MTASVFGBuilder::SVFGNodeSet</a></div><div class="ttdeci">Set&lt; const SVFGNode * &gt; SVFGNodeSet</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00078">FSMPTA.h:78</a></div></div>
145
145
  <div class="ttc" id="PCG_8h_html"><div class="ttname"><a href="PCG_8h.html">PCG.h</a></div></div>
146
146
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
@@ -154,7 +154,7 @@ $(function() {
154
154
  <div class="ttc" id="classSVF_1_1IndirectSVFGEdge_html"><div class="ttname"><a href="classSVF_1_1IndirectSVFGEdge.html">SVF::IndirectSVFGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00042">SVFGEdge.h:42</a></div></div>
155
155
  <div class="ttc" id="classSVF_1_1GenericNode_html_a19a3366fd8a58290d0c740c46c3dcb3d"><div class="ttname"><a href="classSVF_1_1GenericNode.html#a19a3366fd8a58290d0c740c46c3dcb3d">SVF::GenericNode::OutEdgeEnd</a></div><div class="ttdeci">iterator OutEdgeEnd()</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00210">GenericGraph.h:210</a></div></div>
156
156
  <div class="ttc" id="classSVF_1_1MemSSA_html_ad40617a1907b9a6b8cc24888ce54a0ac"><div class="ttname"><a href="classSVF_1_1MemSSA.html#ad40617a1907b9a6b8cc24888ce54a0ac">SVF::MemSSA::getPTA</a></div><div class="ttdeci">BVDataPTAImpl * getPTA() const</div><div class="ttdoc">Return PTA. </div><div class="ttdef"><b>Definition:</b> <a href="MemSSA_8h_source.html#l00315">MemSSA.h:315</a></div></div>
157
- <div class="ttc" id="classSVF_1_1Options_html_a6bec8aed8673d10d65cc3df9fad3383b"><div class="ttname"><a href="classSVF_1_1Options.html#a6bec8aed8673d10d65cc3df9fad3383b">SVF::Options::ReadPrecisionTDEdge</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; ReadPrecisionTDEdge</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00164">Options.h:164</a></div></div>
157
+ <div class="ttc" id="classSVF_1_1Options_html_a6bec8aed8673d10d65cc3df9fad3383b"><div class="ttname"><a href="classSVF_1_1Options.html#a6bec8aed8673d10d65cc3df9fad3383b">SVF::Options::ReadPrecisionTDEdge</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; ReadPrecisionTDEdge</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00167">Options.h:167</a></div></div>
158
158
  <div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00027">PointsTo.h:27</a></div></div>
159
159
  <div class="ttc" id="classSVF_1_1MTASVFGBuilder_html_a7b034f9f8f01823ecfb7f6c17e47b502"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html#a7b034f9f8f01823ecfb7f6c17e47b502">SVF::MTASVFGBuilder::getPrevNodes</a></div><div class="ttdeci">SVFGNodeIDSet getPrevNodes(const StmtSVFGNode *n)</div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8cpp_source.html#l00321">FSMPTA.cpp:321</a></div></div>
160
160
  <div class="ttc" id="classSVF_1_1MTASVFGBuilder_html"><div class="ttname"><a href="classSVF_1_1MTASVFGBuilder.html">SVF::MTASVFGBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="FSMPTA_8h_source.html#l00071">FSMPTA.h:71</a></div></div>
@@ -68,7 +68,7 @@ $(function() {
68
68
  <div class="contents">
69
69
  <a href="FileChecker_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- FileChecker.h -- Checking incorrect file-open close errors-------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * FileChecker.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Apr 24, 2014</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef FILECHECK_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define FILECHECK_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LeakChecker_8h.html">SABER/LeakChecker.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classSVF_1_1FileChecker.html"> 42</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1FileChecker.html">FileChecker</a> : <span class="keyword">public</span> <a class="code" href="classSVF_1_1LeakChecker.html">LeakChecker</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="classSVF_1_1FileChecker.html#a283b5e46aba5e964f0a54abc33fcb7b6"> 48</a></span>&#160; <a class="code" href="classSVF_1_1FileChecker.html#a283b5e46aba5e964f0a54abc33fcb7b6">FileChecker</a>(): <a class="code" href="classSVF_1_1LeakChecker.html">LeakChecker</a>()</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classSVF_1_1FileChecker.html#aaf316bcb90a37d577631598f738945da"> 53</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1FileChecker.html#aaf316bcb90a37d577631598f738945da">~FileChecker</a>()</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classSVF_1_1FileChecker.html#a98a68536b8ffdb2250bbb01437598ac3"> 58</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FileChecker.html#a98a68536b8ffdb2250bbb01437598ac3">runOnModule</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* module)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="classSVF_1_1SrcSnkDDA.html#ac12d813bcba4ec70de5e9048bbe16afc">analyze</a>(module);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1FileChecker.html#ab2ed4c1d3aa00ac663441f32d9f3115f"> 65</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FileChecker.html#ab2ed4c1d3aa00ac663441f32d9f3115f">isSourceLikeFun</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SaberCheckerAPI.html#acf41a2b6de063da9ed492ef0da129036">SaberCheckerAPI::getCheckerAPI</a>()-&gt;<a class="code" href="classSVF_1_1SaberCheckerAPI.html#a0977378f6f2a782041c97912762deb5f">isFOpen</a>(fun);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1FileChecker.html#aac61c4566cd79827879f4862664a432e"> 70</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1FileChecker.html#aac61c4566cd79827879f4862664a432e">isSinkLikeFun</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SaberCheckerAPI.html#acf41a2b6de063da9ed492ef0da129036">SaberCheckerAPI::getCheckerAPI</a>()-&gt;<a class="code" href="classSVF_1_1SaberCheckerAPI.html#a970676d884d66da9fce00fe5b60c96ba">isFClose</a>(fun);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FileChecker.html#a88ffc46ca954b77463de4c94c4eace54">reportBug</a>(<a class="code" href="classSVF_1_1ProgSlice.html">ProgSlice</a>* slice);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FileChecker.html#ac6b092dd119642f435c21a708b160b49">reportNeverClose</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* src);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1FileChecker.html#a8a4e249c4ac93b98149d25e1aa411cb0">reportPartialClose</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* src);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;};</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* FILECHECK_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1LeakChecker_html"><div class="ttname"><a href="classSVF_1_1LeakChecker.html">SVF::LeakChecker</a></div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00042">LeakChecker.h:42</a></div></div>
70
70
  <div class="ttc" id="classSVF_1_1FileChecker_html_a8a4e249c4ac93b98149d25e1aa411cb0"><div class="ttname"><a href="classSVF_1_1FileChecker.html#a8a4e249c4ac93b98149d25e1aa411cb0">SVF::FileChecker::reportPartialClose</a></div><div class="ttdeci">void reportPartialClose(const SVFGNode *src)</div><div class="ttdef"><b>Definition:</b> <a href="FileChecker_8cpp_source.html#l00043">FileChecker.cpp:43</a></div></div>
71
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00124">BasicTypes.h:124</a></div></div>
71
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00128">BasicTypes.h:128</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1FileChecker_html_aac61c4566cd79827879f4862664a432e"><div class="ttname"><a href="classSVF_1_1FileChecker.html#aac61c4566cd79827879f4862664a432e">SVF::FileChecker::isSinkLikeFun</a></div><div class="ttdeci">bool isSinkLikeFun(const SVFFunction *fun)</div><div class="ttdoc">Whether the function is a heap deallocator (free/release memory) </div><div class="ttdef"><b>Definition:</b> <a href="FileChecker_8h_source.html#l00070">FileChecker.h:70</a></div></div>
73
73
  <div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
74
74
  <div class="ttc" id="classSVF_1_1SaberCheckerAPI_html_acf41a2b6de063da9ed492ef0da129036"><div class="ttname"><a href="classSVF_1_1SaberCheckerAPI.html#acf41a2b6de063da9ed492ef0da129036">SVF::SaberCheckerAPI::getCheckerAPI</a></div><div class="ttdeci">static SaberCheckerAPI * getCheckerAPI()</div><div class="ttdoc">Return a static reference. </div><div class="ttdef"><b>Definition:</b> <a href="SaberCheckerAPI_8h_source.html#l00089">SaberCheckerAPI.h:89</a></div></div>