svf-tools 1.0.438 → 1.0.439

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 (387) hide show
  1. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +9 -9
  2. package/SVF-doxygen/html/html/BDDExpr_8cpp.html +81 -0
  3. package/SVF-doxygen/html/html/BDDExpr_8cpp_source.html +122 -0
  4. package/SVF-doxygen/html/html/BDDExpr_8h.html +98 -0
  5. package/SVF-doxygen/html/html/BDDExpr_8h_source.html +131 -0
  6. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  8. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +9 -9
  11. package/SVF-doxygen/html/html/DPItem_8h.html +1 -1
  12. package/SVF-doxygen/html/html/DPItem_8h_source.html +2 -2
  13. package/SVF-doxygen/html/html/ExeState_8cpp.html +82 -0
  14. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +127 -0
  15. package/SVF-doxygen/html/html/ExeState_8h.html +139 -0
  16. package/SVF-doxygen/html/html/ExeState_8h_source.html +128 -0
  17. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +3 -3
  18. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +2 -2
  19. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h.html +1 -1
  20. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +1 -1
  21. package/SVF-doxygen/html/html/FlowSensitive_8cpp.html +1 -1
  22. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +8 -8
  23. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/html/IRAnnotator_8h.html +2 -2
  25. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +2 -2
  26. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -1
  29. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  30. package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
  31. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
  32. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +1 -1
  33. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -1
  34. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
  36. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +6 -6
  37. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  38. package/SVF-doxygen/html/html/Options_8cpp_source.html +113 -114
  39. package/SVF-doxygen/html/html/Options_8h.html +0 -1
  40. package/SVF-doxygen/html/html/Options_8h_source.html +115 -117
  41. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +2 -2
  42. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +4 -5
  43. package/SVF-doxygen/html/html/PathCondAllocator_8h.html +1 -1
  44. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +24 -24
  45. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp.html +1 -1
  46. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +5 -5
  47. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +12 -12
  48. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
  49. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +2 -2
  50. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +2 -2
  51. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
  52. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +4 -4
  53. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +1 -1
  54. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +3 -3
  55. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  56. package/SVF-doxygen/html/html/SVFUtil_8cpp.html +1 -1
  57. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +3 -3
  58. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  59. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +4 -4
  60. package/SVF-doxygen/html/html/SrcSnkDDA_8h.html +3 -3
  61. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +6 -6
  62. package/SVF-doxygen/html/html/SrcSnkSolver_8h.html +96 -0
  63. package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +113 -0
  64. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +3 -3
  65. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +3 -3
  66. package/SVF-doxygen/html/html/TCT_8cpp_source.html +1 -1
  67. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  68. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp.html +3 -3
  69. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +3 -3
  70. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h.html +2 -2
  71. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +2 -2
  72. package/SVF-doxygen/html/html/VFG_8cpp_source.html +1 -1
  73. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
  74. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
  75. package/SVF-doxygen/html/html/Z3Expr_8h.html +99 -0
  76. package/SVF-doxygen/html/html/Z3Expr_8h_source.html +126 -0
  77. package/SVF-doxygen/html/html/annotated.html +272 -275
  78. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  79. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +5 -5
  80. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +6 -6
  81. package/SVF-doxygen/html/html/classSVF_1_1BDDExprManager-members.html +117 -0
  82. package/SVF-doxygen/html/html/classSVF_1_1BDDExprManager.html +1318 -0
  83. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +5 -5
  84. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  85. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  86. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +1 -1
  87. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  88. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  89. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +0 -9
  90. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
  91. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  92. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +1 -1
  93. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +9 -9
  94. package/SVF-doxygen/html/html/classSVF_1_1DPItem.html +3 -4
  95. package/SVF-doxygen/html/html/classSVF_1_1DPItem.png +0 -0
  96. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +76 -76
  97. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +64 -64
  98. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.png +0 -0
  99. package/SVF-doxygen/html/html/classSVF_1_1ExeState-members.html +111 -0
  100. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +1173 -0
  101. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  102. package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +78 -78
  103. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +64 -64
  104. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.png +0 -0
  105. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +1 -1
  106. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +9 -9
  107. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +7 -7
  108. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  109. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  110. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  111. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  112. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
  113. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +2 -2
  114. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +74 -74
  115. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +68 -68
  116. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.png +0 -0
  117. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  118. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +1 -1
  119. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
  120. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +1 -1
  121. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +1 -1
  122. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
  123. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +3 -3
  124. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +6 -6
  125. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +1 -1
  126. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +2 -2
  127. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +1 -1
  128. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +6 -6
  129. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  130. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
  131. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +102 -103
  132. package/SVF-doxygen/html/html/classSVF_1_1Options.html +115 -141
  133. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +3 -3
  134. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator-members.html +3 -3
  135. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +131 -132
  136. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  137. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +13 -13
  138. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +1 -1
  139. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +2 -2
  140. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  141. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +5 -5
  142. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +5 -5
  143. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +4 -4
  144. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +5 -5
  145. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  146. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +66 -66
  147. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +86 -86
  148. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.png +0 -0
  149. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver-members.html +106 -0
  150. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver.html +937 -0
  151. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver.png +0 -0
  152. package/SVF-doxygen/html/html/classSVF_1_1StmtDPItem.html +2 -3
  153. package/SVF-doxygen/html/html/classSVF_1_1StmtDPItem.png +0 -0
  154. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +3 -3
  156. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +5 -5
  157. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +2 -2
  158. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  159. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  160. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
  161. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +2 -2
  162. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  163. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +1 -1
  164. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  165. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +3 -3
  166. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +11 -11
  167. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr-members.html +46 -15
  168. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +1451 -104
  169. package/SVF-doxygen/html/html/classes.html +96 -96
  170. package/SVF-doxygen/html/html/dir_66541c162fd98954e2c32089ba9a721f.html +2 -0
  171. package/SVF-doxygen/html/html/dir_770a542efe75a1b68c109cb4e4290224.html +2 -0
  172. package/SVF-doxygen/html/html/dir_862d3276083eaac55caed79b9120bf29.html +4 -4
  173. package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +6 -10
  174. package/SVF-doxygen/html/html/dir_ea25a8a5b2904424d8a51916f8b475b2.html +2 -0
  175. package/SVF-doxygen/html/html/dir_fdb79cd259bf25322a80ea604c9317b5.html +2 -0
  176. package/SVF-doxygen/html/html/files.html +42 -40
  177. package/SVF-doxygen/html/html/functions.html +2 -2
  178. package/SVF-doxygen/html/html/functions_0x7e.html +9 -21
  179. package/SVF-doxygen/html/html/functions_a.html +8 -16
  180. package/SVF-doxygen/html/html/functions_b.html +21 -34
  181. package/SVF-doxygen/html/html/functions_c.html +33 -63
  182. package/SVF-doxygen/html/html/functions_d.html +3 -6
  183. package/SVF-doxygen/html/html/functions_e.html +11 -13
  184. package/SVF-doxygen/html/html/functions_enum.html +0 -6
  185. package/SVF-doxygen/html/html/functions_eval_b.html +0 -6
  186. package/SVF-doxygen/html/html/functions_f.html +6 -6
  187. package/SVF-doxygen/html/html/functions_func.html +8 -19
  188. package/SVF-doxygen/html/html/functions_func_0x7e.html +9 -21
  189. package/SVF-doxygen/html/html/functions_func_b.html +12 -15
  190. package/SVF-doxygen/html/html/functions_func_c.html +23 -38
  191. package/SVF-doxygen/html/html/functions_func_d.html +4 -7
  192. package/SVF-doxygen/html/html/functions_func_e.html +5 -4
  193. package/SVF-doxygen/html/html/functions_func_f.html +5 -5
  194. package/SVF-doxygen/html/html/functions_func_g.html +48 -49
  195. package/SVF-doxygen/html/html/functions_func_h.html +2 -7
  196. package/SVF-doxygen/html/html/functions_func_i.html +33 -21
  197. package/SVF-doxygen/html/html/functions_func_l.html +6 -3
  198. package/SVF-doxygen/html/html/functions_func_m.html +0 -1
  199. package/SVF-doxygen/html/html/functions_func_n.html +5 -4
  200. package/SVF-doxygen/html/html/functions_func_o.html +11 -13
  201. package/SVF-doxygen/html/html/functions_func_p.html +7 -17
  202. package/SVF-doxygen/html/html/functions_func_r.html +8 -5
  203. package/SVF-doxygen/html/html/functions_func_s.html +16 -13
  204. package/SVF-doxygen/html/html/functions_func_t.html +3 -1
  205. package/SVF-doxygen/html/html/functions_func_v.html +1 -7
  206. package/SVF-doxygen/html/html/functions_func_z.html +3 -3
  207. package/SVF-doxygen/html/html/functions_g.html +51 -52
  208. package/SVF-doxygen/html/html/functions_h.html +3 -8
  209. package/SVF-doxygen/html/html/functions_i.html +44 -32
  210. package/SVF-doxygen/html/html/functions_l.html +18 -7
  211. package/SVF-doxygen/html/html/functions_m.html +2 -3
  212. package/SVF-doxygen/html/html/functions_n.html +10 -12
  213. package/SVF-doxygen/html/html/functions_o.html +64 -24
  214. package/SVF-doxygen/html/html/functions_p.html +24 -34
  215. package/SVF-doxygen/html/html/functions_r.html +8 -7
  216. package/SVF-doxygen/html/html/functions_rela.html +78 -4
  217. package/SVF-doxygen/html/html/functions_s.html +31 -26
  218. package/SVF-doxygen/html/html/functions_t.html +9 -9
  219. package/SVF-doxygen/html/html/functions_type_b.html +2 -6
  220. package/SVF-doxygen/html/html/functions_type_c.html +4 -4
  221. package/SVF-doxygen/html/html/functions_type_e.html +0 -3
  222. package/SVF-doxygen/html/html/functions_type_g.html +5 -5
  223. package/SVF-doxygen/html/html/functions_type_i.html +4 -7
  224. package/SVF-doxygen/html/html/functions_type_l.html +3 -0
  225. package/SVF-doxygen/html/html/functions_type_n.html +2 -2
  226. package/SVF-doxygen/html/html/functions_type_p.html +0 -4
  227. package/SVF-doxygen/html/html/functions_type_v.html +3 -0
  228. package/SVF-doxygen/html/html/functions_type_w.html +2 -2
  229. package/SVF-doxygen/html/html/functions_v.html +10 -13
  230. package/SVF-doxygen/html/html/functions_vars.html +2 -2
  231. package/SVF-doxygen/html/html/functions_vars_b.html +2 -5
  232. package/SVF-doxygen/html/html/functions_vars_c.html +3 -10
  233. package/SVF-doxygen/html/html/functions_vars_e.html +1 -4
  234. package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
  235. package/SVF-doxygen/html/html/functions_vars_i.html +1 -4
  236. package/SVF-doxygen/html/html/functions_vars_l.html +3 -0
  237. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  238. package/SVF-doxygen/html/html/functions_vars_n.html +0 -3
  239. package/SVF-doxygen/html/html/functions_vars_p.html +3 -3
  240. package/SVF-doxygen/html/html/functions_vars_s.html +0 -3
  241. package/SVF-doxygen/html/html/functions_vars_t.html +2 -2
  242. package/SVF-doxygen/html/html/functions_vars_v.html +3 -3
  243. package/SVF-doxygen/html/html/functions_vars_w.html +1 -1
  244. package/SVF-doxygen/html/html/functions_w.html +12 -8
  245. package/SVF-doxygen/html/html/functions_z.html +3 -13
  246. package/SVF-doxygen/html/html/globals.html +3 -0
  247. package/SVF-doxygen/html/html/globals_defs.html +3 -0
  248. package/SVF-doxygen/html/html/globals_defs_f.html +3 -0
  249. package/SVF-doxygen/html/html/globals_f.html +5 -2
  250. package/SVF-doxygen/html/html/globals_s.html +6 -6
  251. package/SVF-doxygen/html/html/hierarchy.html +422 -425
  252. package/SVF-doxygen/html/html/menudata.js +4 -4
  253. package/SVF-doxygen/html/html/namespaceSVF.html +10 -57
  254. package/SVF-doxygen/html/html/namespacemembers_c.html +1 -1
  255. package/SVF-doxygen/html/html/namespacemembers_type.html +1 -7
  256. package/SVF-doxygen/html/html/namespacemembers_v.html +0 -6
  257. package/SVF-doxygen/html/html/search/all_0.js +1 -1
  258. package/SVF-doxygen/html/html/search/all_1.js +3 -4
  259. package/SVF-doxygen/html/html/search/all_10.js +12 -17
  260. package/SVF-doxygen/html/html/search/all_12.js +3 -2
  261. package/SVF-doxygen/html/html/search/all_13.js +18 -17
  262. package/SVF-doxygen/html/html/search/all_14.js +7 -6
  263. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  264. package/SVF-doxygen/html/html/search/all_16.js +3 -6
  265. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  266. package/SVF-doxygen/html/html/search/all_1a.js +3 -5
  267. package/SVF-doxygen/html/html/search/all_1b.js +4 -8
  268. package/SVF-doxygen/html/html/search/all_2.js +13 -14
  269. package/SVF-doxygen/html/html/search/all_3.js +14 -24
  270. package/SVF-doxygen/html/html/search/all_4.js +3 -3
  271. package/SVF-doxygen/html/html/search/all_5.js +7 -4
  272. package/SVF-doxygen/html/html/search/all_6.js +5 -4
  273. package/SVF-doxygen/html/html/search/all_7.js +28 -25
  274. package/SVF-doxygen/html/html/search/all_8.js +4 -3
  275. package/SVF-doxygen/html/html/search/all_9.js +18 -12
  276. package/SVF-doxygen/html/html/search/all_c.js +4 -2
  277. package/SVF-doxygen/html/html/search/all_d.js +2 -2
  278. package/SVF-doxygen/html/html/search/all_e.js +5 -5
  279. package/SVF-doxygen/html/html/search/all_f.js +25 -16
  280. package/SVF-doxygen/html/html/search/classes_1.js +1 -2
  281. package/SVF-doxygen/html/html/search/classes_12.js +1 -2
  282. package/SVF-doxygen/html/html/search/classes_14.js +1 -2
  283. package/SVF-doxygen/html/html/search/classes_2.js +0 -3
  284. package/SVF-doxygen/html/html/search/classes_4.js +1 -0
  285. package/SVF-doxygen/html/html/search/classes_7.js +3 -1
  286. package/SVF-doxygen/html/html/search/classes_d.js +0 -1
  287. package/SVF-doxygen/html/html/search/classes_f.js +1 -0
  288. package/SVF-doxygen/html/html/search/defines_0.js +1 -0
  289. package/SVF-doxygen/html/html/search/defines_5.js +1 -0
  290. package/SVF-doxygen/html/html/search/enums_1.js +0 -2
  291. package/SVF-doxygen/html/html/search/enumvalues_1.js +0 -2
  292. package/SVF-doxygen/html/html/search/files_1.js +2 -0
  293. package/SVF-doxygen/html/html/search/files_12.html +26 -0
  294. package/SVF-doxygen/html/html/search/files_12.js +4 -0
  295. package/SVF-doxygen/html/html/search/files_2.js +0 -3
  296. package/SVF-doxygen/html/html/search/files_4.js +2 -0
  297. package/SVF-doxygen/html/html/search/files_c.js +0 -1
  298. package/SVF-doxygen/html/html/search/files_d.js +1 -0
  299. package/SVF-doxygen/html/html/search/functions_0.js +1 -4
  300. package/SVF-doxygen/html/html/search/functions_1.js +8 -9
  301. package/SVF-doxygen/html/html/search/functions_10.js +7 -6
  302. package/SVF-doxygen/html/html/search/functions_11.js +2 -1
  303. package/SVF-doxygen/html/html/search/functions_13.js +0 -2
  304. package/SVF-doxygen/html/html/search/functions_15.js +2 -2
  305. package/SVF-doxygen/html/html/search/functions_16.js +4 -8
  306. package/SVF-doxygen/html/html/search/functions_2.js +5 -8
  307. package/SVF-doxygen/html/html/search/functions_3.js +3 -3
  308. package/SVF-doxygen/html/html/search/functions_4.js +2 -1
  309. package/SVF-doxygen/html/html/search/functions_5.js +3 -3
  310. package/SVF-doxygen/html/html/search/functions_6.js +25 -22
  311. package/SVF-doxygen/html/html/search/functions_7.js +2 -3
  312. package/SVF-doxygen/html/html/search/functions_8.js +12 -6
  313. package/SVF-doxygen/html/html/search/functions_a.js +1 -0
  314. package/SVF-doxygen/html/html/search/functions_b.js +1 -1
  315. package/SVF-doxygen/html/html/search/functions_c.js +2 -1
  316. package/SVF-doxygen/html/html/search/functions_d.js +7 -7
  317. package/SVF-doxygen/html/html/search/functions_e.js +5 -8
  318. package/SVF-doxygen/html/html/search/functions_f.js +2 -1
  319. package/SVF-doxygen/html/html/search/related_0.js +1 -2
  320. package/SVF-doxygen/html/html/search/related_1.js +1 -2
  321. package/SVF-doxygen/html/html/search/related_2.js +1 -1
  322. package/SVF-doxygen/html/html/search/related_3.js +2 -1
  323. package/SVF-doxygen/html/html/search/related_4.js +2 -2
  324. package/SVF-doxygen/html/html/search/related_5.js +1 -2
  325. package/SVF-doxygen/html/html/search/related_6.js +4 -1
  326. package/SVF-doxygen/html/html/search/related_7.js +2 -4
  327. package/SVF-doxygen/html/html/search/related_8.js +18 -1
  328. package/SVF-doxygen/html/html/search/related_9.js +4 -6
  329. package/SVF-doxygen/html/html/search/related_a.js +1 -2
  330. package/SVF-doxygen/html/html/search/related_b.js +7 -2
  331. package/SVF-doxygen/html/html/search/related_c.html +26 -0
  332. package/SVF-doxygen/html/html/search/related_c.js +5 -0
  333. package/SVF-doxygen/html/html/search/related_d.html +26 -0
  334. package/SVF-doxygen/html/html/search/related_d.js +5 -0
  335. package/SVF-doxygen/html/html/search/searchdata.js +4 -4
  336. package/SVF-doxygen/html/html/search/typedefs_1.js +1 -2
  337. package/SVF-doxygen/html/html/search/typedefs_14.js +1 -2
  338. package/SVF-doxygen/html/html/search/typedefs_15.js +1 -1
  339. package/SVF-doxygen/html/html/search/typedefs_2.js +4 -4
  340. package/SVF-doxygen/html/html/search/typedefs_4.js +1 -1
  341. package/SVF-doxygen/html/html/search/typedefs_6.js +3 -3
  342. package/SVF-doxygen/html/html/search/typedefs_8.js +3 -4
  343. package/SVF-doxygen/html/html/search/typedefs_b.js +1 -0
  344. package/SVF-doxygen/html/html/search/typedefs_d.js +1 -1
  345. package/SVF-doxygen/html/html/search/typedefs_f.js +0 -1
  346. package/SVF-doxygen/html/html/search/variables_0.js +1 -1
  347. package/SVF-doxygen/html/html/search/variables_10.js +1 -1
  348. package/SVF-doxygen/html/html/search/variables_13.js +0 -1
  349. package/SVF-doxygen/html/html/search/variables_14.js +3 -3
  350. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  351. package/SVF-doxygen/html/html/search/variables_16.js +1 -1
  352. package/SVF-doxygen/html/html/search/variables_17.js +1 -1
  353. package/SVF-doxygen/html/html/search/variables_2.js +1 -2
  354. package/SVF-doxygen/html/html/search/variables_3.js +4 -6
  355. package/SVF-doxygen/html/html/search/variables_5.js +1 -2
  356. package/SVF-doxygen/html/html/search/variables_6.js +1 -1
  357. package/SVF-doxygen/html/html/search/variables_9.js +1 -2
  358. package/SVF-doxygen/html/html/search/variables_c.js +1 -0
  359. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  360. package/SVF-doxygen/html/html/search/variables_e.js +1 -2
  361. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4-members.html +81 -0
  362. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html +131 -0
  363. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4-members.html +81 -0
  364. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1Z3Expr_01_4.html +131 -0
  365. package/include/SABER/PathCondAllocator.h +4 -4
  366. package/include/SABER/SrcSnkDDA.h +2 -2
  367. package/include/{Util/CFLSolver.h → SABER/SrcSnkSolver.h} +5 -5
  368. package/include/{Util → SVF-FE}/IRAnnotator.h +0 -0
  369. package/include/Util/BDDExpr.h +182 -0
  370. package/include/Util/DPItem.h +1 -1
  371. package/include/Util/ExeState.h +172 -0
  372. package/include/Util/Options.h +0 -3
  373. package/include/Util/Z3Expr.h +235 -0
  374. package/include/WPA/FlowSensitiveTBHC.h +1 -1
  375. package/include/{Util → WPA}/TypeBasedHeapCloning.h +0 -0
  376. package/lib/MemoryModel/PointerAnalysisImpl.cpp +1 -1
  377. package/lib/SABER/PathCondAllocator.cpp +1 -1
  378. package/lib/Util/BDDExpr.cpp +206 -0
  379. package/lib/Util/ExeState.cpp +248 -0
  380. package/lib/Util/Options.cpp +0 -11
  381. package/lib/Util/SVFUtil.cpp +1 -1
  382. package/lib/WPA/FlowSensitive.cpp +1 -1
  383. package/lib/{Util → WPA}/TypeBasedHeapCloning.cpp +1 -1
  384. package/package.json +1 -1
  385. package/include/Util/Conditions.h +0 -421
  386. package/include/Util/PathDPItem.h +0 -310
  387. package/lib/Util/Conditions.cpp +0 -440
@@ -78,9 +78,9 @@ $(function() {
78
78
  <table class="memberdecls">
79
79
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
80
80
  Public Types</h2></td></tr>
81
- <tr class="memitem:aade2bc55c3882a6cacc3c4a891a1c4a3"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a></td></tr>
82
- <tr class="separator:aade2bc55c3882a6cacc3c4a891a1c4a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
83
- <tr class="memitem:a0d685cfd0f0652a0ff839969f763371b"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a0d685cfd0f0652a0ff839969f763371b">CondPosMap</a></td></tr>
81
+ <tr class="memitem:a923cc78e9f6779a0e6172b98e8f44925"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExprManager::BDDExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a></td></tr>
82
+ <tr class="separator:a923cc78e9f6779a0e6172b98e8f44925"><td class="memSeparator" colspan="2">&#160;</td></tr>
83
+ <tr class="memitem:a0d685cfd0f0652a0ff839969f763371b"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>, <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a0d685cfd0f0652a0ff839969f763371b">CondPosMap</a></td></tr>
84
84
  <tr class="memdesc:a0d685cfd0f0652a0ff839969f763371b"><td class="mdescLeft">&#160;</td><td class="mdescRight">z3 condition <a href="#a0d685cfd0f0652a0ff839969f763371b">More...</a><br /></td></tr>
85
85
  <tr class="separator:a0d685cfd0f0652a0ff839969f763371b"><td class="memSeparator" colspan="2">&#160;</td></tr>
86
86
  <tr class="memitem:ab95a992cea9ccc23e31d4d48fce01055"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *, <a class="el" href="classSVF_1_1PathCondAllocator.html#a0d685cfd0f0652a0ff839969f763371b">CondPosMap</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#ab95a992cea9ccc23e31d4d48fce01055">BBCondMap</a></td></tr>
@@ -90,7 +90,7 @@ Public Types</h2></td></tr>
90
90
  <tr class="memitem:a0753fb35cb8fd37cfe8fd795d01e5275"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *, <a class="el" href="classSVF_1_1PathCondAllocator.html#aef4a1396ee439e0d6cd89695a81a7365">BasicBlockSet</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a0753fb35cb8fd37cfe8fd795d01e5275">FunToExitBBsMap</a></td></tr>
91
91
  <tr class="memdesc:a0753fb35cb8fd37cfe8fd795d01e5275"><td class="mdescLeft">&#160;</td><td class="mdescRight">map a function to all its basic blocks calling program exit <a href="#a0753fb35cb8fd37cfe8fd795d01e5275">More...</a><br /></td></tr>
92
92
  <tr class="separator:a0753fb35cb8fd37cfe8fd795d01e5275"><td class="memSeparator" colspan="2">&#160;</td></tr>
93
- <tr class="memitem:ae3edcb70d9f0d65089f39147a635526d"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *, <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#ae3edcb70d9f0d65089f39147a635526d">BBToCondMap</a></td></tr>
93
+ <tr class="memitem:ae3edcb70d9f0d65089f39147a635526d"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *, <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#ae3edcb70d9f0d65089f39147a635526d">BBToCondMap</a></td></tr>
94
94
  <tr class="memdesc:ae3edcb70d9f0d65089f39147a635526d"><td class="mdescLeft">&#160;</td><td class="mdescRight">map a basic block to its condition during control-flow guard computation <a href="#ae3edcb70d9f0d65089f39147a635526d">More...</a><br /></td></tr>
95
95
  <tr class="separator:ae3edcb70d9f0d65089f39147a635526d"><td class="memSeparator" colspan="2">&#160;</td></tr>
96
96
  <tr class="memitem:ac578894f959845164e1343384d60def1"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1FIFOWorkList.html">FIFOWorkList</a>&lt; const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#ac578894f959845164e1343384d60def1">CFWorkList</a></td></tr>
@@ -108,12 +108,12 @@ Public Member Functions</h2></td></tr>
108
108
  <tr class="memitem:a3fce010083b85a4421eed4c17eb54640"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a3fce010083b85a4421eed4c17eb54640">allocate</a> (const <a class="el" href="classSVF_1_1SVFModule.html">SVFModule</a> *module)</td></tr>
109
109
  <tr class="memdesc:a3fce010083b85a4421eed4c17eb54640"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform path allocation. <a href="#a3fce010083b85a4421eed4c17eb54640">More...</a><br /></td></tr>
110
110
  <tr class="separator:a3fce010083b85a4421eed4c17eb54640"><td class="memSeparator" colspan="2">&#160;</td></tr>
111
- <tr class="memitem:adf65b74b89fca76c0cf5ea5dbd6dc4ca"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#adf65b74b89fca76c0cf5ea5dbd6dc4ca">getCondInst</a> (const <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *cond) const</td></tr>
111
+ <tr class="memitem:adf65b74b89fca76c0cf5ea5dbd6dc4ca"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#adf65b74b89fca76c0cf5ea5dbd6dc4ca">getCondInst</a> (const <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *cond) const</td></tr>
112
112
  <tr class="memdesc:adf65b74b89fca76c0cf5ea5dbd6dc4ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Set llvm conditional expression. <a href="#adf65b74b89fca76c0cf5ea5dbd6dc4ca">More...</a><br /></td></tr>
113
113
  <tr class="separator:adf65b74b89fca76c0cf5ea5dbd6dc4ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
114
- <tr class="memitem:ab85a1ab3580958361ea5ec29efc75874"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#ab85a1ab3580958361ea5ec29efc75874">setCondInst</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond, const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
115
- <tr class="separator:ab85a1ab3580958361ea5ec29efc75874"><td class="memSeparator" colspan="2">&#160;</td></tr>
116
- <tr class="memitem:a7182283f15c556e9d0e9fdc6d62efeef"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a7182283f15c556e9d0e9fdc6d62efeef">isNegCond</a> (const <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *condition)</td></tr>
114
+ <tr class="memitem:a51feefd408094a69f0fbe97cba181bf9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a51feefd408094a69f0fbe97cba181bf9">setCondInst</a> (const <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *cond, const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
115
+ <tr class="separator:a51feefd408094a69f0fbe97cba181bf9"><td class="memSeparator" colspan="2">&#160;</td></tr>
116
+ <tr class="memitem:a7182283f15c556e9d0e9fdc6d62efeef"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a7182283f15c556e9d0e9fdc6d62efeef">isNegCond</a> (const <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *condition)</td></tr>
117
117
  <tr class="separator:a7182283f15c556e9d0e9fdc6d62efeef"><td class="memSeparator" colspan="2">&#160;</td></tr>
118
118
  <tr class="memitem:a496a23bc37dfdea32c536e9ebe9a4b88"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a496a23bc37dfdea32c536e9ebe9a4b88">getDT</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fun)</td></tr>
119
119
  <tr class="memdesc:a496a23bc37dfdea32c536e9ebe9a4b88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get dominators. <a href="#a496a23bc37dfdea32c536e9ebe9a4b88">More...</a><br /></td></tr>
@@ -127,13 +127,13 @@ Public Member Functions</h2></td></tr>
127
127
  <tr class="memitem:a2932b15ef74e46b676075ba1b2e82111"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a2932b15ef74e46b676075ba1b2e82111">printPathCond</a> ()</td></tr>
128
128
  <tr class="memdesc:a2932b15ef74e46b676075ba1b2e82111"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print out the path condition information. <a href="#a2932b15ef74e46b676075ba1b2e82111">More...</a><br /></td></tr>
129
129
  <tr class="separator:a2932b15ef74e46b676075ba1b2e82111"><td class="memSeparator" colspan="2">&#160;</td></tr>
130
- <tr class="memitem:aaed1bbfcac68a5e48d2850ef395e7da7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#aaed1bbfcac68a5e48d2850ef395e7da7">isSatisfiable</a> (<a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *condition)</td></tr>
130
+ <tr class="memitem:aaed1bbfcac68a5e48d2850ef395e7da7"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#aaed1bbfcac68a5e48d2850ef395e7da7">isSatisfiable</a> (<a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *condition)</td></tr>
131
131
  <tr class="memdesc:aaed1bbfcac68a5e48d2850ef395e7da7"><td class="mdescLeft">&#160;</td><td class="mdescRight">whether condition is satisfiable <a href="#aaed1bbfcac68a5e48d2850ef395e7da7">More...</a><br /></td></tr>
132
132
  <tr class="separator:aaed1bbfcac68a5e48d2850ef395e7da7"><td class="memSeparator" colspan="2">&#160;</td></tr>
133
- <tr class="memitem:a51c55809f28eee5b8432ab4508f9a887"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a51c55809f28eee5b8432ab4508f9a887">isAllPathReachable</a> (<a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *condition)</td></tr>
133
+ <tr class="memitem:a51c55809f28eee5b8432ab4508f9a887"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a51c55809f28eee5b8432ab4508f9a887">isAllPathReachable</a> (<a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *condition)</td></tr>
134
134
  <tr class="memdesc:a51c55809f28eee5b8432ab4508f9a887"><td class="mdescLeft">&#160;</td><td class="mdescRight">whether condition is satisfiable for all possible boolean guards <a href="#a51c55809f28eee5b8432ab4508f9a887">More...</a><br /></td></tr>
135
135
  <tr class="separator:a51c55809f28eee5b8432ab4508f9a887"><td class="memSeparator" colspan="2">&#160;</td></tr>
136
- <tr class="memitem:ad92e8909172d960de8a25f6ff0272261"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#ad92e8909172d960de8a25f6ff0272261">isEquivalentBranchCond</a> (const <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *lhs, const <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *rhs) const</td></tr>
136
+ <tr class="memitem:ad92e8909172d960de8a25f6ff0272261"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#ad92e8909172d960de8a25f6ff0272261">isEquivalentBranchCond</a> (const <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *lhs, const <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *rhs) const</td></tr>
137
137
  <tr class="separator:ad92e8909172d960de8a25f6ff0272261"><td class="memSeparator" colspan="2">&#160;</td></tr>
138
138
  <tr class="memitem:a80a607028f3a05d478ffbd6fcc0bbc2a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ICFG.html">ICFG</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a80a607028f3a05d478ffbd6fcc0bbc2a">getICFG</a> () const</td></tr>
139
139
  <tr class="separator:a80a607028f3a05d478ffbd6fcc0bbc2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -144,37 +144,37 @@ Public Member Functions</h2></td></tr>
144
144
  <tr class="memitem:ae8f2447d33e2c638c1375f97ff3c3b40"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#ae8f2447d33e2c638c1375f97ff3c3b40">getCondNum</a> ()</td></tr>
145
145
  <tr class="separator:ae8f2447d33e2c638c1375f97ff3c3b40"><td class="memSeparator" colspan="2">&#160;</td></tr>
146
146
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
147
- <tr class="memitem:ab0e41d1eacfc6ee2cf42a9ce69cdcb61"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a> (<a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *lhs, <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *rhs)</td></tr>
147
+ <tr class="memitem:ab0e41d1eacfc6ee2cf42a9ce69cdcb61"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a> (<a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *lhs, <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *rhs)</td></tr>
148
148
  <tr class="memdesc:ab0e41d1eacfc6ee2cf42a9ce69cdcb61"><td class="mdescLeft">&#160;</td><td class="mdescRight">Condition operations. <a href="#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">More...</a><br /></td></tr>
149
149
  <tr class="separator:ab0e41d1eacfc6ee2cf42a9ce69cdcb61"><td class="memSeparator" colspan="2">&#160;</td></tr>
150
- <tr class="memitem:a5a8c25d74ffc2a8f8dbd20faab4d9803"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a5a8c25d74ffc2a8f8dbd20faab4d9803">condOr</a> (<a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *lhs, <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *rhs)</td></tr>
150
+ <tr class="memitem:a5a8c25d74ffc2a8f8dbd20faab4d9803"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a5a8c25d74ffc2a8f8dbd20faab4d9803">condOr</a> (<a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *lhs, <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *rhs)</td></tr>
151
151
  <tr class="separator:a5a8c25d74ffc2a8f8dbd20faab4d9803"><td class="memSeparator" colspan="2">&#160;</td></tr>
152
- <tr class="memitem:ac1ed60a8f59a55811c97c83def3bb739"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#ac1ed60a8f59a55811c97c83def3bb739">condNeg</a> (<a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *cond)</td></tr>
152
+ <tr class="memitem:ac1ed60a8f59a55811c97c83def3bb739"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#ac1ed60a8f59a55811c97c83def3bb739">condNeg</a> (<a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *cond)</td></tr>
153
153
  <tr class="separator:ac1ed60a8f59a55811c97c83def3bb739"><td class="memSeparator" colspan="2">&#160;</td></tr>
154
- <tr class="memitem:a1a6bde0db54c91fba7e6bac0acff664a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a> () const</td></tr>
154
+ <tr class="memitem:a1a6bde0db54c91fba7e6bac0acff664a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a> () const</td></tr>
155
155
  <tr class="separator:a1a6bde0db54c91fba7e6bac0acff664a"><td class="memSeparator" colspan="2">&#160;</td></tr>
156
- <tr class="memitem:a0d059c9adce2c998ddf2489376beb8e2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a0d059c9adce2c998ddf2489376beb8e2">getFalseCond</a> () const</td></tr>
156
+ <tr class="memitem:a0d059c9adce2c998ddf2489376beb8e2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a0d059c9adce2c998ddf2489376beb8e2">getFalseCond</a> () const</td></tr>
157
157
  <tr class="separator:a0d059c9adce2c998ddf2489376beb8e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
158
- <tr class="memitem:a61095843f86d1c5c14750a635fb3aacb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a61095843f86d1c5c14750a635fb3aacb">exactCondElem</a> (<a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *cond)</td></tr>
158
+ <tr class="memitem:a61095843f86d1c5c14750a635fb3aacb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a61095843f86d1c5c14750a635fb3aacb">exactCondElem</a> (<a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *cond)</td></tr>
159
159
  <tr class="memdesc:a61095843f86d1c5c14750a635fb3aacb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterator every element of the condition. <a href="#a61095843f86d1c5c14750a635fb3aacb">More...</a><br /></td></tr>
160
160
  <tr class="separator:a61095843f86d1c5c14750a635fb3aacb"><td class="memSeparator" colspan="2">&#160;</td></tr>
161
- <tr class="memitem:aae773a674331bb80cc589835e0b16e4e"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#aae773a674331bb80cc589835e0b16e4e">dumpCond</a> (<a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *cond) const</td></tr>
161
+ <tr class="memitem:aae773a674331bb80cc589835e0b16e4e"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#aae773a674331bb80cc589835e0b16e4e">dumpCond</a> (<a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *cond) const</td></tr>
162
162
  <tr class="separator:aae773a674331bb80cc589835e0b16e4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
163
- <tr class="memitem:ad1fdfabb37f6bb5da6724b95404739e2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#ad1fdfabb37f6bb5da6724b95404739e2">getCond</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i) const</td></tr>
163
+ <tr class="memitem:ad1fdfabb37f6bb5da6724b95404739e2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#ad1fdfabb37f6bb5da6724b95404739e2">getCond</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i) const</td></tr>
164
164
  <tr class="memdesc:ad1fdfabb37f6bb5da6724b95404739e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given an z3 expr id, get its condition. <a href="#ad1fdfabb37f6bb5da6724b95404739e2">More...</a><br /></td></tr>
165
165
  <tr class="separator:ad1fdfabb37f6bb5da6724b95404739e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
166
- <tr class="memitem:a3cd08242b82129e6074b2f30a19b5c17"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a3cd08242b82129e6074b2f30a19b5c17">newCond</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
166
+ <tr class="memitem:a3cd08242b82129e6074b2f30a19b5c17"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a3cd08242b82129e6074b2f30a19b5c17">newCond</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
167
167
  <tr class="memdesc:a3cd08242b82129e6074b2f30a19b5c17"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a new condition. <a href="#a3cd08242b82129e6074b2f30a19b5c17">More...</a><br /></td></tr>
168
168
  <tr class="separator:a3cd08242b82129e6074b2f30a19b5c17"><td class="memSeparator" colspan="2">&#160;</td></tr>
169
169
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
170
- <tr class="memitem:a5ab573cce84584c44778611ba6f4d99c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">ComputeIntraVFGGuard</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *src, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *dst)</td></tr>
170
+ <tr class="memitem:a5ab573cce84584c44778611ba6f4d99c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">ComputeIntraVFGGuard</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *src, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *dst)</td></tr>
171
171
  <tr class="memdesc:a5ab573cce84584c44778611ba6f4d99c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Guard Computation for a value-flow (between two basic blocks) <a href="#a5ab573cce84584c44778611ba6f4d99c">More...</a><br /></td></tr>
172
172
  <tr class="separator:a5ab573cce84584c44778611ba6f4d99c"><td class="memSeparator" colspan="2">&#160;</td></tr>
173
- <tr class="memitem:a9c3361e3f37d640b177c3955f3c3667f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a9c3361e3f37d640b177c3955f3c3667f">ComputeInterCallVFGGuard</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *src, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *dst, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *callBB)</td></tr>
173
+ <tr class="memitem:a9c3361e3f37d640b177c3955f3c3667f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a9c3361e3f37d640b177c3955f3c3667f">ComputeInterCallVFGGuard</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *src, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *dst, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *callBB)</td></tr>
174
174
  <tr class="separator:a9c3361e3f37d640b177c3955f3c3667f"><td class="memSeparator" colspan="2">&#160;</td></tr>
175
- <tr class="memitem:a5015e36d00ac59ef2b832019b8f922f5"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a5015e36d00ac59ef2b832019b8f922f5">ComputeInterRetVFGGuard</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *src, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *dst, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *retBB)</td></tr>
175
+ <tr class="memitem:a5015e36d00ac59ef2b832019b8f922f5"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a5015e36d00ac59ef2b832019b8f922f5">ComputeInterRetVFGGuard</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *src, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *dst, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *retBB)</td></tr>
176
176
  <tr class="separator:a5015e36d00ac59ef2b832019b8f922f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
177
- <tr class="memitem:abef2785eb426d5e1d6f273300c691db6"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#abef2785eb426d5e1d6f273300c691db6">getPHIComplementCond</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *BB1, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *BB2, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *BB0)</td></tr>
177
+ <tr class="memitem:abef2785eb426d5e1d6f273300c691db6"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#abef2785eb426d5e1d6f273300c691db6">getPHIComplementCond</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *BB1, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *BB2, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *BB0)</td></tr>
178
178
  <tr class="separator:abef2785eb426d5e1d6f273300c691db6"><td class="memSeparator" colspan="2">&#160;</td></tr>
179
179
  <tr class="memitem:a3462dbe3d0f8df08e3b6a6c6ef0b065c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a3462dbe3d0f8df08e3b6a6c6ef0b065c">clearCFCond</a> ()</td></tr>
180
180
  <tr class="separator:a3462dbe3d0f8df08e3b6a6c6ef0b065c"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -187,9 +187,9 @@ Public Member Functions</h2></td></tr>
187
187
  </table><table class="memberdecls">
188
188
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
189
189
  Protected Attributes</h2></td></tr>
190
- <tr class="memitem:aacf96d4b7154f6c2dc12ab9e19702fcd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondManager.html">CondManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a></td></tr>
191
- <tr class="memdesc:aacf96d4b7154f6c2dc12ab9e19702fcd"><td class="mdescLeft">&#160;</td><td class="mdescRight">z3 manager <a href="#aacf96d4b7154f6c2dc12ab9e19702fcd">More...</a><br /></td></tr>
192
- <tr class="separator:aacf96d4b7154f6c2dc12ab9e19702fcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
190
+ <tr class="memitem:a3f331564529091540cf587e575b0bc3a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BDDExprManager.html">BDDExprManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a></td></tr>
191
+ <tr class="memdesc:a3f331564529091540cf587e575b0bc3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">z3 manager <a href="#a3f331564529091540cf587e575b0bc3a">More...</a><br /></td></tr>
192
+ <tr class="separator:a3f331564529091540cf587e575b0bc3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
193
193
  <tr class="memitem:aff611b2797d61155c8c2f9d8ac4030bc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#ab95a992cea9ccc23e31d4d48fce01055">BBCondMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#aff611b2797d61155c8c2f9d8ac4030bc">bbConds</a></td></tr>
194
194
  <tr class="memdesc:aff611b2797d61155c8c2f9d8ac4030bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">map basic block to its successors/predecessors branch conditions <a href="#aff611b2797d61155c8c2f9d8ac4030bc">More...</a><br /></td></tr>
195
195
  <tr class="separator:aff611b2797d61155c8c2f9d8ac4030bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -203,26 +203,26 @@ Private Member Functions</h2></td></tr>
203
203
  <tr class="memdesc:ab89aa330234e363fa04892352da60561"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release memory. <a href="#ab89aa330234e363fa04892352da60561">More...</a><br /></td></tr>
204
204
  <tr class="separator:ab89aa330234e363fa04892352da60561"><td class="memSeparator" colspan="2">&#160;</td></tr>
205
205
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
206
- <tr class="memitem:aaec323fc8a3f83da4596ed7d447ab6f1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#aaec323fc8a3f83da4596ed7d447ab6f1">setBranchCond</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ, <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *cond)</td></tr>
206
+ <tr class="memitem:aaec323fc8a3f83da4596ed7d447ab6f1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#aaec323fc8a3f83da4596ed7d447ab6f1">setBranchCond</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ, <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *cond)</td></tr>
207
207
  <tr class="memdesc:aaec323fc8a3f83da4596ed7d447ab6f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Set a branch condition, and its terminator instruction. <a href="#aaec323fc8a3f83da4596ed7d447ab6f1">More...</a><br /></td></tr>
208
208
  <tr class="separator:aaec323fc8a3f83da4596ed7d447ab6f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
209
- <tr class="memitem:a4d00c3306b92e59568b54a6a72afdb74"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a4d00c3306b92e59568b54a6a72afdb74">getBranchCond</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ) const</td></tr>
209
+ <tr class="memitem:a4d00c3306b92e59568b54a6a72afdb74"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a4d00c3306b92e59568b54a6a72afdb74">getBranchCond</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ) const</td></tr>
210
210
  <tr class="memdesc:a4d00c3306b92e59568b54a6a72afdb74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get branch condition. <a href="#a4d00c3306b92e59568b54a6a72afdb74">More...</a><br /></td></tr>
211
211
  <tr class="separator:a4d00c3306b92e59568b54a6a72afdb74"><td class="memSeparator" colspan="2">&#160;</td></tr>
212
- <tr class="memitem:a6d2c5b05f4966522c9310fd3c086adea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a6d2c5b05f4966522c9310fd3c086adea">getEvalBrCond</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ)</td></tr>
212
+ <tr class="memitem:a6d2c5b05f4966522c9310fd3c086adea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a6d2c5b05f4966522c9310fd3c086adea">getEvalBrCond</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ)</td></tr>
213
213
  <tr class="memdesc:a6d2c5b05f4966522c9310fd3c086adea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a condition, evaluate the value for conditions if necessary (e.g., testNull like express) <a href="#a6d2c5b05f4966522c9310fd3c086adea">More...</a><br /></td></tr>
214
214
  <tr class="separator:a6d2c5b05f4966522c9310fd3c086adea"><td class="memSeparator" colspan="2">&#160;</td></tr>
215
215
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
216
- <tr class="memitem:a283788ca2886b03803829434150d11fe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a283788ca2886b03803829434150d11fe">evaluateBranchCond</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ)</td></tr>
216
+ <tr class="memitem:a283788ca2886b03803829434150d11fe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a283788ca2886b03803829434150d11fe">evaluateBranchCond</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ)</td></tr>
217
217
  <tr class="memdesc:a283788ca2886b03803829434150d11fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate branch conditions. <a href="#a283788ca2886b03803829434150d11fe">More...</a><br /></td></tr>
218
218
  <tr class="separator:a283788ca2886b03803829434150d11fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
219
- <tr class="memitem:a623e6ec670e5f6aeedee26b146ad5a0d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a623e6ec670e5f6aeedee26b146ad5a0d">evaluateLoopExitBranch</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ)</td></tr>
219
+ <tr class="memitem:a623e6ec670e5f6aeedee26b146ad5a0d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a623e6ec670e5f6aeedee26b146ad5a0d">evaluateLoopExitBranch</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ)</td></tr>
220
220
  <tr class="memdesc:a623e6ec670e5f6aeedee26b146ad5a0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluate loop exit branch. <a href="#a623e6ec670e5f6aeedee26b146ad5a0d">More...</a><br /></td></tr>
221
221
  <tr class="separator:a623e6ec670e5f6aeedee26b146ad5a0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
222
- <tr class="memitem:af595a4b93bd350f489bfe8635d86cfcc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#af595a4b93bd350f489bfe8635d86cfcc">evaluateTestNullLikeExpr</a> (const <a class="el" href="classSVF_1_1BranchStmt.html">BranchStmt</a> *branchStmt, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ)</td></tr>
222
+ <tr class="memitem:af595a4b93bd350f489bfe8635d86cfcc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#af595a4b93bd350f489bfe8635d86cfcc">evaluateTestNullLikeExpr</a> (const <a class="el" href="classSVF_1_1BranchStmt.html">BranchStmt</a> *branchStmt, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ)</td></tr>
223
223
  <tr class="memdesc:af595a4b93bd350f489bfe8635d86cfcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return branch condition after evaluating test null like expression. <a href="#af595a4b93bd350f489bfe8635d86cfcc">More...</a><br /></td></tr>
224
224
  <tr class="separator:af595a4b93bd350f489bfe8635d86cfcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
225
- <tr class="memitem:a79d6bbd55a134c856f3e80a898af23ee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a79d6bbd55a134c856f3e80a898af23ee">evaluateProgExit</a> (const <a class="el" href="classSVF_1_1BranchStmt.html">BranchStmt</a> *branchStmt, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ)</td></tr>
225
+ <tr class="memitem:a79d6bbd55a134c856f3e80a898af23ee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a79d6bbd55a134c856f3e80a898af23ee">evaluateProgExit</a> (const <a class="el" href="classSVF_1_1BranchStmt.html">BranchStmt</a> *branchStmt, const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ)</td></tr>
226
226
  <tr class="memdesc:a79d6bbd55a134c856f3e80a898af23ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return condition when there is a branch calls program exit. <a href="#a79d6bbd55a134c856f3e80a898af23ee">More...</a><br /></td></tr>
227
227
  <tr class="separator:a79d6bbd55a134c856f3e80a898af23ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
228
228
  <tr class="memitem:a391cb347cf98f33c261e59975900048e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a391cb347cf98f33c261e59975900048e">collectBBCallingProgExit</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> &amp;bb)</td></tr>
@@ -247,10 +247,10 @@ Private Member Functions</h2></td></tr>
247
247
  <tr class="memdesc:ae9c9621d6ff6d527ca81dc5f960387b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return true if two values on the predicate are what we want. <a href="#ae9c9621d6ff6d527ca81dc5f960387b7">More...</a><br /></td></tr>
248
248
  <tr class="separator:ae9c9621d6ff6d527ca81dc5f960387b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
249
249
  <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
250
- <tr class="memitem:a4cb61914dff693e284091e97ab8c8878"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">setCFCond</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb, <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *cond)</td></tr>
250
+ <tr class="memitem:a4cb61914dff693e284091e97ab8c8878"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">setCFCond</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb, <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *cond)</td></tr>
251
251
  <tr class="memdesc:a4cb61914dff693e284091e97ab8c8878"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Set control-flow conditions. <a href="#a4cb61914dff693e284091e97ab8c8878">More...</a><br /></td></tr>
252
252
  <tr class="separator:a4cb61914dff693e284091e97ab8c8878"><td class="memSeparator" colspan="2">&#160;</td></tr>
253
- <tr class="memitem:a8c926057571ca14743e106a5a6ce7ae9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb) const</td></tr>
253
+ <tr class="memitem:a8c926057571ca14743e106a5a6ce7ae9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a> (const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *bb) const</td></tr>
254
254
  <tr class="separator:a8c926057571ca14743e106a5a6ce7ae9"><td class="memSeparator" colspan="2">&#160;</td></tr>
255
255
  </table><table class="memberdecls">
256
256
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
@@ -312,7 +312,7 @@ Private Attributes</h2></td></tr>
312
312
  <div class="memproto">
313
313
  <table class="memname">
314
314
  <tr>
315
- <td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt;const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>*, <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>*&gt; <a class="el" href="classSVF_1_1PathCondAllocator.html#ae3edcb70d9f0d65089f39147a635526d">SVF::PathCondAllocator::BBToCondMap</a></td>
315
+ <td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt;const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>*, <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>*&gt; <a class="el" href="classSVF_1_1PathCondAllocator.html#ae3edcb70d9f0d65089f39147a635526d">SVF::PathCondAllocator::BBToCondMap</a></td>
316
316
  </tr>
317
317
  </table>
318
318
  </div><div class="memdoc">
@@ -341,14 +341,14 @@ Private Attributes</h2></td></tr>
341
341
 
342
342
  </div>
343
343
  </div>
344
- <a id="aade2bc55c3882a6cacc3c4a891a1c4a3"></a>
345
- <h2 class="memtitle"><span class="permalink"><a href="#aade2bc55c3882a6cacc3c4a891a1c4a3">&#9670;&nbsp;</a></span>Condition</h2>
344
+ <a id="a923cc78e9f6779a0e6172b98e8f44925"></a>
345
+ <h2 class="memtitle"><span class="permalink"><a href="#a923cc78e9f6779a0e6172b98e8f44925">&#9670;&nbsp;</a></span>Condition</h2>
346
346
 
347
347
  <div class="memitem">
348
348
  <div class="memproto">
349
349
  <table class="memname">
350
350
  <tr>
351
- <td class="memname">typedef <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">SVF::PathCondAllocator::Condition</a></td>
351
+ <td class="memname">typedef <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExprManager::BDDExpr</a> <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">SVF::PathCondAllocator::Condition</a></td>
352
352
  </tr>
353
353
  </table>
354
354
  </div><div class="memdoc">
@@ -364,7 +364,7 @@ Private Attributes</h2></td></tr>
364
364
  <div class="memproto">
365
365
  <table class="memname">
366
366
  <tr>
367
- <td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt;<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>,<a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>*&gt; <a class="el" href="classSVF_1_1PathCondAllocator.html#a0d685cfd0f0652a0ff839969f763371b">SVF::PathCondAllocator::CondPosMap</a></td>
367
+ <td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt;<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>,<a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>*&gt; <a class="el" href="classSVF_1_1PathCondAllocator.html#a0d685cfd0f0652a0ff839969f763371b">SVF::PathCondAllocator::CondPosMap</a></td>
368
368
  </tr>
369
369
  </table>
370
370
  </div><div class="memdoc">
@@ -413,9 +413,8 @@ Private Attributes</h2></td></tr>
413
413
  <p>Constructor. </p>
414
414
 
415
415
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00048">48</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
416
- <div class="fragment"><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; : <a class="code" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a>(<a class="code" href="classSVF_1_1CondManager.html#a08cad78a4ebb31f32b72d5ff9793b83e">CondManager::getCondMgr</a>(<a class="code" href="classSVF_1_1Options.html#a87567aa3e6423fc96e0dfbaff00ed565">Options::ConditionType</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="ttc" id="classSVF_1_1Options_html_a87567aa3e6423fc96e0dfbaff00ed565"><div class="ttname"><a href="classSVF_1_1Options.html#a87567aa3e6423fc96e0dfbaff00ed565">SVF::Options::ConditionType</a></div><div class="ttdeci">static const llvm::cl::opt&lt; CondManager::CondMgrKind &gt; ConditionType</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00259">Options.h:259</a></div></div>
417
- <div class="ttc" id="classSVF_1_1CondManager_html_a08cad78a4ebb31f32b72d5ff9793b83e"><div class="ttname"><a href="classSVF_1_1CondManager.html#a08cad78a4ebb31f32b72d5ff9793b83e">SVF::CondManager::getCondMgr</a></div><div class="ttdeci">static CondManager * getCondMgr(CondMgrKind _condMgrKind)</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="Conditions_8cpp_source.html#l00043">Conditions.cpp:43</a></div></div>
418
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aacf96d4b7154f6c2dc12ab9e19702fcd"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">CondManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
416
+ <div class="fragment"><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; : <a class="code" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a>(<a class="code" href="classSVF_1_1BDDExprManager.html#ae7be20333ab86fb5297b33923562c7a5">BDDExprManager::getBDDExprMgr</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="ttc" id="classSVF_1_1PathCondAllocator_html_a3f331564529091540cf587e575b0bc3a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">BDDExprManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
417
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_ae7be20333ab86fb5297b33923562c7a5"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#ae7be20333ab86fb5297b33923562c7a5">SVF::BDDExprManager::getBDDExprMgr</a></div><div class="ttdeci">static BDDExprManager * getBDDExprMgr()</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="BDDExpr_8cpp_source.html#l00053">BDDExpr.cpp:53</a></div></div>
419
418
  </div><!-- fragment -->
420
419
  </div>
421
420
  </div>
@@ -478,7 +477,7 @@ Private Attributes</h2></td></tr>
478
477
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a391cb347cf98f33c261e59975900048e"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a391cb347cf98f33c261e59975900048e">SVF::PathCondAllocator::collectBBCallingProgExit</a></div><div class="ttdeci">void collectBBCallingProgExit(const BasicBlock &amp;bb)</div><div class="ttdoc">Collect basic block contains program exit function call. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00399">PathCondAllocator.cpp:399</a></div></div>
479
478
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00151">SVFBasicTypes.h:151</a></div></div>
480
479
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00072">LLVMUtil.h:72</a></div></div>
481
- <div class="ttc" id="classSVF_1_1Options_html_ae6b763ff293381ed5da9b07c2e8ae496"><div class="ttname"><a href="classSVF_1_1Options.html#ae6b763ff293381ed5da9b07c2e8ae496">SVF::Options::PrintPathCond</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PrintPathCond</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00222">Options.h:222</a></div></div>
480
+ <div class="ttc" id="classSVF_1_1Options_html_ae6b763ff293381ed5da9b07c2e8ae496"><div class="ttname"><a href="classSVF_1_1Options.html#ae6b763ff293381ed5da9b07c2e8ae496">SVF::Options::PrintPathCond</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; PrintPathCond</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00221">Options.h:221</a></div></div>
482
481
  </div><!-- fragment -->
483
482
  </div>
484
483
  </div>
@@ -511,7 +510,8 @@ Private Attributes</h2></td></tr>
511
510
  <p>TODO: handle BranchInst and SwitchInst individually here!! </p>
512
511
 
513
512
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00081">81</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
514
- <div class="fragment"><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> succ_number = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a737684498679dc16a26f2411d88f36aa">getBBSuccessorNum</a>(&amp;bb);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// if successor number greater than 1, allocate new decision variable for successors</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span>(succ_number &gt; 1)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</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; <span class="comment">//allocate log2(num_succ) decision variables</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">double</span> num = log(succ_number)/log(2);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> bit_num = (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)ceil(num);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> succ_index = 0;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; std::vector&lt;Condition*&gt; condVec;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0 ; i &lt; bit_num; i++)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; condVec.push_back(<a class="code" href="classSVF_1_1PathCondAllocator.html#a3cd08242b82129e6074b2f30a19b5c17">newCond</a>(bb.getTerminator()));</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</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="comment">// iterate each successor</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">succ_const_iterator</a> succ_it = succ_begin(&amp;bb);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; succ_it != succ_end(&amp;bb);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; succ_it++, succ_index++)</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</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="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succ = *succ_it;</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; <a class="code" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* path_cond = <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</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"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// for each successor decide its bit representation</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// decide whether each bit of succ_index is 1 or 0, if (three successor) succ_index is 000 then use C1^C2^C3</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// if 001 use C1^C2^negC3</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0 ; j &lt; bit_num; j++)</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; <span class="comment">//test each bit of this successor&#39;s index (binary representation)</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> tool = 0x01 &lt;&lt; j;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span>(tool &amp; succ_index)</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; path_cond = <a class="code" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a>(path_cond, (<a class="code" href="classSVF_1_1PathCondAllocator.html#ac1ed60a8f59a55811c97c83def3bb739">condNeg</a>(condVec.at(j))));</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"> 123</span>&#160; <span class="keywordflow">else</span></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; path_cond = <a class="code" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a>(path_cond, condVec.at(j));</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#aaec323fc8a3f83da4596ed7d447ab6f1">setBranchCond</a>(&amp;bb,succ,path_cond);</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;</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;}</div><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#l00074">BasicTypes.h:74</a></div></div>
513
+ <div class="fragment"><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> succ_number = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a737684498679dc16a26f2411d88f36aa">getBBSuccessorNum</a>(&amp;bb);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// if successor number greater than 1, allocate new decision variable for successors</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span>(succ_number &gt; 1)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</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; <span class="comment">//allocate log2(num_succ) decision variables</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">double</span> num = log(succ_number)/log(2);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> bit_num = (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>)ceil(num);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> succ_index = 0;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; std::vector&lt;Condition*&gt; condVec;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0 ; i &lt; bit_num; i++)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; condVec.push_back(<a class="code" href="classSVF_1_1PathCondAllocator.html#a3cd08242b82129e6074b2f30a19b5c17">newCond</a>(bb.getTerminator()));</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</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="comment">// iterate each successor</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">succ_const_iterator</a> succ_it = succ_begin(&amp;bb);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; succ_it != succ_end(&amp;bb);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; succ_it++, succ_index++)</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; {</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="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succ = *succ_it;</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; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* path_cond = <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</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"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// for each successor decide its bit representation</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// decide whether each bit of succ_index is 1 or 0, if (three successor) succ_index is 000 then use C1^C2^C3</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// if 001 use C1^C2^negC3</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0 ; j &lt; bit_num; j++)</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; <span class="comment">//test each bit of this successor&#39;s index (binary representation)</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> tool = 0x01 &lt;&lt; j;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span>(tool &amp; succ_index)</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; path_cond = <a class="code" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a>(path_cond, (<a class="code" href="classSVF_1_1PathCondAllocator.html#ac1ed60a8f59a55811c97c83def3bb739">condNeg</a>(condVec.at(j))));</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"> 123</span>&#160; <span class="keywordflow">else</span></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; path_cond = <a class="code" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a>(path_cond, condVec.at(j));</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#aaec323fc8a3f83da4596ed7d447ab6f1">setBranchCond</a>(&amp;bb,succ,path_cond);</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;</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;}</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a923cc78e9f6779a0e6172b98e8f44925"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">BDDExprManager::BDDExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
514
+ <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#l00074">BasicTypes.h:74</a></div></div>
515
515
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a1a6bde0db54c91fba7e6bac0acff664a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">SVF::PathCondAllocator::getTrueCond</a></div><div class="ttdeci">Condition * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00095">PathCondAllocator.h:95</a></div></div>
516
516
  <div class="ttc" id="namespaceSVF_html_a3436a988bf80c021cd8022fb445b66d5"><div class="ttname"><a href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">SVF::succ_const_iterator</a></div><div class="ttdeci">llvm::succ_const_iterator succ_const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00155">BasicTypes.h:155</a></div></div>
517
517
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00081">SVFBasicTypes.h:81</a></div></div>
@@ -519,7 +519,6 @@ Private Attributes</h2></td></tr>
519
519
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aaec323fc8a3f83da4596ed7d447ab6f1"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aaec323fc8a3f83da4596ed7d447ab6f1">SVF::PathCondAllocator::setBranchCond</a></div><div class="ttdeci">void setBranchCond(const BasicBlock *bb, const BasicBlock *succ, Condition *cond)</div><div class="ttdoc">Get/Set a branch condition, and its terminator instruction. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00163">PathCondAllocator.cpp:163</a></div></div>
520
520
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_ab0e41d1eacfc6ee2cf42a9ce69cdcb61"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">SVF::PathCondAllocator::condAnd</a></div><div class="ttdeci">Condition * condAnd(Condition *lhs, Condition *rhs)</div><div class="ttdoc">Condition operations. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00083">PathCondAllocator.h:83</a></div></div>
521
521
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_ac1ed60a8f59a55811c97c83def3bb739"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#ac1ed60a8f59a55811c97c83def3bb739">SVF::PathCondAllocator::condNeg</a></div><div class="ttdeci">Condition * condNeg(Condition *cond)</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00091">PathCondAllocator.h:91</a></div></div>
522
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aade2bc55c3882a6cacc3c4a891a1c4a3"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">CondExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
523
522
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a737684498679dc16a26f2411d88f36aa"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a737684498679dc16a26f2411d88f36aa">SVF::SVFUtil::getBBSuccessorNum</a></div><div class="ttdeci">u32_t getBBSuccessorNum(const BasicBlock *BB)</div><div class="ttdoc">Get num of BB&amp;#39;s successors. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00349">LLVMUtil.cpp:349</a></div></div>
524
523
  </div><!-- fragment -->
525
524
  </div>
@@ -596,7 +595,7 @@ Private Attributes</h2></td></tr>
596
595
  <td class="mlabels-left">
597
596
  <table class="memname">
598
597
  <tr>
599
- <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">PathCondAllocator::Condition</a> * PathCondAllocator::ComputeInterCallVFGGuard </td>
598
+ <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">PathCondAllocator::Condition</a> * PathCondAllocator::ComputeInterCallVFGGuard </td>
600
599
  <td>(</td>
601
600
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *&#160;</td>
602
601
  <td class="paramname"><em>srcBB</em>, </td>
@@ -628,11 +627,11 @@ Private Attributes</h2></td></tr>
628
627
  <p>Compute calling inter-procedural guards between two SVFGNodes (from caller to callee) src &ndash;c1&ndash;&gt; callBB &ndash;true&ndash;&gt; funEntryBB &ndash;c2&ndash;&gt; dst the InterCallVFGGuard is c1 ^ c2 </p>
629
628
 
630
629
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00458">458</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
631
- <div class="fragment"><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;{</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* funEntryBB = &amp;dstBB-&gt;getParent()-&gt;getEntryBlock();</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* c1 = <a class="code" href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">ComputeIntraVFGGuard</a>(srcBB,callBB);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">setCFCond</a>(funEntryBB,<a class="code" href="classSVF_1_1PathCondAllocator.html#a5a8c25d74ffc2a8f8dbd20faab4d9803">condOr</a>(<a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(funEntryBB),<a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(callBB)));</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* c2 = <a class="code" href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">ComputeIntraVFGGuard</a>(funEntryBB,dstBB);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a>(c1,c2);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;}</div><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#l00074">BasicTypes.h:74</a></div></div>
630
+ <div class="fragment"><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;{</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* funEntryBB = &amp;dstBB-&gt;getParent()-&gt;getEntryBlock();</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* c1 = <a class="code" href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">ComputeIntraVFGGuard</a>(srcBB,callBB);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">setCFCond</a>(funEntryBB,<a class="code" href="classSVF_1_1PathCondAllocator.html#a5a8c25d74ffc2a8f8dbd20faab4d9803">condOr</a>(<a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(funEntryBB),<a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(callBB)));</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* c2 = <a class="code" href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">ComputeIntraVFGGuard</a>(funEntryBB,dstBB);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a>(c1,c2);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;}</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a923cc78e9f6779a0e6172b98e8f44925"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">BDDExprManager::BDDExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
631
+ <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#l00074">BasicTypes.h:74</a></div></div>
632
632
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a4cb61914dff693e284091e97ab8c8878"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">SVF::PathCondAllocator::setCFCond</a></div><div class="ttdeci">bool setCFCond(const BasicBlock *bb, Condition *cond)</div><div class="ttdoc">Get/Set control-flow conditions. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00255">PathCondAllocator.h:255</a></div></div>
633
633
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a5a8c25d74ffc2a8f8dbd20faab4d9803"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a5a8c25d74ffc2a8f8dbd20faab4d9803">SVF::PathCondAllocator::condOr</a></div><div class="ttdeci">Condition * condOr(Condition *lhs, Condition *rhs)</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00087">PathCondAllocator.h:87</a></div></div>
634
634
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_ab0e41d1eacfc6ee2cf42a9ce69cdcb61"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">SVF::PathCondAllocator::condAnd</a></div><div class="ttdeci">Condition * condAnd(Condition *lhs, Condition *rhs)</div><div class="ttdoc">Condition operations. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00083">PathCondAllocator.h:83</a></div></div>
635
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aade2bc55c3882a6cacc3c4a891a1c4a3"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">CondExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
636
635
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a8c926057571ca14743e106a5a6ce7ae9"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">SVF::PathCondAllocator::getCFCond</a></div><div class="ttdeci">Condition * getCFCond(const BasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00265">PathCondAllocator.h:265</a></div></div>
637
636
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a5ab573cce84584c44778611ba6f4d99c"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">SVF::PathCondAllocator::ComputeIntraVFGGuard</a></div><div class="ttdeci">virtual Condition * ComputeIntraVFGGuard(const BasicBlock *src, const BasicBlock *dst)</div><div class="ttdoc">Guard Computation for a value-flow (between two basic blocks) </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00486">PathCondAllocator.cpp:486</a></div></div>
638
637
  </div><!-- fragment -->
@@ -648,7 +647,7 @@ Private Attributes</h2></td></tr>
648
647
  <td class="mlabels-left">
649
648
  <table class="memname">
650
649
  <tr>
651
- <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">PathCondAllocator::Condition</a> * PathCondAllocator::ComputeInterRetVFGGuard </td>
650
+ <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">PathCondAllocator::Condition</a> * PathCondAllocator::ComputeInterRetVFGGuard </td>
652
651
  <td>(</td>
653
652
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *&#160;</td>
654
653
  <td class="paramname"><em>srcBB</em>, </td>
@@ -680,12 +679,12 @@ Private Attributes</h2></td></tr>
680
679
  <p>Compute return inter-procedural guards between two SVFGNodes (from callee to caller) src &ndash;c1&ndash;&gt; funExitBB &ndash;true&ndash;&gt; retBB &ndash;c2&ndash;&gt; dst the InterRetVFGGuard is c1 ^ c2 </p>
681
680
 
682
681
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00473">473</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
683
- <div class="fragment"><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;{</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* funExitBB = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a3cb226930eeaf558575e09e5b65e0223">getFunExitBB</a>(srcBB-&gt;getParent());</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* c1 = <a class="code" href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">ComputeIntraVFGGuard</a>(srcBB,funExitBB);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">setCFCond</a>(retBB,<a class="code" href="classSVF_1_1PathCondAllocator.html#a5a8c25d74ffc2a8f8dbd20faab4d9803">condOr</a>(<a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(retBB),<a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(funExitBB)));</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* c2 = <a class="code" href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">ComputeIntraVFGGuard</a>(retBB,dstBB);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a>(c1,c2);</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;}</div><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#l00074">BasicTypes.h:74</a></div></div>
682
+ <div class="fragment"><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;{</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* funExitBB = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a3cb226930eeaf558575e09e5b65e0223">getFunExitBB</a>(srcBB-&gt;getParent());</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* c1 = <a class="code" href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">ComputeIntraVFGGuard</a>(srcBB,funExitBB);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">setCFCond</a>(retBB,<a class="code" href="classSVF_1_1PathCondAllocator.html#a5a8c25d74ffc2a8f8dbd20faab4d9803">condOr</a>(<a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(retBB),<a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(funExitBB)));</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* c2 = <a class="code" href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">ComputeIntraVFGGuard</a>(retBB,dstBB);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a>(c1,c2);</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;}</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a923cc78e9f6779a0e6172b98e8f44925"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">BDDExprManager::BDDExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
683
+ <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#l00074">BasicTypes.h:74</a></div></div>
684
684
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a4cb61914dff693e284091e97ab8c8878"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">SVF::PathCondAllocator::setCFCond</a></div><div class="ttdeci">bool setCFCond(const BasicBlock *bb, Condition *cond)</div><div class="ttdoc">Get/Set control-flow conditions. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00255">PathCondAllocator.h:255</a></div></div>
685
685
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a5a8c25d74ffc2a8f8dbd20faab4d9803"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a5a8c25d74ffc2a8f8dbd20faab4d9803">SVF::PathCondAllocator::condOr</a></div><div class="ttdeci">Condition * condOr(Condition *lhs, Condition *rhs)</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00087">PathCondAllocator.h:87</a></div></div>
686
686
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a3cb226930eeaf558575e09e5b65e0223"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a3cb226930eeaf558575e09e5b65e0223">SVF::SVFUtil::getFunExitBB</a></div><div class="ttdeci">const BasicBlock * getFunExitBB(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00520">LLVMUtil.h:520</a></div></div>
687
687
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_ab0e41d1eacfc6ee2cf42a9ce69cdcb61"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">SVF::PathCondAllocator::condAnd</a></div><div class="ttdeci">Condition * condAnd(Condition *lhs, Condition *rhs)</div><div class="ttdoc">Condition operations. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00083">PathCondAllocator.h:83</a></div></div>
688
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aade2bc55c3882a6cacc3c4a891a1c4a3"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">CondExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
689
688
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a8c926057571ca14743e106a5a6ce7ae9"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">SVF::PathCondAllocator::getCFCond</a></div><div class="ttdeci">Condition * getCFCond(const BasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00265">PathCondAllocator.h:265</a></div></div>
690
689
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a5ab573cce84584c44778611ba6f4d99c"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">SVF::PathCondAllocator::ComputeIntraVFGGuard</a></div><div class="ttdeci">virtual Condition * ComputeIntraVFGGuard(const BasicBlock *src, const BasicBlock *dst)</div><div class="ttdoc">Guard Computation for a value-flow (between two basic blocks) </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00486">PathCondAllocator.cpp:486</a></div></div>
691
690
  </div><!-- fragment -->
@@ -701,7 +700,7 @@ Private Attributes</h2></td></tr>
701
700
  <td class="mlabels-left">
702
701
  <table class="memname">
703
702
  <tr>
704
- <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">PathCondAllocator::Condition</a> * PathCondAllocator::ComputeIntraVFGGuard </td>
703
+ <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">PathCondAllocator::Condition</a> * PathCondAllocator::ComputeIntraVFGGuard </td>
705
704
  <td>(</td>
706
705
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *&#160;</td>
707
706
  <td class="paramname"><em>srcBB</em>, </td>
@@ -731,7 +730,8 @@ Private Attributes</h2></td></tr>
731
730
  <p>calculate the branch condition if succ post dominate bb, then we get brCond quicker by using postDT note that we assume loop exit always post dominate loop bodys which means loops are approximated only once. </p>
732
731
 
733
732
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00486">486</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
734
- <div class="fragment"><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;{</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(srcBB-&gt;getParent() == dstBB-&gt;getParent() &amp;&amp; <span class="stringliteral">&quot;two basic blocks are not in the same function??&quot;</span>);</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <a class="code" href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">PostDominatorTree</a>* postDT = <a class="code" href="classSVF_1_1PathCondAllocator.html#a1295e2c2c0a9c1a3744ba3927b95363e">getPostDT</a>(srcBB-&gt;getParent());</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">if</span>(postDT-&gt;dominates(dstBB,srcBB))</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#ac578894f959845164e1343384d60def1">CFWorkList</a> worklist;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; worklist.push(srcBB);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">setCFCond</a>(srcBB,<a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>());</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">while</span>(!worklist.empty())</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; {</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = worklist.pop();</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* cond = <a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(bb);</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* loopExitCond = <a class="code" href="classSVF_1_1PathCondAllocator.html#a623e6ec670e5f6aeedee26b146ad5a0d">evaluateLoopExitBranch</a>(bb,dstBB))</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a>(cond, loopExitCond);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">succ_const_iterator</a> succ_it = succ_begin(bb);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; succ_it != succ_end(bb); succ_it++)</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; {</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succ = *succ_it;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* brCond;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">if</span>(postDT-&gt;dominates(succ,bb))</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; brCond = <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; brCond = <a class="code" href="classSVF_1_1PathCondAllocator.html#a6d2c5b05f4966522c9310fd3c086adea">getEvalBrCond</a>(bb, succ);</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot; bb (&quot;</span> &lt;&lt; bb-&gt;getName().str() &lt;&lt;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="stringliteral">&quot;) --&gt; &quot;</span> &lt;&lt; <span class="stringliteral">&quot;succ_bb (&quot;</span> &lt;&lt; succ-&gt;getName().str() &lt;&lt; <span class="stringliteral">&quot;) condition: &quot;</span> &lt;&lt; brCond &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* succPathCond = <a class="code" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a>(cond, brCond);</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">setCFCond</a>(succ, <a class="code" href="classSVF_1_1PathCondAllocator.html#a5a8c25d74ffc2a8f8dbd20faab4d9803">condOr</a>(<a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(succ), succPathCond)))</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; worklist.push(succ);</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; }</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; }</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot; src_bb (&quot;</span> &lt;&lt; srcBB-&gt;getName().str() &lt;&lt;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="stringliteral">&quot;) --&gt; &quot;</span> &lt;&lt; <span class="stringliteral">&quot;dst_bb (&quot;</span> &lt;&lt; dstBB-&gt;getName().str() &lt;&lt; <span class="stringliteral">&quot;) condition: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(dstBB) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(dstBB);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;}</div><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#l00074">BasicTypes.h:74</a></div></div>
733
+ <div class="fragment"><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;{</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(srcBB-&gt;getParent() == dstBB-&gt;getParent() &amp;&amp; <span class="stringliteral">&quot;two basic blocks are not in the same function??&quot;</span>);</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <a class="code" href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">PostDominatorTree</a>* postDT = <a class="code" href="classSVF_1_1PathCondAllocator.html#a1295e2c2c0a9c1a3744ba3927b95363e">getPostDT</a>(srcBB-&gt;getParent());</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">if</span>(postDT-&gt;dominates(dstBB,srcBB))</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#ac578894f959845164e1343384d60def1">CFWorkList</a> worklist;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; worklist.push(srcBB);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">setCFCond</a>(srcBB,<a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>());</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">while</span>(!worklist.empty())</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; {</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = worklist.pop();</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* cond = <a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(bb);</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* loopExitCond = <a class="code" href="classSVF_1_1PathCondAllocator.html#a623e6ec670e5f6aeedee26b146ad5a0d">evaluateLoopExitBranch</a>(bb,dstBB))</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a>(cond, loopExitCond);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">succ_const_iterator</a> succ_it = succ_begin(bb);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; succ_it != succ_end(bb); succ_it++)</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; {</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succ = *succ_it;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* brCond;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">if</span>(postDT-&gt;dominates(succ,bb))</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; brCond = <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; brCond = <a class="code" href="classSVF_1_1PathCondAllocator.html#a6d2c5b05f4966522c9310fd3c086adea">getEvalBrCond</a>(bb, succ);</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot; bb (&quot;</span> &lt;&lt; bb-&gt;getName().str() &lt;&lt;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="stringliteral">&quot;) --&gt; &quot;</span> &lt;&lt; <span class="stringliteral">&quot;succ_bb (&quot;</span> &lt;&lt; succ-&gt;getName().str() &lt;&lt; <span class="stringliteral">&quot;) condition: &quot;</span> &lt;&lt; brCond &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* succPathCond = <a class="code" href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">condAnd</a>(cond, brCond);</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">setCFCond</a>(succ, <a class="code" href="classSVF_1_1PathCondAllocator.html#a5a8c25d74ffc2a8f8dbd20faab4d9803">condOr</a>(<a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(succ), succPathCond)))</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; worklist.push(succ);</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; }</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; }</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <a class="code" href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFBasicTypes_8h.html#a817abc424f7cfcdec5954c7807970f36">DSaber</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot; src_bb (&quot;</span> &lt;&lt; srcBB-&gt;getName().str() &lt;&lt;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="stringliteral">&quot;) --&gt; &quot;</span> &lt;&lt; <span class="stringliteral">&quot;dst_bb (&quot;</span> &lt;&lt; dstBB-&gt;getName().str() &lt;&lt; <span class="stringliteral">&quot;) condition: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(dstBB) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>);</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">getCFCond</a>(dstBB);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;}</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a923cc78e9f6779a0e6172b98e8f44925"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">BDDExprManager::BDDExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
734
+ <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#l00074">BasicTypes.h:74</a></div></div>
735
735
  <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>
736
736
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a1a6bde0db54c91fba7e6bac0acff664a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">SVF::PathCondAllocator::getTrueCond</a></div><div class="ttdeci">Condition * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00095">PathCondAllocator.h:95</a></div></div>
737
737
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a4cb61914dff693e284091e97ab8c8878"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a4cb61914dff693e284091e97ab8c8878">SVF::PathCondAllocator::setCFCond</a></div><div class="ttdeci">bool setCFCond(const BasicBlock *bb, Condition *cond)</div><div class="ttdoc">Get/Set control-flow conditions. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00255">PathCondAllocator.h:255</a></div></div>
@@ -745,7 +745,6 @@ Private Attributes</h2></td></tr>
745
745
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
746
746
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_ab0e41d1eacfc6ee2cf42a9ce69cdcb61"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#ab0e41d1eacfc6ee2cf42a9ce69cdcb61">SVF::PathCondAllocator::condAnd</a></div><div class="ttdeci">Condition * condAnd(Condition *lhs, Condition *rhs)</div><div class="ttdoc">Condition operations. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00083">PathCondAllocator.h:83</a></div></div>
747
747
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_ac578894f959845164e1343384d60def1"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#ac578894f959845164e1343384d60def1">SVF::PathCondAllocator::CFWorkList</a></div><div class="ttdeci">FIFOWorkList&lt; const BasicBlock * &gt; CFWorkList</div><div class="ttdoc">worklist for control-flow guard computation </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00059">PathCondAllocator.h:59</a></div></div>
748
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aade2bc55c3882a6cacc3c4a891a1c4a3"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">CondExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
749
748
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a8c926057571ca14743e106a5a6ce7ae9"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a8c926057571ca14743e106a5a6ce7ae9">SVF::PathCondAllocator::getCFCond</a></div><div class="ttdeci">Condition * getCFCond(const BasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00265">PathCondAllocator.h:265</a></div></div>
750
749
  <div class="ttc" id="SVFBasicTypes_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFBasicTypes_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DEBUG model of each pass. </div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00151">SVFBasicTypes.h:151</a></div></div>
751
750
  </div><!-- fragment -->
@@ -761,15 +760,15 @@ Private Attributes</h2></td></tr>
761
760
  <td class="mlabels-left">
762
761
  <table class="memname">
763
762
  <tr>
764
- <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* SVF::PathCondAllocator::condAnd </td>
763
+ <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* SVF::PathCondAllocator::condAnd </td>
765
764
  <td>(</td>
766
- <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td>
765
+ <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td>
767
766
  <td class="paramname"><em>lhs</em>, </td>
768
767
  </tr>
769
768
  <tr>
770
769
  <td class="paramkey"></td>
771
770
  <td></td>
772
- <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td>
771
+ <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td>
773
772
  <td class="paramname"><em>rhs</em>&#160;</td>
774
773
  </tr>
775
774
  <tr>
@@ -788,8 +787,8 @@ Private Attributes</h2></td></tr>
788
787
  <p>Condition operations. </p>
789
788
 
790
789
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8h_source.html#l00083">83</a> of file <a class="el" href="PathCondAllocator_8h_source.html">PathCondAllocator.h</a>.</p>
791
- <div class="fragment"><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a>-&gt;<a class="code" href="classSVF_1_1CondManager.html#aedda2ed496d0009d92d44a82af2ce8ae">AND</a>(lhs,rhs);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="ttc" id="classSVF_1_1CondManager_html_aedda2ed496d0009d92d44a82af2ce8ae"><div class="ttname"><a href="classSVF_1_1CondManager.html#aedda2ed496d0009d92d44a82af2ce8ae">SVF::CondManager::AND</a></div><div class="ttdeci">virtual CondExpr * AND(CondExpr *lhs, CondExpr *rhs)=0</div><div class="ttdoc">Operations on conditions. </div></div>
792
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aacf96d4b7154f6c2dc12ab9e19702fcd"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">CondManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
790
+ <div class="fragment"><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a>-&gt;<a class="code" href="classSVF_1_1BDDExprManager.html#ac154e934958738288e730faece029436">AND</a>(lhs,rhs);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3f331564529091540cf587e575b0bc3a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">BDDExprManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
791
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_ac154e934958738288e730faece029436"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#ac154e934958738288e730faece029436">SVF::BDDExprManager::AND</a></div><div class="ttdeci">virtual BDDExpr * AND(BDDExpr *lhs, BDDExpr *rhs)</div><div class="ttdoc">Operations on conditions. </div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8cpp_source.html#l00072">BDDExpr.cpp:72</a></div></div>
793
792
  </div><!-- fragment -->
794
793
  </div>
795
794
  </div>
@@ -803,9 +802,9 @@ Private Attributes</h2></td></tr>
803
802
  <td class="mlabels-left">
804
803
  <table class="memname">
805
804
  <tr>
806
- <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* SVF::PathCondAllocator::condNeg </td>
805
+ <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* SVF::PathCondAllocator::condNeg </td>
807
806
  <td>(</td>
808
- <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td>
807
+ <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td>
809
808
  <td class="paramname"><em>cond</em></td><td>)</td>
810
809
  <td></td>
811
810
  </tr>
@@ -818,8 +817,8 @@ Private Attributes</h2></td></tr>
818
817
  </div><div class="memdoc">
819
818
 
820
819
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8h_source.html#l00091">91</a> of file <a class="el" href="PathCondAllocator_8h_source.html">PathCondAllocator.h</a>.</p>
821
- <div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a>-&gt;<a class="code" href="classSVF_1_1CondManager.html#aecb97f6eb6ba2943b2eaa7a8212a9ba6">NEG</a>(cond);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="ttc" id="classSVF_1_1CondManager_html_aecb97f6eb6ba2943b2eaa7a8212a9ba6"><div class="ttname"><a href="classSVF_1_1CondManager.html#aecb97f6eb6ba2943b2eaa7a8212a9ba6">SVF::CondManager::NEG</a></div><div class="ttdeci">virtual CondExpr * NEG(CondExpr *lhs)=0</div></div>
822
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aacf96d4b7154f6c2dc12ab9e19702fcd"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">CondManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
820
+ <div class="fragment"><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a>-&gt;<a class="code" href="classSVF_1_1BDDExprManager.html#ace340608e136c33867b3e1a986d65c81">NEG</a>(cond);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_ace340608e136c33867b3e1a986d65c81"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#ace340608e136c33867b3e1a986d65c81">SVF::BDDExprManager::NEG</a></div><div class="ttdeci">virtual BDDExpr * NEG(BDDExpr *lhs)</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8cpp_source.html#l00115">BDDExpr.cpp:115</a></div></div>
821
+ <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3f331564529091540cf587e575b0bc3a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">BDDExprManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
823
822
  </div><!-- fragment -->
824
823
  </div>
825
824
  </div>
@@ -833,15 +832,15 @@ Private Attributes</h2></td></tr>
833
832
  <td class="mlabels-left">
834
833
  <table class="memname">
835
834
  <tr>
836
- <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* SVF::PathCondAllocator::condOr </td>
835
+ <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* SVF::PathCondAllocator::condOr </td>
837
836
  <td>(</td>
838
- <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td>
837
+ <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td>
839
838
  <td class="paramname"><em>lhs</em>, </td>
840
839
  </tr>
841
840
  <tr>
842
841
  <td class="paramkey"></td>
843
842
  <td></td>
844
- <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td>
843
+ <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td>
845
844
  <td class="paramname"><em>rhs</em>&#160;</td>
846
845
  </tr>
847
846
  <tr>
@@ -858,8 +857,8 @@ Private Attributes</h2></td></tr>
858
857
  </div><div class="memdoc">
859
858
 
860
859
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8h_source.html#l00087">87</a> of file <a class="el" href="PathCondAllocator_8h_source.html">PathCondAllocator.h</a>.</p>
861
- <div class="fragment"><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a>-&gt;<a class="code" href="classSVF_1_1CondManager.html#aa6dcd9cb78deef05b6c4d4e9b6b0a16b">OR</a>(lhs,rhs);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="ttc" id="classSVF_1_1CondManager_html_aa6dcd9cb78deef05b6c4d4e9b6b0a16b"><div class="ttname"><a href="classSVF_1_1CondManager.html#aa6dcd9cb78deef05b6c4d4e9b6b0a16b">SVF::CondManager::OR</a></div><div class="ttdeci">virtual CondExpr * OR(CondExpr *lhs, CondExpr *rhs)=0</div></div>
862
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aacf96d4b7154f6c2dc12ab9e19702fcd"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">CondManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
860
+ <div class="fragment"><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a>-&gt;<a class="code" href="classSVF_1_1BDDExprManager.html#a276f68eefe6b168ad5dc9e32c4f265bd">OR</a>(lhs,rhs);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_a276f68eefe6b168ad5dc9e32c4f265bd"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a276f68eefe6b168ad5dc9e32c4f265bd">SVF::BDDExprManager::OR</a></div><div class="ttdeci">virtual BDDExpr * OR(BDDExpr *lhs, BDDExpr *rhs)</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8cpp_source.html#l00095">BDDExpr.cpp:95</a></div></div>
861
+ <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3f331564529091540cf587e575b0bc3a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">BDDExprManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
863
862
  </div><!-- fragment -->
864
863
  </div>
865
864
  </div>
@@ -904,7 +903,7 @@ Private Attributes</h2></td></tr>
904
903
  <tr>
905
904
  <td class="memname">std::string SVF::PathCondAllocator::dumpCond </td>
906
905
  <td>(</td>
907
- <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td>
906
+ <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td>
908
907
  <td class="paramname"><em>cond</em></td><td>)</td>
909
908
  <td> const</td>
910
909
  </tr>
@@ -917,8 +916,8 @@ Private Attributes</h2></td></tr>
917
916
  </div><div class="memdoc">
918
917
 
919
918
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8h_source.html#l00111">111</a> of file <a class="el" href="PathCondAllocator_8h_source.html">PathCondAllocator.h</a>.</p>
920
- <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a>-&gt;<a class="code" href="classSVF_1_1CondManager.html#a19c63783d5d20f363be3641941263a78">dumpStr</a>(cond);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="ttc" id="classSVF_1_1CondManager_html_a19c63783d5d20f363be3641941263a78"><div class="ttname"><a href="classSVF_1_1CondManager.html#a19c63783d5d20f363be3641941263a78">SVF::CondManager::dumpStr</a></div><div class="ttdeci">virtual std::string dumpStr(const CondExpr *e) const =0</div><div class="ttdoc">Return string format of this expression. </div></div>
921
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aacf96d4b7154f6c2dc12ab9e19702fcd"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">CondManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
919
+ <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a>-&gt;<a class="code" href="classSVF_1_1BDDExprManager.html#aa42ab1c5e6b2774be528bb33f0ca3c7b">dumpStr</a>(cond);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3f331564529091540cf587e575b0bc3a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">BDDExprManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
920
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_aa42ab1c5e6b2774be528bb33f0ca3c7b"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#aa42ab1c5e6b2774be528bb33f0ca3c7b">SVF::BDDExprManager::dumpStr</a></div><div class="ttdeci">std::string dumpStr(const BDDExpr *e) const</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8cpp_source.html#l00187">BDDExpr.cpp:187</a></div></div>
922
921
  </div><!-- fragment -->
923
922
  </div>
924
923
  </div>
@@ -932,7 +931,7 @@ Private Attributes</h2></td></tr>
932
931
  <td class="mlabels-left">
933
932
  <table class="memname">
934
933
  <tr>
935
- <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">PathCondAllocator::Condition</a> * PathCondAllocator::evaluateBranchCond </td>
934
+ <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">PathCondAllocator::Condition</a> * PathCondAllocator::evaluateBranchCond </td>
936
935
  <td>(</td>
937
936
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *&#160;</td>
938
937
  <td class="paramname"><em>bb</em>, </td>
@@ -961,8 +960,9 @@ Private Attributes</h2></td></tr>
961
960
  <p>(1) Evaluate a branch when it reaches a program exit (2) Evaluate a branch when it is loop exit branch (3) Evaluate a branch when it is a test null like condition </p>
962
961
 
963
962
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00294">294</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
964
- <div class="fragment"><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;{</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a737684498679dc16a26f2411d88f36aa">getBBSuccessorNum</a>(bb) == 1)</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(bb-&gt;getTerminator()-&gt;getSuccessor(0) == succ &amp;&amp; <span class="stringliteral">&quot;not the unique successor?&quot;</span>);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *icfgNode = <a class="code" href="classSVF_1_1PathCondAllocator.html#a80a607028f3a05d478ffbd6fcc0bbc2a">getICFG</a>()-&gt;getICFGNode(bb-&gt;getTerminator())) {</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;svfStmt: icfgNode-&gt;getSVFStmts()) {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> *branchStmt = SVFUtil::dyn_cast&lt;BranchStmt&gt;(svfStmt)) {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">if</span>(branchStmt-&gt;getNumSuccessors() == 2) {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succ1 = branchStmt-&gt;getSuccessor(0)-&gt;getBB();</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succ2 = branchStmt-&gt;getSuccessor(1)-&gt;getBB();</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((succ1 == succ || succ2 == succ) &amp;&amp; <span class="stringliteral">&quot;not a successor??&quot;</span>);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* evalLoopExit = <a class="code" href="classSVF_1_1PathCondAllocator.html#a623e6ec670e5f6aeedee26b146ad5a0d">evaluateLoopExitBranch</a>(bb,succ);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">if</span>(evalLoopExit)</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">return</span> evalLoopExit;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* evalProgExit = <a class="code" href="classSVF_1_1PathCondAllocator.html#a79d6bbd55a134c856f3e80a898af23ee">evaluateProgExit</a>(branchStmt,succ);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">if</span>(evalProgExit)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> evalProgExit;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* evalTestNullLike = <a class="code" href="classSVF_1_1PathCondAllocator.html#af595a4b93bd350f489bfe8635d86cfcc">evaluateTestNullLikeExpr</a>(branchStmt,succ);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">if</span>(evalTestNullLike)</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">return</span> evalTestNullLike;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; }</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; }</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a4d00c3306b92e59568b54a6a72afdb74">getBranchCond</a>(bb, succ);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;}</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a79d6bbd55a134c856f3e80a898af23ee"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a79d6bbd55a134c856f3e80a898af23ee">SVF::PathCondAllocator::evaluateProgExit</a></div><div class="ttdeci">Condition * evaluateProgExit(const BranchStmt *branchStmt, const BasicBlock *succ)</div><div class="ttdoc">Return condition when there is a branch calls program exit. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00210">PathCondAllocator.cpp:210</a></div></div>
963
+ <div class="fragment"><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;{</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a737684498679dc16a26f2411d88f36aa">getBBSuccessorNum</a>(bb) == 1)</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(bb-&gt;getTerminator()-&gt;getSuccessor(0) == succ &amp;&amp; <span class="stringliteral">&quot;not the unique successor?&quot;</span>);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1ICFGNode.html">ICFGNode</a> *icfgNode = <a class="code" href="classSVF_1_1PathCondAllocator.html#a80a607028f3a05d478ffbd6fcc0bbc2a">getICFG</a>()-&gt;getICFGNode(bb-&gt;getTerminator())) {</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;svfStmt: icfgNode-&gt;getSVFStmts()) {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchStmt.html">BranchStmt</a> *branchStmt = SVFUtil::dyn_cast&lt;BranchStmt&gt;(svfStmt)) {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">if</span>(branchStmt-&gt;getNumSuccessors() == 2) {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succ1 = branchStmt-&gt;getSuccessor(0)-&gt;getBB();</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* succ2 = branchStmt-&gt;getSuccessor(1)-&gt;getBB();</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((succ1 == succ || succ2 == succ) &amp;&amp; <span class="stringliteral">&quot;not a successor??&quot;</span>);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* evalLoopExit = <a class="code" href="classSVF_1_1PathCondAllocator.html#a623e6ec670e5f6aeedee26b146ad5a0d">evaluateLoopExitBranch</a>(bb,succ);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">if</span>(evalLoopExit)</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">return</span> evalLoopExit;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* evalProgExit = <a class="code" href="classSVF_1_1PathCondAllocator.html#a79d6bbd55a134c856f3e80a898af23ee">evaluateProgExit</a>(branchStmt,succ);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">if</span>(evalProgExit)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> evalProgExit;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* evalTestNullLike = <a class="code" href="classSVF_1_1PathCondAllocator.html#af595a4b93bd350f489bfe8635d86cfcc">evaluateTestNullLikeExpr</a>(branchStmt,succ);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">if</span>(evalTestNullLike)</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">return</span> evalTestNullLike;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; }</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; }</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a4d00c3306b92e59568b54a6a72afdb74">getBranchCond</a>(bb, succ);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;}</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a79d6bbd55a134c856f3e80a898af23ee"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a79d6bbd55a134c856f3e80a898af23ee">SVF::PathCondAllocator::evaluateProgExit</a></div><div class="ttdeci">Condition * evaluateProgExit(const BranchStmt *branchStmt, const BasicBlock *succ)</div><div class="ttdoc">Return condition when there is a branch calls program exit. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00210">PathCondAllocator.cpp:210</a></div></div>
965
964
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a4d00c3306b92e59568b54a6a72afdb74"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a4d00c3306b92e59568b54a6a72afdb74">SVF::PathCondAllocator::getBranchCond</a></div><div class="ttdeci">Condition * getBranchCond(const BasicBlock *bb, const BasicBlock *succ) const</div><div class="ttdoc">Get branch condition. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00137">PathCondAllocator.cpp:137</a></div></div>
965
+ <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a923cc78e9f6779a0e6172b98e8f44925"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">BDDExprManager::BDDExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
966
966
  <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#l00074">BasicTypes.h:74</a></div></div>
967
967
  <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>
968
968
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a1a6bde0db54c91fba7e6bac0acff664a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">SVF::PathCondAllocator::getTrueCond</a></div><div class="ttdeci">Condition * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00095">PathCondAllocator.h:95</a></div></div>
@@ -970,7 +970,6 @@ Private Attributes</h2></td></tr>
970
970
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a80a607028f3a05d478ffbd6fcc0bbc2a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a80a607028f3a05d478ffbd6fcc0bbc2a">SVF::PathCondAllocator::getICFG</a></div><div class="ttdeci">ICFG * getICFG() const</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00205">PathCondAllocator.h:205</a></div></div>
971
971
  <div class="ttc" id="classSVF_1_1ICFGNode_html"><div class="ttname"><a href="classSVF_1_1ICFGNode.html">SVF::ICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00054">ICFGNode.h:54</a></div></div>
972
972
  <div class="ttc" id="classSVF_1_1BranchStmt_html"><div class="ttname"><a href="classSVF_1_1BranchStmt.html">SVF::BranchStmt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00921">SVFStatements.h:921</a></div></div>
973
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aade2bc55c3882a6cacc3c4a891a1c4a3"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">CondExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
974
973
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_af595a4b93bd350f489bfe8635d86cfcc"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#af595a4b93bd350f489bfe8635d86cfcc">SVF::PathCondAllocator::evaluateTestNullLikeExpr</a></div><div class="ttdeci">Condition * evaluateTestNullLikeExpr(const BranchStmt *branchStmt, const BasicBlock *succ)</div><div class="ttdoc">Return branch condition after evaluating test null like expression. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00180">PathCondAllocator.cpp:180</a></div></div>
975
974
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a737684498679dc16a26f2411d88f36aa"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a737684498679dc16a26f2411d88f36aa">SVF::SVFUtil::getBBSuccessorNum</a></div><div class="ttdeci">u32_t getBBSuccessorNum(const BasicBlock *BB)</div><div class="ttdoc">Get num of BB&amp;#39;s successors. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00349">LLVMUtil.cpp:349</a></div></div>
976
975
  </div><!-- fragment -->
@@ -986,7 +985,7 @@ Private Attributes</h2></td></tr>
986
985
  <td class="mlabels-left">
987
986
  <table class="memname">
988
987
  <tr>
989
- <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">PathCondAllocator::Condition</a> * PathCondAllocator::evaluateLoopExitBranch </td>
988
+ <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">PathCondAllocator::Condition</a> * PathCondAllocator::evaluateLoopExitBranch </td>
990
989
  <td>(</td>
991
990
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *&#160;</td>
992
991
  <td class="paramname"><em>bb</em>, </td>
@@ -1041,7 +1040,7 @@ Private Attributes</h2></td></tr>
1041
1040
  <td class="mlabels-left">
1042
1041
  <table class="memname">
1043
1042
  <tr>
1044
- <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">PathCondAllocator::Condition</a> * PathCondAllocator::evaluateProgExit </td>
1043
+ <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">PathCondAllocator::Condition</a> * PathCondAllocator::evaluateProgExit </td>
1045
1044
  <td>(</td>
1046
1045
  <td class="paramtype">const <a class="el" href="classSVF_1_1BranchStmt.html">BranchStmt</a> *&#160;</td>
1047
1046
  <td class="paramname"><em>branchStmt</em>, </td>
@@ -1091,7 +1090,7 @@ Private Attributes</h2></td></tr>
1091
1090
  <td class="mlabels-left">
1092
1091
  <table class="memname">
1093
1092
  <tr>
1094
- <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">PathCondAllocator::Condition</a> * PathCondAllocator::evaluateTestNullLikeExpr </td>
1093
+ <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">PathCondAllocator::Condition</a> * PathCondAllocator::evaluateTestNullLikeExpr </td>
1095
1094
  <td>(</td>
1096
1095
  <td class="paramtype">const <a class="el" href="classSVF_1_1BranchStmt.html">BranchStmt</a> *&#160;</td>
1097
1096
  <td class="paramname"><em>branchStmt</em>, </td>
@@ -1143,7 +1142,7 @@ Private Attributes</h2></td></tr>
1143
1142
  <tr>
1144
1143
  <td class="memname"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> SVF::PathCondAllocator::exactCondElem </td>
1145
1144
  <td>(</td>
1146
- <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td>
1145
+ <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td>
1147
1146
  <td class="paramname"><em>cond</em></td><td>)</td>
1148
1147
  <td></td>
1149
1148
  </tr>
@@ -1158,8 +1157,8 @@ Private Attributes</h2></td></tr>
1158
1157
  <p>Iterator every element of the condition. </p>
1159
1158
 
1160
1159
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8h_source.html#l00104">104</a> of file <a class="el" href="PathCondAllocator_8h_source.html">PathCondAllocator.h</a>.</p>
1161
- <div class="fragment"><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; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> elems;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a>-&gt;<a class="code" href="classSVF_1_1CondManager.html#a66ed79e36f8c09ee3ae58fb9b4a6f3e3">extractSubConds</a>(cond,elems);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> elems;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div><div class="ttc" id="classSVF_1_1CondManager_html_a66ed79e36f8c09ee3ae58fb9b4a6f3e3"><div class="ttname"><a href="classSVF_1_1CondManager.html#a66ed79e36f8c09ee3ae58fb9b4a6f3e3">SVF::CondManager::extractSubConds</a></div><div class="ttdeci">virtual void extractSubConds(const CondExpr *cond, NodeBS &amp;support) const =0</div><div class="ttdoc">Extract sub conditions of this expression. </div></div>
1162
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aacf96d4b7154f6c2dc12ab9e19702fcd"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">CondManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1160
+ <div class="fragment"><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; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> elems;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a>-&gt;<a class="code" href="classSVF_1_1BDDExprManager.html#a5bbd80a97aa794da9568716e456cf40c">extractSubConds</a>(cond,elems);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> elems;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_a5bbd80a97aa794da9568716e456cf40c"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a5bbd80a97aa794da9568716e456cf40c">SVF::BDDExprManager::extractSubConds</a></div><div class="ttdeci">void extractSubConds(const BDDExpr *f, NodeBS &amp;support) const</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8cpp_source.html#l00161">BDDExpr.cpp:161</a></div></div>
1161
+ <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3f331564529091540cf587e575b0bc3a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">BDDExprManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1163
1162
  <div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00092">SVFBasicTypes.h:92</a></div></div>
1164
1163
  </div><!-- fragment -->
1165
1164
  </div>
@@ -1174,7 +1173,7 @@ Private Attributes</h2></td></tr>
1174
1173
  <td class="mlabels-left">
1175
1174
  <table class="memname">
1176
1175
  <tr>
1177
- <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">PathCondAllocator::Condition</a> * PathCondAllocator::getBranchCond </td>
1176
+ <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">PathCondAllocator::Condition</a> * PathCondAllocator::getBranchCond </td>
1178
1177
  <td>(</td>
1179
1178
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *&#160;</td>
1180
1179
  <td class="paramname"><em>bb</em>, </td>
@@ -1221,7 +1220,7 @@ Private Attributes</h2></td></tr>
1221
1220
  <td class="mlabels-left">
1222
1221
  <table class="memname">
1223
1222
  <tr>
1224
- <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* SVF::PathCondAllocator::getCFCond </td>
1223
+ <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* SVF::PathCondAllocator::getCFCond </td>
1225
1224
  <td>(</td>
1226
1225
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *&#160;</td>
1227
1226
  <td class="paramname"><em>bb</em></td><td>)</td>
@@ -1251,7 +1250,7 @@ Private Attributes</h2></td></tr>
1251
1250
  <td class="mlabels-left">
1252
1251
  <table class="memname">
1253
1252
  <tr>
1254
- <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* SVF::PathCondAllocator::getCond </td>
1253
+ <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* SVF::PathCondAllocator::getCond </td>
1255
1254
  <td>(</td>
1256
1255
  <td class="paramtype"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&#160;</td>
1257
1256
  <td class="paramname"><em>i</em></td><td>)</td>
@@ -1268,8 +1267,8 @@ Private Attributes</h2></td></tr>
1268
1267
  <p>Given an z3 expr id, get its condition. </p>
1269
1268
 
1270
1269
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8h_source.html#l00116">116</a> of file <a class="el" href="PathCondAllocator_8h_source.html">PathCondAllocator.h</a>.</p>
1271
- <div class="fragment"><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a>-&gt;<a class="code" href="classSVF_1_1CondManager.html#ad0273f830c9a6791aea55bfbdebf1138">getCond</a>(i);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_aacf96d4b7154f6c2dc12ab9e19702fcd"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">CondManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1272
- <div class="ttc" id="classSVF_1_1CondManager_html_ad0273f830c9a6791aea55bfbdebf1138"><div class="ttname"><a href="classSVF_1_1CondManager.html#ad0273f830c9a6791aea55bfbdebf1138">SVF::CondManager::getCond</a></div><div class="ttdeci">virtual CondExpr * getCond(u32_t id) const =0</div><div class="ttdoc">Get condition using condition id (z3 ast id) </div></div>
1270
+ <div class="fragment"><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a>-&gt;<a class="code" href="classSVF_1_1BDDExprManager.html#a58186fe706c8c44467b789d8ebd58474">getCond</a>(i);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3f331564529091540cf587e575b0bc3a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">BDDExprManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1271
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a58186fe706c8c44467b789d8ebd58474"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a58186fe706c8c44467b789d8ebd58474">SVF::BDDExprManager::getCond</a></div><div class="ttdeci">virtual BDDExpr * getCond(u32_t id)</div><div class="ttdoc">Get condition using condition id (z3 ast id) </div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00130">BDDExpr.h:130</a></div></div>
1273
1272
  </div><!-- fragment -->
1274
1273
  </div>
1275
1274
  </div>
@@ -1285,7 +1284,7 @@ Private Attributes</h2></td></tr>
1285
1284
  <tr>
1286
1285
  <td class="memname">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* SVF::PathCondAllocator::getCondInst </td>
1287
1286
  <td>(</td>
1288
- <td class="paramtype">const <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td>
1287
+ <td class="paramtype">const <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td>
1289
1288
  <td class="paramname"><em>cond</em></td><td>)</td>
1290
1289
  <td> const</td>
1291
1290
  </tr>
@@ -1300,8 +1299,8 @@ Private Attributes</h2></td></tr>
1300
1299
  <p>Get/Set llvm conditional expression. </p>
1301
1300
 
1302
1301
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8h_source.html#l00132">132</a> of file <a class="el" href="PathCondAllocator_8h_source.html">PathCondAllocator.h</a>.</p>
1303
- <div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a>-&gt;<a class="code" href="classSVF_1_1CondManager.html#a4fac6a918f1f6d09fe1a4ceac7c19428">getCondInst</a>(cond);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="ttc" id="classSVF_1_1CondManager_html_a4fac6a918f1f6d09fe1a4ceac7c19428"><div class="ttname"><a href="classSVF_1_1CondManager.html#a4fac6a918f1f6d09fe1a4ceac7c19428">SVF::CondManager::getCondInst</a></div><div class="ttdeci">const Instruction * getCondInst(const CondExpr *cond) const</div><div class="ttdoc">Get/Set llvm conditional expression. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00206">Conditions.h:206</a></div></div>
1304
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aacf96d4b7154f6c2dc12ab9e19702fcd"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">CondManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1302
+ <div class="fragment"><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a>-&gt;<a class="code" href="classSVF_1_1BDDExprManager.html#a40e32bc52cce8ac1335b5050e693035b">getCondInst</a>(cond);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3f331564529091540cf587e575b0bc3a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">BDDExprManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1303
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a40e32bc52cce8ac1335b5050e693035b"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a40e32bc52cce8ac1335b5050e693035b">SVF::BDDExprManager::getCondInst</a></div><div class="ttdeci">const Instruction * getCondInst(const BDDExpr *cond) const</div><div class="ttdoc">Get/Set llvm conditional expression. </div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00138">BDDExpr.h:138</a></div></div>
1305
1304
  </div><!-- fragment -->
1306
1305
  </div>
1307
1306
  </div>
@@ -1329,8 +1328,8 @@ Private Attributes</h2></td></tr>
1329
1328
  </div><div class="memdoc">
1330
1329
 
1331
1330
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8h_source.html#l00075">75</a> of file <a class="el" href="PathCondAllocator_8h_source.html">PathCondAllocator.h</a>.</p>
1332
- <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a>-&gt;<a class="code" href="classSVF_1_1CondManager.html#a03d9a0d209505631f6d9e500d9c6bde3">getCondNumber</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="ttc" id="classSVF_1_1CondManager_html_a03d9a0d209505631f6d9e500d9c6bde3"><div class="ttname"><a href="classSVF_1_1CondManager.html#a03d9a0d209505631f6d9e500d9c6bde3">SVF::CondManager::getCondNumber</a></div><div class="ttdeci">virtual u32_t getCondNumber()=0</div><div class="ttdoc">Return the number of condition expressions. </div></div>
1333
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aacf96d4b7154f6c2dc12ab9e19702fcd"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">CondManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1331
+ <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a>-&gt;<a class="code" href="classSVF_1_1BDDExprManager.html#a39d4e4c5c4290dcdb8b00e05b56f7302">getCondNumber</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3f331564529091540cf587e575b0bc3a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">BDDExprManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1332
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a39d4e4c5c4290dcdb8b00e05b56f7302"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a39d4e4c5c4290dcdb8b00e05b56f7302">SVF::BDDExprManager::getCondNumber</a></div><div class="ttdeci">virtual u32_t getCondNumber()</div><div class="ttdoc">Return the number of condition expressions. </div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00088">BDDExpr.h:88</a></div></div>
1334
1333
  </div><!-- fragment -->
1335
1334
  </div>
1336
1335
  </div>
@@ -1406,7 +1405,7 @@ Private Attributes</h2></td></tr>
1406
1405
  <td class="mlabels-left">
1407
1406
  <table class="memname">
1408
1407
  <tr>
1409
- <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">PathCondAllocator::Condition</a> * PathCondAllocator::getEvalBrCond </td>
1408
+ <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">PathCondAllocator::Condition</a> * PathCondAllocator::getEvalBrCond </td>
1410
1409
  <td>(</td>
1411
1410
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *&#160;</td>
1412
1411
  <td class="paramname"><em>bb</em>, </td>
@@ -1449,7 +1448,7 @@ Private Attributes</h2></td></tr>
1449
1448
  <td class="mlabels-left">
1450
1449
  <table class="memname">
1451
1450
  <tr>
1452
- <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* SVF::PathCondAllocator::getFalseCond </td>
1451
+ <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* SVF::PathCondAllocator::getFalseCond </td>
1453
1452
  <td>(</td>
1454
1453
  <td class="paramname"></td><td>)</td>
1455
1454
  <td> const</td>
@@ -1463,8 +1462,8 @@ Private Attributes</h2></td></tr>
1463
1462
  </div><div class="memdoc">
1464
1463
 
1465
1464
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8h_source.html#l00099">99</a> of file <a class="el" href="PathCondAllocator_8h_source.html">PathCondAllocator.h</a>.</p>
1466
- <div class="fragment"><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a>-&gt;<a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_aacf96d4b7154f6c2dc12ab9e19702fcd"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">CondManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1467
- <div class="ttc" id="classSVF_1_1CondManager_html_a39e9d42cb3661d1c686b5163c70eeade"><div class="ttname"><a href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">SVF::CondManager::getFalseCond</a></div><div class="ttdeci">CondExpr * getFalseCond() const</div><div class="ttdoc">Return the unique false condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00177">Conditions.h:177</a></div></div>
1465
+ <div class="fragment"><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a>-&gt;<a class="code" href="classSVF_1_1BDDExprManager.html#a34f5354a436840202428e406468e2335">getFalseCond</a>();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3f331564529091540cf587e575b0bc3a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">BDDExprManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1466
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a34f5354a436840202428e406468e2335"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a34f5354a436840202428e406468e2335">SVF::BDDExprManager::getFalseCond</a></div><div class="ttdeci">BDDExpr * getFalseCond() const</div><div class="ttdoc">Return the unique false condition. </div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00099">BDDExpr.h:99</a></div></div>
1468
1467
  </div><!-- fragment -->
1469
1468
  </div>
1470
1469
  </div>
@@ -1555,8 +1554,8 @@ Private Attributes</h2></td></tr>
1555
1554
  <p>Statistics. </p>
1556
1555
 
1557
1556
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8h_source.html#l00071">71</a> of file <a class="el" href="PathCondAllocator_8h_source.html">PathCondAllocator.h</a>.</p>
1558
- <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a>-&gt;<a class="code" href="classSVF_1_1CondManager.html#a9d1f2e6ef92ee120c7f26d98b1389b04">getMemUsage</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_aacf96d4b7154f6c2dc12ab9e19702fcd"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">CondManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1559
- <div class="ttc" id="classSVF_1_1CondManager_html_a9d1f2e6ef92ee120c7f26d98b1389b04"><div class="ttname"><a href="classSVF_1_1CondManager.html#a9d1f2e6ef92ee120c7f26d98b1389b04">SVF::CondManager::getMemUsage</a></div><div class="ttdeci">virtual std::string getMemUsage()=0</div><div class="ttdoc">Return memory usage for this condition manager. </div></div>
1557
+ <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a>-&gt;<a class="code" href="classSVF_1_1BDDExprManager.html#a7cb0ba9829434de3c40a2c45beea7741">getMemUsage</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_a7cb0ba9829434de3c40a2c45beea7741"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a7cb0ba9829434de3c40a2c45beea7741">SVF::BDDExprManager::getMemUsage</a></div><div class="ttdeci">std::string getMemUsage()</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00164">BDDExpr.h:164</a></div></div>
1558
+ <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3f331564529091540cf587e575b0bc3a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">BDDExprManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1560
1559
  </div><!-- fragment -->
1561
1560
  </div>
1562
1561
  </div>
@@ -1570,7 +1569,7 @@ Private Attributes</h2></td></tr>
1570
1569
  <td class="mlabels-left">
1571
1570
  <table class="memname">
1572
1571
  <tr>
1573
- <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">PathCondAllocator::Condition</a> * PathCondAllocator::getPHIComplementCond </td>
1572
+ <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">PathCondAllocator::Condition</a> * PathCondAllocator::getPHIComplementCond </td>
1574
1573
  <td>(</td>
1575
1574
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *&#160;</td>
1576
1575
  <td class="paramname"><em>BB1</em>, </td>
@@ -1604,12 +1603,12 @@ Private Attributes</h2></td></tr>
1604
1603
  <p>avoid both BB0 and BB1 dominate BB2 (e.g., while loop), then BB2 is not necessaryly a complement BB </p>
1605
1604
 
1606
1605
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00438">438</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
1607
- <div class="fragment"><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;{</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(BB1 &amp;&amp; BB2 &amp;&amp; <span class="stringliteral">&quot;expect nullptr BB here!&quot;</span>);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>* dt = <a class="code" href="classSVF_1_1PathCondAllocator.html#a496a23bc37dfdea32c536e9ebe9a4b88">getDT</a>(BB1-&gt;getParent());</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">if</span>(dt-&gt;dominates(BB1,BB2) &amp;&amp; !dt-&gt;dominates(BB0,BB2))</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; {</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* cond = <a class="code" href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">ComputeIntraVFGGuard</a>(BB1,BB2);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#ac1ed60a8f59a55811c97c83def3bb739">condNeg</a>(cond);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; }</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;}</div><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>
1606
+ <div class="fragment"><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;{</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(BB1 &amp;&amp; BB2 &amp;&amp; <span class="stringliteral">&quot;expect nullptr BB here!&quot;</span>);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a>* dt = <a class="code" href="classSVF_1_1PathCondAllocator.html#a496a23bc37dfdea32c536e9ebe9a4b88">getDT</a>(BB1-&gt;getParent());</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">if</span>(dt-&gt;dominates(BB1,BB2) &amp;&amp; !dt-&gt;dominates(BB0,BB2))</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; {</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* cond = <a class="code" href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">ComputeIntraVFGGuard</a>(BB1,BB2);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#ac1ed60a8f59a55811c97c83def3bb739">condNeg</a>(cond);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; }</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">getTrueCond</a>();</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;}</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a923cc78e9f6779a0e6172b98e8f44925"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">BDDExprManager::BDDExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
1607
+ <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>
1608
1608
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a1a6bde0db54c91fba7e6bac0acff664a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a1a6bde0db54c91fba7e6bac0acff664a">SVF::PathCondAllocator::getTrueCond</a></div><div class="ttdeci">Condition * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00095">PathCondAllocator.h:95</a></div></div>
1609
1609
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a496a23bc37dfdea32c536e9ebe9a4b88"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a496a23bc37dfdea32c536e9ebe9a4b88">SVF::PathCondAllocator::getDT</a></div><div class="ttdeci">DominatorTree * getDT(const Function *fun)</div><div class="ttdoc">Get dominators. </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00146">PathCondAllocator.h:146</a></div></div>
1610
1610
  <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#l00143">BasicTypes.h:143</a></div></div>
1611
1611
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_ac1ed60a8f59a55811c97c83def3bb739"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#ac1ed60a8f59a55811c97c83def3bb739">SVF::PathCondAllocator::condNeg</a></div><div class="ttdeci">Condition * condNeg(Condition *cond)</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00091">PathCondAllocator.h:91</a></div></div>
1612
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aade2bc55c3882a6cacc3c4a891a1c4a3"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">CondExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
1613
1612
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a5ab573cce84584c44778611ba6f4d99c"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a5ab573cce84584c44778611ba6f4d99c">SVF::PathCondAllocator::ComputeIntraVFGGuard</a></div><div class="ttdeci">virtual Condition * ComputeIntraVFGGuard(const BasicBlock *src, const BasicBlock *dst)</div><div class="ttdoc">Guard Computation for a value-flow (between two basic blocks) </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8cpp_source.html#l00486">PathCondAllocator.cpp:486</a></div></div>
1614
1613
  </div><!-- fragment -->
1615
1614
  </div>
@@ -1656,7 +1655,7 @@ Private Attributes</h2></td></tr>
1656
1655
  <td class="mlabels-left">
1657
1656
  <table class="memname">
1658
1657
  <tr>
1659
- <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* SVF::PathCondAllocator::getTrueCond </td>
1658
+ <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* SVF::PathCondAllocator::getTrueCond </td>
1660
1659
  <td>(</td>
1661
1660
  <td class="paramname"></td><td>)</td>
1662
1661
  <td> const</td>
@@ -1670,8 +1669,8 @@ Private Attributes</h2></td></tr>
1670
1669
  </div><div class="memdoc">
1671
1670
 
1672
1671
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8h_source.html#l00095">95</a> of file <a class="el" href="PathCondAllocator_8h_source.html">PathCondAllocator.h</a>.</p>
1673
- <div class="fragment"><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a>-&gt;<a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="ttc" id="classSVF_1_1CondManager_html_ac74f182ef249a7c892ba9c630f889ddc"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">SVF::CondManager::getTrueCond</a></div><div class="ttdeci">CondExpr * getTrueCond() const</div><div class="ttdoc">Return the unique true condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00172">Conditions.h:172</a></div></div>
1674
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aacf96d4b7154f6c2dc12ab9e19702fcd"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">CondManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1672
+ <div class="fragment"><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a>-&gt;<a class="code" href="classSVF_1_1BDDExprManager.html#a765d97ba6065a96a61209c59fdbb4b01">getTrueCond</a>();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3f331564529091540cf587e575b0bc3a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">BDDExprManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1673
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a765d97ba6065a96a61209c59fdbb4b01"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a765d97ba6065a96a61209c59fdbb4b01">SVF::BDDExprManager::getTrueCond</a></div><div class="ttdeci">BDDExpr * getTrueCond() const</div><div class="ttdoc">Return the unique true condition. </div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00094">BDDExpr.h:94</a></div></div>
1675
1674
  </div><!-- fragment -->
1676
1675
  </div>
1677
1676
  </div>
@@ -1687,7 +1686,7 @@ Private Attributes</h2></td></tr>
1687
1686
  <tr>
1688
1687
  <td class="memname">bool SVF::PathCondAllocator::isAllPathReachable </td>
1689
1688
  <td>(</td>
1690
- <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td>
1689
+ <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td>
1691
1690
  <td class="paramname"><em>condition</em></td><td>)</td>
1692
1691
  <td></td>
1693
1692
  </tr>
@@ -1702,8 +1701,8 @@ Private Attributes</h2></td></tr>
1702
1701
  <p>whether condition is satisfiable for all possible boolean guards </p>
1703
1702
 
1704
1703
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8h_source.html#l00197">197</a> of file <a class="el" href="PathCondAllocator_8h_source.html">PathCondAllocator.h</a>.</p>
1705
- <div class="fragment"><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a>-&gt;<a class="code" href="classSVF_1_1CondManager.html#a6151817a6f671fa1e7814e74f7ce2e51">isAllPathReachable</a>(condition);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_aacf96d4b7154f6c2dc12ab9e19702fcd"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">CondManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1706
- <div class="ttc" id="classSVF_1_1CondManager_html_a6151817a6f671fa1e7814e74f7ce2e51"><div class="ttname"><a href="classSVF_1_1CondManager.html#a6151817a6f671fa1e7814e74f7ce2e51">SVF::CondManager::isAllPathReachable</a></div><div class="ttdeci">bool isAllPathReachable(const CondExpr *e)</div><div class="ttdoc">Whether All Paths are reachable. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00058">Conditions.cpp:58</a></div></div>
1704
+ <div class="fragment"><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a>-&gt;<a class="code" href="classSVF_1_1BDDExprManager.html#afb30b41edd5bb6478d30778bc7f09e15">isAllPathReachable</a>(condition);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3f331564529091540cf587e575b0bc3a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">BDDExprManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1705
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_afb30b41edd5bb6478d30778bc7f09e15"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#afb30b41edd5bb6478d30778bc7f09e15">SVF::BDDExprManager::isAllPathReachable</a></div><div class="ttdeci">bool isAllPathReachable(const BDDExpr *e)</div><div class="ttdoc">Whether All Paths are reachable. </div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8cpp_source.html#l00129">BDDExpr.cpp:129</a></div></div>
1707
1706
  </div><!-- fragment -->
1708
1707
  </div>
1709
1708
  </div>
@@ -1783,13 +1782,13 @@ Private Attributes</h2></td></tr>
1783
1782
  <tr>
1784
1783
  <td class="memname">bool SVF::PathCondAllocator::isEquivalentBranchCond </td>
1785
1784
  <td>(</td>
1786
- <td class="paramtype">const <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td>
1785
+ <td class="paramtype">const <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td>
1787
1786
  <td class="paramname"><em>lhs</em>, </td>
1788
1787
  </tr>
1789
1788
  <tr>
1790
1789
  <td class="paramkey"></td>
1791
1790
  <td></td>
1792
- <td class="paramtype">const <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td>
1791
+ <td class="paramtype">const <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td>
1793
1792
  <td class="paramname"><em>rhs</em>&#160;</td>
1794
1793
  </tr>
1795
1794
  <tr>
@@ -1806,8 +1805,8 @@ Private Attributes</h2></td></tr>
1806
1805
  </div><div class="memdoc">
1807
1806
 
1808
1807
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8h_source.html#l00201">201</a> of file <a class="el" href="PathCondAllocator_8h_source.html">PathCondAllocator.h</a>.</p>
1809
- <div class="fragment"><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a>-&gt;<a class="code" href="classSVF_1_1CondManager.html#aa20839631502b975590754e146242175">isEquivalentBranchCond</a>(lhs, rhs);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="ttc" id="classSVF_1_1CondManager_html_aa20839631502b975590754e146242175"><div class="ttname"><a href="classSVF_1_1CondManager.html#aa20839631502b975590754e146242175">SVF::CondManager::isEquivalentBranchCond</a></div><div class="ttdeci">virtual bool isEquivalentBranchCond(const CondExpr *lhs, const CondExpr *rhs)=0</div><div class="ttdoc">Whether lhs and rhs are equivalent branch conditions. </div></div>
1810
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aacf96d4b7154f6c2dc12ab9e19702fcd"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">CondManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1808
+ <div class="fragment"><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a>-&gt;<a class="code" href="classSVF_1_1BDDExprManager.html#a9ac35220d1364a8e6d9bb32e3c236db2">isEquivalentBranchCond</a>(lhs, rhs);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3f331564529091540cf587e575b0bc3a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">BDDExprManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1809
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a9ac35220d1364a8e6d9bb32e3c236db2"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a9ac35220d1364a8e6d9bb32e3c236db2">SVF::BDDExprManager::isEquivalentBranchCond</a></div><div class="ttdeci">virtual bool isEquivalentBranchCond(const BDDExpr *lhs, const BDDExpr *rhs)</div><div class="ttdoc">Whether lhs and rhs are equivalent branch conditions. </div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00122">BDDExpr.h:122</a></div></div>
1811
1810
  </div><!-- fragment -->
1812
1811
  </div>
1813
1812
  </div>
@@ -1853,7 +1852,7 @@ Private Attributes</h2></td></tr>
1853
1852
  <tr>
1854
1853
  <td class="memname">bool SVF::PathCondAllocator::isNegCond </td>
1855
1854
  <td>(</td>
1856
- <td class="paramtype">const <a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td>
1855
+ <td class="paramtype">const <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td>
1857
1856
  <td class="paramname"><em>condition</em></td><td>)</td>
1858
1857
  <td></td>
1859
1858
  </tr>
@@ -1866,8 +1865,8 @@ Private Attributes</h2></td></tr>
1866
1865
  </div><div class="memdoc">
1867
1866
 
1868
1867
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8h_source.html#l00141">141</a> of file <a class="el" href="PathCondAllocator_8h_source.html">PathCondAllocator.h</a>.</p>
1869
- <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a>-&gt;<a class="code" href="classSVF_1_1CondManager.html#a1007afa25f9a95c5d12c58852ef74686">isNegCond</a>(condition);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="ttc" id="classSVF_1_1CondManager_html_a1007afa25f9a95c5d12c58852ef74686"><div class="ttname"><a href="classSVF_1_1CondManager.html#a1007afa25f9a95c5d12c58852ef74686">SVF::CondManager::isNegCond</a></div><div class="ttdeci">virtual bool isNegCond(const CondExpr *cond) const =0</div></div>
1870
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aacf96d4b7154f6c2dc12ab9e19702fcd"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">CondManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1868
+ <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a>-&gt;<a class="code" href="classSVF_1_1BDDExprManager.html#a2d07075a8948d9baf4de31d840aa7a17">isNegCond</a>(condition);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_a2d07075a8948d9baf4de31d840aa7a17"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a2d07075a8948d9baf4de31d840aa7a17">SVF::BDDExprManager::isNegCond</a></div><div class="ttdeci">virtual bool isNegCond(const BDDExpr *cond)</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00112">BDDExpr.h:112</a></div></div>
1869
+ <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3f331564529091540cf587e575b0bc3a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">BDDExprManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1871
1870
  </div><!-- fragment -->
1872
1871
  </div>
1873
1872
  </div>
@@ -1883,7 +1882,7 @@ Private Attributes</h2></td></tr>
1883
1882
  <tr>
1884
1883
  <td class="memname">bool SVF::PathCondAllocator::isSatisfiable </td>
1885
1884
  <td>(</td>
1886
- <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td>
1885
+ <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td>
1887
1886
  <td class="paramname"><em>condition</em></td><td>)</td>
1888
1887
  <td></td>
1889
1888
  </tr>
@@ -1898,8 +1897,8 @@ Private Attributes</h2></td></tr>
1898
1897
  <p>whether condition is satisfiable </p>
1899
1898
 
1900
1899
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8h_source.html#l00192">192</a> of file <a class="el" href="PathCondAllocator_8h_source.html">PathCondAllocator.h</a>.</p>
1901
- <div class="fragment"><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a>-&gt;<a class="code" href="classSVF_1_1CondManager.html#a5ef85ea09500adc006a25c1eb3426831">isSatisfiable</a>(condition);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_aacf96d4b7154f6c2dc12ab9e19702fcd"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">CondManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1902
- <div class="ttc" id="classSVF_1_1CondManager_html_a5ef85ea09500adc006a25c1eb3426831"><div class="ttname"><a href="classSVF_1_1CondManager.html#a5ef85ea09500adc006a25c1eb3426831">SVF::CondManager::isSatisfiable</a></div><div class="ttdeci">virtual bool isSatisfiable(const CondExpr *cond)=0</div><div class="ttdoc">Whether the condition is satisfiable. </div></div>
1900
+ <div class="fragment"><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a>-&gt;<a class="code" href="classSVF_1_1BDDExprManager.html#a26a49a796e0747b173c380f3658a7ad3">isSatisfiable</a>(condition);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_a26a49a796e0747b173c380f3658a7ad3"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a26a49a796e0747b173c380f3658a7ad3">SVF::BDDExprManager::isSatisfiable</a></div><div class="ttdeci">virtual bool isSatisfiable(const BDDExpr *cond)</div><div class="ttdoc">Whether the condition is satisfiable. </div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00117">BDDExpr.h:117</a></div></div>
1901
+ <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3f331564529091540cf587e575b0bc3a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">BDDExprManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
1903
1902
  </div><!-- fragment -->
1904
1903
  </div>
1905
1904
  </div>
@@ -2017,7 +2016,7 @@ Private Attributes</h2></td></tr>
2017
2016
  <td class="mlabels-left">
2018
2017
  <table class="memname">
2019
2018
  <tr>
2020
- <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* SVF::PathCondAllocator::newCond </td>
2019
+ <td class="memname"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* SVF::PathCondAllocator::newCond </td>
2021
2020
  <td>(</td>
2022
2021
  <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
2023
2022
  <td class="paramname"><em>inst</em></td><td>)</td>
@@ -2034,8 +2033,8 @@ Private Attributes</h2></td></tr>
2034
2033
  <p>Allocate a new condition. </p>
2035
2034
 
2036
2035
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8h_source.html#l00121">121</a> of file <a class="el" href="PathCondAllocator_8h_source.html">PathCondAllocator.h</a>.</p>
2037
- <div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a>-&gt;<a class="code" href="classSVF_1_1CondManager.html#abd330e858463fed92fb3df6e8529f790">createFreshBranchCond</a>(inst);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="ttc" id="classSVF_1_1CondManager_html_abd330e858463fed92fb3df6e8529f790"><div class="ttname"><a href="classSVF_1_1CondManager.html#abd330e858463fed92fb3df6e8529f790">SVF::CondManager::createFreshBranchCond</a></div><div class="ttdeci">virtual CondExpr * createFreshBranchCond(const Instruction *inst)=0</div><div class="ttdoc">Create a fresh condition to encode each program branch. </div></div>
2038
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aacf96d4b7154f6c2dc12ab9e19702fcd"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">CondManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
2036
+ <div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a>-&gt;<a class="code" href="classSVF_1_1BDDExprManager.html#a7275a1d4da75370cf5f5f8499fcafa2b">createFreshBranchCond</a>(inst);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3f331564529091540cf587e575b0bc3a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">BDDExprManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
2037
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a7275a1d4da75370cf5f5f8499fcafa2b"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a7275a1d4da75370cf5f5f8499fcafa2b">SVF::BDDExprManager::createFreshBranchCond</a></div><div class="ttdeci">virtual BDDExpr * createFreshBranchCond(const Instruction *inst)</div><div class="ttdoc">Create a fresh condition to encode each program branch. </div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8cpp_source.html#l00060">BDDExpr.cpp:60</a></div></div>
2039
2038
  </div><!-- fragment -->
2040
2039
  </div>
2041
2040
  </div>
@@ -2058,11 +2057,11 @@ Private Attributes</h2></td></tr>
2058
2057
  <p>Print path conditions </p>
2059
2058
 
2060
2059
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8cpp_source.html#l00542">542</a> of file <a class="el" href="PathCondAllocator_8cpp_source.html">PathCondAllocator.cpp</a>.</p>
2061
- <div class="fragment"><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;{</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;print path condition\n&quot;</span>;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span> &amp; bbCond : <a class="code" href="classSVF_1_1PathCondAllocator.html#aff611b2797d61155c8c2f9d8ac4030bc">bbConds</a>)</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; {</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = bbCond.first;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span>&amp; cit : bbCond.second)</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; {</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i=0;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ: successors(bb))</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">if</span> (i == cit.first)</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; {</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a>* cond = cit.second;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; bb-&gt;getName().str() &lt;&lt; <span class="stringliteral">&quot;--&gt;&quot;</span> &lt;&lt; succ-&gt;getName().str() &lt;&lt; <span class="stringliteral">&quot;:&quot;</span>;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="classSVF_1_1PathCondAllocator.html#aae773a674331bb80cc589835e0b16e4e">dumpCond</a>(cond) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; }</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; i++;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; }</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; }</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; }</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;}</div><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#l00074">BasicTypes.h:74</a></div></div>
2060
+ <div class="fragment"><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;{</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <span class="stringliteral">&quot;print path condition\n&quot;</span>;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span> &amp; bbCond : <a class="code" href="classSVF_1_1PathCondAllocator.html#aff611b2797d61155c8c2f9d8ac4030bc">bbConds</a>)</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; {</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = bbCond.first;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">const</span> <span class="keyword">auto</span>&amp; cit : bbCond.second)</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; {</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i=0;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> *succ: successors(bb))</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">if</span> (i == cit.first)</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; {</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a>* cond = cit.second;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; bb-&gt;getName().str() &lt;&lt; <span class="stringliteral">&quot;--&gt;&quot;</span> &lt;&lt; succ-&gt;getName().str() &lt;&lt; <span class="stringliteral">&quot;:&quot;</span>;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() &lt;&lt; <a class="code" href="classSVF_1_1PathCondAllocator.html#aae773a674331bb80cc589835e0b16e4e">dumpCond</a>(cond) &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; }</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; i++;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; }</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; }</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; }</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;}</div><div class="ttc" id="classSVF_1_1PathCondAllocator_html_a923cc78e9f6779a0e6172b98e8f44925"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">BDDExprManager::BDDExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
2061
+ <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#l00074">BasicTypes.h:74</a></div></div>
2062
2062
  <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00081">SVFBasicTypes.h:81</a></div></div>
2063
2063
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aff611b2797d61155c8c2f9d8ac4030bc"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aff611b2797d61155c8c2f9d8ac4030bc">SVF::PathCondAllocator::bbConds</a></div><div class="ttdeci">BBCondMap bbConds</div><div class="ttdoc">map basic block to its successors/predecessors branch conditions </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00290">PathCondAllocator.h:290</a></div></div>
2064
2064
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
2065
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aade2bc55c3882a6cacc3c4a891a1c4a3"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">SVF::PathCondAllocator::Condition</a></div><div class="ttdeci">CondExpr Condition</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00052">PathCondAllocator.h:52</a></div></div>
2066
2065
  <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aae773a674331bb80cc589835e0b16e4e"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aae773a674331bb80cc589835e0b16e4e">SVF::PathCondAllocator::dumpCond</a></div><div class="ttdeci">std::string dumpCond(Condition *cond) const</div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00111">PathCondAllocator.h:111</a></div></div>
2067
2066
  </div><!-- fragment -->
2068
2067
  </div>
@@ -2091,7 +2090,7 @@ Private Attributes</h2></td></tr>
2091
2090
  <tr>
2092
2091
  <td class="paramkey"></td>
2093
2092
  <td></td>
2094
- <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td>
2093
+ <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td>
2095
2094
  <td class="paramname"><em>cond</em>&#160;</td>
2096
2095
  </tr>
2097
2096
  <tr>
@@ -2141,7 +2140,7 @@ Private Attributes</h2></td></tr>
2141
2140
  <tr>
2142
2141
  <td class="paramkey"></td>
2143
2142
  <td></td>
2144
- <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#aade2bc55c3882a6cacc3c4a891a1c4a3">Condition</a> *&#160;</td>
2143
+ <td class="paramtype"><a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td>
2145
2144
  <td class="paramname"><em>cond</em>&#160;</td>
2146
2145
  </tr>
2147
2146
  <tr>
@@ -2165,8 +2164,8 @@ Private Attributes</h2></td></tr>
2165
2164
  </div><!-- fragment -->
2166
2165
  </div>
2167
2166
  </div>
2168
- <a id="ab85a1ab3580958361ea5ec29efc75874"></a>
2169
- <h2 class="memtitle"><span class="permalink"><a href="#ab85a1ab3580958361ea5ec29efc75874">&#9670;&nbsp;</a></span>setCondInst()</h2>
2167
+ <a id="a51feefd408094a69f0fbe97cba181bf9"></a>
2168
+ <h2 class="memtitle"><span class="permalink"><a href="#a51feefd408094a69f0fbe97cba181bf9">&#9670;&nbsp;</a></span>setCondInst()</h2>
2170
2169
 
2171
2170
  <div class="memitem">
2172
2171
  <div class="memproto">
@@ -2177,7 +2176,7 @@ Private Attributes</h2></td></tr>
2177
2176
  <tr>
2178
2177
  <td class="memname">void SVF::PathCondAllocator::setCondInst </td>
2179
2178
  <td>(</td>
2180
- <td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
2179
+ <td class="paramtype">const <a class="el" href="classSVF_1_1PathCondAllocator.html#a923cc78e9f6779a0e6172b98e8f44925">Condition</a> *&#160;</td>
2181
2180
  <td class="paramname"><em>cond</em>, </td>
2182
2181
  </tr>
2183
2182
  <tr>
@@ -2200,8 +2199,8 @@ Private Attributes</h2></td></tr>
2200
2199
  </div><div class="memdoc">
2201
2200
 
2202
2201
  <p class="definition">Definition at line <a class="el" href="PathCondAllocator_8h_source.html#l00136">136</a> of file <a class="el" href="PathCondAllocator_8h_source.html">PathCondAllocator.h</a>.</p>
2203
- <div class="fragment"><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">condMgr</a>-&gt;<a class="code" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">setCondInst</a>(cond, inst);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="ttc" id="classSVF_1_1CondManager_html_a1fbf7dd446309e13671d838c91da26bf"><div class="ttname"><a href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">SVF::CondManager::setCondInst</a></div><div class="ttdeci">void setCondInst(const CondExpr *cond, const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00212">Conditions.h:212</a></div></div>
2204
- <div class="ttc" id="classSVF_1_1PathCondAllocator_html_aacf96d4b7154f6c2dc12ab9e19702fcd"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#aacf96d4b7154f6c2dc12ab9e19702fcd">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">CondManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
2202
+ <div class="fragment"><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">condMgr</a>-&gt;<a class="code" href="classSVF_1_1BDDExprManager.html#afc1d4301a3453c920f9b92ac53101bfe">setCondInst</a>(cond, inst);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_afc1d4301a3453c920f9b92ac53101bfe"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#afc1d4301a3453c920f9b92ac53101bfe">SVF::BDDExprManager::setCondInst</a></div><div class="ttdeci">void setCondInst(const BDDExpr *cond, const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00144">BDDExpr.h:144</a></div></div>
2203
+ <div class="ttc" id="classSVF_1_1PathCondAllocator_html_a3f331564529091540cf587e575b0bc3a"><div class="ttname"><a href="classSVF_1_1PathCondAllocator.html#a3f331564529091540cf587e575b0bc3a">SVF::PathCondAllocator::condMgr</a></div><div class="ttdeci">BDDExprManager * condMgr</div><div class="ttdoc">z3 manager </div><div class="ttdef"><b>Definition:</b> <a href="PathCondAllocator_8h_source.html#l00289">PathCondAllocator.h:289</a></div></div>
2205
2204
  </div><!-- fragment -->
2206
2205
  </div>
2207
2206
  </div>
@@ -2315,8 +2314,8 @@ Private Attributes</h2></td></tr>
2315
2314
 
2316
2315
  </div>
2317
2316
  </div>
2318
- <a id="aacf96d4b7154f6c2dc12ab9e19702fcd"></a>
2319
- <h2 class="memtitle"><span class="permalink"><a href="#aacf96d4b7154f6c2dc12ab9e19702fcd">&#9670;&nbsp;</a></span>condMgr</h2>
2317
+ <a id="a3f331564529091540cf587e575b0bc3a"></a>
2318
+ <h2 class="memtitle"><span class="permalink"><a href="#a3f331564529091540cf587e575b0bc3a">&#9670;&nbsp;</a></span>condMgr</h2>
2320
2319
 
2321
2320
  <div class="memitem">
2322
2321
  <div class="memproto">
@@ -2325,7 +2324,7 @@ Private Attributes</h2></td></tr>
2325
2324
  <td class="mlabels-left">
2326
2325
  <table class="memname">
2327
2326
  <tr>
2328
- <td class="memname"><a class="el" href="classSVF_1_1CondManager.html">CondManager</a>* SVF::PathCondAllocator::condMgr</td>
2327
+ <td class="memname"><a class="el" href="classSVF_1_1BDDExprManager.html">BDDExprManager</a>* SVF::PathCondAllocator::condMgr</td>
2329
2328
  </tr>
2330
2329
  </table>
2331
2330
  </td>