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
@@ -0,0 +1,1318 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
+ <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
+ <meta name="generator" content="Doxygen 1.8.13"/>
7
+ <meta name="viewport" content="width=device-width, initial-scale=1"/>
8
+ <title>Static Value-Flow Analysis: SVF::BDDExprManager Class Reference</title>
9
+ <link href="tabs.css" rel="stylesheet" type="text/css"/>
10
+ <script type="text/javascript" src="jquery.js"></script>
11
+ <script type="text/javascript" src="dynsections.js"></script>
12
+ <link href="search/search.css" rel="stylesheet" type="text/css"/>
13
+ <script type="text/javascript" src="search/searchdata.js"></script>
14
+ <script type="text/javascript" src="search/search.js"></script>
15
+ <link href="doxygen.css" rel="stylesheet" type="text/css" />
16
+ </head>
17
+ <body>
18
+ <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
19
+ <div id="titlearea">
20
+ <table cellspacing="0" cellpadding="0">
21
+ <tbody>
22
+ <tr style="height: 56px;">
23
+ <td id="projectalign" style="padding-left: 0.5em;">
24
+ <div id="projectname">Static Value-Flow Analysis
25
+ </div>
26
+ </td>
27
+ </tr>
28
+ </tbody>
29
+ </table>
30
+ </div>
31
+ <!-- end header part -->
32
+ <!-- Generated by Doxygen 1.8.13 -->
33
+ <script type="text/javascript">
34
+ var searchBox = new SearchBox("searchBox", "search",false,'Search');
35
+ </script>
36
+ <script type="text/javascript" src="menudata.js"></script>
37
+ <script type="text/javascript" src="menu.js"></script>
38
+ <script type="text/javascript">
39
+ $(function() {
40
+ initMenu('',true,false,'search.php','Search');
41
+ $(document).ready(function() { init_search(); });
42
+ });
43
+ </script>
44
+ <div id="main-nav"></div>
45
+ <!-- window showing the filter options -->
46
+ <div id="MSearchSelectWindow"
47
+ onmouseover="return searchBox.OnSearchSelectShow()"
48
+ onmouseout="return searchBox.OnSearchSelectHide()"
49
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
50
+ </div>
51
+
52
+ <!-- iframe showing the search results (closed by default) -->
53
+ <div id="MSearchResultsWindow">
54
+ <iframe src="javascript:void(0)" frameborder="0"
55
+ name="MSearchResults" id="MSearchResults">
56
+ </iframe>
57
+ </div>
58
+
59
+ <div id="nav-path" class="navpath">
60
+ <ul>
61
+ <li class="navelem"><a class="el" href="namespaceSVF.html">SVF</a></li><li class="navelem"><a class="el" href="classSVF_1_1BDDExprManager.html">BDDExprManager</a></li> </ul>
62
+ </div>
63
+ </div><!-- top -->
64
+ <div class="header">
65
+ <div class="summary">
66
+ <a href="#pub-types">Public Types</a> &#124;
67
+ <a href="#pub-methods">Public Member Functions</a> &#124;
68
+ <a href="#pub-static-attribs">Static Public Attributes</a> &#124;
69
+ <a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
70
+ <a href="#pri-methods">Private Member Functions</a> &#124;
71
+ <a href="#pri-attribs">Private Attributes</a> &#124;
72
+ <a href="#pri-static-attribs">Static Private Attributes</a> &#124;
73
+ <a href="classSVF_1_1BDDExprManager-members.html">List of all members</a> </div>
74
+ <div class="headertitle">
75
+ <div class="title">SVF::BDDExprManager Class Reference</div> </div>
76
+ </div><!--header-->
77
+ <div class="contents">
78
+
79
+ <p><code>#include &lt;<a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>&gt;</code></p>
80
+ <table class="memberdecls">
81
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
82
+ Public Types</h2></td></tr>
83
+ <tr class="memitem:a90e685c420e4ac20104498883dbed9ea"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structDdNode.html">DdNode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a></td></tr>
84
+ <tr class="separator:a90e685c420e4ac20104498883dbed9ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
85
+ <tr class="memitem:a0e0c83c5affc6a4ec67001e33913b035"><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_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a0e0c83c5affc6a4ec67001e33913b035">IndexToBDDExpr</a></td></tr>
86
+ <tr class="separator:a0e0c83c5affc6a4ec67001e33913b035"><td class="memSeparator" colspan="2">&#160;</td></tr>
87
+ <tr class="memitem:a818712f314ec1f1378134d7222c006d0"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *, const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a818712f314ec1f1378134d7222c006d0">CondToTermInstMap</a></td></tr>
88
+ <tr class="separator:a818712f314ec1f1378134d7222c006d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
89
+ </table><table class="memberdecls">
90
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
91
+ Public Member Functions</h2></td></tr>
92
+ <tr class="memitem:aecc9ec67017d4f5309cba7be6e83deea"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#aecc9ec67017d4f5309cba7be6e83deea">~BDDExprManager</a> ()</td></tr>
93
+ <tr class="memdesc:aecc9ec67017d4f5309cba7be6e83deea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="#aecc9ec67017d4f5309cba7be6e83deea">More...</a><br /></td></tr>
94
+ <tr class="separator:aecc9ec67017d4f5309cba7be6e83deea"><td class="memSeparator" colspan="2">&#160;</td></tr>
95
+ <tr class="memitem:a1c8d1eba6a33b2c2f9925cbdffe1e64a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a1c8d1eba6a33b2c2f9925cbdffe1e64a">createCond</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i)</td></tr>
96
+ <tr class="separator:a1c8d1eba6a33b2c2f9925cbdffe1e64a"><td class="memSeparator" colspan="2">&#160;</td></tr>
97
+ <tr class="memitem:a7275a1d4da75370cf5f5f8499fcafa2b"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a7275a1d4da75370cf5f5f8499fcafa2b">createFreshBranchCond</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
98
+ <tr class="memdesc:a7275a1d4da75370cf5f5f8499fcafa2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a fresh condition to encode each program branch. <a href="#a7275a1d4da75370cf5f5f8499fcafa2b">More...</a><br /></td></tr>
99
+ <tr class="separator:a7275a1d4da75370cf5f5f8499fcafa2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
100
+ <tr class="memitem:a39d4e4c5c4290dcdb8b00e05b56f7302"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a39d4e4c5c4290dcdb8b00e05b56f7302">getCondNumber</a> ()</td></tr>
101
+ <tr class="memdesc:a39d4e4c5c4290dcdb8b00e05b56f7302"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of condition expressions. <a href="#a39d4e4c5c4290dcdb8b00e05b56f7302">More...</a><br /></td></tr>
102
+ <tr class="separator:a39d4e4c5c4290dcdb8b00e05b56f7302"><td class="memSeparator" colspan="2">&#160;</td></tr>
103
+ <tr class="memitem:a765d97ba6065a96a61209c59fdbb4b01"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a765d97ba6065a96a61209c59fdbb4b01">getTrueCond</a> () const</td></tr>
104
+ <tr class="memdesc:a765d97ba6065a96a61209c59fdbb4b01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the unique true condition. <a href="#a765d97ba6065a96a61209c59fdbb4b01">More...</a><br /></td></tr>
105
+ <tr class="separator:a765d97ba6065a96a61209c59fdbb4b01"><td class="memSeparator" colspan="2">&#160;</td></tr>
106
+ <tr class="memitem:a34f5354a436840202428e406468e2335"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a34f5354a436840202428e406468e2335">getFalseCond</a> () const</td></tr>
107
+ <tr class="memdesc:a34f5354a436840202428e406468e2335"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the unique false condition. <a href="#a34f5354a436840202428e406468e2335">More...</a><br /></td></tr>
108
+ <tr class="separator:a34f5354a436840202428e406468e2335"><td class="memSeparator" colspan="2">&#160;</td></tr>
109
+ <tr class="memitem:a2d07075a8948d9baf4de31d840aa7a17"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a2d07075a8948d9baf4de31d840aa7a17">isNegCond</a> (const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *cond)</td></tr>
110
+ <tr class="separator:a2d07075a8948d9baf4de31d840aa7a17"><td class="memSeparator" colspan="2">&#160;</td></tr>
111
+ <tr class="memitem:a26a49a796e0747b173c380f3658a7ad3"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a26a49a796e0747b173c380f3658a7ad3">isSatisfiable</a> (const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *cond)</td></tr>
112
+ <tr class="memdesc:a26a49a796e0747b173c380f3658a7ad3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether the condition is satisfiable. <a href="#a26a49a796e0747b173c380f3658a7ad3">More...</a><br /></td></tr>
113
+ <tr class="separator:a26a49a796e0747b173c380f3658a7ad3"><td class="memSeparator" colspan="2">&#160;</td></tr>
114
+ <tr class="memitem:a9ac35220d1364a8e6d9bb32e3c236db2"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a9ac35220d1364a8e6d9bb32e3c236db2">isEquivalentBranchCond</a> (const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *lhs, const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *rhs)</td></tr>
115
+ <tr class="memdesc:a9ac35220d1364a8e6d9bb32e3c236db2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether lhs and rhs are equivalent branch conditions. <a href="#a9ac35220d1364a8e6d9bb32e3c236db2">More...</a><br /></td></tr>
116
+ <tr class="separator:a9ac35220d1364a8e6d9bb32e3c236db2"><td class="memSeparator" colspan="2">&#160;</td></tr>
117
+ <tr class="memitem:afb30b41edd5bb6478d30778bc7f09e15"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#afb30b41edd5bb6478d30778bc7f09e15">isAllPathReachable</a> (const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *e)</td></tr>
118
+ <tr class="memdesc:afb30b41edd5bb6478d30778bc7f09e15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether <b>All Paths</b> are reachable. <a href="#afb30b41edd5bb6478d30778bc7f09e15">More...</a><br /></td></tr>
119
+ <tr class="separator:afb30b41edd5bb6478d30778bc7f09e15"><td class="memSeparator" colspan="2">&#160;</td></tr>
120
+ <tr class="memitem:a58186fe706c8c44467b789d8ebd58474"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a58186fe706c8c44467b789d8ebd58474">getCond</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> id)</td></tr>
121
+ <tr class="memdesc:a58186fe706c8c44467b789d8ebd58474"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get condition using condition id (z3 ast id) <a href="#a58186fe706c8c44467b789d8ebd58474">More...</a><br /></td></tr>
122
+ <tr class="separator:a58186fe706c8c44467b789d8ebd58474"><td class="memSeparator" colspan="2">&#160;</td></tr>
123
+ <tr class="memitem:a40e32bc52cce8ac1335b5050e693035b"><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_1BDDExprManager.html#a40e32bc52cce8ac1335b5050e693035b">getCondInst</a> (const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *cond) const</td></tr>
124
+ <tr class="memdesc:a40e32bc52cce8ac1335b5050e693035b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Set llvm conditional expression. <a href="#a40e32bc52cce8ac1335b5050e693035b">More...</a><br /></td></tr>
125
+ <tr class="separator:a40e32bc52cce8ac1335b5050e693035b"><td class="memSeparator" colspan="2">&#160;</td></tr>
126
+ <tr class="memitem:afc1d4301a3453c920f9b92ac53101bfe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#afc1d4301a3453c920f9b92ac53101bfe">setCondInst</a> (const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *cond, const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
127
+ <tr class="separator:afc1d4301a3453c920f9b92ac53101bfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
128
+ <tr class="memitem:a78e653083609764e10774a73fbcce2d1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a78e653083609764e10774a73fbcce2d1">ddClearFlag</a> (<a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *f) const</td></tr>
129
+ <tr class="separator:a78e653083609764e10774a73fbcce2d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
130
+ <tr class="memitem:adc2d7b6e5336173550f29f7c5bd2ce0e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#adc2d7b6e5336173550f29f7c5bd2ce0e">BddSupportStep</a> (<a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *f, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;support) const</td></tr>
131
+ <tr class="separator:adc2d7b6e5336173550f29f7c5bd2ce0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
132
+ <tr class="memitem:a5bbd80a97aa794da9568716e456cf40c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a5bbd80a97aa794da9568716e456cf40c">extractSubConds</a> (const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *f, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;support) const</td></tr>
133
+ <tr class="separator:a5bbd80a97aa794da9568716e456cf40c"><td class="memSeparator" colspan="2">&#160;</td></tr>
134
+ <tr class="memitem:ae9a81416569c44bb384b61e47ade8bde"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#ae9a81416569c44bb384b61e47ade8bde">dump</a> (const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *lhs, <a class="el" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</a> &amp;O)</td></tr>
135
+ <tr class="separator:ae9a81416569c44bb384b61e47ade8bde"><td class="memSeparator" colspan="2">&#160;</td></tr>
136
+ <tr class="memitem:aa42ab1c5e6b2774be528bb33f0ca3c7b"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#aa42ab1c5e6b2774be528bb33f0ca3c7b">dumpStr</a> (const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *e) const</td></tr>
137
+ <tr class="separator:aa42ab1c5e6b2774be528bb33f0ca3c7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
138
+ <tr class="memitem:a7cb0ba9829434de3c40a2c45beea7741"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a7cb0ba9829434de3c40a2c45beea7741">getMemUsage</a> ()</td></tr>
139
+ <tr class="separator:a7cb0ba9829434de3c40a2c45beea7741"><td class="memSeparator" colspan="2">&#160;</td></tr>
140
+ <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
141
+ <tr class="memitem:ac154e934958738288e730faece029436"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#ac154e934958738288e730faece029436">AND</a> (<a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *lhs, <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *rhs)</td></tr>
142
+ <tr class="memdesc:ac154e934958738288e730faece029436"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operations on conditions. <a href="#ac154e934958738288e730faece029436">More...</a><br /></td></tr>
143
+ <tr class="separator:ac154e934958738288e730faece029436"><td class="memSeparator" colspan="2">&#160;</td></tr>
144
+ <tr class="memitem:a276f68eefe6b168ad5dc9e32c4f265bd"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a276f68eefe6b168ad5dc9e32c4f265bd">OR</a> (<a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *lhs, <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *rhs)</td></tr>
145
+ <tr class="separator:a276f68eefe6b168ad5dc9e32c4f265bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
146
+ <tr class="memitem:ace340608e136c33867b3e1a986d65c81"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#ace340608e136c33867b3e1a986d65c81">NEG</a> (<a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *lhs)</td></tr>
147
+ <tr class="separator:ace340608e136c33867b3e1a986d65c81"><td class="memSeparator" colspan="2">&#160;</td></tr>
148
+ </table><table class="memberdecls">
149
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
150
+ Static Public Member Functions</h2></td></tr>
151
+ <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
152
+ <tr class="memitem:ae7be20333ab86fb5297b33923562c7a5"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1BDDExprManager.html">BDDExprManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#ae7be20333ab86fb5297b33923562c7a5">getBDDExprMgr</a> ()</td></tr>
153
+ <tr class="memdesc:ae7be20333ab86fb5297b33923562c7a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Singleton design here to make sure we only have one instance during any analysis. <a href="#ae7be20333ab86fb5297b33923562c7a5">More...</a><br /></td></tr>
154
+ <tr class="separator:ae7be20333ab86fb5297b33923562c7a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
155
+ <tr class="memitem:a560d3389fc5ca59b590441cf2f1f43ec"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a560d3389fc5ca59b590441cf2f1f43ec">releaseBDDExprMgr</a> ()</td></tr>
156
+ <tr class="separator:a560d3389fc5ca59b590441cf2f1f43ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
157
+ </table><table class="memberdecls">
158
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
159
+ Static Public Attributes</h2></td></tr>
160
+ <tr class="memitem:a8d034c572bed854582c391674a5b4f18"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a8d034c572bed854582c391674a5b4f18">totalCondNum</a> = 0</td></tr>
161
+ <tr class="separator:a8d034c572bed854582c391674a5b4f18"><td class="memSeparator" colspan="2">&#160;</td></tr>
162
+ </table><table class="memberdecls">
163
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
164
+ Static Protected Attributes</h2></td></tr>
165
+ <tr class="memitem:acf9824ae990ee816bf182fb9e4a14053"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#acf9824ae990ee816bf182fb9e4a14053">trueCond</a> = nullptr</td></tr>
166
+ <tr class="separator:acf9824ae990ee816bf182fb9e4a14053"><td class="memSeparator" colspan="2">&#160;</td></tr>
167
+ <tr class="memitem:a7c9d970f02b142a5ca05f8d67e974269"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a7c9d970f02b142a5ca05f8d67e974269">falseCond</a> = nullptr</td></tr>
168
+ <tr class="separator:a7c9d970f02b142a5ca05f8d67e974269"><td class="memSeparator" colspan="2">&#160;</td></tr>
169
+ </table><table class="memberdecls">
170
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
171
+ Private Member Functions</h2></td></tr>
172
+ <tr class="memitem:ad3a15ad0aaa40945fd4be7564c5bed64"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#ad3a15ad0aaa40945fd4be7564c5bed64">BddOne</a> () const</td></tr>
173
+ <tr class="separator:ad3a15ad0aaa40945fd4be7564c5bed64"><td class="memSeparator" colspan="2">&#160;</td></tr>
174
+ <tr class="memitem:af256907dc3ce3ae8cbf4ab75fa1f309f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#af256907dc3ce3ae8cbf4ab75fa1f309f">BddZero</a> () const</td></tr>
175
+ <tr class="separator:af256907dc3ce3ae8cbf4ab75fa1f309f"><td class="memSeparator" colspan="2">&#160;</td></tr>
176
+ <tr class="memitem:a632e4559983a49e1d05bb51e46aeba78"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a632e4559983a49e1d05bb51e46aeba78">BDDExprManager</a> ()</td></tr>
177
+ <tr class="memdesc:a632e4559983a49e1d05bb51e46aeba78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#a632e4559983a49e1d05bb51e46aeba78">More...</a><br /></td></tr>
178
+ <tr class="separator:a632e4559983a49e1d05bb51e46aeba78"><td class="memSeparator" colspan="2">&#160;</td></tr>
179
+ </table><table class="memberdecls">
180
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
181
+ Private Attributes</h2></td></tr>
182
+ <tr class="memitem:a252928e3ee1032a9e9e5aa276836b460"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BDDExprManager.html#a0e0c83c5affc6a4ec67001e33913b035">IndexToBDDExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a252928e3ee1032a9e9e5aa276836b460">indexToBddCondMap</a></td></tr>
183
+ <tr class="separator:a252928e3ee1032a9e9e5aa276836b460"><td class="memSeparator" colspan="2">&#160;</td></tr>
184
+ <tr class="memitem:ae17830ea476e0ba786e98831bd2b4f50"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDdManager.html">DdManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">m_bdd_mgr</a></td></tr>
185
+ <tr class="separator:ae17830ea476e0ba786e98831bd2b4f50"><td class="memSeparator" colspan="2">&#160;</td></tr>
186
+ <tr class="memitem:a752dd196d3bd1d782e1290630c4daff0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BDDExprManager.html#a818712f314ec1f1378134d7222c006d0">CondToTermInstMap</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a752dd196d3bd1d782e1290630c4daff0">condToInstMap</a></td></tr>
187
+ <tr class="memdesc:a752dd196d3bd1d782e1290630c4daff0"><td class="mdescLeft">&#160;</td><td class="mdescRight">map condition to llvm instruction <a href="#a752dd196d3bd1d782e1290630c4daff0">More...</a><br /></td></tr>
188
+ <tr class="separator:a752dd196d3bd1d782e1290630c4daff0"><td class="memSeparator" colspan="2">&#160;</td></tr>
189
+ </table><table class="memberdecls">
190
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-attribs"></a>
191
+ Static Private Attributes</h2></td></tr>
192
+ <tr class="memitem:a77a80afdf1cece7159d295f7ba11ae8f"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1BDDExprManager.html">BDDExprManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDExprManager.html#a77a80afdf1cece7159d295f7ba11ae8f">bddExprMgr</a> = nullptr</td></tr>
193
+ <tr class="separator:a77a80afdf1cece7159d295f7ba11ae8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
194
+ </table>
195
+ <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
196
+ <div class="textblock">
197
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00041">41</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
198
+ </div><h2 class="groupheader">Member Typedef Documentation</h2>
199
+ <a id="a90e685c420e4ac20104498883dbed9ea"></a>
200
+ <h2 class="memtitle"><span class="permalink"><a href="#a90e685c420e4ac20104498883dbed9ea">&#9670;&nbsp;</a></span>BDDExpr</h2>
201
+
202
+ <div class="memitem">
203
+ <div class="memproto">
204
+ <table class="memname">
205
+ <tr>
206
+ <td class="memname">typedef <a class="el" href="structDdNode.html">DdNode</a> <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">SVF::BDDExprManager::BDDExpr</a></td>
207
+ </tr>
208
+ </table>
209
+ </div><div class="memdoc">
210
+
211
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00043">43</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
212
+
213
+ </div>
214
+ </div>
215
+ <a id="a818712f314ec1f1378134d7222c006d0"></a>
216
+ <h2 class="memtitle"><span class="permalink"><a href="#a818712f314ec1f1378134d7222c006d0">&#9670;&nbsp;</a></span>CondToTermInstMap</h2>
217
+
218
+ <div class="memitem">
219
+ <div class="memproto">
220
+ <table class="memname">
221
+ <tr>
222
+ <td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt;const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *, const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&gt; <a class="el" href="classSVF_1_1BDDExprManager.html#a818712f314ec1f1378134d7222c006d0">SVF::BDDExprManager::CondToTermInstMap</a></td>
223
+ </tr>
224
+ </table>
225
+ </div><div class="memdoc">
226
+
227
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00062">62</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
228
+
229
+ </div>
230
+ </div>
231
+ <a id="a0e0c83c5affc6a4ec67001e33913b035"></a>
232
+ <h2 class="memtitle"><span class="permalink"><a href="#a0e0c83c5affc6a4ec67001e33913b035">&#9670;&nbsp;</a></span>IndexToBDDExpr</h2>
233
+
234
+ <div class="memitem">
235
+ <div class="memproto">
236
+ <table class="memname">
237
+ <tr>
238
+ <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_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&gt; <a class="el" href="classSVF_1_1BDDExprManager.html#a0e0c83c5affc6a4ec67001e33913b035">SVF::BDDExprManager::IndexToBDDExpr</a></td>
239
+ </tr>
240
+ </table>
241
+ </div><div class="memdoc">
242
+
243
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00044">44</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
244
+
245
+ </div>
246
+ </div>
247
+ <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
248
+ <a id="a632e4559983a49e1d05bb51e46aeba78"></a>
249
+ <h2 class="memtitle"><span class="permalink"><a href="#a632e4559983a49e1d05bb51e46aeba78">&#9670;&nbsp;</a></span>BDDExprManager()</h2>
250
+
251
+ <div class="memitem">
252
+ <div class="memproto">
253
+ <table class="mlabels">
254
+ <tr>
255
+ <td class="mlabels-left">
256
+ <table class="memname">
257
+ <tr>
258
+ <td class="memname">BDDExprManager::BDDExprManager </td>
259
+ <td>(</td>
260
+ <td class="paramname"></td><td>)</td>
261
+ <td></td>
262
+ </tr>
263
+ </table>
264
+ </td>
265
+ <td class="mlabels-right">
266
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
267
+ </tr>
268
+ </table>
269
+ </div><div class="memdoc">
270
+
271
+ <p>Constructor. </p>
272
+
273
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8cpp_source.html#l00043">43</a> of file <a class="el" href="BDDExpr_8cpp_source.html">BDDExpr.cpp</a>.</p>
274
+ <div class="fragment"><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">m_bdd_mgr</a> = <a class="code" href="cudd_8h.html#a72894f8bc06257ab2a667acb742a3ab6">Cudd_Init</a>(0, 0, <a class="code" href="cudd_8h.html#a5898eb92cde4c11e117bb88330b50019">CUDD_UNIQUE_SLOTS</a>, <a class="code" href="cudd_8h.html#ae43ddb042121362b558a2ff66dd829ed">CUDD_CACHE_SLOTS</a>, 0);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#acf9824ae990ee816bf182fb9e4a14053">trueCond</a> = <a class="code" href="classSVF_1_1BDDExprManager.html#ad3a15ad0aaa40945fd4be7564c5bed64">BddOne</a>();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#a7c9d970f02b142a5ca05f8d67e974269">falseCond</a> = <a class="code" href="classSVF_1_1BDDExprManager.html#af256907dc3ce3ae8cbf4ab75fa1f309f">BddZero</a>();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div><div class="ttc" id="cudd_8h_html_a5898eb92cde4c11e117bb88330b50019"><div class="ttname"><a href="cudd_8h.html#a5898eb92cde4c11e117bb88330b50019">CUDD_UNIQUE_SLOTS</a></div><div class="ttdeci">#define CUDD_UNIQUE_SLOTS</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00090">cudd.h:90</a></div></div>
275
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a7c9d970f02b142a5ca05f8d67e974269"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a7c9d970f02b142a5ca05f8d67e974269">SVF::BDDExprManager::falseCond</a></div><div class="ttdeci">static BDDExpr * falseCond</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00170">BDDExpr.h:170</a></div></div>
276
+ <div class="ttc" id="cudd_8h_html_ae43ddb042121362b558a2ff66dd829ed"><div class="ttname"><a href="cudd_8h.html#ae43ddb042121362b558a2ff66dd829ed">CUDD_CACHE_SLOTS</a></div><div class="ttdeci">#define CUDD_CACHE_SLOTS</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00091">cudd.h:91</a></div></div>
277
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_ae17830ea476e0ba786e98831bd2b4f50"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">SVF::BDDExprManager::m_bdd_mgr</a></div><div class="ttdeci">DdManager * m_bdd_mgr</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00048">BDDExpr.h:48</a></div></div>
278
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_ad3a15ad0aaa40945fd4be7564c5bed64"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#ad3a15ad0aaa40945fd4be7564c5bed64">SVF::BDDExprManager::BddOne</a></div><div class="ttdeci">BDDExpr * BddOne() const</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00050">BDDExpr.h:50</a></div></div>
279
+ <div class="ttc" id="cudd_8h_html_a72894f8bc06257ab2a667acb742a3ab6"><div class="ttname"><a href="cudd_8h.html#a72894f8bc06257ab2a667acb742a3ab6">Cudd_Init</a></div><div class="ttdeci">DdManager * Cudd_Init(unsigned int numVars, unsigned int numVarsZ, unsigned int numSlots, unsigned int cacheSize, unsigned long maxMemory)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l10544">cuddInt.c:10544</a></div></div>
280
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_af256907dc3ce3ae8cbf4ab75fa1f309f"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#af256907dc3ce3ae8cbf4ab75fa1f309f">SVF::BDDExprManager::BddZero</a></div><div class="ttdeci">BDDExpr * BddZero() const</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00054">BDDExpr.h:54</a></div></div>
281
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_acf9824ae990ee816bf182fb9e4a14053"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#acf9824ae990ee816bf182fb9e4a14053">SVF::BDDExprManager::trueCond</a></div><div class="ttdeci">static BDDExpr * trueCond</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00169">BDDExpr.h:169</a></div></div>
282
+ </div><!-- fragment -->
283
+ </div>
284
+ </div>
285
+ <a id="aecc9ec67017d4f5309cba7be6e83deea"></a>
286
+ <h2 class="memtitle"><span class="permalink"><a href="#aecc9ec67017d4f5309cba7be6e83deea">&#9670;&nbsp;</a></span>~BDDExprManager()</h2>
287
+
288
+ <div class="memitem">
289
+ <div class="memproto">
290
+ <table class="mlabels">
291
+ <tr>
292
+ <td class="mlabels-left">
293
+ <table class="memname">
294
+ <tr>
295
+ <td class="memname">BDDExprManager::~BDDExprManager </td>
296
+ <td>(</td>
297
+ <td class="paramname"></td><td>)</td>
298
+ <td></td>
299
+ </tr>
300
+ </table>
301
+ </td>
302
+ <td class="mlabels-right">
303
+ <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
304
+ </tr>
305
+ </table>
306
+ </div><div class="memdoc">
307
+
308
+ <p>Destructor. </p>
309
+
310
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8cpp_source.html#l00049">49</a> of file <a class="el" href="BDDExpr_8cpp_source.html">BDDExpr.cpp</a>.</p>
311
+ <div class="fragment"><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; <a class="code" href="cudd_8h.html#a2889ace3fcf7d4e00915de52554fd475">Cudd_Quit</a>(<a class="code" href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">m_bdd_mgr</a>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_ae17830ea476e0ba786e98831bd2b4f50"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">SVF::BDDExprManager::m_bdd_mgr</a></div><div class="ttdeci">DdManager * m_bdd_mgr</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00048">BDDExpr.h:48</a></div></div>
312
+ <div class="ttc" id="cudd_8h_html_a2889ace3fcf7d4e00915de52554fd475"><div class="ttname"><a href="cudd_8h.html#a2889ace3fcf7d4e00915de52554fd475">Cudd_Quit</a></div><div class="ttdeci">void Cudd_Quit(DdManager *unique)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l10641">cuddInt.c:10641</a></div></div>
313
+ </div><!-- fragment -->
314
+ </div>
315
+ </div>
316
+ <h2 class="groupheader">Member Function Documentation</h2>
317
+ <a id="ac154e934958738288e730faece029436"></a>
318
+ <h2 class="memtitle"><span class="permalink"><a href="#ac154e934958738288e730faece029436">&#9670;&nbsp;</a></span>AND()</h2>
319
+
320
+ <div class="memitem">
321
+ <div class="memproto">
322
+ <table class="mlabels">
323
+ <tr>
324
+ <td class="mlabels-left">
325
+ <table class="memname">
326
+ <tr>
327
+ <td class="memname"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExprManager::BDDExpr</a> * BDDExprManager::AND </td>
328
+ <td>(</td>
329
+ <td class="paramtype"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td>
330
+ <td class="paramname"><em>lhs</em>, </td>
331
+ </tr>
332
+ <tr>
333
+ <td class="paramkey"></td>
334
+ <td></td>
335
+ <td class="paramtype"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td>
336
+ <td class="paramname"><em>rhs</em>&#160;</td>
337
+ </tr>
338
+ <tr>
339
+ <td></td>
340
+ <td>)</td>
341
+ <td></td><td></td>
342
+ </tr>
343
+ </table>
344
+ </td>
345
+ <td class="mlabels-right">
346
+ <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
347
+ </tr>
348
+ </table>
349
+ </div><div class="memdoc">
350
+
351
+ <p>Operations on conditions. </p>
352
+ <p>use Cudd_bddAndLimit interface to avoid bdds blow up </p>
353
+ <p>drop the rhs condition </p>
354
+
355
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8cpp_source.html#l00072">72</a> of file <a class="el" href="BDDExpr_8cpp_source.html">BDDExpr.cpp</a>.</p>
356
+ <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">if</span> (lhs == <a class="code" href="classSVF_1_1BDDExprManager.html#a34f5354a436840202428e406468e2335">getFalseCond</a>() || rhs == <a class="code" href="classSVF_1_1BDDExprManager.html#a34f5354a436840202428e406468e2335">getFalseCond</a>())</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BDDExprManager.html#a34f5354a436840202428e406468e2335">getFalseCond</a>();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1BDDExprManager.html#a765d97ba6065a96a61209c59fdbb4b01">getTrueCond</a>())</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> rhs;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhs == <a class="code" href="classSVF_1_1BDDExprManager.html#a765d97ba6065a96a61209c59fdbb4b01">getTrueCond</a>())</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> lhs;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *tmp = <a class="code" href="cudd_8h.html#adfbb2fd5b9c884df0d684a86dc26a97d">Cudd_bddAndLimit</a>(<a class="code" href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">m_bdd_mgr</a>, lhs, rhs, <a class="code" href="classSVF_1_1Options.html#a344ca0e4b8d9159836e558aed44be1b4">Options::MaxBddSize</a>);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span> (tmp == <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVFUtil::writeWrnMsg</a>(<span class="stringliteral">&quot;exceeds max bdd size \n&quot;</span>);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span> lhs;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="cudd_8h.html#a3d0d9959640235fc073699c776914fca">Cudd_Ref</a>(tmp);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> tmp;</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;}</div><div class="ttc" id="cudd_8h_html_adfbb2fd5b9c884df0d684a86dc26a97d"><div class="ttname"><a href="cudd_8h.html#adfbb2fd5b9c884df0d684a86dc26a97d">Cudd_bddAndLimit</a></div><div class="ttdeci">DdNode * Cudd_bddAndLimit(DdManager *dd, DdNode *f, DdNode *g, unsigned int limit)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l03146">cuddInt.c:3146</a></div></div>
357
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_ae17830ea476e0ba786e98831bd2b4f50"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">SVF::BDDExprManager::m_bdd_mgr</a></div><div class="ttdeci">DdManager * m_bdd_mgr</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00048">BDDExpr.h:48</a></div></div>
358
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a077caa1b10ab84d101d79fc7ea50db2d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVF::SVFUtil::writeWrnMsg</a></div><div class="ttdeci">void writeWrnMsg(std::string msg)</div><div class="ttdoc">Writes a message run through wrnMsg. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00069">SVFUtil.cpp:69</a></div></div>
359
+ <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>
360
+ <div class="ttc" id="classSVF_1_1Options_html_a344ca0e4b8d9159836e558aed44be1b4"><div class="ttname"><a href="classSVF_1_1Options.html#a344ca0e4b8d9159836e558aed44be1b4">SVF::Options::MaxBddSize</a></div><div class="ttdeci">static const llvm::cl::opt&lt; unsigned &gt; MaxBddSize</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00218">Options.h:218</a></div></div>
361
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a90e685c420e4ac20104498883dbed9ea"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">SVF::BDDExprManager::BDDExpr</a></div><div class="ttdeci">DdNode BDDExpr</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00043">BDDExpr.h:43</a></div></div>
362
+ <div class="ttc" id="cudd_8h_html_a3d0d9959640235fc073699c776914fca"><div class="ttname"><a href="cudd_8h.html#a3d0d9959640235fc073699c776914fca">Cudd_Ref</a></div><div class="ttdeci">void Cudd_Ref(DdNode *n)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l14002">cuddInt.c:14002</a></div></div>
363
+ <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>
364
+ </div><!-- fragment -->
365
+ </div>
366
+ </div>
367
+ <a id="ad3a15ad0aaa40945fd4be7564c5bed64"></a>
368
+ <h2 class="memtitle"><span class="permalink"><a href="#ad3a15ad0aaa40945fd4be7564c5bed64">&#9670;&nbsp;</a></span>BddOne()</h2>
369
+
370
+ <div class="memitem">
371
+ <div class="memproto">
372
+ <table class="mlabels">
373
+ <tr>
374
+ <td class="mlabels-left">
375
+ <table class="memname">
376
+ <tr>
377
+ <td class="memname"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a>* SVF::BDDExprManager::BddOne </td>
378
+ <td>(</td>
379
+ <td class="paramname"></td><td>)</td>
380
+ <td> const</td>
381
+ </tr>
382
+ </table>
383
+ </td>
384
+ <td class="mlabels-right">
385
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
386
+ </tr>
387
+ </table>
388
+ </div><div class="memdoc">
389
+
390
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00050">50</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
391
+ <div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cudd_8h.html#a2651c953d81570d3f4f794bcbef40afe">Cudd_ReadOne</a>(<a class="code" href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">m_bdd_mgr</a>);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_ae17830ea476e0ba786e98831bd2b4f50"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">SVF::BDDExprManager::m_bdd_mgr</a></div><div class="ttdeci">DdManager * m_bdd_mgr</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00048">BDDExpr.h:48</a></div></div>
392
+ <div class="ttc" id="cudd_8h_html_a2651c953d81570d3f4f794bcbef40afe"><div class="ttname"><a href="cudd_8h.html#a2651c953d81570d3f4f794bcbef40afe">Cudd_ReadOne</a></div><div class="ttdeci">DdNode * Cudd_ReadOne(DdManager *dd)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l01716">cuddInt.c:1716</a></div></div>
393
+ </div><!-- fragment -->
394
+ </div>
395
+ </div>
396
+ <a id="adc2d7b6e5336173550f29f7c5bd2ce0e"></a>
397
+ <h2 class="memtitle"><span class="permalink"><a href="#adc2d7b6e5336173550f29f7c5bd2ce0e">&#9670;&nbsp;</a></span>BddSupportStep()</h2>
398
+
399
+ <div class="memitem">
400
+ <div class="memproto">
401
+ <table class="memname">
402
+ <tr>
403
+ <td class="memname">void BDDExprManager::BddSupportStep </td>
404
+ <td>(</td>
405
+ <td class="paramtype"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td>
406
+ <td class="paramname"><em>f</em>, </td>
407
+ </tr>
408
+ <tr>
409
+ <td class="paramkey"></td>
410
+ <td></td>
411
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;&#160;</td>
412
+ <td class="paramname"><em>support</em>&#160;</td>
413
+ </tr>
414
+ <tr>
415
+ <td></td>
416
+ <td>)</td>
417
+ <td></td><td> const</td>
418
+ </tr>
419
+ </table>
420
+ </div><div class="memdoc">
421
+
422
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8cpp_source.html#l00149">149</a> of file <a class="el" href="BDDExpr_8cpp_source.html">BDDExpr.cpp</a>.</p>
423
+ <div class="fragment"><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cuddInt_8h.html#aa5cad999b2a4a3dbbfe5c1da1d8bc028">cuddIsConstant</a>(f) || <a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(f-&gt;next))</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; support.set(f-&gt;index);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#adc2d7b6e5336173550f29f7c5bd2ce0e">BddSupportStep</a>(<a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(f), support);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#adc2d7b6e5336173550f29f7c5bd2ce0e">BddSupportStep</a>(<a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(<a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(f)), support);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">/* Mark as visited. */</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; f-&gt;next = <a class="code" href="cudd_8h.html#ac4575f4314998362765264f64eccfe0c">Cudd_Complement</a>(f-&gt;next);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;}</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_adc2d7b6e5336173550f29f7c5bd2ce0e"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#adc2d7b6e5336173550f29f7c5bd2ce0e">SVF::BDDExprManager::BddSupportStep</a></div><div class="ttdeci">void BddSupportStep(BDDExpr *f, NodeBS &amp;support) const</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8cpp_source.html#l00149">BDDExpr.cpp:149</a></div></div>
424
+ <div class="ttc" id="cudd_8h_html_afbbecf4f6f78f92518f4d0a477d870b6"><div class="ttname"><a href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a></div><div class="ttdeci">#define Cudd_Regular(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00373">cudd.h:373</a></div></div>
425
+ <div class="ttc" id="cudd_8h_html_a35322518c24f65f44eda9623083cb62c"><div class="ttname"><a href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a></div><div class="ttdeci">#define Cudd_IsComplement(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00401">cudd.h:401</a></div></div>
426
+ <div class="ttc" id="cuddInt_8h_html_aa5cad999b2a4a3dbbfe5c1da1d8bc028"><div class="ttname"><a href="cuddInt_8h.html#aa5cad999b2a4a3dbbfe5c1da1d8bc028">cuddIsConstant</a></div><div class="ttdeci">#define cuddIsConstant(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00593">cuddInt.h:593</a></div></div>
427
+ <div class="ttc" id="cudd_8h_html_ac4575f4314998362765264f64eccfe0c"><div class="ttname"><a href="cudd_8h.html#ac4575f4314998362765264f64eccfe0c">Cudd_Complement</a></div><div class="ttdeci">#define Cudd_Complement(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00387">cudd.h:387</a></div></div>
428
+ <div class="ttc" id="cuddInt_8h_html_a09834c697b92ac296b1e50c863f88262"><div class="ttname"><a href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a></div><div class="ttdeci">#define cuddT(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00609">cuddInt.h:609</a></div></div>
429
+ <div class="ttc" id="cuddInt_8h_html_aaef03f10591d8e28bb5fecd2aa7c93ff"><div class="ttname"><a href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a></div><div class="ttdeci">#define cuddE(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00625">cuddInt.h:625</a></div></div>
430
+ </div><!-- fragment -->
431
+ </div>
432
+ </div>
433
+ <a id="af256907dc3ce3ae8cbf4ab75fa1f309f"></a>
434
+ <h2 class="memtitle"><span class="permalink"><a href="#af256907dc3ce3ae8cbf4ab75fa1f309f">&#9670;&nbsp;</a></span>BddZero()</h2>
435
+
436
+ <div class="memitem">
437
+ <div class="memproto">
438
+ <table class="mlabels">
439
+ <tr>
440
+ <td class="mlabels-left">
441
+ <table class="memname">
442
+ <tr>
443
+ <td class="memname"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a>* SVF::BDDExprManager::BddZero </td>
444
+ <td>(</td>
445
+ <td class="paramname"></td><td>)</td>
446
+ <td> const</td>
447
+ </tr>
448
+ </table>
449
+ </td>
450
+ <td class="mlabels-right">
451
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
452
+ </tr>
453
+ </table>
454
+ </div><div class="memdoc">
455
+
456
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00054">54</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
457
+ <div class="fragment"><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cudd_8h.html#a1dd42d8cb5c86659170103a3068e13a6">Cudd_ReadLogicZero</a>(<a class="code" href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">m_bdd_mgr</a>);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="ttc" id="cudd_8h_html_a1dd42d8cb5c86659170103a3068e13a6"><div class="ttname"><a href="cudd_8h.html#a1dd42d8cb5c86659170103a3068e13a6">Cudd_ReadLogicZero</a></div><div class="ttdeci">DdNode * Cudd_ReadLogicZero(DdManager *dd)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l01738">cuddInt.c:1738</a></div></div>
458
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_ae17830ea476e0ba786e98831bd2b4f50"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">SVF::BDDExprManager::m_bdd_mgr</a></div><div class="ttdeci">DdManager * m_bdd_mgr</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00048">BDDExpr.h:48</a></div></div>
459
+ </div><!-- fragment -->
460
+ </div>
461
+ </div>
462
+ <a id="a1c8d1eba6a33b2c2f9925cbdffe1e64a"></a>
463
+ <h2 class="memtitle"><span class="permalink"><a href="#a1c8d1eba6a33b2c2f9925cbdffe1e64a">&#9670;&nbsp;</a></span>createCond()</h2>
464
+
465
+ <div class="memitem">
466
+ <div class="memproto">
467
+ <table class="mlabels">
468
+ <tr>
469
+ <td class="mlabels-left">
470
+ <table class="memname">
471
+ <tr>
472
+ <td class="memname"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a>* SVF::BDDExprManager::createCond </td>
473
+ <td>(</td>
474
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&#160;</td>
475
+ <td class="paramname"><em>i</em></td><td>)</td>
476
+ <td></td>
477
+ </tr>
478
+ </table>
479
+ </td>
480
+ <td class="mlabels-right">
481
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
482
+ </tr>
483
+ </table>
484
+ </div><div class="memdoc">
485
+
486
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00077">77</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
487
+ <div class="fragment"><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1BDDExprManager.html#a252928e3ee1032a9e9e5aa276836b460">indexToBddCondMap</a>.find(i) == <a class="code" href="classSVF_1_1BDDExprManager.html#a252928e3ee1032a9e9e5aa276836b460">indexToBddCondMap</a>.end() &amp;&amp;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="stringliteral">&quot;This should be fresh index to create new BDD&quot;</span>);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *bddCond = <a class="code" href="cudd_8h.html#a40fd71665cde402bd5bc4f39015c09ae">Cudd_bddIthVar</a>(<a class="code" href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">m_bdd_mgr</a>, i);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BDDExprManager.html#a252928e3ee1032a9e9e5aa276836b460">indexToBddCondMap</a>.emplace(i, bddCond).first-&gt;second;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</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>
488
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_ae17830ea476e0ba786e98831bd2b4f50"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">SVF::BDDExprManager::m_bdd_mgr</a></div><div class="ttdeci">DdManager * m_bdd_mgr</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00048">BDDExpr.h:48</a></div></div>
489
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a90e685c420e4ac20104498883dbed9ea"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">SVF::BDDExprManager::BDDExpr</a></div><div class="ttdeci">DdNode BDDExpr</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00043">BDDExpr.h:43</a></div></div>
490
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a252928e3ee1032a9e9e5aa276836b460"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a252928e3ee1032a9e9e5aa276836b460">SVF::BDDExprManager::indexToBddCondMap</a></div><div class="ttdeci">IndexToBDDExpr indexToBddCondMap</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00047">BDDExpr.h:47</a></div></div>
491
+ <div class="ttc" id="cudd_8h_html_a40fd71665cde402bd5bc4f39015c09ae"><div class="ttname"><a href="cudd_8h.html#a40fd71665cde402bd5bc4f39015c09ae">Cudd_bddIthVar</a></div><div class="ttdeci">DdNode * Cudd_bddIthVar(DdManager *dd, int i)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l01685">cuddInt.c:1685</a></div></div>
492
+ </div><!-- fragment -->
493
+ </div>
494
+ </div>
495
+ <a id="a7275a1d4da75370cf5f5f8499fcafa2b"></a>
496
+ <h2 class="memtitle"><span class="permalink"><a href="#a7275a1d4da75370cf5f5f8499fcafa2b">&#9670;&nbsp;</a></span>createFreshBranchCond()</h2>
497
+
498
+ <div class="memitem">
499
+ <div class="memproto">
500
+ <table class="mlabels">
501
+ <tr>
502
+ <td class="mlabels-left">
503
+ <table class="memname">
504
+ <tr>
505
+ <td class="memname"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExprManager::BDDExpr</a> * BDDExprManager::createFreshBranchCond </td>
506
+ <td>(</td>
507
+ <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
508
+ <td class="paramname"><em>inst</em></td><td>)</td>
509
+ <td></td>
510
+ </tr>
511
+ </table>
512
+ </td>
513
+ <td class="mlabels-right">
514
+ <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
515
+ </tr>
516
+ </table>
517
+ </div><div class="memdoc">
518
+
519
+ <p>Create a fresh condition to encode each program branch. </p>
520
+
521
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8cpp_source.html#l00060">60</a> of file <a class="el" href="BDDExpr_8cpp_source.html">BDDExpr.cpp</a>.</p>
522
+ <div class="fragment"><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> condCountIdx = <a class="code" href="classSVF_1_1BDDExprManager.html#a8d034c572bed854582c391674a5b4f18">totalCondNum</a>++;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *bddCond = <a class="code" href="classSVF_1_1BDDExprManager.html#a1c8d1eba6a33b2c2f9925cbdffe1e64a">createCond</a>(condCountIdx);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#afc1d4301a3453c920f9b92ac53101bfe">setCondInst</a>(bddCond, inst);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">auto</span> *negCond = <a class="code" href="classSVF_1_1BDDExprManager.html#ace340608e136c33867b3e1a986d65c81">NEG</a>(bddCond);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#afc1d4301a3453c920f9b92ac53101bfe">setCondInst</a>(negCond, inst);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">return</span> bddCond;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_a8d034c572bed854582c391674a5b4f18"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a8d034c572bed854582c391674a5b4f18">SVF::BDDExprManager::totalCondNum</a></div><div class="ttdeci">static u32_t totalCondNum</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00063">BDDExpr.h:63</a></div></div>
523
+ <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>
524
+ <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>
525
+ <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>
526
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a1c8d1eba6a33b2c2f9925cbdffe1e64a"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a1c8d1eba6a33b2c2f9925cbdffe1e64a">SVF::BDDExprManager::createCond</a></div><div class="ttdeci">BDDExpr * createCond(u32_t i)</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00077">BDDExpr.h:77</a></div></div>
527
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a90e685c420e4ac20104498883dbed9ea"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">SVF::BDDExprManager::BDDExpr</a></div><div class="ttdeci">DdNode BDDExpr</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00043">BDDExpr.h:43</a></div></div>
528
+ </div><!-- fragment -->
529
+ </div>
530
+ </div>
531
+ <a id="a78e653083609764e10774a73fbcce2d1"></a>
532
+ <h2 class="memtitle"><span class="permalink"><a href="#a78e653083609764e10774a73fbcce2d1">&#9670;&nbsp;</a></span>ddClearFlag()</h2>
533
+
534
+ <div class="memitem">
535
+ <div class="memproto">
536
+ <table class="memname">
537
+ <tr>
538
+ <td class="memname">void BDDExprManager::ddClearFlag </td>
539
+ <td>(</td>
540
+ <td class="paramtype"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td>
541
+ <td class="paramname"><em>f</em></td><td>)</td>
542
+ <td> const</td>
543
+ </tr>
544
+ </table>
545
+ </div><div class="memdoc">
546
+ <p>Utilities for dumping conditions. These methods use global functions from CUDD package and they can be removed outside this class scope to be used by others. </p>
547
+
548
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8cpp_source.html#l00137">137</a> of file <a class="el" href="BDDExpr_8cpp_source.html">BDDExpr.cpp</a>.</p>
549
+ <div class="fragment"><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(f-&gt;next))</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="comment">/* Clear visited flag. */</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; f-&gt;next = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(f-&gt;next);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cuddInt_8h.html#aa5cad999b2a4a3dbbfe5c1da1d8bc028">cuddIsConstant</a>(f))</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#a78e653083609764e10774a73fbcce2d1">ddClearFlag</a>(<a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(f));</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#a78e653083609764e10774a73fbcce2d1">ddClearFlag</a>(<a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(<a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(f)));</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;}</div><div class="ttc" id="cudd_8h_html_afbbecf4f6f78f92518f4d0a477d870b6"><div class="ttname"><a href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a></div><div class="ttdeci">#define Cudd_Regular(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00373">cudd.h:373</a></div></div>
550
+ <div class="ttc" id="cudd_8h_html_a35322518c24f65f44eda9623083cb62c"><div class="ttname"><a href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a></div><div class="ttdeci">#define Cudd_IsComplement(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00401">cudd.h:401</a></div></div>
551
+ <div class="ttc" id="cuddInt_8h_html_aa5cad999b2a4a3dbbfe5c1da1d8bc028"><div class="ttname"><a href="cuddInt_8h.html#aa5cad999b2a4a3dbbfe5c1da1d8bc028">cuddIsConstant</a></div><div class="ttdeci">#define cuddIsConstant(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00593">cuddInt.h:593</a></div></div>
552
+ <div class="ttc" id="cuddInt_8h_html_a09834c697b92ac296b1e50c863f88262"><div class="ttname"><a href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a></div><div class="ttdeci">#define cuddT(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00609">cuddInt.h:609</a></div></div>
553
+ <div class="ttc" id="cuddInt_8h_html_aaef03f10591d8e28bb5fecd2aa7c93ff"><div class="ttname"><a href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a></div><div class="ttdeci">#define cuddE(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00625">cuddInt.h:625</a></div></div>
554
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a78e653083609764e10774a73fbcce2d1"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a78e653083609764e10774a73fbcce2d1">SVF::BDDExprManager::ddClearFlag</a></div><div class="ttdeci">void ddClearFlag(BDDExpr *f) const</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8cpp_source.html#l00137">BDDExpr.cpp:137</a></div></div>
555
+ </div><!-- fragment -->
556
+ </div>
557
+ </div>
558
+ <a id="ae9a81416569c44bb384b61e47ade8bde"></a>
559
+ <h2 class="memtitle"><span class="permalink"><a href="#ae9a81416569c44bb384b61e47ade8bde">&#9670;&nbsp;</a></span>dump()</h2>
560
+
561
+ <div class="memitem">
562
+ <div class="memproto">
563
+ <table class="memname">
564
+ <tr>
565
+ <td class="memname">void BDDExprManager::dump </td>
566
+ <td>(</td>
567
+ <td class="paramtype">const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td>
568
+ <td class="paramname"><em>lhs</em>, </td>
569
+ </tr>
570
+ <tr>
571
+ <td class="paramkey"></td>
572
+ <td></td>
573
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</a> &amp;&#160;</td>
574
+ <td class="paramname"><em>O</em>&#160;</td>
575
+ </tr>
576
+ <tr>
577
+ <td></td>
578
+ <td>)</td>
579
+ <td></td><td></td>
580
+ </tr>
581
+ </table>
582
+ </div><div class="memdoc">
583
+ <p>Dump BDD </p>
584
+
585
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8cpp_source.html#l00169">169</a> of file <a class="el" href="BDDExpr_8cpp_source.html">BDDExpr.cpp</a>.</p>
586
+ <div class="fragment"><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1BDDExprManager.html#a765d97ba6065a96a61209c59fdbb4b01">getTrueCond</a>())</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; O &lt;&lt; <span class="stringliteral">&quot;T&quot;</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> support;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#a5bbd80a97aa794da9568716e456cf40c">extractSubConds</a>(lhs, support);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">for</span> (NodeBS::iterator iter = support.begin(); iter != support.end();</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; ++iter) {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordtype">unsigned</span> rid = *iter;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; O &lt;&lt; rid &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</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>
587
+ <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>
588
+ <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>
589
+ </div><!-- fragment -->
590
+ </div>
591
+ </div>
592
+ <a id="aa42ab1c5e6b2774be528bb33f0ca3c7b"></a>
593
+ <h2 class="memtitle"><span class="permalink"><a href="#aa42ab1c5e6b2774be528bb33f0ca3c7b">&#9670;&nbsp;</a></span>dumpStr()</h2>
594
+
595
+ <div class="memitem">
596
+ <div class="memproto">
597
+ <table class="memname">
598
+ <tr>
599
+ <td class="memname">std::string BDDExprManager::dumpStr </td>
600
+ <td>(</td>
601
+ <td class="paramtype">const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td>
602
+ <td class="paramname"><em>e</em></td><td>)</td>
603
+ <td> const</td>
604
+ </tr>
605
+ </table>
606
+ </div><div class="memdoc">
607
+ <p>Dump BDD </p>
608
+
609
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8cpp_source.html#l00187">187</a> of file <a class="el" href="BDDExpr_8cpp_source.html">BDDExpr.cpp</a>.</p>
610
+ <div class="fragment"><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; std::string str;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span> (e == <a class="code" href="classSVF_1_1BDDExprManager.html#a765d97ba6065a96a61209c59fdbb4b01">getTrueCond</a>())</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; str += <span class="stringliteral">&quot;T&quot;</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> support;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#a5bbd80a97aa794da9568716e456cf40c">extractSubConds</a>(e, support);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">for</span> (NodeBS::iterator iter = support.begin(); iter != support.end();</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; ++iter) {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordtype">unsigned</span> rid = *iter;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordtype">char</span> int2str[16];</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; sprintf(int2str, <span class="stringliteral">&quot;%d&quot;</span>, rid);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; str += int2str;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; str += <span class="stringliteral">&quot; &quot;</span>;</div><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; }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> str;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</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>
611
+ <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>
612
+ <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>
613
+ </div><!-- fragment -->
614
+ </div>
615
+ </div>
616
+ <a id="a5bbd80a97aa794da9568716e456cf40c"></a>
617
+ <h2 class="memtitle"><span class="permalink"><a href="#a5bbd80a97aa794da9568716e456cf40c">&#9670;&nbsp;</a></span>extractSubConds()</h2>
618
+
619
+ <div class="memitem">
620
+ <div class="memproto">
621
+ <table class="memname">
622
+ <tr>
623
+ <td class="memname">void BDDExprManager::extractSubConds </td>
624
+ <td>(</td>
625
+ <td class="paramtype">const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td>
626
+ <td class="paramname"><em>f</em>, </td>
627
+ </tr>
628
+ <tr>
629
+ <td class="paramkey"></td>
630
+ <td></td>
631
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;&#160;</td>
632
+ <td class="paramname"><em>support</em>&#160;</td>
633
+ </tr>
634
+ <tr>
635
+ <td></td>
636
+ <td>)</td>
637
+ <td></td><td> const</td>
638
+ </tr>
639
+ </table>
640
+ </div><div class="memdoc">
641
+
642
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8cpp_source.html#l00161">161</a> of file <a class="el" href="BDDExpr_8cpp_source.html">BDDExpr.cpp</a>.</p>
643
+ <div class="fragment"><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#adc2d7b6e5336173550f29f7c5bd2ce0e">BddSupportStep</a>(<a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(f), support);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#a78e653083609764e10774a73fbcce2d1">ddClearFlag</a>(<a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(f));</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;}</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_adc2d7b6e5336173550f29f7c5bd2ce0e"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#adc2d7b6e5336173550f29f7c5bd2ce0e">SVF::BDDExprManager::BddSupportStep</a></div><div class="ttdeci">void BddSupportStep(BDDExpr *f, NodeBS &amp;support) const</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8cpp_source.html#l00149">BDDExpr.cpp:149</a></div></div>
644
+ <div class="ttc" id="cudd_8h_html_afbbecf4f6f78f92518f4d0a477d870b6"><div class="ttname"><a href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a></div><div class="ttdeci">#define Cudd_Regular(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00373">cudd.h:373</a></div></div>
645
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a78e653083609764e10774a73fbcce2d1"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a78e653083609764e10774a73fbcce2d1">SVF::BDDExprManager::ddClearFlag</a></div><div class="ttdeci">void ddClearFlag(BDDExpr *f) const</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8cpp_source.html#l00137">BDDExpr.cpp:137</a></div></div>
646
+ </div><!-- fragment -->
647
+ </div>
648
+ </div>
649
+ <a id="ae7be20333ab86fb5297b33923562c7a5"></a>
650
+ <h2 class="memtitle"><span class="permalink"><a href="#ae7be20333ab86fb5297b33923562c7a5">&#9670;&nbsp;</a></span>getBDDExprMgr()</h2>
651
+
652
+ <div class="memitem">
653
+ <div class="memproto">
654
+ <table class="mlabels">
655
+ <tr>
656
+ <td class="mlabels-left">
657
+ <table class="memname">
658
+ <tr>
659
+ <td class="memname"><a class="el" href="classSVF_1_1BDDExprManager.html">BDDExprManager</a> * BDDExprManager::getBDDExprMgr </td>
660
+ <td>(</td>
661
+ <td class="paramname"></td><td>)</td>
662
+ <td></td>
663
+ </tr>
664
+ </table>
665
+ </td>
666
+ <td class="mlabels-right">
667
+ <span class="mlabels"><span class="mlabel">static</span></span> </td>
668
+ </tr>
669
+ </table>
670
+ </div><div class="memdoc">
671
+
672
+ <p>Singleton design here to make sure we only have one instance during any analysis. </p>
673
+
674
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8cpp_source.html#l00053">53</a> of file <a class="el" href="BDDExpr_8cpp_source.html">BDDExpr.cpp</a>.</p>
675
+ <div class="fragment"><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1BDDExprManager.html#a77a80afdf1cece7159d295f7ba11ae8f">bddExprMgr</a> == <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#a77a80afdf1cece7159d295f7ba11ae8f">bddExprMgr</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1BDDExprManager.html#a632e4559983a49e1d05bb51e46aeba78">BDDExprManager</a>();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BDDExprManager.html#a77a80afdf1cece7159d295f7ba11ae8f">bddExprMgr</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_a77a80afdf1cece7159d295f7ba11ae8f"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a77a80afdf1cece7159d295f7ba11ae8f">SVF::BDDExprManager::bddExprMgr</a></div><div class="ttdeci">static BDDExprManager * bddExprMgr</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00046">BDDExpr.h:46</a></div></div>
676
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a632e4559983a49e1d05bb51e46aeba78"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a632e4559983a49e1d05bb51e46aeba78">SVF::BDDExprManager::BDDExprManager</a></div><div class="ttdeci">BDDExprManager()</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8cpp_source.html#l00043">BDDExpr.cpp:43</a></div></div>
677
+ </div><!-- fragment -->
678
+ </div>
679
+ </div>
680
+ <a id="a58186fe706c8c44467b789d8ebd58474"></a>
681
+ <h2 class="memtitle"><span class="permalink"><a href="#a58186fe706c8c44467b789d8ebd58474">&#9670;&nbsp;</a></span>getCond()</h2>
682
+
683
+ <div class="memitem">
684
+ <div class="memproto">
685
+ <table class="mlabels">
686
+ <tr>
687
+ <td class="mlabels-left">
688
+ <table class="memname">
689
+ <tr>
690
+ <td class="memname">virtual <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a>* SVF::BDDExprManager::getCond </td>
691
+ <td>(</td>
692
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&#160;</td>
693
+ <td class="paramname"><em>id</em></td><td>)</td>
694
+ <td></td>
695
+ </tr>
696
+ </table>
697
+ </td>
698
+ <td class="mlabels-right">
699
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
700
+ </tr>
701
+ </table>
702
+ </div><div class="memdoc">
703
+
704
+ <p>Get condition using condition id (z3 ast id) </p>
705
+
706
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00130">130</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
707
+ <div class="fragment"><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; <span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1BDDExprManager.html#a252928e3ee1032a9e9e5aa276836b460">indexToBddCondMap</a>.find(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != <a class="code" href="classSVF_1_1BDDExprManager.html#a252928e3ee1032a9e9e5aa276836b460">indexToBddCondMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;condition not found!&quot;</span>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</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>
708
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a252928e3ee1032a9e9e5aa276836b460"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a252928e3ee1032a9e9e5aa276836b460">SVF::BDDExprManager::indexToBddCondMap</a></div><div class="ttdeci">IndexToBDDExpr indexToBddCondMap</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00047">BDDExpr.h:47</a></div></div>
709
+ </div><!-- fragment -->
710
+ </div>
711
+ </div>
712
+ <a id="a40e32bc52cce8ac1335b5050e693035b"></a>
713
+ <h2 class="memtitle"><span class="permalink"><a href="#a40e32bc52cce8ac1335b5050e693035b">&#9670;&nbsp;</a></span>getCondInst()</h2>
714
+
715
+ <div class="memitem">
716
+ <div class="memproto">
717
+ <table class="mlabels">
718
+ <tr>
719
+ <td class="mlabels-left">
720
+ <table class="memname">
721
+ <tr>
722
+ <td class="memname">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* SVF::BDDExprManager::getCondInst </td>
723
+ <td>(</td>
724
+ <td class="paramtype">const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td>
725
+ <td class="paramname"><em>cond</em></td><td>)</td>
726
+ <td> const</td>
727
+ </tr>
728
+ </table>
729
+ </td>
730
+ <td class="mlabels-right">
731
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
732
+ </tr>
733
+ </table>
734
+ </div><div class="memdoc">
735
+
736
+ <p>Get/Set llvm conditional expression. </p>
737
+
738
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00138">138</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
739
+ <div class="fragment"><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; CondToTermInstMap::const_iterator it = <a class="code" href="classSVF_1_1BDDExprManager.html#a752dd196d3bd1d782e1290630c4daff0">condToInstMap</a>.find(cond);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != <a class="code" href="classSVF_1_1BDDExprManager.html#a752dd196d3bd1d782e1290630c4daff0">condToInstMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;this should be a fresh condition&quot;</span>);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</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>
740
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a752dd196d3bd1d782e1290630c4daff0"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a752dd196d3bd1d782e1290630c4daff0">SVF::BDDExprManager::condToInstMap</a></div><div class="ttdeci">CondToTermInstMap condToInstMap</div><div class="ttdoc">map condition to llvm instruction </div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00174">BDDExpr.h:174</a></div></div>
741
+ </div><!-- fragment -->
742
+ </div>
743
+ </div>
744
+ <a id="a39d4e4c5c4290dcdb8b00e05b56f7302"></a>
745
+ <h2 class="memtitle"><span class="permalink"><a href="#a39d4e4c5c4290dcdb8b00e05b56f7302">&#9670;&nbsp;</a></span>getCondNumber()</h2>
746
+
747
+ <div class="memitem">
748
+ <div class="memproto">
749
+ <table class="mlabels">
750
+ <tr>
751
+ <td class="mlabels-left">
752
+ <table class="memname">
753
+ <tr>
754
+ <td class="memname">virtual <a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> SVF::BDDExprManager::getCondNumber </td>
755
+ <td>(</td>
756
+ <td class="paramname"></td><td>)</td>
757
+ <td></td>
758
+ </tr>
759
+ </table>
760
+ </td>
761
+ <td class="mlabels-right">
762
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
763
+ </tr>
764
+ </table>
765
+ </div><div class="memdoc">
766
+
767
+ <p>Return the number of condition expressions. </p>
768
+
769
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00088">88</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
770
+ <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="cudd_8h.html#a9ba2c88b8f70df51791c26ffde800fc7">Cudd_ReadNodeCount</a>(<a class="code" href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">m_bdd_mgr</a>);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_ae17830ea476e0ba786e98831bd2b4f50"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">SVF::BDDExprManager::m_bdd_mgr</a></div><div class="ttdeci">DdManager * m_bdd_mgr</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00048">BDDExpr.h:48</a></div></div>
771
+ <div class="ttc" id="cudd_8h_html_a9ba2c88b8f70df51791c26ffde800fc7"><div class="ttname"><a href="cudd_8h.html#a9ba2c88b8f70df51791c26ffde800fc7">Cudd_ReadNodeCount</a></div><div class="ttdeci">long Cudd_ReadNodeCount(DdManager *dd)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l01948">cuddInt.c:1948</a></div></div>
772
+ </div><!-- fragment -->
773
+ </div>
774
+ </div>
775
+ <a id="a34f5354a436840202428e406468e2335"></a>
776
+ <h2 class="memtitle"><span class="permalink"><a href="#a34f5354a436840202428e406468e2335">&#9670;&nbsp;</a></span>getFalseCond()</h2>
777
+
778
+ <div class="memitem">
779
+ <div class="memproto">
780
+ <table class="mlabels">
781
+ <tr>
782
+ <td class="mlabels-left">
783
+ <table class="memname">
784
+ <tr>
785
+ <td class="memname"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a>* SVF::BDDExprManager::getFalseCond </td>
786
+ <td>(</td>
787
+ <td class="paramname"></td><td>)</td>
788
+ <td> const</td>
789
+ </tr>
790
+ </table>
791
+ </td>
792
+ <td class="mlabels-right">
793
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
794
+ </tr>
795
+ </table>
796
+ </div><div class="memdoc">
797
+
798
+ <p>Return the unique false condition. </p>
799
+
800
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00099">99</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
801
+ <div class="fragment"><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BDDExprManager.html#a7c9d970f02b142a5ca05f8d67e974269">falseCond</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_a7c9d970f02b142a5ca05f8d67e974269"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a7c9d970f02b142a5ca05f8d67e974269">SVF::BDDExprManager::falseCond</a></div><div class="ttdeci">static BDDExpr * falseCond</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00170">BDDExpr.h:170</a></div></div>
802
+ </div><!-- fragment -->
803
+ </div>
804
+ </div>
805
+ <a id="a7cb0ba9829434de3c40a2c45beea7741"></a>
806
+ <h2 class="memtitle"><span class="permalink"><a href="#a7cb0ba9829434de3c40a2c45beea7741">&#9670;&nbsp;</a></span>getMemUsage()</h2>
807
+
808
+ <div class="memitem">
809
+ <div class="memproto">
810
+ <table class="mlabels">
811
+ <tr>
812
+ <td class="mlabels-left">
813
+ <table class="memname">
814
+ <tr>
815
+ <td class="memname">std::string SVF::BDDExprManager::getMemUsage </td>
816
+ <td>(</td>
817
+ <td class="paramname"></td><td>)</td>
818
+ <td></td>
819
+ </tr>
820
+ </table>
821
+ </td>
822
+ <td class="mlabels-right">
823
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
824
+ </tr>
825
+ </table>
826
+ </div><div class="memdoc">
827
+
828
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00164">164</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
829
+ <div class="fragment"><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> std::to_string(<a class="code" href="cudd_8h.html#a03db7d4ba1119a3cd5843fa7bd3a1a30">Cudd_ReadMemoryInUse</a>(<a class="code" href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">m_bdd_mgr</a>));</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_ae17830ea476e0ba786e98831bd2b4f50"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">SVF::BDDExprManager::m_bdd_mgr</a></div><div class="ttdeci">DdManager * m_bdd_mgr</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00048">BDDExpr.h:48</a></div></div>
830
+ <div class="ttc" id="cudd_8h_html_a03db7d4ba1119a3cd5843fa7bd3a1a30"><div class="ttname"><a href="cudd_8h.html#a03db7d4ba1119a3cd5843fa7bd3a1a30">Cudd_ReadMemoryInUse</a></div><div class="ttdeci">unsigned long Cudd_ReadMemoryInUse(DdManager *dd)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l01925">cuddInt.c:1925</a></div></div>
831
+ </div><!-- fragment -->
832
+ </div>
833
+ </div>
834
+ <a id="a765d97ba6065a96a61209c59fdbb4b01"></a>
835
+ <h2 class="memtitle"><span class="permalink"><a href="#a765d97ba6065a96a61209c59fdbb4b01">&#9670;&nbsp;</a></span>getTrueCond()</h2>
836
+
837
+ <div class="memitem">
838
+ <div class="memproto">
839
+ <table class="mlabels">
840
+ <tr>
841
+ <td class="mlabels-left">
842
+ <table class="memname">
843
+ <tr>
844
+ <td class="memname"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a>* SVF::BDDExprManager::getTrueCond </td>
845
+ <td>(</td>
846
+ <td class="paramname"></td><td>)</td>
847
+ <td> const</td>
848
+ </tr>
849
+ </table>
850
+ </td>
851
+ <td class="mlabels-right">
852
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
853
+ </tr>
854
+ </table>
855
+ </div><div class="memdoc">
856
+
857
+ <p>Return the unique true condition. </p>
858
+
859
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00094">94</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
860
+ <div class="fragment"><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BDDExprManager.html#acf9824ae990ee816bf182fb9e4a14053">trueCond</a>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_acf9824ae990ee816bf182fb9e4a14053"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#acf9824ae990ee816bf182fb9e4a14053">SVF::BDDExprManager::trueCond</a></div><div class="ttdeci">static BDDExpr * trueCond</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00169">BDDExpr.h:169</a></div></div>
861
+ </div><!-- fragment -->
862
+ </div>
863
+ </div>
864
+ <a id="afb30b41edd5bb6478d30778bc7f09e15"></a>
865
+ <h2 class="memtitle"><span class="permalink"><a href="#afb30b41edd5bb6478d30778bc7f09e15">&#9670;&nbsp;</a></span>isAllPathReachable()</h2>
866
+
867
+ <div class="memitem">
868
+ <div class="memproto">
869
+ <table class="memname">
870
+ <tr>
871
+ <td class="memname">bool BDDExprManager::isAllPathReachable </td>
872
+ <td>(</td>
873
+ <td class="paramtype">const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td>
874
+ <td class="paramname"><em>e</em></td><td>)</td>
875
+ <td></td>
876
+ </tr>
877
+ </table>
878
+ </div><div class="memdoc">
879
+
880
+ <p>Whether <b>All Paths</b> are reachable. </p>
881
+ <p>Whether <b>All Paths</b> are reachable </p>
882
+
883
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8cpp_source.html#l00129">129</a> of file <a class="el" href="BDDExpr_8cpp_source.html">BDDExpr.cpp</a>.</p>
884
+ <div class="fragment"><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; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BDDExprManager.html#a9ac35220d1364a8e6d9bb32e3c236db2">isEquivalentBranchCond</a>(e, <a class="code" href="classSVF_1_1BDDExprManager.html#a765d97ba6065a96a61209c59fdbb4b01">getTrueCond</a>());</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;}</div><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>
885
+ <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>
886
+ </div><!-- fragment -->
887
+ </div>
888
+ </div>
889
+ <a id="a9ac35220d1364a8e6d9bb32e3c236db2"></a>
890
+ <h2 class="memtitle"><span class="permalink"><a href="#a9ac35220d1364a8e6d9bb32e3c236db2">&#9670;&nbsp;</a></span>isEquivalentBranchCond()</h2>
891
+
892
+ <div class="memitem">
893
+ <div class="memproto">
894
+ <table class="mlabels">
895
+ <tr>
896
+ <td class="mlabels-left">
897
+ <table class="memname">
898
+ <tr>
899
+ <td class="memname">virtual bool SVF::BDDExprManager::isEquivalentBranchCond </td>
900
+ <td>(</td>
901
+ <td class="paramtype">const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td>
902
+ <td class="paramname"><em>lhs</em>, </td>
903
+ </tr>
904
+ <tr>
905
+ <td class="paramkey"></td>
906
+ <td></td>
907
+ <td class="paramtype">const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td>
908
+ <td class="paramname"><em>rhs</em>&#160;</td>
909
+ </tr>
910
+ <tr>
911
+ <td></td>
912
+ <td>)</td>
913
+ <td></td><td></td>
914
+ </tr>
915
+ </table>
916
+ </td>
917
+ <td class="mlabels-right">
918
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
919
+ </tr>
920
+ </table>
921
+ </div><div class="memdoc">
922
+
923
+ <p>Whether lhs and rhs are equivalent branch conditions. </p>
924
+
925
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00122">122</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
926
+ <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> lhs == rhs;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div></div><!-- fragment -->
927
+ </div>
928
+ </div>
929
+ <a id="a2d07075a8948d9baf4de31d840aa7a17"></a>
930
+ <h2 class="memtitle"><span class="permalink"><a href="#a2d07075a8948d9baf4de31d840aa7a17">&#9670;&nbsp;</a></span>isNegCond()</h2>
931
+
932
+ <div class="memitem">
933
+ <div class="memproto">
934
+ <table class="mlabels">
935
+ <tr>
936
+ <td class="mlabels-left">
937
+ <table class="memname">
938
+ <tr>
939
+ <td class="memname">virtual bool SVF::BDDExprManager::isNegCond </td>
940
+ <td>(</td>
941
+ <td class="paramtype">const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td>
942
+ <td class="paramname"><em>cond</em></td><td>)</td>
943
+ <td></td>
944
+ </tr>
945
+ </table>
946
+ </td>
947
+ <td class="mlabels-right">
948
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
949
+ </tr>
950
+ </table>
951
+ </div><div class="memdoc">
952
+
953
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00112">112</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
954
+ <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> <span class="keyword">false</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div></div><!-- fragment -->
955
+ </div>
956
+ </div>
957
+ <a id="a26a49a796e0747b173c380f3658a7ad3"></a>
958
+ <h2 class="memtitle"><span class="permalink"><a href="#a26a49a796e0747b173c380f3658a7ad3">&#9670;&nbsp;</a></span>isSatisfiable()</h2>
959
+
960
+ <div class="memitem">
961
+ <div class="memproto">
962
+ <table class="mlabels">
963
+ <tr>
964
+ <td class="mlabels-left">
965
+ <table class="memname">
966
+ <tr>
967
+ <td class="memname">virtual bool SVF::BDDExprManager::isSatisfiable </td>
968
+ <td>(</td>
969
+ <td class="paramtype">const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td>
970
+ <td class="paramname"><em>cond</em></td><td>)</td>
971
+ <td></td>
972
+ </tr>
973
+ </table>
974
+ </td>
975
+ <td class="mlabels-right">
976
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
977
+ </tr>
978
+ </table>
979
+ </div><div class="memdoc">
980
+
981
+ <p>Whether the condition is satisfiable. </p>
982
+
983
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00117">117</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
984
+ <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> cond != <a class="code" href="classSVF_1_1BDDExprManager.html#a34f5354a436840202428e406468e2335">getFalseCond</a>();</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><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>
985
+ </div><!-- fragment -->
986
+ </div>
987
+ </div>
988
+ <a id="ace340608e136c33867b3e1a986d65c81"></a>
989
+ <h2 class="memtitle"><span class="permalink"><a href="#ace340608e136c33867b3e1a986d65c81">&#9670;&nbsp;</a></span>NEG()</h2>
990
+
991
+ <div class="memitem">
992
+ <div class="memproto">
993
+ <table class="mlabels">
994
+ <tr>
995
+ <td class="mlabels-left">
996
+ <table class="memname">
997
+ <tr>
998
+ <td class="memname"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExprManager::BDDExpr</a> * BDDExprManager::NEG </td>
999
+ <td>(</td>
1000
+ <td class="paramtype"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td>
1001
+ <td class="paramname"><em>lhs</em></td><td>)</td>
1002
+ <td></td>
1003
+ </tr>
1004
+ </table>
1005
+ </td>
1006
+ <td class="mlabels-right">
1007
+ <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
1008
+ </tr>
1009
+ </table>
1010
+ </div><div class="memdoc">
1011
+
1012
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8cpp_source.html#l00115">115</a> of file <a class="el" href="BDDExpr_8cpp_source.html">BDDExpr.cpp</a>.</p>
1013
+ <div class="fragment"><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</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="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1BDDExprManager.html#a765d97ba6065a96a61209c59fdbb4b01">getTrueCond</a>())</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_1BDDExprManager.html#a34f5354a436840202428e406468e2335">getFalseCond</a>();</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1BDDExprManager.html#a34f5354a436840202428e406468e2335">getFalseCond</a>())</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BDDExprManager.html#a765d97ba6065a96a61209c59fdbb4b01">getTrueCond</a>();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(lhs);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="ttc" id="cudd_8h_html_a352ef8d39e760eaabae6d58d9a5ddbfc"><div class="ttname"><a href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a></div><div class="ttdeci">#define Cudd_Not(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00343">cudd.h:343</a></div></div>
1014
+ <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>
1015
+ <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>
1016
+ </div><!-- fragment -->
1017
+ </div>
1018
+ </div>
1019
+ <a id="a276f68eefe6b168ad5dc9e32c4f265bd"></a>
1020
+ <h2 class="memtitle"><span class="permalink"><a href="#a276f68eefe6b168ad5dc9e32c4f265bd">&#9670;&nbsp;</a></span>OR()</h2>
1021
+
1022
+ <div class="memitem">
1023
+ <div class="memproto">
1024
+ <table class="mlabels">
1025
+ <tr>
1026
+ <td class="mlabels-left">
1027
+ <table class="memname">
1028
+ <tr>
1029
+ <td class="memname"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExprManager::BDDExpr</a> * BDDExprManager::OR </td>
1030
+ <td>(</td>
1031
+ <td class="paramtype"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td>
1032
+ <td class="paramname"><em>lhs</em>, </td>
1033
+ </tr>
1034
+ <tr>
1035
+ <td class="paramkey"></td>
1036
+ <td></td>
1037
+ <td class="paramtype"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td>
1038
+ <td class="paramname"><em>rhs</em>&#160;</td>
1039
+ </tr>
1040
+ <tr>
1041
+ <td></td>
1042
+ <td>)</td>
1043
+ <td></td><td></td>
1044
+ </tr>
1045
+ </table>
1046
+ </td>
1047
+ <td class="mlabels-right">
1048
+ <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
1049
+ </tr>
1050
+ </table>
1051
+ </div><div class="memdoc">
1052
+ <p>Use Cudd_bddOrLimit interface to avoid bdds blow up </p>
1053
+ <p>drop the two conditions here </p>
1054
+
1055
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8cpp_source.html#l00095">95</a> of file <a class="el" href="BDDExpr_8cpp_source.html">BDDExpr.cpp</a>.</p>
1056
+ <div class="fragment"><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1BDDExprManager.html#a765d97ba6065a96a61209c59fdbb4b01">getTrueCond</a>() || rhs == <a class="code" href="classSVF_1_1BDDExprManager.html#a765d97ba6065a96a61209c59fdbb4b01">getTrueCond</a>())</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_1BDDExprManager.html#a765d97ba6065a96a61209c59fdbb4b01">getTrueCond</a>();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1BDDExprManager.html#a34f5354a436840202428e406468e2335">getFalseCond</a>())</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span> rhs;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhs == <a class="code" href="classSVF_1_1BDDExprManager.html#a34f5354a436840202428e406468e2335">getFalseCond</a>())</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> lhs;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *tmp = <a class="code" href="cudd_8h.html#a6cbc77f8b658ac3c88a2549a84c58b38">Cudd_bddOrLimit</a>(<a class="code" href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">m_bdd_mgr</a>, lhs, rhs, <a class="code" href="classSVF_1_1Options.html#a344ca0e4b8d9159836e558aed44be1b4">Options::MaxBddSize</a>);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span> (tmp == <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVFUtil::writeWrnMsg</a>(<span class="stringliteral">&quot;exceeds max bdd size \n&quot;</span>);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BDDExprManager.html#a765d97ba6065a96a61209c59fdbb4b01">getTrueCond</a>();</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="cudd_8h.html#a3d0d9959640235fc073699c776914fca">Cudd_Ref</a>(tmp);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">return</span> tmp;</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; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_ae17830ea476e0ba786e98831bd2b4f50"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#ae17830ea476e0ba786e98831bd2b4f50">SVF::BDDExprManager::m_bdd_mgr</a></div><div class="ttdeci">DdManager * m_bdd_mgr</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00048">BDDExpr.h:48</a></div></div>
1057
+ <div class="ttc" id="cudd_8h_html_a6cbc77f8b658ac3c88a2549a84c58b38"><div class="ttname"><a href="cudd_8h.html#a6cbc77f8b658ac3c88a2549a84c58b38">Cudd_bddOrLimit</a></div><div class="ttdeci">DdNode * Cudd_bddOrLimit(DdManager *dd, DdNode *f, DdNode *g, unsigned int limit)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l03214">cuddInt.c:3214</a></div></div>
1058
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a077caa1b10ab84d101d79fc7ea50db2d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVF::SVFUtil::writeWrnMsg</a></div><div class="ttdeci">void writeWrnMsg(std::string msg)</div><div class="ttdoc">Writes a message run through wrnMsg. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00069">SVFUtil.cpp:69</a></div></div>
1059
+ <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>
1060
+ <div class="ttc" id="classSVF_1_1Options_html_a344ca0e4b8d9159836e558aed44be1b4"><div class="ttname"><a href="classSVF_1_1Options.html#a344ca0e4b8d9159836e558aed44be1b4">SVF::Options::MaxBddSize</a></div><div class="ttdeci">static const llvm::cl::opt&lt; unsigned &gt; MaxBddSize</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00218">Options.h:218</a></div></div>
1061
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a90e685c420e4ac20104498883dbed9ea"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">SVF::BDDExprManager::BDDExpr</a></div><div class="ttdeci">DdNode BDDExpr</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00043">BDDExpr.h:43</a></div></div>
1062
+ <div class="ttc" id="cudd_8h_html_a3d0d9959640235fc073699c776914fca"><div class="ttname"><a href="cudd_8h.html#a3d0d9959640235fc073699c776914fca">Cudd_Ref</a></div><div class="ttdeci">void Cudd_Ref(DdNode *n)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l14002">cuddInt.c:14002</a></div></div>
1063
+ <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>
1064
+ </div><!-- fragment -->
1065
+ </div>
1066
+ </div>
1067
+ <a id="a560d3389fc5ca59b590441cf2f1f43ec"></a>
1068
+ <h2 class="memtitle"><span class="permalink"><a href="#a560d3389fc5ca59b590441cf2f1f43ec">&#9670;&nbsp;</a></span>releaseBDDExprMgr()</h2>
1069
+
1070
+ <div class="memitem">
1071
+ <div class="memproto">
1072
+ <table class="mlabels">
1073
+ <tr>
1074
+ <td class="mlabels-left">
1075
+ <table class="memname">
1076
+ <tr>
1077
+ <td class="memname">static void SVF::BDDExprManager::releaseBDDExprMgr </td>
1078
+ <td>(</td>
1079
+ <td class="paramname"></td><td>)</td>
1080
+ <td></td>
1081
+ </tr>
1082
+ </table>
1083
+ </td>
1084
+ <td class="mlabels-right">
1085
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
1086
+ </tr>
1087
+ </table>
1088
+ </div><div class="memdoc">
1089
+
1090
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00068">68</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
1091
+ <div class="fragment"><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">delete</span> <a class="code" href="classSVF_1_1BDDExprManager.html#a77a80afdf1cece7159d295f7ba11ae8f">bddExprMgr</a>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#a77a80afdf1cece7159d295f7ba11ae8f">bddExprMgr</a> = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="ttc" id="classSVF_1_1BDDExprManager_html_a77a80afdf1cece7159d295f7ba11ae8f"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a77a80afdf1cece7159d295f7ba11ae8f">SVF::BDDExprManager::bddExprMgr</a></div><div class="ttdeci">static BDDExprManager * bddExprMgr</div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00046">BDDExpr.h:46</a></div></div>
1092
+ </div><!-- fragment -->
1093
+ </div>
1094
+ </div>
1095
+ <a id="afc1d4301a3453c920f9b92ac53101bfe"></a>
1096
+ <h2 class="memtitle"><span class="permalink"><a href="#afc1d4301a3453c920f9b92ac53101bfe">&#9670;&nbsp;</a></span>setCondInst()</h2>
1097
+
1098
+ <div class="memitem">
1099
+ <div class="memproto">
1100
+ <table class="mlabels">
1101
+ <tr>
1102
+ <td class="mlabels-left">
1103
+ <table class="memname">
1104
+ <tr>
1105
+ <td class="memname">void SVF::BDDExprManager::setCondInst </td>
1106
+ <td>(</td>
1107
+ <td class="paramtype">const <a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExpr</a> *&#160;</td>
1108
+ <td class="paramname"><em>cond</em>, </td>
1109
+ </tr>
1110
+ <tr>
1111
+ <td class="paramkey"></td>
1112
+ <td></td>
1113
+ <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
1114
+ <td class="paramname"><em>inst</em>&#160;</td>
1115
+ </tr>
1116
+ <tr>
1117
+ <td></td>
1118
+ <td>)</td>
1119
+ <td></td><td></td>
1120
+ </tr>
1121
+ </table>
1122
+ </td>
1123
+ <td class="mlabels-right">
1124
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
1125
+ </tr>
1126
+ </table>
1127
+ </div><div class="memdoc">
1128
+
1129
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00144">144</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
1130
+ <div class="fragment"><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1BDDExprManager.html#a752dd196d3bd1d782e1290630c4daff0">condToInstMap</a>.find(cond) == <a class="code" href="classSVF_1_1BDDExprManager.html#a752dd196d3bd1d782e1290630c4daff0">condToInstMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;this should be a fresh condition&quot;</span>);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="classSVF_1_1BDDExprManager.html#a752dd196d3bd1d782e1290630c4daff0">condToInstMap</a>[cond] = inst;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</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>
1131
+ <div class="ttc" id="classSVF_1_1BDDExprManager_html_a752dd196d3bd1d782e1290630c4daff0"><div class="ttname"><a href="classSVF_1_1BDDExprManager.html#a752dd196d3bd1d782e1290630c4daff0">SVF::BDDExprManager::condToInstMap</a></div><div class="ttdeci">CondToTermInstMap condToInstMap</div><div class="ttdoc">map condition to llvm instruction </div><div class="ttdef"><b>Definition:</b> <a href="BDDExpr_8h_source.html#l00174">BDDExpr.h:174</a></div></div>
1132
+ </div><!-- fragment -->
1133
+ </div>
1134
+ </div>
1135
+ <h2 class="groupheader">Member Data Documentation</h2>
1136
+ <a id="a77a80afdf1cece7159d295f7ba11ae8f"></a>
1137
+ <h2 class="memtitle"><span class="permalink"><a href="#a77a80afdf1cece7159d295f7ba11ae8f">&#9670;&nbsp;</a></span>bddExprMgr</h2>
1138
+
1139
+ <div class="memitem">
1140
+ <div class="memproto">
1141
+ <table class="mlabels">
1142
+ <tr>
1143
+ <td class="mlabels-left">
1144
+ <table class="memname">
1145
+ <tr>
1146
+ <td class="memname"><a class="el" href="classSVF_1_1BDDExprManager.html">BDDExprManager</a> * BDDExprManager::bddExprMgr = nullptr</td>
1147
+ </tr>
1148
+ </table>
1149
+ </td>
1150
+ <td class="mlabels-right">
1151
+ <span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
1152
+ </tr>
1153
+ </table>
1154
+ </div><div class="memdoc">
1155
+
1156
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00046">46</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
1157
+
1158
+ </div>
1159
+ </div>
1160
+ <a id="a752dd196d3bd1d782e1290630c4daff0"></a>
1161
+ <h2 class="memtitle"><span class="permalink"><a href="#a752dd196d3bd1d782e1290630c4daff0">&#9670;&nbsp;</a></span>condToInstMap</h2>
1162
+
1163
+ <div class="memitem">
1164
+ <div class="memproto">
1165
+ <table class="mlabels">
1166
+ <tr>
1167
+ <td class="mlabels-left">
1168
+ <table class="memname">
1169
+ <tr>
1170
+ <td class="memname"><a class="el" href="classSVF_1_1BDDExprManager.html#a818712f314ec1f1378134d7222c006d0">CondToTermInstMap</a> SVF::BDDExprManager::condToInstMap</td>
1171
+ </tr>
1172
+ </table>
1173
+ </td>
1174
+ <td class="mlabels-right">
1175
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
1176
+ </tr>
1177
+ </table>
1178
+ </div><div class="memdoc">
1179
+
1180
+ <p>map condition to llvm instruction </p>
1181
+
1182
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00174">174</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
1183
+
1184
+ </div>
1185
+ </div>
1186
+ <a id="a7c9d970f02b142a5ca05f8d67e974269"></a>
1187
+ <h2 class="memtitle"><span class="permalink"><a href="#a7c9d970f02b142a5ca05f8d67e974269">&#9670;&nbsp;</a></span>falseCond</h2>
1188
+
1189
+ <div class="memitem">
1190
+ <div class="memproto">
1191
+ <table class="mlabels">
1192
+ <tr>
1193
+ <td class="mlabels-left">
1194
+ <table class="memname">
1195
+ <tr>
1196
+ <td class="memname"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExprManager::BDDExpr</a> * BDDExprManager::falseCond = nullptr</td>
1197
+ </tr>
1198
+ </table>
1199
+ </td>
1200
+ <td class="mlabels-right">
1201
+ <span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span> </td>
1202
+ </tr>
1203
+ </table>
1204
+ </div><div class="memdoc">
1205
+
1206
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00170">170</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
1207
+
1208
+ </div>
1209
+ </div>
1210
+ <a id="a252928e3ee1032a9e9e5aa276836b460"></a>
1211
+ <h2 class="memtitle"><span class="permalink"><a href="#a252928e3ee1032a9e9e5aa276836b460">&#9670;&nbsp;</a></span>indexToBddCondMap</h2>
1212
+
1213
+ <div class="memitem">
1214
+ <div class="memproto">
1215
+ <table class="mlabels">
1216
+ <tr>
1217
+ <td class="mlabels-left">
1218
+ <table class="memname">
1219
+ <tr>
1220
+ <td class="memname"><a class="el" href="classSVF_1_1BDDExprManager.html#a0e0c83c5affc6a4ec67001e33913b035">IndexToBDDExpr</a> SVF::BDDExprManager::indexToBddCondMap</td>
1221
+ </tr>
1222
+ </table>
1223
+ </td>
1224
+ <td class="mlabels-right">
1225
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
1226
+ </tr>
1227
+ </table>
1228
+ </div><div class="memdoc">
1229
+
1230
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00047">47</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
1231
+
1232
+ </div>
1233
+ </div>
1234
+ <a id="ae17830ea476e0ba786e98831bd2b4f50"></a>
1235
+ <h2 class="memtitle"><span class="permalink"><a href="#ae17830ea476e0ba786e98831bd2b4f50">&#9670;&nbsp;</a></span>m_bdd_mgr</h2>
1236
+
1237
+ <div class="memitem">
1238
+ <div class="memproto">
1239
+ <table class="mlabels">
1240
+ <tr>
1241
+ <td class="mlabels-left">
1242
+ <table class="memname">
1243
+ <tr>
1244
+ <td class="memname"><a class="el" href="structDdManager.html">DdManager</a>* SVF::BDDExprManager::m_bdd_mgr</td>
1245
+ </tr>
1246
+ </table>
1247
+ </td>
1248
+ <td class="mlabels-right">
1249
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
1250
+ </tr>
1251
+ </table>
1252
+ </div><div class="memdoc">
1253
+
1254
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00048">48</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
1255
+
1256
+ </div>
1257
+ </div>
1258
+ <a id="a8d034c572bed854582c391674a5b4f18"></a>
1259
+ <h2 class="memtitle"><span class="permalink"><a href="#a8d034c572bed854582c391674a5b4f18">&#9670;&nbsp;</a></span>totalCondNum</h2>
1260
+
1261
+ <div class="memitem">
1262
+ <div class="memproto">
1263
+ <table class="mlabels">
1264
+ <tr>
1265
+ <td class="mlabels-left">
1266
+ <table class="memname">
1267
+ <tr>
1268
+ <td class="memname"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> BDDExprManager::totalCondNum = 0</td>
1269
+ </tr>
1270
+ </table>
1271
+ </td>
1272
+ <td class="mlabels-right">
1273
+ <span class="mlabels"><span class="mlabel">static</span></span> </td>
1274
+ </tr>
1275
+ </table>
1276
+ </div><div class="memdoc">
1277
+
1278
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00063">63</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
1279
+
1280
+ </div>
1281
+ </div>
1282
+ <a id="acf9824ae990ee816bf182fb9e4a14053"></a>
1283
+ <h2 class="memtitle"><span class="permalink"><a href="#acf9824ae990ee816bf182fb9e4a14053">&#9670;&nbsp;</a></span>trueCond</h2>
1284
+
1285
+ <div class="memitem">
1286
+ <div class="memproto">
1287
+ <table class="mlabels">
1288
+ <tr>
1289
+ <td class="mlabels-left">
1290
+ <table class="memname">
1291
+ <tr>
1292
+ <td class="memname"><a class="el" href="classSVF_1_1BDDExprManager.html#a90e685c420e4ac20104498883dbed9ea">BDDExprManager::BDDExpr</a> * BDDExprManager::trueCond = nullptr</td>
1293
+ </tr>
1294
+ </table>
1295
+ </td>
1296
+ <td class="mlabels-right">
1297
+ <span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span> </td>
1298
+ </tr>
1299
+ </table>
1300
+ </div><div class="memdoc">
1301
+
1302
+ <p class="definition">Definition at line <a class="el" href="BDDExpr_8h_source.html#l00169">169</a> of file <a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a>.</p>
1303
+
1304
+ </div>
1305
+ </div>
1306
+ <hr/>The documentation for this class was generated from the following files:<ul>
1307
+ <li>/home/runner/work/SVF/SVF/include/Util/<a class="el" href="BDDExpr_8h_source.html">BDDExpr.h</a></li>
1308
+ <li>/home/runner/work/SVF/SVF/lib/Util/<a class="el" href="BDDExpr_8cpp_source.html">BDDExpr.cpp</a></li>
1309
+ </ul>
1310
+ </div><!-- contents -->
1311
+ <!-- start footer part -->
1312
+ <hr class="footer"/><address class="footer"><small>
1313
+ Generated by &#160;<a href="http://www.doxygen.org/index.html">
1314
+ <img class="footer" src="doxygen.png" alt="doxygen"/>
1315
+ </a> 1.8.13
1316
+ </small></address>
1317
+ </body>
1318
+ </html>