svf-tools 1.0.418 → 1.0.421

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 (260) hide show
  1. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +14 -14
  3. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
  4. package/SVF-doxygen/html/html/Conditions_8cpp.html +0 -1
  5. package/SVF-doxygen/html/html/Conditions_8cpp_source.html +58 -49
  6. package/SVF-doxygen/html/html/Conditions_8h.html +6 -2
  7. package/SVF-doxygen/html/html/Conditions_8h_source.html +68 -60
  8. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
  9. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
  10. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +1 -1
  11. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +9 -9
  12. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +3 -3
  13. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +2 -2
  14. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +7 -7
  15. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  18. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
  20. package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
  21. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
  22. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +1 -1
  23. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -1
  24. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
  25. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
  26. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +6 -6
  27. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/html/Options_8cpp_source.html +114 -113
  29. package/SVF-doxygen/html/html/Options_8h.html +1 -0
  30. package/SVF-doxygen/html/html/Options_8h_source.html +117 -115
  31. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +2 -2
  32. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +41 -23
  33. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +74 -74
  34. package/SVF-doxygen/html/html/PathDPItem_8h_source.html +7 -7
  35. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +4 -4
  36. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +12 -12
  37. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
  38. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +1 -1
  39. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +13 -13
  40. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
  41. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +4 -4
  42. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +1 -1
  43. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +3 -3
  44. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  45. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +1 -1
  46. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
  47. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +4 -4
  48. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +3 -3
  49. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +3 -3
  50. package/SVF-doxygen/html/html/TCT_8cpp_source.html +1 -1
  51. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
  52. package/SVF-doxygen/html/html/VFG_8cpp_source.html +1 -1
  53. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
  54. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +4 -4
  55. package/SVF-doxygen/html/html/annotated.html +7 -5
  56. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  57. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +23 -25
  58. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +6 -6
  59. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +1 -1
  60. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +1 -1
  61. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +4 -0
  62. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +2 -6
  63. package/SVF-doxygen/html/html/classSVF_1_1BDDExpr-members.html +92 -0
  64. package/SVF-doxygen/html/html/classSVF_1_1BDDExpr.html +304 -0
  65. package/SVF-doxygen/html/html/classSVF_1_1BDDExpr.png +0 -0
  66. package/SVF-doxygen/html/html/classSVF_1_1BDDManager-members.html +124 -0
  67. package/SVF-doxygen/html/html/classSVF_1_1BDDManager.html +1139 -0
  68. package/SVF-doxygen/html/html/classSVF_1_1BDDManager.png +0 -0
  69. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +5 -5
  70. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  71. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  72. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +1 -1
  73. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  74. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  75. package/SVF-doxygen/html/html/classSVF_1_1CondExpr-members.html +5 -8
  76. package/SVF-doxygen/html/html/classSVF_1_1CondExpr.html +22 -151
  77. package/SVF-doxygen/html/html/classSVF_1_1CondExpr.png +0 -0
  78. package/SVF-doxygen/html/html/classSVF_1_1CondManager-members.html +25 -36
  79. package/SVF-doxygen/html/html/classSVF_1_1CondManager.html +276 -605
  80. package/SVF-doxygen/html/html/classSVF_1_1CondManager.png +0 -0
  81. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
  82. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  83. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +1 -1
  84. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +9 -9
  85. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  86. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +1 -1
  87. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +9 -9
  88. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +7 -7
  89. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  90. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  91. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  92. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +1 -1
  93. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +2 -2
  94. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +1 -1
  95. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  96. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +1 -1
  97. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
  98. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +1 -1
  99. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +1 -1
  100. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +4 -4
  101. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +3 -3
  102. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +6 -6
  103. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +1 -1
  104. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +2 -2
  105. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +1 -1
  106. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +6 -6
  107. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  108. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
  109. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +103 -102
  110. package/SVF-doxygen/html/html/classSVF_1_1Options.html +141 -115
  111. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +3 -3
  112. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator-members.html +1 -1
  113. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +189 -196
  114. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  115. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +13 -13
  116. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +1 -1
  117. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +20 -20
  118. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  119. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +5 -5
  120. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +5 -5
  121. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +4 -4
  122. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +5 -5
  123. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  124. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +8 -8
  125. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  126. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +3 -3
  127. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +5 -5
  128. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +2 -2
  129. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  130. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  131. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
  132. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  133. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +1 -1
  134. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  135. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +3 -3
  136. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +11 -11
  137. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr-members.html +95 -0
  138. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +396 -0
  139. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.png +0 -0
  140. package/SVF-doxygen/html/html/classSVF_1_1Z3Manager-members.html +122 -0
  141. package/SVF-doxygen/html/html/classSVF_1_1Z3Manager.html +1066 -0
  142. package/SVF-doxygen/html/html/classSVF_1_1Z3Manager.png +0 -0
  143. package/SVF-doxygen/html/html/classes.html +12 -11
  144. package/SVF-doxygen/html/html/functions_0x7e.html +9 -3
  145. package/SVF-doxygen/html/html/functions_a.html +4 -6
  146. package/SVF-doxygen/html/html/functions_b.html +33 -34
  147. package/SVF-doxygen/html/html/functions_c.html +43 -32
  148. package/SVF-doxygen/html/html/functions_d.html +5 -4
  149. package/SVF-doxygen/html/html/functions_e.html +8 -7
  150. package/SVF-doxygen/html/html/functions_enum.html +3 -0
  151. package/SVF-doxygen/html/html/functions_eval_b.html +6 -3
  152. package/SVF-doxygen/html/html/functions_eval_z.html +79 -0
  153. package/SVF-doxygen/html/html/functions_f.html +3 -3
  154. package/SVF-doxygen/html/html/functions_func.html +8 -7
  155. package/SVF-doxygen/html/html/functions_func_0x7e.html +9 -3
  156. package/SVF-doxygen/html/html/functions_func_b.html +10 -10
  157. package/SVF-doxygen/html/html/functions_func_c.html +23 -20
  158. package/SVF-doxygen/html/html/functions_func_d.html +5 -4
  159. package/SVF-doxygen/html/html/functions_func_e.html +3 -2
  160. package/SVF-doxygen/html/html/functions_func_g.html +33 -24
  161. package/SVF-doxygen/html/html/functions_func_i.html +17 -11
  162. package/SVF-doxygen/html/html/functions_func_n.html +4 -3
  163. package/SVF-doxygen/html/html/functions_func_o.html +4 -3
  164. package/SVF-doxygen/html/html/functions_func_p.html +3 -3
  165. package/SVF-doxygen/html/html/functions_func_s.html +2 -2
  166. package/SVF-doxygen/html/html/functions_func_z.html +79 -0
  167. package/SVF-doxygen/html/html/functions_g.html +35 -26
  168. package/SVF-doxygen/html/html/functions_i.html +30 -15
  169. package/SVF-doxygen/html/html/functions_l.html +8 -8
  170. package/SVF-doxygen/html/html/functions_m.html +1 -1
  171. package/SVF-doxygen/html/html/functions_n.html +4 -3
  172. package/SVF-doxygen/html/html/functions_o.html +9 -14
  173. package/SVF-doxygen/html/html/functions_p.html +10 -10
  174. package/SVF-doxygen/html/html/functions_r.html +7 -7
  175. package/SVF-doxygen/html/html/functions_rela.html +4 -0
  176. package/SVF-doxygen/html/html/functions_s.html +13 -15
  177. package/SVF-doxygen/html/html/functions_t.html +1 -3
  178. package/SVF-doxygen/html/html/functions_type_b.html +5 -6
  179. package/SVF-doxygen/html/html/functions_type_c.html +1 -1
  180. package/SVF-doxygen/html/html/functions_type_i.html +4 -1
  181. package/SVF-doxygen/html/html/functions_type_z.html +77 -0
  182. package/SVF-doxygen/html/html/functions_v.html +3 -3
  183. package/SVF-doxygen/html/html/functions_vars_a.html +0 -3
  184. package/SVF-doxygen/html/html/functions_vars_b.html +6 -9
  185. package/SVF-doxygen/html/html/functions_vars_c.html +5 -2
  186. package/SVF-doxygen/html/html/functions_vars_e.html +1 -1
  187. package/SVF-doxygen/html/html/functions_vars_i.html +6 -0
  188. package/SVF-doxygen/html/html/functions_vars_m.html +1 -1
  189. package/SVF-doxygen/html/html/functions_vars_n.html +1 -1
  190. package/SVF-doxygen/html/html/functions_vars_s.html +1 -1
  191. package/SVF-doxygen/html/html/functions_z.html +16 -0
  192. package/SVF-doxygen/html/html/hierarchy.html +436 -434
  193. package/SVF-doxygen/html/html/menudata.js +5 -2
  194. package/SVF-doxygen/html/html/namespaceSVF.html +8 -4
  195. package/SVF-doxygen/html/html/search/all_1.js +1 -2
  196. package/SVF-doxygen/html/html/search/all_10.js +11 -11
  197. package/SVF-doxygen/html/html/search/all_12.js +1 -1
  198. package/SVF-doxygen/html/html/search/all_13.js +8 -8
  199. package/SVF-doxygen/html/html/search/all_14.js +1 -1
  200. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  201. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  202. package/SVF-doxygen/html/html/search/all_1a.js +5 -0
  203. package/SVF-doxygen/html/html/search/all_1b.js +5 -3
  204. package/SVF-doxygen/html/html/search/all_2.js +10 -9
  205. package/SVF-doxygen/html/html/search/all_3.js +9 -7
  206. package/SVF-doxygen/html/html/search/all_4.js +3 -3
  207. package/SVF-doxygen/html/html/search/all_5.js +2 -2
  208. package/SVF-doxygen/html/html/search/all_6.js +1 -1
  209. package/SVF-doxygen/html/html/search/all_7.js +13 -11
  210. package/SVF-doxygen/html/html/search/all_9.js +8 -6
  211. package/SVF-doxygen/html/html/search/all_c.js +5 -5
  212. package/SVF-doxygen/html/html/search/all_d.js +2 -2
  213. package/SVF-doxygen/html/html/search/all_e.js +4 -4
  214. package/SVF-doxygen/html/html/search/all_f.js +2 -2
  215. package/SVF-doxygen/html/html/search/classes_1.js +2 -2
  216. package/SVF-doxygen/html/html/search/classes_14.html +26 -0
  217. package/SVF-doxygen/html/html/search/classes_14.js +5 -0
  218. package/SVF-doxygen/html/html/search/enums_1.js +1 -0
  219. package/SVF-doxygen/html/html/search/enumvalues_1.js +2 -1
  220. package/SVF-doxygen/html/html/search/enumvalues_14.html +26 -0
  221. package/SVF-doxygen/html/html/search/enumvalues_14.js +5 -0
  222. package/SVF-doxygen/html/html/search/functions_0.js +1 -1
  223. package/SVF-doxygen/html/html/search/functions_1.js +5 -5
  224. package/SVF-doxygen/html/html/search/functions_10.js +2 -2
  225. package/SVF-doxygen/html/html/search/functions_15.js +2 -0
  226. package/SVF-doxygen/html/html/search/functions_16.js +5 -3
  227. package/SVF-doxygen/html/html/search/functions_2.js +5 -5
  228. package/SVF-doxygen/html/html/search/functions_3.js +3 -3
  229. package/SVF-doxygen/html/html/search/functions_4.js +1 -1
  230. package/SVF-doxygen/html/html/search/functions_6.js +13 -11
  231. package/SVF-doxygen/html/html/search/functions_8.js +4 -4
  232. package/SVF-doxygen/html/html/search/functions_c.js +1 -1
  233. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  234. package/SVF-doxygen/html/html/search/functions_e.js +4 -4
  235. package/SVF-doxygen/html/html/search/related_0.js +2 -1
  236. package/SVF-doxygen/html/html/search/searchdata.js +3 -3
  237. package/SVF-doxygen/html/html/search/typedefs_1.js +2 -2
  238. package/SVF-doxygen/html/html/search/typedefs_16.html +26 -0
  239. package/SVF-doxygen/html/html/search/typedefs_16.js +4 -0
  240. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
  241. package/SVF-doxygen/html/html/search/typedefs_8.js +2 -1
  242. package/SVF-doxygen/html/html/search/variables_1.js +0 -1
  243. package/SVF-doxygen/html/html/search/variables_13.js +1 -1
  244. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  245. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  246. package/SVF-doxygen/html/html/search/variables_2.js +2 -3
  247. package/SVF-doxygen/html/html/search/variables_3.js +2 -1
  248. package/SVF-doxygen/html/html/search/variables_5.js +1 -1
  249. package/SVF-doxygen/html/html/search/variables_9.js +2 -0
  250. package/SVF-doxygen/html/html/search/variables_d.js +2 -2
  251. package/SVF-doxygen/html/html/search/variables_e.js +3 -3
  252. package/include/SABER/PathCondAllocator.h +2 -3
  253. package/include/Util/Conditions.h +272 -166
  254. package/include/Util/Options.h +4 -0
  255. package/index.html +2 -0
  256. package/lib/SABER/PathCondAllocator.cpp +3 -0
  257. package/lib/Util/Conditions.cpp +245 -209
  258. package/lib/Util/Options.cpp +11 -0
  259. package/lib/WPA/Andersen.cpp +10 -9
  260. package/package.json +1 -1
@@ -0,0 +1,1139 @@
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::BDDManager 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_1BDDManager.html">BDDManager</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="#pri-methods">Private Member Functions</a> &#124;
69
+ <a href="#pri-attribs">Private Attributes</a> &#124;
70
+ <a href="#friends">Friends</a> &#124;
71
+ <a href="classSVF_1_1BDDManager-members.html">List of all members</a> </div>
72
+ <div class="headertitle">
73
+ <div class="title">SVF::BDDManager Class Reference</div> </div>
74
+ </div><!--header-->
75
+ <div class="contents">
76
+
77
+ <p><code>#include &lt;<a class="el" href="Conditions_8h_source.html">Conditions.h</a>&gt;</code></p>
78
+ <div class="dynheader">
79
+ Inheritance diagram for SVF::BDDManager:</div>
80
+ <div class="dyncontent">
81
+ <div class="center">
82
+ <img src="classSVF_1_1BDDManager.png" usemap="#SVF::BDDManager_map" alt=""/>
83
+ <map id="SVF::BDDManager_map" name="SVF::BDDManager_map">
84
+ <area href="classSVF_1_1CondManager.html" alt="SVF::CondManager" shape="rect" coords="0,0,124,24"/>
85
+ </map>
86
+ </div></div>
87
+ <table class="memberdecls">
88
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
89
+ Public Types</h2></td></tr>
90
+ <tr class="memitem:a7a1692324d6b152588ef4d52013f8d00"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classSVF_1_1BDDExpr.html#a8b8ff2750644582e55ff8a5d39826f9f">BDDExpr::BDDCond</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a></td></tr>
91
+ <tr class="separator:a7a1692324d6b152588ef4d52013f8d00"><td class="memSeparator" colspan="2">&#160;</td></tr>
92
+ <tr class="memitem:a54716dd8be2691e3e0dbffc14461c1e8"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt; <a class="el" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a> *, <a class="el" href="classSVF_1_1BDDExpr.html">BDDExpr</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a54716dd8be2691e3e0dbffc14461c1e8">BDDToBDDCondExpr</a></td></tr>
93
+ <tr class="separator:a54716dd8be2691e3e0dbffc14461c1e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
94
+ <tr class="memitem:a33bb37b30e4c7364d6df73d209bd81d0"><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_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a33bb37b30e4c7364d6df73d209bd81d0">IndexToBDDCond</a></td></tr>
95
+ <tr class="separator:a33bb37b30e4c7364d6df73d209bd81d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
96
+ <tr class="inherit_header pub_types_classSVF_1_1CondManager"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classSVF_1_1CondManager')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td></tr>
97
+ <tr class="memitem:a7f7519973f1e0ab8054670a6154bd74f inherit pub_types_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74f">CondMgrKind</a> { <a class="el" href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74fa106b111c9871d823d33c83758d890a0d">BDDMgrK</a>,
98
+ <a class="el" href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74fa0d24aacdb91d2684f43135bd654f5780">Z3MgrK</a>
99
+ }</td></tr>
100
+ <tr class="separator:a7f7519973f1e0ab8054670a6154bd74f inherit pub_types_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
101
+ <tr class="memitem:a01565ecb4f167283396be0e446b9df0a inherit pub_types_classSVF_1_1CondManager"><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_1CondExpr.html">CondExpr</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_1CondManager.html#a01565ecb4f167283396be0e446b9df0a">CondToTermInstMap</a></td></tr>
102
+ <tr class="separator:a01565ecb4f167283396be0e446b9df0a inherit pub_types_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
103
+ </table><table class="memberdecls">
104
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
105
+ Public Member Functions</h2></td></tr>
106
+ <tr class="memitem:aaede06df8ca879e9116a16ed690b2f8e"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#aaede06df8ca879e9116a16ed690b2f8e">~BDDManager</a> ()</td></tr>
107
+ <tr class="memdesc:aaede06df8ca879e9116a16ed690b2f8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="#aaede06df8ca879e9116a16ed690b2f8e">More...</a><br /></td></tr>
108
+ <tr class="separator:aaede06df8ca879e9116a16ed690b2f8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
109
+ <tr class="memitem:a82748f6ae3ea640de7b0755a6eab96d1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a82748f6ae3ea640de7b0755a6eab96d1">createCond</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i)</td></tr>
110
+ <tr class="separator:a82748f6ae3ea640de7b0755a6eab96d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
111
+ <tr class="memitem:a6b32e78874429c587de4f0f50dad95ee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a6b32e78874429c587de4f0f50dad95ee">getCond</a> (<a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i) const override</td></tr>
112
+ <tr class="memdesc:a6b32e78874429c587de4f0f50dad95ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given an index, get its condition. <a href="#a6b32e78874429c587de4f0f50dad95ee">More...</a><br /></td></tr>
113
+ <tr class="separator:a6b32e78874429c587de4f0f50dad95ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
114
+ <tr class="memitem:a5311c7dcff82a09077e640e20d9e68e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a5311c7dcff82a09077e640e20d9e68e9">createFreshBranchCond</a> (const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst) override</td></tr>
115
+ <tr class="memdesc:a5311c7dcff82a09077e640e20d9e68e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a fresh condition to encode each program branch. <a href="#a5311c7dcff82a09077e640e20d9e68e9">More...</a><br /></td></tr>
116
+ <tr class="separator:a5311c7dcff82a09077e640e20d9e68e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
117
+ <tr class="memitem:a11e62b98370ace84a5370a9ab00a1717"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a11e62b98370ace84a5370a9ab00a1717">getCondNumber</a> () override</td></tr>
118
+ <tr class="memdesc:a11e62b98370ace84a5370a9ab00a1717"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the number of condition expressions. <a href="#a11e62b98370ace84a5370a9ab00a1717">More...</a><br /></td></tr>
119
+ <tr class="separator:a11e62b98370ace84a5370a9ab00a1717"><td class="memSeparator" colspan="2">&#160;</td></tr>
120
+ <tr class="memitem:a913b8c19f239a162dbfa9527c846c3f6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BDDExpr.html">BDDExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a913b8c19f239a162dbfa9527c846c3f6">getOrAddBranchCond</a> (<a class="el" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a> *bddCond)</td></tr>
121
+ <tr class="separator:a913b8c19f239a162dbfa9527c846c3f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
122
+ <tr class="memitem:a4a1c1534e9e23ea326008abf1d318369"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a4a1c1534e9e23ea326008abf1d318369">isNegCond</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond) const override</td></tr>
123
+ <tr class="separator:a4a1c1534e9e23ea326008abf1d318369"><td class="memSeparator" colspan="2">&#160;</td></tr>
124
+ <tr class="memitem:a4ce1ff325aab55d7bef7d28fe79f4cde"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a4ce1ff325aab55d7bef7d28fe79f4cde">isEquivalentBranchCond</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *lhs, const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *rhs) override</td></tr>
125
+ <tr class="memdesc:a4ce1ff325aab55d7bef7d28fe79f4cde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether lhs and rhs are equivalent branch conditions. <a href="#a4ce1ff325aab55d7bef7d28fe79f4cde">More...</a><br /></td></tr>
126
+ <tr class="separator:a4ce1ff325aab55d7bef7d28fe79f4cde"><td class="memSeparator" colspan="2">&#160;</td></tr>
127
+ <tr class="memitem:aecd072d15ee8a4a9940b31ac78c50960"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#aecd072d15ee8a4a9940b31ac78c50960">isSatisfiable</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond) override</td></tr>
128
+ <tr class="separator:aecd072d15ee8a4a9940b31ac78c50960"><td class="memSeparator" colspan="2">&#160;</td></tr>
129
+ <tr class="memitem:a9aaa963fedb93d98f62f64bed1fd173f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a9aaa963fedb93d98f62f64bed1fd173f">ddClearFlag</a> (<a class="el" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a> *f) const</td></tr>
130
+ <tr class="separator:a9aaa963fedb93d98f62f64bed1fd173f"><td class="memSeparator" colspan="2">&#160;</td></tr>
131
+ <tr class="memitem:a1b7908b727c638d9cfd5e7347dd6b63d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a1b7908b727c638d9cfd5e7347dd6b63d">BddSupportStep</a> (<a class="el" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a> *f, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;support) const</td></tr>
132
+ <tr class="separator:a1b7908b727c638d9cfd5e7347dd6b63d"><td class="memSeparator" colspan="2">&#160;</td></tr>
133
+ <tr class="memitem:a3fa608e37862e2702096c65fdb27c8c8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a3fa608e37862e2702096c65fdb27c8c8">extractSubConds</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *f, <a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;support) const override</td></tr>
134
+ <tr class="memdesc:a3fa608e37862e2702096c65fdb27c8c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract sub conditions of this expression. <a href="#a3fa608e37862e2702096c65fdb27c8c8">More...</a><br /></td></tr>
135
+ <tr class="separator:a3fa608e37862e2702096c65fdb27c8c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
136
+ <tr class="memitem:a933749fc805c4147722bb847f3e427b8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a933749fc805c4147722bb847f3e427b8">dump</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *lhs, <a class="el" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</a> &amp;O)</td></tr>
137
+ <tr class="separator:a933749fc805c4147722bb847f3e427b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
138
+ <tr class="memitem:add075de17c153605c2d5eb7b5d87dbfb"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#add075de17c153605c2d5eb7b5d87dbfb">dumpStr</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *e) const override</td></tr>
139
+ <tr class="separator:add075de17c153605c2d5eb7b5d87dbfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
140
+ <tr class="memitem:adf0847a4af7703a0139c5db326a7988f"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#adf0847a4af7703a0139c5db326a7988f">getMemUsage</a> () override</td></tr>
141
+ <tr class="memdesc:adf0847a4af7703a0139c5db326a7988f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return memory usage for this condition manager. <a href="#adf0847a4af7703a0139c5db326a7988f">More...</a><br /></td></tr>
142
+ <tr class="separator:adf0847a4af7703a0139c5db326a7988f"><td class="memSeparator" colspan="2">&#160;</td></tr>
143
+ <tr><td colspan="2"><div class="groupHeader"></div></td></tr>
144
+ <tr class="memitem:af8a4ede3ac4b89bb0ce7767ee4505aea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#af8a4ede3ac4b89bb0ce7767ee4505aea">AND</a> (<a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *lhs, <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *rhs) override</td></tr>
145
+ <tr class="memdesc:af8a4ede3ac4b89bb0ce7767ee4505aea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operations on conditions. <a href="#af8a4ede3ac4b89bb0ce7767ee4505aea">More...</a><br /></td></tr>
146
+ <tr class="separator:af8a4ede3ac4b89bb0ce7767ee4505aea"><td class="memSeparator" colspan="2">&#160;</td></tr>
147
+ <tr class="memitem:a6c5d935cc7c9ee02a0a37f7fcce34a89"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a6c5d935cc7c9ee02a0a37f7fcce34a89">OR</a> (<a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *lhs, <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *rhs) override</td></tr>
148
+ <tr class="separator:a6c5d935cc7c9ee02a0a37f7fcce34a89"><td class="memSeparator" colspan="2">&#160;</td></tr>
149
+ <tr class="memitem:a0dbbee1845fbf6ce660caf6c30438bef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a0dbbee1845fbf6ce660caf6c30438bef">NEG</a> (<a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *lhs) override</td></tr>
150
+ <tr class="separator:a0dbbee1845fbf6ce660caf6c30438bef"><td class="memSeparator" colspan="2">&#160;</td></tr>
151
+ <tr class="inherit_header pub_methods_classSVF_1_1CondManager"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classSVF_1_1CondManager')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td></tr>
152
+ <tr class="memitem:ae17d57a0fdc02a5558120e65e11976d4 inherit pub_methods_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#ae17d57a0fdc02a5558120e65e11976d4">~CondManager</a> ()</td></tr>
153
+ <tr class="memdesc:ae17d57a0fdc02a5558120e65e11976d4 inherit pub_methods_classSVF_1_1CondManager"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="classSVF_1_1CondManager.html#ae17d57a0fdc02a5558120e65e11976d4">More...</a><br /></td></tr>
154
+ <tr class="separator:ae17d57a0fdc02a5558120e65e11976d4 inherit pub_methods_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
155
+ <tr class="memitem:ac74f182ef249a7c892ba9c630f889ddc inherit pub_methods_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a> () const</td></tr>
156
+ <tr class="memdesc:ac74f182ef249a7c892ba9c630f889ddc inherit pub_methods_classSVF_1_1CondManager"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the unique true condition. <a href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">More...</a><br /></td></tr>
157
+ <tr class="separator:ac74f182ef249a7c892ba9c630f889ddc inherit pub_methods_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
158
+ <tr class="memitem:a39e9d42cb3661d1c686b5163c70eeade inherit pub_methods_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a> () const</td></tr>
159
+ <tr class="memdesc:a39e9d42cb3661d1c686b5163c70eeade inherit pub_methods_classSVF_1_1CondManager"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the unique false condition. <a href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">More...</a><br /></td></tr>
160
+ <tr class="separator:a39e9d42cb3661d1c686b5163c70eeade inherit pub_methods_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
161
+ <tr class="memitem:a6151817a6f671fa1e7814e74f7ce2e51 inherit pub_methods_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a6151817a6f671fa1e7814e74f7ce2e51">isAllPathReachable</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *e)</td></tr>
162
+ <tr class="memdesc:a6151817a6f671fa1e7814e74f7ce2e51 inherit pub_methods_classSVF_1_1CondManager"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether <b>All Paths</b> are reachable. <a href="classSVF_1_1CondManager.html#a6151817a6f671fa1e7814e74f7ce2e51">More...</a><br /></td></tr>
163
+ <tr class="separator:a6151817a6f671fa1e7814e74f7ce2e51 inherit pub_methods_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
164
+ <tr class="memitem:a4fac6a918f1f6d09fe1a4ceac7c19428 inherit pub_methods_classSVF_1_1CondManager"><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_1CondManager.html#a4fac6a918f1f6d09fe1a4ceac7c19428">getCondInst</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond) const</td></tr>
165
+ <tr class="memdesc:a4fac6a918f1f6d09fe1a4ceac7c19428 inherit pub_methods_classSVF_1_1CondManager"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get/Set llvm conditional expression. <a href="classSVF_1_1CondManager.html#a4fac6a918f1f6d09fe1a4ceac7c19428">More...</a><br /></td></tr>
166
+ <tr class="separator:a4fac6a918f1f6d09fe1a4ceac7c19428 inherit pub_methods_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
167
+ <tr class="memitem:a1fbf7dd446309e13671d838c91da26bf inherit pub_methods_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">setCondInst</a> (const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond, const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</td></tr>
168
+ <tr class="separator:a1fbf7dd446309e13671d838c91da26bf inherit pub_methods_classSVF_1_1CondManager"><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:a10be33f7829cb2da0ba1c3b2ddc22261"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a10be33f7829cb2da0ba1c3b2ddc22261">BDDManager</a> ()</td></tr>
173
+ <tr class="memdesc:a10be33f7829cb2da0ba1c3b2ddc22261"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#a10be33f7829cb2da0ba1c3b2ddc22261">More...</a><br /></td></tr>
174
+ <tr class="separator:a10be33f7829cb2da0ba1c3b2ddc22261"><td class="memSeparator" colspan="2">&#160;</td></tr>
175
+ <tr class="memitem:a51e174fcf76d5adbf22717c0b95c0286"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a51e174fcf76d5adbf22717c0b95c0286">BddOne</a> () const</td></tr>
176
+ <tr class="separator:a51e174fcf76d5adbf22717c0b95c0286"><td class="memSeparator" colspan="2">&#160;</td></tr>
177
+ <tr class="memitem:a22c04e2cf77af9c02755d1544b68e112"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a22c04e2cf77af9c02755d1544b68e112">BddZero</a> () const</td></tr>
178
+ <tr class="separator:a22c04e2cf77af9c02755d1544b68e112"><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:aae62fd27ddc847758ea67000580efdb8"><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_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">m_bdd_mgr</a></td></tr>
183
+ <tr class="separator:aae62fd27ddc847758ea67000580efdb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
184
+ <tr class="memitem:acb037c79511b40032e523494a804adb3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BDDManager.html#a54716dd8be2691e3e0dbffc14461c1e8">BDDToBDDCondExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#acb037c79511b40032e523494a804adb3">bddToBddCondExprMap</a></td></tr>
185
+ <tr class="separator:acb037c79511b40032e523494a804adb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
186
+ <tr class="memitem:a7b780b30a7c433dcccab1e29b85b7704"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1BDDManager.html#a33bb37b30e4c7364d6df73d209bd81d0">IndexToBDDCond</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a7b780b30a7c433dcccab1e29b85b7704">indexToBddCondMap</a></td></tr>
187
+ <tr class="separator:a7b780b30a7c433dcccab1e29b85b7704"><td class="memSeparator" colspan="2">&#160;</td></tr>
188
+ </table><table class="memberdecls">
189
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
190
+ Friends</h2></td></tr>
191
+ <tr class="memitem:a243595beea0081ef5ff38dec8c150651"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1BDDManager.html#a243595beea0081ef5ff38dec8c150651">CondManager</a></td></tr>
192
+ <tr class="separator:a243595beea0081ef5ff38dec8c150651"><td class="memSeparator" colspan="2">&#160;</td></tr>
193
+ </table><table class="memberdecls">
194
+ <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
195
+ Additional Inherited Members</h2></td></tr>
196
+ <tr class="inherit_header pub_static_methods_classSVF_1_1CondManager"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classSVF_1_1CondManager')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td></tr>
197
+ <tr class="memitem:a08cad78a4ebb31f32b72d5ff9793b83e inherit pub_static_methods_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1CondManager.html">CondManager</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a08cad78a4ebb31f32b72d5ff9793b83e">getCondMgr</a> (<a class="el" href="classSVF_1_1CondManager.html#a7f7519973f1e0ab8054670a6154bd74f">CondMgrKind</a> _condMgrKind)</td></tr>
198
+ <tr class="memdesc:a08cad78a4ebb31f32b72d5ff9793b83e inherit pub_static_methods_classSVF_1_1CondManager"><td class="mdescLeft">&#160;</td><td class="mdescRight">Singleton design here to make sure we only have one instance during any analysis. <a href="classSVF_1_1CondManager.html#a08cad78a4ebb31f32b72d5ff9793b83e">More...</a><br /></td></tr>
199
+ <tr class="separator:a08cad78a4ebb31f32b72d5ff9793b83e inherit pub_static_methods_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
200
+ <tr class="memitem:a2748338b4a5b122b5bbf4a9cb1f54211 inherit pub_static_methods_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a2748338b4a5b122b5bbf4a9cb1f54211">releaseCondMgr</a> ()</td></tr>
201
+ <tr class="separator:a2748338b4a5b122b5bbf4a9cb1f54211 inherit pub_static_methods_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
202
+ <tr class="inherit_header pub_static_attribs_classSVF_1_1CondManager"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classSVF_1_1CondManager')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td></tr>
203
+ <tr class="memitem:a7efaeff7229fcfdc6c05d53ee3e1d916 inherit pub_static_attribs_classSVF_1_1CondManager"><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_1CondManager.html#a7efaeff7229fcfdc6c05d53ee3e1d916">totalCondNum</a> = 0</td></tr>
204
+ <tr class="separator:a7efaeff7229fcfdc6c05d53ee3e1d916 inherit pub_static_attribs_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
205
+ <tr class="inherit_header pro_methods_classSVF_1_1CondManager"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classSVF_1_1CondManager')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td></tr>
206
+ <tr class="memitem:a692a05088457ba5e4e1b7873c8da411d inherit pro_methods_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a692a05088457ba5e4e1b7873c8da411d">CondManager</a> ()</td></tr>
207
+ <tr class="memdesc:a692a05088457ba5e4e1b7873c8da411d inherit pro_methods_classSVF_1_1CondManager"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="classSVF_1_1CondManager.html#a692a05088457ba5e4e1b7873c8da411d">More...</a><br /></td></tr>
208
+ <tr class="separator:a692a05088457ba5e4e1b7873c8da411d inherit pro_methods_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
209
+ <tr class="inherit_header pro_static_attribs_classSVF_1_1CondManager"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_classSVF_1_1CondManager')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td></tr>
210
+ <tr class="memitem:aed854ecc55a568597f7d7f1f78fb92f4 inherit pro_static_attribs_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">trueCond</a> = nullptr</td></tr>
211
+ <tr class="separator:aed854ecc55a568597f7d7f1f78fb92f4 inherit pro_static_attribs_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
212
+ <tr class="memitem:a0ba3cf86743de62bcd5fd38d8166bc90 inherit pro_static_attribs_classSVF_1_1CondManager"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90">falseCond</a> = nullptr</td></tr>
213
+ <tr class="separator:a0ba3cf86743de62bcd5fd38d8166bc90 inherit pro_static_attribs_classSVF_1_1CondManager"><td class="memSeparator" colspan="2">&#160;</td></tr>
214
+ </table>
215
+ <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
216
+ <div class="textblock"><p>BDD Condition Manager </p>
217
+
218
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00325">325</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
219
+ </div><h2 class="groupheader">Member Typedef Documentation</h2>
220
+ <a id="a7a1692324d6b152588ef4d52013f8d00"></a>
221
+ <h2 class="memtitle"><span class="permalink"><a href="#a7a1692324d6b152588ef4d52013f8d00">&#9670;&nbsp;</a></span>BDDCond</h2>
222
+
223
+ <div class="memitem">
224
+ <div class="memproto">
225
+ <table class="memname">
226
+ <tr>
227
+ <td class="memname">typedef <a class="el" href="classSVF_1_1BDDExpr.html#a8b8ff2750644582e55ff8a5d39826f9f">BDDExpr::BDDCond</a> <a class="el" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">SVF::BDDManager::BDDCond</a></td>
228
+ </tr>
229
+ </table>
230
+ </div><div class="memdoc">
231
+
232
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00329">329</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
233
+
234
+ </div>
235
+ </div>
236
+ <a id="a54716dd8be2691e3e0dbffc14461c1e8"></a>
237
+ <h2 class="memtitle"><span class="permalink"><a href="#a54716dd8be2691e3e0dbffc14461c1e8">&#9670;&nbsp;</a></span>BDDToBDDCondExpr</h2>
238
+
239
+ <div class="memitem">
240
+ <div class="memproto">
241
+ <table class="memname">
242
+ <tr>
243
+ <td class="memname">typedef <a class="el" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map</a>&lt;<a class="el" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a> *, <a class="el" href="classSVF_1_1BDDExpr.html">BDDExpr</a> *&gt; <a class="el" href="classSVF_1_1BDDManager.html#a54716dd8be2691e3e0dbffc14461c1e8">SVF::BDDManager::BDDToBDDCondExpr</a></td>
244
+ </tr>
245
+ </table>
246
+ </div><div class="memdoc">
247
+
248
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00330">330</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
249
+
250
+ </div>
251
+ </div>
252
+ <a id="a33bb37b30e4c7364d6df73d209bd81d0"></a>
253
+ <h2 class="memtitle"><span class="permalink"><a href="#a33bb37b30e4c7364d6df73d209bd81d0">&#9670;&nbsp;</a></span>IndexToBDDCond</h2>
254
+
255
+ <div class="memitem">
256
+ <div class="memproto">
257
+ <table class="memname">
258
+ <tr>
259
+ <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_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a> *&gt; <a class="el" href="classSVF_1_1BDDManager.html#a33bb37b30e4c7364d6df73d209bd81d0">SVF::BDDManager::IndexToBDDCond</a></td>
260
+ </tr>
261
+ </table>
262
+ </div><div class="memdoc">
263
+
264
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00331">331</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
265
+
266
+ </div>
267
+ </div>
268
+ <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
269
+ <a id="a10be33f7829cb2da0ba1c3b2ddc22261"></a>
270
+ <h2 class="memtitle"><span class="permalink"><a href="#a10be33f7829cb2da0ba1c3b2ddc22261">&#9670;&nbsp;</a></span>BDDManager()</h2>
271
+
272
+ <div class="memitem">
273
+ <div class="memproto">
274
+ <table class="mlabels">
275
+ <tr>
276
+ <td class="mlabels-left">
277
+ <table class="memname">
278
+ <tr>
279
+ <td class="memname">BDDManager::BDDManager </td>
280
+ <td>(</td>
281
+ <td class="paramname"></td><td>)</td>
282
+ <td></td>
283
+ </tr>
284
+ </table>
285
+ </td>
286
+ <td class="mlabels-right">
287
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
288
+ </tr>
289
+ </table>
290
+ </div><div class="memdoc">
291
+
292
+ <p>Constructor. </p>
293
+
294
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00263">263</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
295
+ <div class="fragment"><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="classSVF_1_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">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="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">trueCond</a> = <a class="code" href="classSVF_1_1BDDManager.html#a913b8c19f239a162dbfa9527c846c3f6">getOrAddBranchCond</a>(<a class="code" href="classSVF_1_1BDDManager.html#a51e174fcf76d5adbf22717c0b95c0286">BddOne</a>());</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90">falseCond</a> = <a class="code" href="classSVF_1_1BDDManager.html#a913b8c19f239a162dbfa9527c846c3f6">getOrAddBranchCond</a>(<a class="code" href="classSVF_1_1BDDManager.html#a22c04e2cf77af9c02755d1544b68e112">BddZero</a>());</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_a0ba3cf86743de62bcd5fd38d8166bc90"><div class="ttname"><a href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90">SVF::CondManager::falseCond</a></div><div class="ttdeci">static CondExpr * falseCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00229">Conditions.h:229</a></div></div>
296
+ <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>
297
+ <div class="ttc" id="classSVF_1_1BDDManager_html_a22c04e2cf77af9c02755d1544b68e112"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a22c04e2cf77af9c02755d1544b68e112">SVF::BDDManager::BddZero</a></div><div class="ttdeci">BDDCond * BddZero() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00342">Conditions.h:342</a></div></div>
298
+ <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>
299
+ <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>
300
+ <div class="ttc" id="classSVF_1_1BDDManager_html_aae62fd27ddc847758ea67000580efdb8"><div class="ttname"><a href="classSVF_1_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">SVF::BDDManager::m_bdd_mgr</a></div><div class="ttdeci">DdManager * m_bdd_mgr</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00346">Conditions.h:346</a></div></div>
301
+ <div class="ttc" id="classSVF_1_1CondManager_html_aed854ecc55a568597f7d7f1f78fb92f4"><div class="ttname"><a href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">SVF::CondManager::trueCond</a></div><div class="ttdeci">static CondExpr * trueCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00228">Conditions.h:228</a></div></div>
302
+ <div class="ttc" id="classSVF_1_1BDDManager_html_a51e174fcf76d5adbf22717c0b95c0286"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a51e174fcf76d5adbf22717c0b95c0286">SVF::BDDManager::BddOne</a></div><div class="ttdeci">BDDCond * BddOne() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00338">Conditions.h:338</a></div></div>
303
+ <div class="ttc" id="classSVF_1_1BDDManager_html_a913b8c19f239a162dbfa9527c846c3f6"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a913b8c19f239a162dbfa9527c846c3f6">SVF::BDDManager::getOrAddBranchCond</a></div><div class="ttdeci">BDDExpr * getOrAddBranchCond(BDDCond *bddCond)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00253">Conditions.cpp:253</a></div></div>
304
+ </div><!-- fragment -->
305
+ </div>
306
+ </div>
307
+ <a id="aaede06df8ca879e9116a16ed690b2f8e"></a>
308
+ <h2 class="memtitle"><span class="permalink"><a href="#aaede06df8ca879e9116a16ed690b2f8e">&#9670;&nbsp;</a></span>~BDDManager()</h2>
309
+
310
+ <div class="memitem">
311
+ <div class="memproto">
312
+ <table class="mlabels">
313
+ <tr>
314
+ <td class="mlabels-left">
315
+ <table class="memname">
316
+ <tr>
317
+ <td class="memname">BDDManager::~BDDManager </td>
318
+ <td>(</td>
319
+ <td class="paramname"></td><td>)</td>
320
+ <td></td>
321
+ </tr>
322
+ </table>
323
+ </td>
324
+ <td class="mlabels-right">
325
+ <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
326
+ </tr>
327
+ </table>
328
+ </div><div class="memdoc">
329
+
330
+ <p>Destructor. </p>
331
+
332
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00269">269</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
333
+ <div class="fragment"><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; {</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &amp;it: <a class="code" href="classSVF_1_1BDDManager.html#acb037c79511b40032e523494a804adb3">bddToBddCondExprMap</a>) {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keyword">delete</span> it.second;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="cudd_8h.html#a2889ace3fcf7d4e00915de52554fd475">Cudd_Quit</a>(<a class="code" href="classSVF_1_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">m_bdd_mgr</a>);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;}</div><div class="ttc" id="classSVF_1_1BDDManager_html_acb037c79511b40032e523494a804adb3"><div class="ttname"><a href="classSVF_1_1BDDManager.html#acb037c79511b40032e523494a804adb3">SVF::BDDManager::bddToBddCondExprMap</a></div><div class="ttdeci">BDDToBDDCondExpr bddToBddCondExprMap</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00347">Conditions.h:347</a></div></div>
334
+ <div class="ttc" id="classSVF_1_1BDDManager_html_aae62fd27ddc847758ea67000580efdb8"><div class="ttname"><a href="classSVF_1_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">SVF::BDDManager::m_bdd_mgr</a></div><div class="ttdeci">DdManager * m_bdd_mgr</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00346">Conditions.h:346</a></div></div>
335
+ <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>
336
+ </div><!-- fragment -->
337
+ </div>
338
+ </div>
339
+ <h2 class="groupheader">Member Function Documentation</h2>
340
+ <a id="af8a4ede3ac4b89bb0ce7767ee4505aea"></a>
341
+ <h2 class="memtitle"><span class="permalink"><a href="#af8a4ede3ac4b89bb0ce7767ee4505aea">&#9670;&nbsp;</a></span>AND()</h2>
342
+
343
+ <div class="memitem">
344
+ <div class="memproto">
345
+ <table class="mlabels">
346
+ <tr>
347
+ <td class="mlabels-left">
348
+ <table class="memname">
349
+ <tr>
350
+ <td class="memname"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * BDDManager::AND </td>
351
+ <td>(</td>
352
+ <td class="paramtype"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
353
+ <td class="paramname"><em>lhs</em>, </td>
354
+ </tr>
355
+ <tr>
356
+ <td class="paramkey"></td>
357
+ <td></td>
358
+ <td class="paramtype"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
359
+ <td class="paramname"><em>rhs</em>&#160;</td>
360
+ </tr>
361
+ <tr>
362
+ <td></td>
363
+ <td>)</td>
364
+ <td></td><td></td>
365
+ </tr>
366
+ </table>
367
+ </td>
368
+ <td class="mlabels-right">
369
+ <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
370
+ </tr>
371
+ </table>
372
+ </div><div class="memdoc">
373
+
374
+ <p>Operations on conditions. </p>
375
+ <p>use Cudd_bddAndLimit interface to avoid bdds blow up </p>
376
+ <p>drop the rhs condition </p>
377
+
378
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#aedda2ed496d0009d92d44a82af2ce8ae">SVF::CondManager</a>.</p>
379
+
380
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00294">294</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
381
+ <div class="fragment"><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keyword">auto</span> *bddlhs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1BDDExpr.html">BDDExpr</a>&gt;(lhs);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keyword">auto</span> *bddrhs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1BDDExpr.html">BDDExpr</a>&gt;(rhs);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(bddlhs &amp;&amp; bddrhs &amp;&amp; <span class="stringliteral">&quot;not bdd condition?&quot;</span>);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">if</span> (bddlhs == <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>() || bddrhs == <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>())</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>();</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bddlhs == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>())</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">return</span> bddrhs;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bddrhs == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>())</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">return</span> bddlhs;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a> *tmp = <a class="code" href="cudd_8h.html#adfbb2fd5b9c884df0d684a86dc26a97d">Cudd_bddAndLimit</a>(<a class="code" href="classSVF_1_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">m_bdd_mgr</a>, bddlhs-&gt;getBDDCond(), bddrhs-&gt;getBDDCond(), <a class="code" href="classSVF_1_1Options.html#a344ca0e4b8d9159836e558aed44be1b4">Options::MaxBddSize</a>);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">if</span> (tmp == <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</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="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">return</span> bddlhs;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <a class="code" href="cudd_8h.html#a3d0d9959640235fc073699c776914fca">Cudd_Ref</a>(tmp);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BDDManager.html#a913b8c19f239a162dbfa9527c846c3f6">getOrAddBranchCond</a>(tmp);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; }</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; }</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;}</div><div class="ttc" id="classSVF_1_1BDDManager_html_a7a1692324d6b152588ef4d52013f8d00"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">SVF::BDDManager::BDDCond</a></div><div class="ttdeci">BDDExpr::BDDCond BDDCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00329">Conditions.h:329</a></div></div>
382
+ <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>
383
+ <div class="ttc" id="classSVF_1_1CondManager_html_ac74f182ef249a7c892ba9c630f889ddc"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">SVF::CondManager::getTrueCond</a></div><div class="ttdeci">CondExpr * getTrueCond() const</div><div class="ttdoc">Return the unique true condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00172">Conditions.h:172</a></div></div>
384
+ <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>
385
+ <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>
386
+ <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#l00219">Options.h:219</a></div></div>
387
+ <div class="ttc" id="classSVF_1_1BDDExpr_html"><div class="ttname"><a href="classSVF_1_1BDDExpr.html">SVF::BDDExpr</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00105">Conditions.h:105</a></div></div>
388
+ <div class="ttc" id="classSVF_1_1BDDManager_html_aae62fd27ddc847758ea67000580efdb8"><div class="ttname"><a href="classSVF_1_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">SVF::BDDManager::m_bdd_mgr</a></div><div class="ttdeci">DdManager * m_bdd_mgr</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00346">Conditions.h:346</a></div></div>
389
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
390
+ <div class="ttc" id="classSVF_1_1CondManager_html_a39e9d42cb3661d1c686b5163c70eeade"><div class="ttname"><a href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">SVF::CondManager::getFalseCond</a></div><div class="ttdeci">CondExpr * getFalseCond() const</div><div class="ttdoc">Return the unique false condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00177">Conditions.h:177</a></div></div>
391
+ <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>
392
+ <div class="ttc" id="classSVF_1_1BDDManager_html_a913b8c19f239a162dbfa9527c846c3f6"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a913b8c19f239a162dbfa9527c846c3f6">SVF::BDDManager::getOrAddBranchCond</a></div><div class="ttdeci">BDDExpr * getOrAddBranchCond(BDDCond *bddCond)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00253">Conditions.cpp:253</a></div></div>
393
+ </div><!-- fragment -->
394
+ </div>
395
+ </div>
396
+ <a id="a51e174fcf76d5adbf22717c0b95c0286"></a>
397
+ <h2 class="memtitle"><span class="permalink"><a href="#a51e174fcf76d5adbf22717c0b95c0286">&#9670;&nbsp;</a></span>BddOne()</h2>
398
+
399
+ <div class="memitem">
400
+ <div class="memproto">
401
+ <table class="mlabels">
402
+ <tr>
403
+ <td class="mlabels-left">
404
+ <table class="memname">
405
+ <tr>
406
+ <td class="memname"><a class="el" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a>* SVF::BDDManager::BddOne </td>
407
+ <td>(</td>
408
+ <td class="paramname"></td><td>)</td>
409
+ <td> const</td>
410
+ </tr>
411
+ </table>
412
+ </td>
413
+ <td class="mlabels-right">
414
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
415
+ </tr>
416
+ </table>
417
+ </div><div class="memdoc">
418
+
419
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00338">338</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
420
+ <div class="fragment"><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cudd_8h.html#a2651c953d81570d3f4f794bcbef40afe">Cudd_ReadOne</a>(<a class="code" href="classSVF_1_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">m_bdd_mgr</a>);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="ttc" id="classSVF_1_1BDDManager_html_aae62fd27ddc847758ea67000580efdb8"><div class="ttname"><a href="classSVF_1_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">SVF::BDDManager::m_bdd_mgr</a></div><div class="ttdeci">DdManager * m_bdd_mgr</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00346">Conditions.h:346</a></div></div>
421
+ <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>
422
+ </div><!-- fragment -->
423
+ </div>
424
+ </div>
425
+ <a id="a1b7908b727c638d9cfd5e7347dd6b63d"></a>
426
+ <h2 class="memtitle"><span class="permalink"><a href="#a1b7908b727c638d9cfd5e7347dd6b63d">&#9670;&nbsp;</a></span>BddSupportStep()</h2>
427
+
428
+ <div class="memitem">
429
+ <div class="memproto">
430
+ <table class="memname">
431
+ <tr>
432
+ <td class="memname">void BDDManager::BddSupportStep </td>
433
+ <td>(</td>
434
+ <td class="paramtype"><a class="el" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a> *&#160;</td>
435
+ <td class="paramname"><em>f</em>, </td>
436
+ </tr>
437
+ <tr>
438
+ <td class="paramkey"></td>
439
+ <td></td>
440
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;&#160;</td>
441
+ <td class="paramname"><em>support</em>&#160;</td>
442
+ </tr>
443
+ <tr>
444
+ <td></td>
445
+ <td>)</td>
446
+ <td></td><td> const</td>
447
+ </tr>
448
+ </table>
449
+ </div><div class="memdoc">
450
+
451
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00380">380</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
452
+ <div class="fragment"><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</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="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; support.set(f-&gt;index);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <a class="code" href="classSVF_1_1BDDManager.html#a1b7908b727c638d9cfd5e7347dd6b63d">BddSupportStep</a>(<a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(f), support);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <a class="code" href="classSVF_1_1BDDManager.html#a1b7908b727c638d9cfd5e7347dd6b63d">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="l00388"></a><span class="lineno"> 388</span>&#160; <span class="comment">/* Mark as visited. */</span></div><div class="line"><a name="l00389"></a><span class="lineno"> 389</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="l00390"></a><span class="lineno"> 390</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>
453
+ <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>
454
+ <div class="ttc" id="classSVF_1_1BDDManager_html_a1b7908b727c638d9cfd5e7347dd6b63d"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a1b7908b727c638d9cfd5e7347dd6b63d">SVF::BDDManager::BddSupportStep</a></div><div class="ttdeci">void BddSupportStep(BDDCond *f, NodeBS &amp;support) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00380">Conditions.cpp:380</a></div></div>
455
+ <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>
456
+ <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>
457
+ <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>
458
+ <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>
459
+ </div><!-- fragment -->
460
+ </div>
461
+ </div>
462
+ <a id="a22c04e2cf77af9c02755d1544b68e112"></a>
463
+ <h2 class="memtitle"><span class="permalink"><a href="#a22c04e2cf77af9c02755d1544b68e112">&#9670;&nbsp;</a></span>BddZero()</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_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a>* SVF::BDDManager::BddZero </td>
473
+ <td>(</td>
474
+ <td class="paramname"></td><td>)</td>
475
+ <td> const</td>
476
+ </tr>
477
+ </table>
478
+ </td>
479
+ <td class="mlabels-right">
480
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">private</span></span> </td>
481
+ </tr>
482
+ </table>
483
+ </div><div class="memdoc">
484
+
485
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00342">342</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
486
+ <div class="fragment"><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cudd_8h.html#a1dd42d8cb5c86659170103a3068e13a6">Cudd_ReadLogicZero</a>(<a class="code" href="classSVF_1_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">m_bdd_mgr</a>);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</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>
487
+ <div class="ttc" id="classSVF_1_1BDDManager_html_aae62fd27ddc847758ea67000580efdb8"><div class="ttname"><a href="classSVF_1_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">SVF::BDDManager::m_bdd_mgr</a></div><div class="ttdeci">DdManager * m_bdd_mgr</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00346">Conditions.h:346</a></div></div>
488
+ </div><!-- fragment -->
489
+ </div>
490
+ </div>
491
+ <a id="a82748f6ae3ea640de7b0755a6eab96d1"></a>
492
+ <h2 class="memtitle"><span class="permalink"><a href="#a82748f6ae3ea640de7b0755a6eab96d1">&#9670;&nbsp;</a></span>createCond()</h2>
493
+
494
+ <div class="memitem">
495
+ <div class="memproto">
496
+ <table class="mlabels">
497
+ <tr>
498
+ <td class="mlabels-left">
499
+ <table class="memname">
500
+ <tr>
501
+ <td class="memname"><a class="el" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a>* SVF::BDDManager::createCond </td>
502
+ <td>(</td>
503
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&#160;</td>
504
+ <td class="paramname"><em>i</em></td><td>)</td>
505
+ <td></td>
506
+ </tr>
507
+ </table>
508
+ </td>
509
+ <td class="mlabels-right">
510
+ <span class="mlabels"><span class="mlabel">inline</span></span> </td>
511
+ </tr>
512
+ </table>
513
+ </div><div class="memdoc">
514
+
515
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00355">355</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
516
+ <div class="fragment"><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<a class="code" href="classSVF_1_1BDDManager.html#a7b780b30a7c433dcccab1e29b85b7704">indexToBddCondMap</a>.find(i) == <a class="code" href="classSVF_1_1BDDManager.html#a7b780b30a7c433dcccab1e29b85b7704">indexToBddCondMap</a>.end() &amp;&amp;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="stringliteral">&quot;This should be fresh index to create new BDD&quot;</span>);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <a class="code" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a> *bddCond = <a class="code" href="cudd_8h.html#a40fd71665cde402bd5bc4f39015c09ae">Cudd_bddIthVar</a>(<a class="code" href="classSVF_1_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">m_bdd_mgr</a>, i);</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BDDManager.html#a7b780b30a7c433dcccab1e29b85b7704">indexToBddCondMap</a>.emplace(i, bddCond).first-&gt;second;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div><div class="ttc" id="classSVF_1_1BDDManager_html_a7a1692324d6b152588ef4d52013f8d00"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">SVF::BDDManager::BDDCond</a></div><div class="ttdeci">BDDExpr::BDDCond BDDCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00329">Conditions.h:329</a></div></div>
517
+ <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>
518
+ <div class="ttc" id="classSVF_1_1BDDManager_html_a7b780b30a7c433dcccab1e29b85b7704"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a7b780b30a7c433dcccab1e29b85b7704">SVF::BDDManager::indexToBddCondMap</a></div><div class="ttdeci">IndexToBDDCond indexToBddCondMap</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00348">Conditions.h:348</a></div></div>
519
+ <div class="ttc" id="classSVF_1_1BDDManager_html_aae62fd27ddc847758ea67000580efdb8"><div class="ttname"><a href="classSVF_1_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">SVF::BDDManager::m_bdd_mgr</a></div><div class="ttdeci">DdManager * m_bdd_mgr</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00346">Conditions.h:346</a></div></div>
520
+ <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>
521
+ </div><!-- fragment -->
522
+ </div>
523
+ </div>
524
+ <a id="a5311c7dcff82a09077e640e20d9e68e9"></a>
525
+ <h2 class="memtitle"><span class="permalink"><a href="#a5311c7dcff82a09077e640e20d9e68e9">&#9670;&nbsp;</a></span>createFreshBranchCond()</h2>
526
+
527
+ <div class="memitem">
528
+ <div class="memproto">
529
+ <table class="mlabels">
530
+ <tr>
531
+ <td class="mlabels-left">
532
+ <table class="memname">
533
+ <tr>
534
+ <td class="memname"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * BDDManager::createFreshBranchCond </td>
535
+ <td>(</td>
536
+ <td class="paramtype">const <a class="el" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *&#160;</td>
537
+ <td class="paramname"><em>inst</em></td><td>)</td>
538
+ <td></td>
539
+ </tr>
540
+ </table>
541
+ </td>
542
+ <td class="mlabels-right">
543
+ <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
544
+ </tr>
545
+ </table>
546
+ </div><div class="memdoc">
547
+
548
+ <p>Create a fresh condition to encode each program branch. </p>
549
+
550
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#abd330e858463fed92fb3df6e8529f790">SVF::CondManager</a>.</p>
551
+
552
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00276">276</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
553
+ <div class="fragment"><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> condCountIdx = <a class="code" href="classSVF_1_1CondManager.html#a7efaeff7229fcfdc6c05d53ee3e1d916">totalCondNum</a>++;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a> *bddCond = <a class="code" href="classSVF_1_1BDDManager.html#a82748f6ae3ea640de7b0755a6eab96d1">createCond</a>(condCountIdx);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1BDDManager.html#acb037c79511b40032e523494a804adb3">bddToBddCondExprMap</a>.find(bddCond);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">if</span> (it != <a class="code" href="classSVF_1_1BDDManager.html#acb037c79511b40032e523494a804adb3">bddToBddCondExprMap</a>.end())</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">auto</span> *cond = <span class="keyword">new</span> <a class="code" href="classSVF_1_1BDDExpr.html">BDDExpr</a>(bddCond);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">setCondInst</a>(cond, inst);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keyword">auto</span> *negCond = <a class="code" href="classSVF_1_1BDDManager.html#a0dbbee1845fbf6ce660caf6c30438bef">NEG</a>(cond);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <a class="code" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">setCondInst</a>(negCond, inst);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BDDManager.html#acb037c79511b40032e523494a804adb3">bddToBddCondExprMap</a>.emplace(bddCond, cond).first-&gt;second;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;}</div><div class="ttc" id="classSVF_1_1BDDManager_html_a7a1692324d6b152588ef4d52013f8d00"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">SVF::BDDManager::BDDCond</a></div><div class="ttdeci">BDDExpr::BDDCond BDDCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00329">Conditions.h:329</a></div></div>
554
+ <div class="ttc" id="classSVF_1_1BDDManager_html_a0dbbee1845fbf6ce660caf6c30438bef"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a0dbbee1845fbf6ce660caf6c30438bef">SVF::BDDManager::NEG</a></div><div class="ttdeci">CondExpr * NEG(CondExpr *lhs) override</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00344">Conditions.cpp:344</a></div></div>
555
+ <div class="ttc" id="classSVF_1_1BDDManager_html_a82748f6ae3ea640de7b0755a6eab96d1"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a82748f6ae3ea640de7b0755a6eab96d1">SVF::BDDManager::createCond</a></div><div class="ttdeci">BDDCond * createCond(u32_t i)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00355">Conditions.h:355</a></div></div>
556
+ <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#l00077">SVFBasicTypes.h:77</a></div></div>
557
+ <div class="ttc" id="classSVF_1_1BDDManager_html_acb037c79511b40032e523494a804adb3"><div class="ttname"><a href="classSVF_1_1BDDManager.html#acb037c79511b40032e523494a804adb3">SVF::BDDManager::bddToBddCondExprMap</a></div><div class="ttdeci">BDDToBDDCondExpr bddToBddCondExprMap</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00347">Conditions.h:347</a></div></div>
558
+ <div class="ttc" id="classSVF_1_1CondManager_html_a1fbf7dd446309e13671d838c91da26bf"><div class="ttname"><a href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">SVF::CondManager::setCondInst</a></div><div class="ttdeci">void setCondInst(const CondExpr *cond, const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00212">Conditions.h:212</a></div></div>
559
+ <div class="ttc" id="classSVF_1_1BDDExpr_html"><div class="ttname"><a href="classSVF_1_1BDDExpr.html">SVF::BDDExpr</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00105">Conditions.h:105</a></div></div>
560
+ <div class="ttc" id="classSVF_1_1CondManager_html_a7efaeff7229fcfdc6c05d53ee3e1d916"><div class="ttname"><a href="classSVF_1_1CondManager.html#a7efaeff7229fcfdc6c05d53ee3e1d916">SVF::CondManager::totalCondNum</a></div><div class="ttdeci">static u32_t totalCondNum</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00151">Conditions.h:151</a></div></div>
561
+ </div><!-- fragment -->
562
+ </div>
563
+ </div>
564
+ <a id="a9aaa963fedb93d98f62f64bed1fd173f"></a>
565
+ <h2 class="memtitle"><span class="permalink"><a href="#a9aaa963fedb93d98f62f64bed1fd173f">&#9670;&nbsp;</a></span>ddClearFlag()</h2>
566
+
567
+ <div class="memitem">
568
+ <div class="memproto">
569
+ <table class="memname">
570
+ <tr>
571
+ <td class="memname">void BDDManager::ddClearFlag </td>
572
+ <td>(</td>
573
+ <td class="paramtype"><a class="el" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a> *&#160;</td>
574
+ <td class="paramname"><em>f</em></td><td>)</td>
575
+ <td> const</td>
576
+ </tr>
577
+ </table>
578
+ </div><div class="memdoc">
579
+ <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>
580
+
581
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00368">368</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
582
+ <div class="fragment"><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; {</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</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="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="comment">/* Clear visited flag. */</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</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="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="cuddInt_8h.html#aa5cad999b2a4a3dbbfe5c1da1d8bc028">cuddIsConstant</a>(f))</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <a class="code" href="classSVF_1_1BDDManager.html#a9aaa963fedb93d98f62f64bed1fd173f">ddClearFlag</a>(<a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(f));</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <a class="code" href="classSVF_1_1BDDManager.html#a9aaa963fedb93d98f62f64bed1fd173f">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="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</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>
583
+ <div class="ttc" id="classSVF_1_1BDDManager_html_a9aaa963fedb93d98f62f64bed1fd173f"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a9aaa963fedb93d98f62f64bed1fd173f">SVF::BDDManager::ddClearFlag</a></div><div class="ttdeci">void ddClearFlag(BDDCond *f) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00368">Conditions.cpp:368</a></div></div>
584
+ <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>
585
+ <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>
586
+ <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>
587
+ <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>
588
+ </div><!-- fragment -->
589
+ </div>
590
+ </div>
591
+ <a id="a933749fc805c4147722bb847f3e427b8"></a>
592
+ <h2 class="memtitle"><span class="permalink"><a href="#a933749fc805c4147722bb847f3e427b8">&#9670;&nbsp;</a></span>dump()</h2>
593
+
594
+ <div class="memitem">
595
+ <div class="memproto">
596
+ <table class="memname">
597
+ <tr>
598
+ <td class="memname">void BDDManager::dump </td>
599
+ <td>(</td>
600
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
601
+ <td class="paramname"><em>lhs</em>, </td>
602
+ </tr>
603
+ <tr>
604
+ <td class="paramkey"></td>
605
+ <td></td>
606
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</a> &amp;&#160;</td>
607
+ <td class="paramname"><em>O</em>&#160;</td>
608
+ </tr>
609
+ <tr>
610
+ <td></td>
611
+ <td>)</td>
612
+ <td></td><td></td>
613
+ </tr>
614
+ </table>
615
+ </div><div class="memdoc">
616
+ <p>Dump BDD </p>
617
+
618
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00402">402</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
619
+ <div class="fragment"><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; {</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>())</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; O &lt;&lt; <span class="stringliteral">&quot;T&quot;</span>;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> support;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="classSVF_1_1BDDManager.html#a3fa608e37862e2702096c65fdb27c8c8">extractSubConds</a>(lhs, support);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">for</span> (NodeBS::iterator iter = support.begin(); iter != support.end();</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; ++iter) {</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordtype">unsigned</span> rid = *iter;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; O &lt;&lt; rid &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; }</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; }</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_ac74f182ef249a7c892ba9c630f889ddc"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">SVF::CondManager::getTrueCond</a></div><div class="ttdeci">CondExpr * getTrueCond() const</div><div class="ttdoc">Return the unique true condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00172">Conditions.h:172</a></div></div>
620
+ <div class="ttc" id="classSVF_1_1BDDManager_html_a3fa608e37862e2702096c65fdb27c8c8"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a3fa608e37862e2702096c65fdb27c8c8">SVF::BDDManager::extractSubConds</a></div><div class="ttdeci">void extractSubConds(const CondExpr *f, NodeBS &amp;support) const override</div><div class="ttdoc">Extract sub conditions of this expression. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00392">Conditions.cpp:392</a></div></div>
621
+ <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#l00088">SVFBasicTypes.h:88</a></div></div>
622
+ </div><!-- fragment -->
623
+ </div>
624
+ </div>
625
+ <a id="add075de17c153605c2d5eb7b5d87dbfb"></a>
626
+ <h2 class="memtitle"><span class="permalink"><a href="#add075de17c153605c2d5eb7b5d87dbfb">&#9670;&nbsp;</a></span>dumpStr()</h2>
627
+
628
+ <div class="memitem">
629
+ <div class="memproto">
630
+ <table class="mlabels">
631
+ <tr>
632
+ <td class="mlabels-left">
633
+ <table class="memname">
634
+ <tr>
635
+ <td class="memname">std::string BDDManager::dumpStr </td>
636
+ <td>(</td>
637
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
638
+ <td class="paramname"><em>e</em></td><td>)</td>
639
+ <td> const</td>
640
+ </tr>
641
+ </table>
642
+ </td>
643
+ <td class="mlabels-right">
644
+ <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
645
+ </tr>
646
+ </table>
647
+ </div><div class="memdoc">
648
+ <p>Dump BDD </p>
649
+
650
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#a19c63783d5d20f363be3641941263a78">SVF::CondManager</a>.</p>
651
+
652
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00420">420</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
653
+ <div class="fragment"><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; {</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> *bddCondExpr = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1BDDExpr.html">BDDExpr</a>&gt;(e);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(bddCondExpr &amp;&amp; <span class="stringliteral">&quot;not bdd condition?&quot;</span>);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; std::string str;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">if</span> (bddCondExpr == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>())</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; str += <span class="stringliteral">&quot;T&quot;</span>;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> support;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <a class="code" href="classSVF_1_1BDDManager.html#a3fa608e37862e2702096c65fdb27c8c8">extractSubConds</a>(bddCondExpr, support);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">for</span> (NodeBS::iterator iter = support.begin(); iter != support.end();</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; ++iter) {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordtype">unsigned</span> rid = *iter;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordtype">char</span> int2str[16];</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; sprintf(int2str, <span class="stringliteral">&quot;%d&quot;</span>, rid);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; str += int2str;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; str += <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; }</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; }</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> str;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</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>
654
+ <div class="ttc" id="classSVF_1_1CondManager_html_ac74f182ef249a7c892ba9c630f889ddc"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">SVF::CondManager::getTrueCond</a></div><div class="ttdeci">CondExpr * getTrueCond() const</div><div class="ttdoc">Return the unique true condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00172">Conditions.h:172</a></div></div>
655
+ <div class="ttc" id="classSVF_1_1BDDManager_html_a3fa608e37862e2702096c65fdb27c8c8"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a3fa608e37862e2702096c65fdb27c8c8">SVF::BDDManager::extractSubConds</a></div><div class="ttdeci">void extractSubConds(const CondExpr *f, NodeBS &amp;support) const override</div><div class="ttdoc">Extract sub conditions of this expression. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00392">Conditions.cpp:392</a></div></div>
656
+ <div class="ttc" id="classSVF_1_1BDDExpr_html"><div class="ttname"><a href="classSVF_1_1BDDExpr.html">SVF::BDDExpr</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00105">Conditions.h:105</a></div></div>
657
+ <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#l00088">SVFBasicTypes.h:88</a></div></div>
658
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
659
+ </div><!-- fragment -->
660
+ </div>
661
+ </div>
662
+ <a id="a3fa608e37862e2702096c65fdb27c8c8"></a>
663
+ <h2 class="memtitle"><span class="permalink"><a href="#a3fa608e37862e2702096c65fdb27c8c8">&#9670;&nbsp;</a></span>extractSubConds()</h2>
664
+
665
+ <div class="memitem">
666
+ <div class="memproto">
667
+ <table class="mlabels">
668
+ <tr>
669
+ <td class="mlabels-left">
670
+ <table class="memname">
671
+ <tr>
672
+ <td class="memname">void BDDManager::extractSubConds </td>
673
+ <td>(</td>
674
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
675
+ <td class="paramname"><em>cond</em>, </td>
676
+ </tr>
677
+ <tr>
678
+ <td class="paramkey"></td>
679
+ <td></td>
680
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;&#160;</td>
681
+ <td class="paramname"><em>support</em>&#160;</td>
682
+ </tr>
683
+ <tr>
684
+ <td></td>
685
+ <td>)</td>
686
+ <td></td><td> const</td>
687
+ </tr>
688
+ </table>
689
+ </td>
690
+ <td class="mlabels-right">
691
+ <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
692
+ </tr>
693
+ </table>
694
+ </div><div class="memdoc">
695
+
696
+ <p>Extract sub conditions of this expression. </p>
697
+
698
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#a66ed79e36f8c09ee3ae58fb9b4a6f3e3">SVF::CondManager</a>.</p>
699
+
700
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00392">392</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
701
+ <div class="fragment"><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; {</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span> *bddCondExpr = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1BDDExpr.html">BDDExpr</a>&gt;(f);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(bddCondExpr &amp;&amp; <span class="stringliteral">&quot;not bdd condition?&quot;</span>);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="classSVF_1_1BDDManager.html#a1b7908b727c638d9cfd5e7347dd6b63d">BddSupportStep</a>(<a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(bddCondExpr-&gt;getBDDCond()), support);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="classSVF_1_1BDDManager.html#a9aaa963fedb93d98f62f64bed1fd173f">ddClearFlag</a>(<a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(bddCondExpr-&gt;getBDDCond()));</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</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>
702
+ <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>
703
+ <div class="ttc" id="classSVF_1_1BDDManager_html_a9aaa963fedb93d98f62f64bed1fd173f"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a9aaa963fedb93d98f62f64bed1fd173f">SVF::BDDManager::ddClearFlag</a></div><div class="ttdeci">void ddClearFlag(BDDCond *f) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00368">Conditions.cpp:368</a></div></div>
704
+ <div class="ttc" id="classSVF_1_1BDDManager_html_a1b7908b727c638d9cfd5e7347dd6b63d"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a1b7908b727c638d9cfd5e7347dd6b63d">SVF::BDDManager::BddSupportStep</a></div><div class="ttdeci">void BddSupportStep(BDDCond *f, NodeBS &amp;support) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00380">Conditions.cpp:380</a></div></div>
705
+ <div class="ttc" id="classSVF_1_1BDDExpr_html"><div class="ttname"><a href="classSVF_1_1BDDExpr.html">SVF::BDDExpr</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00105">Conditions.h:105</a></div></div>
706
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
707
+ </div><!-- fragment -->
708
+ </div>
709
+ </div>
710
+ <a id="a6b32e78874429c587de4f0f50dad95ee"></a>
711
+ <h2 class="memtitle"><span class="permalink"><a href="#a6b32e78874429c587de4f0f50dad95ee">&#9670;&nbsp;</a></span>getCond()</h2>
712
+
713
+ <div class="memitem">
714
+ <div class="memproto">
715
+ <table class="mlabels">
716
+ <tr>
717
+ <td class="mlabels-left">
718
+ <table class="memname">
719
+ <tr>
720
+ <td class="memname"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a>* SVF::BDDManager::getCond </td>
721
+ <td>(</td>
722
+ <td class="paramtype"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>&#160;</td>
723
+ <td class="paramname"><em>i</em></td><td>)</td>
724
+ <td> const</td>
725
+ </tr>
726
+ </table>
727
+ </td>
728
+ <td class="mlabels-right">
729
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
730
+ </tr>
731
+ </table>
732
+ </div><div class="memdoc">
733
+
734
+ <p>Given an index, get its condition. </p>
735
+
736
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#ad0273f830c9a6791aea55bfbdebf1138">SVF::CondManager</a>.</p>
737
+
738
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00363">363</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
739
+ <div class="fragment"><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; {</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1BDDManager.html#a7b780b30a7c433dcccab1e29b85b7704">indexToBddCondMap</a>.find(i);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it != <a class="code" href="classSVF_1_1BDDManager.html#a7b780b30a7c433dcccab1e29b85b7704">indexToBddCondMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;condition not found!&quot;</span>);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keyword">auto</span> it2 = <a class="code" href="classSVF_1_1BDDManager.html#acb037c79511b40032e523494a804adb3">bddToBddCondExprMap</a>.find(it-&gt;second);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it2 != <a class="code" href="classSVF_1_1BDDManager.html#acb037c79511b40032e523494a804adb3">bddToBddCondExprMap</a>.end() &amp;&amp; <span class="stringliteral">&quot;condition not found!&quot;</span>);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">return</span> it2-&gt;second;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</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_1BDDManager_html_a7b780b30a7c433dcccab1e29b85b7704"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a7b780b30a7c433dcccab1e29b85b7704">SVF::BDDManager::indexToBddCondMap</a></div><div class="ttdeci">IndexToBDDCond indexToBddCondMap</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00348">Conditions.h:348</a></div></div>
741
+ <div class="ttc" id="classSVF_1_1BDDManager_html_acb037c79511b40032e523494a804adb3"><div class="ttname"><a href="classSVF_1_1BDDManager.html#acb037c79511b40032e523494a804adb3">SVF::BDDManager::bddToBddCondExprMap</a></div><div class="ttdeci">BDDToBDDCondExpr bddToBddCondExprMap</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00347">Conditions.h:347</a></div></div>
742
+ </div><!-- fragment -->
743
+ </div>
744
+ </div>
745
+ <a id="a11e62b98370ace84a5370a9ab00a1717"></a>
746
+ <h2 class="memtitle"><span class="permalink"><a href="#a11e62b98370ace84a5370a9ab00a1717">&#9670;&nbsp;</a></span>getCondNumber()</h2>
747
+
748
+ <div class="memitem">
749
+ <div class="memproto">
750
+ <table class="mlabels">
751
+ <tr>
752
+ <td class="mlabels-left">
753
+ <table class="memname">
754
+ <tr>
755
+ <td class="memname"><a class="el" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> SVF::BDDManager::getCondNumber </td>
756
+ <td>(</td>
757
+ <td class="paramname"></td><td>)</td>
758
+ <td></td>
759
+ </tr>
760
+ </table>
761
+ </td>
762
+ <td class="mlabels-right">
763
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
764
+ </tr>
765
+ </table>
766
+ </div><div class="memdoc">
767
+
768
+ <p>Return the number of condition expressions. </p>
769
+
770
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#a03d9a0d209505631f6d9e500d9c6bde3">SVF::CondManager</a>.</p>
771
+
772
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00373">373</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
773
+ <div class="fragment"><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; {</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cudd_8h.html#a9ba2c88b8f70df51791c26ffde800fc7">Cudd_ReadNodeCount</a>(<a class="code" href="classSVF_1_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">m_bdd_mgr</a>);</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; }</div><div class="ttc" id="classSVF_1_1BDDManager_html_aae62fd27ddc847758ea67000580efdb8"><div class="ttname"><a href="classSVF_1_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">SVF::BDDManager::m_bdd_mgr</a></div><div class="ttdeci">DdManager * m_bdd_mgr</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00346">Conditions.h:346</a></div></div>
774
+ <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>
775
+ </div><!-- fragment -->
776
+ </div>
777
+ </div>
778
+ <a id="adf0847a4af7703a0139c5db326a7988f"></a>
779
+ <h2 class="memtitle"><span class="permalink"><a href="#adf0847a4af7703a0139c5db326a7988f">&#9670;&nbsp;</a></span>getMemUsage()</h2>
780
+
781
+ <div class="memitem">
782
+ <div class="memproto">
783
+ <table class="mlabels">
784
+ <tr>
785
+ <td class="mlabels-left">
786
+ <table class="memname">
787
+ <tr>
788
+ <td class="memname">std::string SVF::BDDManager::getMemUsage </td>
789
+ <td>(</td>
790
+ <td class="paramname"></td><td>)</td>
791
+ <td></td>
792
+ </tr>
793
+ </table>
794
+ </td>
795
+ <td class="mlabels-right">
796
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
797
+ </tr>
798
+ </table>
799
+ </div><div class="memdoc">
800
+
801
+ <p>Return memory usage for this condition manager. </p>
802
+
803
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#a9d1f2e6ef92ee120c7f26d98b1389b04">SVF::CondManager</a>.</p>
804
+
805
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00412">412</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
806
+ <div class="fragment"><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; {</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</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_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">m_bdd_mgr</a>));</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; }</div><div class="ttc" id="classSVF_1_1BDDManager_html_aae62fd27ddc847758ea67000580efdb8"><div class="ttname"><a href="classSVF_1_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">SVF::BDDManager::m_bdd_mgr</a></div><div class="ttdeci">DdManager * m_bdd_mgr</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00346">Conditions.h:346</a></div></div>
807
+ <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>
808
+ </div><!-- fragment -->
809
+ </div>
810
+ </div>
811
+ <a id="a913b8c19f239a162dbfa9527c846c3f6"></a>
812
+ <h2 class="memtitle"><span class="permalink"><a href="#a913b8c19f239a162dbfa9527c846c3f6">&#9670;&nbsp;</a></span>getOrAddBranchCond()</h2>
813
+
814
+ <div class="memitem">
815
+ <div class="memproto">
816
+ <table class="memname">
817
+ <tr>
818
+ <td class="memname"><a class="el" href="classSVF_1_1BDDExpr.html">BDDExpr</a> * BDDManager::getOrAddBranchCond </td>
819
+ <td>(</td>
820
+ <td class="paramtype"><a class="el" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a> *&#160;</td>
821
+ <td class="paramname"><em>bddCond</em></td><td>)</td>
822
+ <td></td>
823
+ </tr>
824
+ </table>
825
+ </div><div class="memdoc">
826
+ <p>Get or add a single branch condition, e.g., when doing condition conjunction </p>
827
+
828
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00253">253</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
829
+ <div class="fragment"><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1BDDManager.html#acb037c79511b40032e523494a804adb3">bddToBddCondExprMap</a>.find(bddCond);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">if</span> (it != <a class="code" href="classSVF_1_1BDDManager.html#acb037c79511b40032e523494a804adb3">bddToBddCondExprMap</a>.end())</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">auto</span> *cond = <span class="keyword">new</span> <a class="code" href="classSVF_1_1BDDExpr.html">BDDExpr</a>(bddCond);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BDDManager.html#acb037c79511b40032e523494a804adb3">bddToBddCondExprMap</a>.emplace(bddCond, cond).first-&gt;second;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;}</div><div class="ttc" id="classSVF_1_1BDDManager_html_acb037c79511b40032e523494a804adb3"><div class="ttname"><a href="classSVF_1_1BDDManager.html#acb037c79511b40032e523494a804adb3">SVF::BDDManager::bddToBddCondExprMap</a></div><div class="ttdeci">BDDToBDDCondExpr bddToBddCondExprMap</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00347">Conditions.h:347</a></div></div>
830
+ <div class="ttc" id="classSVF_1_1BDDExpr_html"><div class="ttname"><a href="classSVF_1_1BDDExpr.html">SVF::BDDExpr</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00105">Conditions.h:105</a></div></div>
831
+ </div><!-- fragment -->
832
+ </div>
833
+ </div>
834
+ <a id="a4ce1ff325aab55d7bef7d28fe79f4cde"></a>
835
+ <h2 class="memtitle"><span class="permalink"><a href="#a4ce1ff325aab55d7bef7d28fe79f4cde">&#9670;&nbsp;</a></span>isEquivalentBranchCond()</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">bool SVF::BDDManager::isEquivalentBranchCond </td>
845
+ <td>(</td>
846
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
847
+ <td class="paramname"><em>lhs</em>, </td>
848
+ </tr>
849
+ <tr>
850
+ <td class="paramkey"></td>
851
+ <td></td>
852
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
853
+ <td class="paramname"><em>rhs</em>&#160;</td>
854
+ </tr>
855
+ <tr>
856
+ <td></td>
857
+ <td>)</td>
858
+ <td></td><td></td>
859
+ </tr>
860
+ </table>
861
+ </td>
862
+ <td class="mlabels-right">
863
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
864
+ </tr>
865
+ </table>
866
+ </div><div class="memdoc">
867
+
868
+ <p>Whether lhs and rhs are equivalent branch conditions. </p>
869
+
870
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#aa20839631502b975590754e146242175">SVF::CondManager</a>.</p>
871
+
872
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00392">392</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
873
+ <div class="fragment"><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; {</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">return</span> lhs == rhs;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; }</div></div><!-- fragment -->
874
+ </div>
875
+ </div>
876
+ <a id="a4a1c1534e9e23ea326008abf1d318369"></a>
877
+ <h2 class="memtitle"><span class="permalink"><a href="#a4a1c1534e9e23ea326008abf1d318369">&#9670;&nbsp;</a></span>isNegCond()</h2>
878
+
879
+ <div class="memitem">
880
+ <div class="memproto">
881
+ <table class="mlabels">
882
+ <tr>
883
+ <td class="mlabels-left">
884
+ <table class="memname">
885
+ <tr>
886
+ <td class="memname">bool SVF::BDDManager::isNegCond </td>
887
+ <td>(</td>
888
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
889
+ <td class="paramname"><em>cond</em></td><td>)</td>
890
+ <td> const</td>
891
+ </tr>
892
+ </table>
893
+ </td>
894
+ <td class="mlabels-right">
895
+ <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
896
+ </tr>
897
+ </table>
898
+ </div><div class="memdoc">
899
+
900
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#a1007afa25f9a95c5d12c58852ef74686">SVF::CondManager</a>.</p>
901
+
902
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00388">388</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
903
+ <div class="fragment"><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</div></div><!-- fragment -->
904
+ </div>
905
+ </div>
906
+ <a id="aecd072d15ee8a4a9940b31ac78c50960"></a>
907
+ <h2 class="memtitle"><span class="permalink"><a href="#aecd072d15ee8a4a9940b31ac78c50960">&#9670;&nbsp;</a></span>isSatisfiable()</h2>
908
+
909
+ <div class="memitem">
910
+ <div class="memproto">
911
+ <table class="mlabels">
912
+ <tr>
913
+ <td class="mlabels-left">
914
+ <table class="memname">
915
+ <tr>
916
+ <td class="memname">bool BDDManager::isSatisfiable </td>
917
+ <td>(</td>
918
+ <td class="paramtype">const <a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
919
+ <td class="paramname"><em>cond</em></td><td>)</td>
920
+ <td></td>
921
+ </tr>
922
+ </table>
923
+ </td>
924
+ <td class="mlabels-right">
925
+ <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
926
+ </tr>
927
+ </table>
928
+ </div><div class="memdoc">
929
+ <p>Whether the condition is satisfiable </p>
930
+
931
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#a5ef85ea09500adc006a25c1eb3426831">SVF::CondManager</a>.</p>
932
+
933
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00360">360</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
934
+ <div class="fragment"><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; {</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">return</span> cond != <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>();</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;}</div><div class="ttc" id="classSVF_1_1CondManager_html_a39e9d42cb3661d1c686b5163c70eeade"><div class="ttname"><a href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">SVF::CondManager::getFalseCond</a></div><div class="ttdeci">CondExpr * getFalseCond() const</div><div class="ttdoc">Return the unique false condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00177">Conditions.h:177</a></div></div>
935
+ </div><!-- fragment -->
936
+ </div>
937
+ </div>
938
+ <a id="a0dbbee1845fbf6ce660caf6c30438bef"></a>
939
+ <h2 class="memtitle"><span class="permalink"><a href="#a0dbbee1845fbf6ce660caf6c30438bef">&#9670;&nbsp;</a></span>NEG()</h2>
940
+
941
+ <div class="memitem">
942
+ <div class="memproto">
943
+ <table class="mlabels">
944
+ <tr>
945
+ <td class="mlabels-left">
946
+ <table class="memname">
947
+ <tr>
948
+ <td class="memname"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * BDDManager::NEG </td>
949
+ <td>(</td>
950
+ <td class="paramtype"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
951
+ <td class="paramname"><em>lhs</em></td><td>)</td>
952
+ <td></td>
953
+ </tr>
954
+ </table>
955
+ </td>
956
+ <td class="mlabels-right">
957
+ <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
958
+ </tr>
959
+ </table>
960
+ </div><div class="memdoc">
961
+
962
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#aecb97f6eb6ba2943b2eaa7a8212a9ba6">SVF::CondManager</a>.</p>
963
+
964
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00344">344</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
965
+ <div class="fragment"><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; {</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keyword">auto</span> *bddlhs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1BDDExpr.html">BDDExpr</a>&gt;(lhs);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(bddlhs &amp;&amp; <span class="stringliteral">&quot;not bdd condition?&quot;</span>);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">if</span> (bddlhs == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>())</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>();</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bddlhs == <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>())</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>();</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BDDManager.html#a913b8c19f239a162dbfa9527c846c3f6">getOrAddBranchCond</a>(<a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(bddlhs-&gt;getBDDCond()));</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</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>
966
+ <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>
967
+ <div class="ttc" id="classSVF_1_1CondManager_html_ac74f182ef249a7c892ba9c630f889ddc"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">SVF::CondManager::getTrueCond</a></div><div class="ttdeci">CondExpr * getTrueCond() const</div><div class="ttdoc">Return the unique true condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00172">Conditions.h:172</a></div></div>
968
+ <div class="ttc" id="classSVF_1_1BDDExpr_html"><div class="ttname"><a href="classSVF_1_1BDDExpr.html">SVF::BDDExpr</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00105">Conditions.h:105</a></div></div>
969
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
970
+ <div class="ttc" id="classSVF_1_1CondManager_html_a39e9d42cb3661d1c686b5163c70eeade"><div class="ttname"><a href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">SVF::CondManager::getFalseCond</a></div><div class="ttdeci">CondExpr * getFalseCond() const</div><div class="ttdoc">Return the unique false condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00177">Conditions.h:177</a></div></div>
971
+ <div class="ttc" id="classSVF_1_1BDDManager_html_a913b8c19f239a162dbfa9527c846c3f6"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a913b8c19f239a162dbfa9527c846c3f6">SVF::BDDManager::getOrAddBranchCond</a></div><div class="ttdeci">BDDExpr * getOrAddBranchCond(BDDCond *bddCond)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00253">Conditions.cpp:253</a></div></div>
972
+ </div><!-- fragment -->
973
+ </div>
974
+ </div>
975
+ <a id="a6c5d935cc7c9ee02a0a37f7fcce34a89"></a>
976
+ <h2 class="memtitle"><span class="permalink"><a href="#a6c5d935cc7c9ee02a0a37f7fcce34a89">&#9670;&nbsp;</a></span>OR()</h2>
977
+
978
+ <div class="memitem">
979
+ <div class="memproto">
980
+ <table class="mlabels">
981
+ <tr>
982
+ <td class="mlabels-left">
983
+ <table class="memname">
984
+ <tr>
985
+ <td class="memname"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> * BDDManager::OR </td>
986
+ <td>(</td>
987
+ <td class="paramtype"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
988
+ <td class="paramname"><em>lhs</em>, </td>
989
+ </tr>
990
+ <tr>
991
+ <td class="paramkey"></td>
992
+ <td></td>
993
+ <td class="paramtype"><a class="el" href="classSVF_1_1CondExpr.html">CondExpr</a> *&#160;</td>
994
+ <td class="paramname"><em>rhs</em>&#160;</td>
995
+ </tr>
996
+ <tr>
997
+ <td></td>
998
+ <td>)</td>
999
+ <td></td><td></td>
1000
+ </tr>
1001
+ </table>
1002
+ </td>
1003
+ <td class="mlabels-right">
1004
+ <span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
1005
+ </tr>
1006
+ </table>
1007
+ </div><div class="memdoc">
1008
+ <p>Use Cudd_bddOrLimit interface to avoid bdds blow up </p>
1009
+ <p>drop the two conditions here </p>
1010
+
1011
+ <p>Implements <a class="el" href="classSVF_1_1CondManager.html#aa6dcd9cb78deef05b6c4d4e9b6b0a16b">SVF::CondManager</a>.</p>
1012
+
1013
+ <p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00320">320</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
1014
+ <div class="fragment"><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">auto</span> *bddlhs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1BDDExpr.html">BDDExpr</a>&gt;(lhs);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keyword">auto</span> *bddrhs = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">dyn_cast</a>&lt;<a class="code" href="classSVF_1_1BDDExpr.html">BDDExpr</a>&gt;(rhs);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(bddlhs &amp;&amp; bddrhs &amp;&amp; <span class="stringliteral">&quot;not bdd condition?&quot;</span>);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">if</span> (bddlhs == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>() || bddrhs == <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>())</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bddlhs == <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>())</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">return</span> bddrhs;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (bddrhs == <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>())</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">return</span> bddlhs;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <a class="code" href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">BDDCond</a> *tmp = <a class="code" href="cudd_8h.html#a6cbc77f8b658ac3c88a2549a84c58b38">Cudd_bddOrLimit</a>(<a class="code" href="classSVF_1_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">m_bdd_mgr</a>, bddlhs-&gt;getBDDCond(), bddrhs-&gt;getBDDCond(), <a class="code" href="classSVF_1_1Options.html#a344ca0e4b8d9159836e558aed44be1b4">Options::MaxBddSize</a>);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">if</span> (tmp == <span class="keyword">nullptr</span>) {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</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="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>();</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <a class="code" href="cudd_8h.html#a3d0d9959640235fc073699c776914fca">Cudd_Ref</a>(tmp);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BDDManager.html#a913b8c19f239a162dbfa9527c846c3f6">getOrAddBranchCond</a>(tmp);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;}</div><div class="ttc" id="classSVF_1_1BDDManager_html_a7a1692324d6b152588ef4d52013f8d00"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a7a1692324d6b152588ef4d52013f8d00">SVF::BDDManager::BDDCond</a></div><div class="ttdeci">BDDExpr::BDDCond BDDCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00329">Conditions.h:329</a></div></div>
1015
+ <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>
1016
+ <div class="ttc" id="classSVF_1_1CondManager_html_ac74f182ef249a7c892ba9c630f889ddc"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">SVF::CondManager::getTrueCond</a></div><div class="ttdeci">CondExpr * getTrueCond() const</div><div class="ttdoc">Return the unique true condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00172">Conditions.h:172</a></div></div>
1017
+ <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>
1018
+ <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>
1019
+ <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#l00219">Options.h:219</a></div></div>
1020
+ <div class="ttc" id="classSVF_1_1BDDExpr_html"><div class="ttname"><a href="classSVF_1_1BDDExpr.html">SVF::BDDExpr</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00105">Conditions.h:105</a></div></div>
1021
+ <div class="ttc" id="classSVF_1_1BDDManager_html_aae62fd27ddc847758ea67000580efdb8"><div class="ttname"><a href="classSVF_1_1BDDManager.html#aae62fd27ddc847758ea67000580efdb8">SVF::BDDManager::m_bdd_mgr</a></div><div class="ttdeci">DdManager * m_bdd_mgr</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00346">Conditions.h:346</a></div></div>
1022
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
1023
+ <div class="ttc" id="classSVF_1_1CondManager_html_a39e9d42cb3661d1c686b5163c70eeade"><div class="ttname"><a href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">SVF::CondManager::getFalseCond</a></div><div class="ttdeci">CondExpr * getFalseCond() const</div><div class="ttdoc">Return the unique false condition. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00177">Conditions.h:177</a></div></div>
1024
+ <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>
1025
+ <div class="ttc" id="classSVF_1_1BDDManager_html_a913b8c19f239a162dbfa9527c846c3f6"><div class="ttname"><a href="classSVF_1_1BDDManager.html#a913b8c19f239a162dbfa9527c846c3f6">SVF::BDDManager::getOrAddBranchCond</a></div><div class="ttdeci">BDDExpr * getOrAddBranchCond(BDDCond *bddCond)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00253">Conditions.cpp:253</a></div></div>
1026
+ </div><!-- fragment -->
1027
+ </div>
1028
+ </div>
1029
+ <h2 class="groupheader">Friends And Related Function Documentation</h2>
1030
+ <a id="a243595beea0081ef5ff38dec8c150651"></a>
1031
+ <h2 class="memtitle"><span class="permalink"><a href="#a243595beea0081ef5ff38dec8c150651">&#9670;&nbsp;</a></span>CondManager</h2>
1032
+
1033
+ <div class="memitem">
1034
+ <div class="memproto">
1035
+ <table class="mlabels">
1036
+ <tr>
1037
+ <td class="mlabels-left">
1038
+ <table class="memname">
1039
+ <tr>
1040
+ <td class="memname">friend class <a class="el" href="classSVF_1_1CondManager.html">CondManager</a></td>
1041
+ </tr>
1042
+ </table>
1043
+ </td>
1044
+ <td class="mlabels-right">
1045
+ <span class="mlabels"><span class="mlabel">friend</span></span> </td>
1046
+ </tr>
1047
+ </table>
1048
+ </div><div class="memdoc">
1049
+
1050
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00326">326</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1051
+
1052
+ </div>
1053
+ </div>
1054
+ <h2 class="groupheader">Member Data Documentation</h2>
1055
+ <a id="acb037c79511b40032e523494a804adb3"></a>
1056
+ <h2 class="memtitle"><span class="permalink"><a href="#acb037c79511b40032e523494a804adb3">&#9670;&nbsp;</a></span>bddToBddCondExprMap</h2>
1057
+
1058
+ <div class="memitem">
1059
+ <div class="memproto">
1060
+ <table class="mlabels">
1061
+ <tr>
1062
+ <td class="mlabels-left">
1063
+ <table class="memname">
1064
+ <tr>
1065
+ <td class="memname"><a class="el" href="classSVF_1_1BDDManager.html#a54716dd8be2691e3e0dbffc14461c1e8">BDDToBDDCondExpr</a> SVF::BDDManager::bddToBddCondExprMap</td>
1066
+ </tr>
1067
+ </table>
1068
+ </td>
1069
+ <td class="mlabels-right">
1070
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
1071
+ </tr>
1072
+ </table>
1073
+ </div><div class="memdoc">
1074
+
1075
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00347">347</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1076
+
1077
+ </div>
1078
+ </div>
1079
+ <a id="a7b780b30a7c433dcccab1e29b85b7704"></a>
1080
+ <h2 class="memtitle"><span class="permalink"><a href="#a7b780b30a7c433dcccab1e29b85b7704">&#9670;&nbsp;</a></span>indexToBddCondMap</h2>
1081
+
1082
+ <div class="memitem">
1083
+ <div class="memproto">
1084
+ <table class="mlabels">
1085
+ <tr>
1086
+ <td class="mlabels-left">
1087
+ <table class="memname">
1088
+ <tr>
1089
+ <td class="memname"><a class="el" href="classSVF_1_1BDDManager.html#a33bb37b30e4c7364d6df73d209bd81d0">IndexToBDDCond</a> SVF::BDDManager::indexToBddCondMap</td>
1090
+ </tr>
1091
+ </table>
1092
+ </td>
1093
+ <td class="mlabels-right">
1094
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
1095
+ </tr>
1096
+ </table>
1097
+ </div><div class="memdoc">
1098
+
1099
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00348">348</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1100
+
1101
+ </div>
1102
+ </div>
1103
+ <a id="aae62fd27ddc847758ea67000580efdb8"></a>
1104
+ <h2 class="memtitle"><span class="permalink"><a href="#aae62fd27ddc847758ea67000580efdb8">&#9670;&nbsp;</a></span>m_bdd_mgr</h2>
1105
+
1106
+ <div class="memitem">
1107
+ <div class="memproto">
1108
+ <table class="mlabels">
1109
+ <tr>
1110
+ <td class="mlabels-left">
1111
+ <table class="memname">
1112
+ <tr>
1113
+ <td class="memname"><a class="el" href="structDdManager.html">DdManager</a>* SVF::BDDManager::m_bdd_mgr</td>
1114
+ </tr>
1115
+ </table>
1116
+ </td>
1117
+ <td class="mlabels-right">
1118
+ <span class="mlabels"><span class="mlabel">private</span></span> </td>
1119
+ </tr>
1120
+ </table>
1121
+ </div><div class="memdoc">
1122
+
1123
+ <p class="definition">Definition at line <a class="el" href="Conditions_8h_source.html#l00346">346</a> of file <a class="el" href="Conditions_8h_source.html">Conditions.h</a>.</p>
1124
+
1125
+ </div>
1126
+ </div>
1127
+ <hr/>The documentation for this class was generated from the following files:<ul>
1128
+ <li>/home/runner/work/SVF/SVF/include/Util/<a class="el" href="Conditions_8h_source.html">Conditions.h</a></li>
1129
+ <li>/home/runner/work/SVF/SVF/lib/Util/<a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a></li>
1130
+ </ul>
1131
+ </div><!-- contents -->
1132
+ <!-- start footer part -->
1133
+ <hr class="footer"/><address class="footer"><small>
1134
+ Generated by &#160;<a href="http://www.doxygen.org/index.html">
1135
+ <img class="footer" src="doxygen.png" alt="doxygen"/>
1136
+ </a> 1.8.13
1137
+ </small></address>
1138
+ </body>
1139
+ </html>