svf-tools 1.0.322 → 1.0.326

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 (399) hide show
  1. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +7 -7
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +3 -3
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  5. package/SVF-doxygen/html/html/Conditions_8cpp_source.html +22 -20
  6. package/SVF-doxygen/html/html/Conditions_8h_source.html +12 -9
  7. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +13 -12
  8. package/SVF-doxygen/html/html/ConsG_8h_source.html +15 -15
  9. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +6 -6
  10. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +3 -3
  11. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
  12. package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
  13. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
  14. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +3 -3
  15. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +8 -8
  16. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
  18. package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +1 -1
  19. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -2
  20. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +3 -3
  21. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +8 -8
  22. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +5 -5
  23. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +2 -2
  24. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +2 -2
  25. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +4 -4
  26. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +4 -4
  27. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +4 -4
  28. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +2 -2
  29. package/SVF-doxygen/html/html/IRGraph_8cpp.html +1 -0
  30. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +20 -18
  31. package/SVF-doxygen/html/html/IRGraph_8h_source.html +13 -13
  32. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +7 -7
  33. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
  34. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +6 -6
  35. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +21 -21
  36. package/SVF-doxygen/html/html/MemRegion_8h_source.html +5 -5
  37. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +7 -7
  38. package/SVF-doxygen/html/html/MemSSA_8h_source.html +5 -5
  39. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +1 -1
  40. package/SVF-doxygen/html/html/Options_8cpp_source.html +2 -1
  41. package/SVF-doxygen/html/html/Options_8h_source.html +2 -1
  42. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
  43. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +7 -7
  44. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +24 -22
  45. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +8 -8
  46. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +3 -3
  47. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +6 -6
  48. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +17 -17
  49. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +3 -3
  50. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +5 -5
  51. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
  52. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  53. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +1 -1
  54. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +3 -3
  55. package/SVF-doxygen/html/html/SVFG_8cpp.html +1 -0
  56. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +61 -59
  57. package/SVF-doxygen/html/html/SVFG_8h_source.html +20 -20
  58. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +5 -5
  59. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +33 -33
  60. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +56 -56
  61. package/SVF-doxygen/html/html/SVFIR_8h_source.html +147 -148
  62. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +8 -8
  63. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +133 -132
  64. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +14 -14
  65. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +6 -6
  66. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  67. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
  68. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
  69. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +6 -6
  70. package/SVF-doxygen/html/html/VFGNode_8h_source.html +11 -11
  71. package/SVF-doxygen/html/html/VFG_8cpp_source.html +39 -39
  72. package/SVF-doxygen/html/html/VFG_8h_source.html +26 -26
  73. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +4 -4
  74. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +7 -7
  75. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
  76. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
  77. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
  78. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +1 -1
  79. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt-members.html +20 -19
  80. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +18 -16
  81. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
  82. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +4 -4
  83. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +34 -34
  84. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +4 -4
  85. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +12 -12
  86. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +4 -4
  87. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +8 -8
  88. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +4 -4
  89. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +8 -8
  90. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +4 -4
  91. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +8 -8
  92. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +4 -4
  93. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +8 -8
  94. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +4 -4
  95. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +11 -11
  96. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +8 -8
  97. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +4 -4
  98. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +8 -8
  99. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +4 -4
  100. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +25 -25
  101. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt-members.html +26 -25
  102. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +24 -22
  103. package/SVF-doxygen/html/html/classSVF_1_1BranchCondManager.html +22 -22
  104. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt-members.html +20 -19
  105. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +33 -31
  106. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
  107. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode-members.html +8 -8
  108. package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +6 -6
  109. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +2 -2
  110. package/SVF-doxygen/html/html/classSVF_1_1CallPE-members.html +20 -19
  111. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +24 -22
  112. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +8 -8
  113. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +24 -24
  114. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar-members.html +8 -8
  115. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +24 -24
  116. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar-members.html +8 -8
  117. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +24 -24
  118. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt-members.html +28 -27
  119. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +41 -39
  120. package/SVF-doxygen/html/html/classSVF_1_1CondManager-members.html +10 -7
  121. package/SVF-doxygen/html/html/classSVF_1_1CondManager.html +144 -43
  122. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +4 -4
  123. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +10 -10
  124. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph-members.html +5 -5
  125. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +46 -46
  126. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +4 -4
  127. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +17 -17
  128. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt-members.html +20 -19
  129. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +18 -16
  130. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +1 -1
  131. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +3 -3
  132. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +10 -10
  133. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG-members.html +13 -13
  134. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +9 -9
  135. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +1 -1
  136. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +8 -8
  137. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +24 -24
  138. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +8 -8
  139. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +24 -24
  140. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar-members.html +8 -8
  141. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +24 -24
  142. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +4 -4
  143. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +8 -8
  144. package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +1 -1
  145. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +4 -4
  146. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +16 -16
  147. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +4 -4
  148. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +27 -27
  149. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +7 -7
  150. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +8 -8
  151. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +24 -24
  152. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
  153. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +4 -4
  154. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode-members.html +6 -6
  155. package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +6 -6
  156. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode-members.html +6 -6
  157. package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +6 -6
  158. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
  159. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN-members.html +8 -8
  160. package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +24 -24
  161. package/SVF-doxygen/html/html/classSVF_1_1GepStmt-members.html +20 -19
  162. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +18 -16
  163. package/SVF-doxygen/html/html/classSVF_1_1GepValVar-members.html +8 -8
  164. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +28 -28
  165. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode-members.html +6 -6
  166. package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +6 -6
  167. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode-members.html +6 -6
  168. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +22 -22
  169. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +6 -6
  170. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
  171. package/SVF-doxygen/html/html/classSVF_1_1IRGraph-members.html +8 -8
  172. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +54 -54
  173. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +2 -2
  174. package/SVF-doxygen/html/html/classSVF_1_1InterBlockNode-members.html +6 -6
  175. package/SVF-doxygen/html/html/classSVF_1_1InterBlockNode.html +6 -6
  176. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG-members.html +14 -14
  177. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +9 -9
  178. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +3 -3
  179. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode-members.html +6 -6
  180. package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +6 -6
  181. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG-members.html +14 -14
  182. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +9 -9
  183. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +2 -2
  184. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +3 -3
  185. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +7 -7
  186. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt-members.html +23 -22
  187. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +18 -16
  188. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator-members.html +17 -17
  189. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +92 -92
  190. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +2 -2
  191. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
  192. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +6 -6
  193. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +2 -2
  194. package/SVF-doxygen/html/html/classSVF_1_1MemSSA-members.html +18 -18
  195. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +41 -41
  196. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt-members.html +24 -23
  197. package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +33 -31
  198. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt-members.html +24 -23
  199. package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +25 -23
  200. package/SVF-doxygen/html/html/classSVF_1_1ObjVar-members.html +8 -8
  201. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +24 -24
  202. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG-members.html +5 -5
  203. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +13 -13
  204. package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +21 -20
  205. package/SVF-doxygen/html/html/classSVF_1_1Options.html +26 -0
  206. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +16 -16
  207. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +7 -7
  208. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator-members.html +13 -12
  209. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +102 -70
  210. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt-members.html +25 -24
  211. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +23 -21
  212. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +4 -4
  213. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +47 -47
  214. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +11 -10
  215. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode-members.html +7 -7
  216. package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +6 -6
  217. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +2 -2
  218. package/SVF-doxygen/html/html/classSVF_1_1RetPE-members.html +20 -19
  219. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +24 -22
  220. package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +8 -8
  221. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +24 -24
  222. package/SVF-doxygen/html/html/classSVF_1_1SVFG-members.html +47 -47
  223. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +74 -74
  224. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
  225. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT-members.html +59 -59
  226. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +19 -19
  227. package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +131 -132
  228. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +732 -750
  229. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder-members.html +3 -3
  230. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +86 -86
  231. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt-members.html +23 -22
  232. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +50 -32
  233. package/SVF-doxygen/html/html/classSVF_1_1SVFVar-members.html +8 -8
  234. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +69 -69
  235. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +10 -10
  236. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +1 -1
  237. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +4 -4
  238. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +8 -8
  239. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt-members.html +20 -19
  240. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +18 -16
  241. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE-members.html +23 -22
  242. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +18 -16
  243. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE-members.html +23 -22
  244. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +18 -16
  245. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
  246. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +2 -2
  247. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +4 -4
  248. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +10 -10
  249. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +9 -9
  250. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt-members.html +24 -23
  251. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +28 -26
  252. package/SVF-doxygen/html/html/classSVF_1_1VFG-members.html +33 -33
  253. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +83 -83
  254. package/SVF-doxygen/html/html/classSVF_1_1ValVar-members.html +8 -8
  255. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +24 -24
  256. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +8 -8
  257. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +24 -24
  258. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt-members.html +23 -22
  259. package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +20 -18
  260. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +4 -4
  261. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +17 -17
  262. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +3 -3
  263. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +3 -3
  264. package/SVF-doxygen/html/html/functions_a.html +29 -29
  265. package/SVF-doxygen/html/html/functions_c.html +25 -30
  266. package/SVF-doxygen/html/html/functions_f.html +2 -2
  267. package/SVF-doxygen/html/html/functions_func.html +29 -29
  268. package/SVF-doxygen/html/html/functions_func_g.html +59 -57
  269. package/SVF-doxygen/html/html/functions_func_h.html +6 -6
  270. package/SVF-doxygen/html/html/functions_func_i.html +8 -4
  271. package/SVF-doxygen/html/html/functions_func_s.html +8 -5
  272. package/SVF-doxygen/html/html/functions_g.html +74 -72
  273. package/SVF-doxygen/html/html/functions_h.html +6 -6
  274. package/SVF-doxygen/html/html/functions_i.html +20 -16
  275. package/SVF-doxygen/html/html/functions_k.html +9 -0
  276. package/SVF-doxygen/html/html/functions_l.html +8 -8
  277. package/SVF-doxygen/html/html/functions_n.html +3 -0
  278. package/SVF-doxygen/html/html/functions_o.html +12 -15
  279. package/SVF-doxygen/html/html/functions_p.html +20 -35
  280. package/SVF-doxygen/html/html/functions_s.html +35 -13
  281. package/SVF-doxygen/html/html/functions_t.html +5 -7
  282. package/SVF-doxygen/html/html/functions_type_c.html +1 -4
  283. package/SVF-doxygen/html/html/functions_type_f.html +2 -2
  284. package/SVF-doxygen/html/html/functions_type_g.html +2 -2
  285. package/SVF-doxygen/html/html/functions_type_i.html +3 -3
  286. package/SVF-doxygen/html/html/functions_type_k.html +3 -0
  287. package/SVF-doxygen/html/html/functions_type_p.html +2 -18
  288. package/SVF-doxygen/html/html/functions_type_s.html +16 -0
  289. package/SVF-doxygen/html/html/functions_type_v.html +1 -1
  290. package/SVF-doxygen/html/html/functions_v.html +4 -4
  291. package/SVF-doxygen/html/html/functions_vars_g.html +7 -7
  292. package/SVF-doxygen/html/html/functions_vars_i.html +7 -7
  293. package/SVF-doxygen/html/html/functions_vars_k.html +6 -0
  294. package/SVF-doxygen/html/html/functions_vars_n.html +3 -0
  295. package/SVF-doxygen/html/html/functions_vars_o.html +1 -2
  296. package/SVF-doxygen/html/html/functions_vars_p.html +4 -7
  297. package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
  298. package/SVF-doxygen/html/html/functions_w.html +9 -5
  299. package/SVF-doxygen/html/html/namespaceSVF.html +1 -1
  300. package/SVF-doxygen/html/html/search/all_1.js +14 -14
  301. package/SVF-doxygen/html/html/search/all_10.js +13 -18
  302. package/SVF-doxygen/html/html/search/all_13.js +10 -4
  303. package/SVF-doxygen/html/html/search/all_14.js +6 -6
  304. package/SVF-doxygen/html/html/search/all_15.js +1 -1
  305. package/SVF-doxygen/html/html/search/all_16.js +3 -3
  306. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  307. package/SVF-doxygen/html/html/search/all_3.js +2 -3
  308. package/SVF-doxygen/html/html/search/all_6.js +2 -2
  309. package/SVF-doxygen/html/html/search/all_7.js +29 -28
  310. package/SVF-doxygen/html/html/search/all_8.js +2 -2
  311. package/SVF-doxygen/html/html/search/all_9.js +4 -3
  312. package/SVF-doxygen/html/html/search/all_b.js +3 -0
  313. package/SVF-doxygen/html/html/search/all_c.js +4 -4
  314. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  315. package/SVF-doxygen/html/html/search/all_e.js +4 -3
  316. package/SVF-doxygen/html/html/search/all_f.js +2 -2
  317. package/SVF-doxygen/html/html/search/functions_0.js +14 -14
  318. package/SVF-doxygen/html/html/search/functions_10.js +1 -0
  319. package/SVF-doxygen/html/html/search/functions_2.js +1 -1
  320. package/SVF-doxygen/html/html/search/functions_6.js +25 -24
  321. package/SVF-doxygen/html/html/search/functions_7.js +2 -2
  322. package/SVF-doxygen/html/html/search/functions_8.js +1 -0
  323. package/SVF-doxygen/html/html/search/functions_e.js +1 -1
  324. package/SVF-doxygen/html/html/search/typedefs_11.js +4 -0
  325. package/SVF-doxygen/html/html/search/typedefs_14.js +1 -1
  326. package/SVF-doxygen/html/html/search/typedefs_2.js +1 -2
  327. package/SVF-doxygen/html/html/search/typedefs_5.js +2 -2
  328. package/SVF-doxygen/html/html/search/typedefs_6.js +1 -1
  329. package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
  330. package/SVF-doxygen/html/html/search/typedefs_a.js +2 -1
  331. package/SVF-doxygen/html/html/search/typedefs_f.js +2 -6
  332. package/SVF-doxygen/html/html/search/variables_10.js +2 -3
  333. package/SVF-doxygen/html/html/search/variables_13.js +1 -0
  334. package/SVF-doxygen/html/html/search/variables_14.js +4 -4
  335. package/SVF-doxygen/html/html/search/variables_15.js +1 -1
  336. package/SVF-doxygen/html/html/search/variables_7.js +3 -3
  337. package/SVF-doxygen/html/html/search/variables_9.js +3 -3
  338. package/SVF-doxygen/html/html/search/variables_b.js +3 -1
  339. package/SVF-doxygen/html/html/search/variables_e.js +3 -2
  340. package/SVF-doxygen/html/html/search/variables_f.js +2 -2
  341. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +9 -9
  342. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
  343. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +18 -18
  344. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +20 -20
  345. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  346. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
  347. package/include/DDA/ContextDDA.h +1 -1
  348. package/include/DDA/FlowDDA.h +1 -1
  349. package/include/Graphs/ConsG.h +10 -10
  350. package/include/Graphs/ICFGNode.h +3 -3
  351. package/include/Graphs/IRGraph.h +7 -7
  352. package/include/Graphs/VFG.h +4 -4
  353. package/include/MSSA/MemRegion.h +3 -3
  354. package/include/MSSA/MemSSA.h +1 -1
  355. package/include/MemoryModel/PointerAnalysis.h +8 -8
  356. package/include/MemoryModel/PointerAnalysisImpl.h +2 -2
  357. package/include/MemoryModel/SVFIR.h +66 -67
  358. package/include/MemoryModel/SVFStatements.h +30 -25
  359. package/include/MemoryModel/SVFVariables.h +32 -32
  360. package/include/SABER/PathCondAllocator.h +4 -0
  361. package/include/SVF-FE/SVFIRBuilder.h +15 -15
  362. package/include/Util/Conditions.h +10 -0
  363. package/include/Util/IRAnnotator.h +1 -1
  364. package/include/Util/Options.h +3 -1
  365. package/include/Util/TypeBasedHeapCloning.h +2 -2
  366. package/include/WPA/Andersen.h +1 -1
  367. package/include/WPA/FlowSensitiveTBHC.h +1 -1
  368. package/lib/DDA/ContextDDA.cpp +2 -2
  369. package/lib/DDA/DDAClient.cpp +6 -6
  370. package/lib/DDA/DDAStat.cpp +1 -1
  371. package/lib/DDA/FlowDDA.cpp +2 -2
  372. package/lib/Graphs/ConsG.cpp +25 -24
  373. package/lib/Graphs/ICFG.cpp +4 -4
  374. package/lib/Graphs/IRGraph.cpp +12 -9
  375. package/lib/Graphs/SVFG.cpp +10 -8
  376. package/lib/Graphs/VFG.cpp +37 -37
  377. package/lib/MSSA/MemRegion.cpp +17 -17
  378. package/lib/MSSA/MemSSA.cpp +9 -9
  379. package/lib/MTA/MTAAnnotator.cpp +5 -5
  380. package/lib/MemoryModel/PAGBuilderFromFile.cpp +10 -10
  381. package/lib/MemoryModel/PointerAnalysisImpl.cpp +12 -12
  382. package/lib/MemoryModel/SVFIR.cpp +63 -63
  383. package/lib/SABER/LeakChecker.cpp +2 -2
  384. package/lib/SABER/ProgSlice.cpp +4 -1
  385. package/lib/SABER/SaberSVFGBuilder.cpp +3 -3
  386. package/lib/SVF-FE/Graph2Json.cpp +2 -2
  387. package/lib/SVF-FE/SVFIRBuilder.cpp +18 -18
  388. package/lib/Util/Conditions.cpp +5 -1
  389. package/lib/Util/Options.cpp +6 -0
  390. package/lib/Util/PTAStat.cpp +7 -7
  391. package/lib/Util/TypeBasedHeapCloning.cpp +3 -3
  392. package/lib/WPA/Andersen.cpp +13 -13
  393. package/lib/WPA/AndersenSFR.cpp +1 -1
  394. package/lib/WPA/AndersenStat.cpp +3 -3
  395. package/lib/WPA/FlowSensitive.cpp +6 -6
  396. package/lib/WPA/FlowSensitiveStat.cpp +2 -2
  397. package/lib/WPA/FlowSensitiveTBHC.cpp +5 -5
  398. package/lib/WPA/VersionedFlowSensitive.cpp +1 -1
  399. package/package.json +1 -1
@@ -66,13 +66,13 @@ $(function() {
66
66
  <div class="title">Conditions.h</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="Conditions_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- Conditions.h -- Context/Path BDD conditions----------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * Condition.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Oct 19, 2021</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei and Xiao</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef BITVECTORCOND_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define BITVECTORCOND_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="BasicTypes_8h.html">Util/BasicTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;cstdio&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="cuddInt_8h.html">CUDD/cuddInt.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;z3++.h&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html"> 42</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#aef2356f5c1c3178a7b54f46b7c2144a6"> 45</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="classSVF_1_1CondExpr.html#aef2356f5c1c3178a7b54f46b7c2144a6">CondExprKind</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#aef2356f5c1c3178a7b54f46b7c2144a6ab2a0481a51dd867e2d2f196556c24521"> 47</a></span>&#160; <a class="code" href="classSVF_1_1CondExpr.html#aef2356f5c1c3178a7b54f46b7c2144a6ab2a0481a51dd867e2d2f196556c24521">BranchK</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; };</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#af925a6e646b64db7aacf301b37b89b05"> 50</a></span>&#160; <a class="code" href="classSVF_1_1CondExpr.html#af925a6e646b64db7aacf301b37b89b05">CondExpr</a>(<span class="keyword">const</span> z3::expr &amp;_e, <a class="code" href="classSVF_1_1CondExpr.html#aef2356f5c1c3178a7b54f46b7c2144a6">CondExprKind</a> _k) : <a class="code" href="classSVF_1_1CondExpr.html#aa730ac78b531e785b9c16b62a9cf0fa1">e</a>(_e), <a class="code" href="classSVF_1_1CondExpr.html#aa7cbd249e276b768b22677f5efd83dd1">condExprK</a>(_k) {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#a034728ff201af843f9ae980bbb872086"> 52</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1CondExpr.html#a034728ff201af843f9ae980bbb872086">~CondExpr</a>(){</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23"> 55</a></span>&#160; <span class="keyword">const</span> z3::expr&amp; <a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondExpr.html#aa730ac78b531e785b9c16b62a9cf0fa1">e</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#a069c3ac3e7f87250a11f590d23c3a864"> 60</a></span>&#160; <span class="keyword">inline</span> z3::context&amp; <a class="code" href="classSVF_1_1CondExpr.html#a069c3ac3e7f87250a11f590d23c3a864">getContext</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().ctx();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#adef8b04d84d8882a2db68e5acab20438"> 65</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CondExpr.html#adef8b04d84d8882a2db68e5acab20438">getId</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().id();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#a2ae78bbef9ad2f3c61aafa23111a50ef"> 70</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1CondExpr.html#aef2356f5c1c3178a7b54f46b7c2144a6">CondExprKind</a> <a class="code" href="classSVF_1_1CondExpr.html#a2ae78bbef9ad2f3c61aafa23111a50ef">getCondKind</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondExpr.html#aa7cbd249e276b768b22677f5efd83dd1">condExprK</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#aa730ac78b531e785b9c16b62a9cf0fa1"> 75</a></span>&#160; z3::expr <a class="code" href="classSVF_1_1CondExpr.html#aa730ac78b531e785b9c16b62a9cf0fa1">e</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#aa7cbd249e276b768b22677f5efd83dd1"> 76</a></span>&#160; <a class="code" href="classSVF_1_1CondExpr.html#aef2356f5c1c3178a7b54f46b7c2144a6">CondExprKind</a> <a class="code" href="classSVF_1_1CondExpr.html#aa7cbd249e276b768b22677f5efd83dd1">condExprK</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;};</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondExpr.html"> 79</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1BranchCondExpr.html">BranchCondExpr</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>{</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondExpr.html#ad90fb1713be8b6a064e2423da5dd98b3"> 82</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="structDdNode.html">DdNode</a> <a class="code" href="classSVF_1_1BranchCondExpr.html#ad90fb1713be8b6a064e2423da5dd98b3">BranchCond</a>;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondExpr.html#a4f34f370563761f8a1b6a3c1239d6979"> 83</a></span>&#160; <a class="code" href="classSVF_1_1BranchCondExpr.html#a4f34f370563761f8a1b6a3c1239d6979">BranchCondExpr</a>(<span class="keyword">const</span> z3::expr&amp; _e, BranchCond* _branchCond): <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>(_e, <a class="code" href="classSVF_1_1CondExpr.html#aef2356f5c1c3178a7b54f46b7c2144a6ab2a0481a51dd867e2d2f196556c24521">BranchK</a>), branchCond(_branchCond){</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondExpr.html#acbfed1c7771cdb49237cdd6d3c75d25c"> 87</a></span>&#160; BranchCond* <a class="code" href="classSVF_1_1BranchCondExpr.html#acbfed1c7771cdb49237cdd6d3c75d25c">getBranchCond</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> branchCond;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondExpr.html#a466d24de131d064a74d53783a6664b5e"> 93</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchCondExpr.html#a466d24de131d064a74d53783a6664b5e">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchCondExpr.html">BranchCondExpr</a> *)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondExpr.html#a410279631ba4a555a6b823be2465b0de"> 98</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchCondExpr.html#a410279631ba4a555a6b823be2465b0de">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#a2ae78bbef9ad2f3c61aafa23111a50ef">getCondKind</a>() == <a class="code" href="classSVF_1_1CondExpr.html#aef2356f5c1c3178a7b54f46b7c2144a6ab2a0481a51dd867e2d2f196556c24521">BranchK</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondExpr.html#a99b54ea1152131f8e0991374043ffced"> 106</a></span>&#160; BranchCond* <a class="code" href="classSVF_1_1BranchCondExpr.html#a99b54ea1152131f8e0991374043ffced">branchCond</a>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;};</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html"> 114</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1BranchCondManager.html">BranchCondManager</a></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#a37bec50768d5df6317a4ba6c790c569d"> 117</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="structDdNode.html">BranchCondExpr::BranchCond</a> <a class="code" href="classSVF_1_1BranchCondManager.html#a37bec50768d5df6317a4ba6c790c569d">BranchCond</a>;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#af1d01bd350869616c143bf586ef4097e"> 119</a></span>&#160; <a class="code" href="classSVF_1_1BranchCondManager.html#af1d01bd350869616c143bf586ef4097e">BranchCondManager</a>()</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; m_bdd_mgr = <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="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#a44bdc46bc43e657a545a5bedcfcae920"> 125</a></span>&#160; <a class="code" href="classSVF_1_1BranchCondManager.html#a44bdc46bc43e657a545a5bedcfcae920">~BranchCondManager</a>()</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="cudd_8h.html#a2889ace3fcf7d4e00915de52554fd475">Cudd_Quit</a>(m_bdd_mgr);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#a6c807df0d5627d3afda2359b658bc97c"> 130</a></span>&#160; BranchCond* <a class="code" href="classSVF_1_1BranchCondManager.html#a6c807df0d5627d3afda2359b658bc97c">createCond</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cudd_8h.html#a40fd71665cde402bd5bc4f39015c09ae">Cudd_bddIthVar</a>(m_bdd_mgr, i);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363"> 134</a></span>&#160; <span class="keyword">inline</span> BranchCond* <a class="code" href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">getTrueCond</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> BddOne();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#a013eb66493beb2b1d004605c68894a95"> 138</a></span>&#160; <span class="keyword">inline</span> BranchCond* <a class="code" href="classSVF_1_1BranchCondManager.html#a013eb66493beb2b1d004605c68894a95">getFalseCond</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> BddZero();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#ab728e3f0906854e94776ff0e6297c181"> 143</a></span>&#160; <span class="keyword">inline</span> std::string <a class="code" href="classSVF_1_1BranchCondManager.html#ab728e3f0906854e94776ff0e6297c181">getMemUsage</a>()</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> std::to_string(<a class="code" href="cudd_8h.html#a03db7d4ba1119a3cd5843fa7bd3a1a30">Cudd_ReadMemoryInUse</a>(m_bdd_mgr));</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#a07dc09be78c287ac24adb20c54147a46"> 147</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BranchCondManager.html#a07dc09be78c287ac24adb20c54147a46">getCondNumber</a>()</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cudd_8h.html#a9ba2c88b8f70df51791c26ffde800fc7">Cudd_ReadNodeCount</a>(m_bdd_mgr);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; BranchCond* AND(BranchCond* lhs, BranchCond* rhs);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; BranchCond* OR(BranchCond* lhs, BranchCond* rhs);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; BranchCond* NEG(BranchCond* lhs);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">void</span> <a class="code" href="cuddInt_8c.html#ab69f928c3cca42f5b1330803de1d9199">ddClearFlag</a>(BranchCond * f) <span class="keyword">const</span>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordtype">void</span> BddSupportStep( BranchCond * f, <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;support) <span class="keyword">const</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> extractSubConds( BranchCond * f, <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;support) <span class="keyword">const</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">void</span> dump(BranchCond* lhs, <a class="code" href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">raw_ostream</a> &amp; O);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; std::string dumpStr(BranchCond* lhs) <span class="keyword">const</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#a581c73dc30070db0a278ffb3985519dc"> 169</a></span>&#160; <span class="keyword">inline</span> BranchCond* <a class="code" href="classSVF_1_1BranchCondManager.html#a581c73dc30070db0a278ffb3985519dc">BddOne</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cudd_8h.html#a2651c953d81570d3f4f794bcbef40afe">Cudd_ReadOne</a>(m_bdd_mgr);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#a414483307915f9201e203eae9a07d389"> 173</a></span>&#160; <span class="keyword">inline</span> BranchCond* <a class="code" href="classSVF_1_1BranchCondManager.html#a414483307915f9201e203eae9a07d389">BddZero</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cudd_8h.html#a1dd42d8cb5c86659170103a3068e13a6">Cudd_ReadLogicZero</a>(m_bdd_mgr);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#a0c6278a5b4419e16c8fb5d3f8f8162a2"> 178</a></span>&#160; <a class="code" href="structDdManager.html">DdManager</a> *<a class="code" href="classSVF_1_1BranchCondManager.html#a0c6278a5b4419e16c8fb5d3f8f8162a2">m_bdd_mgr</a>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;};</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html"> 181</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CondManager.html">CondManager</a>{</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a1e48008a3fe3a562512e253133aa557f"> 184</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1CondManager.html">CondManager</a>* <a class="code" href="classSVF_1_1CondManager.html#a1e48008a3fe3a562512e253133aa557f">condMgr</a>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="classSVF_1_1CondManager.html">CondManager</a>();</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6"> 190</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="structDdNode.html">BranchCondExpr::BranchCond</a> <a class="code" href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">BranchCond</a>;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a3cd3149a0bb5b605e61f0935bd234f3b"> 191</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const CondExpr*, const Instruction* &gt;</a> <a class="code" href="classSVF_1_1CondManager.html#a3cd3149a0bb5b605e61f0935bd234f3b">CondToTermInstMap</a>; <span class="comment">// map a condition to its branch instruction</span></div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a7efaeff7229fcfdc6c05d53ee3e1d916"> 192</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CondManager.html#a7efaeff7229fcfdc6c05d53ee3e1d916">totalCondNum</a>; <span class="comment">// a counter for fresh condition</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a0128830b629c00d91dc78d348300e7c6"> 195</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1CondManager.html">CondManager</a>* <a class="code" href="classSVF_1_1CondManager.html#a0128830b629c00d91dc78d348300e7c6">getCondMgr</a>()</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">if</span> (condMgr == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; condMgr = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CondManager.html">CondManager</a>();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> condMgr;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a2748338b4a5b122b5bbf4a9cb1f54211"> 203</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CondManager.html#a2748338b4a5b122b5bbf4a9cb1f54211">releaseCondMgr</a>()</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">delete</span> condMgr;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; condMgr = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a1f6aceb4d48a37bcb0e2f1776116b760"> 210</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;u32_t, CondExpr*&gt;</a> <a class="code" href="classSVF_1_1CondManager.html#a1f6aceb4d48a37bcb0e2f1776116b760">IDToCondExprMap</a>;</div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#af2cf8e42c15d6a0640f13c55050f616f"> 211</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;BranchCond*, CondExpr*&gt;</a> <a class="code" href="classSVF_1_1CondManager.html#af2cf8e42c15d6a0640f13c55050f616f">BranchCondToCondExprMap</a>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; ~<a class="code" href="classSVF_1_1CondManager.html">CondManager</a>();</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* createFreshBranchCond(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* getOrAddBranchCond(<span class="keyword">const</span> z3::expr&amp; <a class="code" href="classSVF_1_1CondExpr.html#aa730ac78b531e785b9c16b62a9cf0fa1">e</a>, BranchCond* branchCond);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> getCondNumber();</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc"> 226</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> trueCond;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade"> 231</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> falseCond;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; z3::expr simplify(<span class="keyword">const</span> z3::expr&amp; expr) <span class="keyword">const</span>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* AND(<a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* lhs, <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* rhs);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* OR(<a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* lhs, <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* rhs);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* NEG(<a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* lhs);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; std::string getMemUsage();</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordtype">void</span> printModel();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordtype">void</span> printDbg(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* <a class="code" href="classSVF_1_1CondExpr.html#aa730ac78b531e785b9c16b62a9cf0fa1">e</a>);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; std::string dumpStr(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* e) <span class="keyword">const</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordtype">void</span> extractSubConds(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* cond, <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;support) <span class="keyword">const</span>;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordtype">bool</span> isSatisfiable(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* cond);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#adef2474c65a7f9d96b27ee670136a240"> 264</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CondManager.html#adef2474c65a7f9d96b27ee670136a240">isEquivalentBranchCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* rhs)<span class="keyword"> const</span>{</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="classSVF_1_1BranchCondExpr.html">BranchCondExpr</a>&gt;(lhs)-&gt;getBranchCond() ==</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="classSVF_1_1BranchCondExpr.html">BranchCondExpr</a>&gt;(rhs)-&gt;getBranchCond();</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordtype">bool</span> isAllPathReachable(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* e);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#ac246b92ebdf6a9635ed79892b81b9ae8"> 272</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* <a class="code" href="classSVF_1_1CondManager.html#ac246b92ebdf6a9635ed79892b81b9ae8">getCond</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <span class="keywordtype">id</span>)<span class="keyword"> const </span>{</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">const</span> IDToCondExprMap::const_iterator it = allocatedConds.find(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=allocatedConds.end() &amp;&amp; <span class="stringliteral">&quot;condition not found!&quot;</span>);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><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;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="comment">//{@</span></div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a4fac6a918f1f6d09fe1a4ceac7c19428"> 280</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* <a class="code" href="classSVF_1_1CondManager.html#a4fac6a918f1f6d09fe1a4ceac7c19428">getCondInst</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* cond)<span class="keyword"> const</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; CondToTermInstMap::const_iterator it = condToInstMap.find(cond);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=condToInstMap.end() &amp;&amp; <span class="stringliteral">&quot;this should be a fresh condition&quot;</span>);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; }</div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf"> 286</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">setCondInst</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* cond, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst){</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(condToInstMap.find(cond)==condToInstMap.end() &amp;&amp; <span class="stringliteral">&quot;this should be a fresh condition&quot;</span>);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; condToInstMap[cond] = inst;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11"> 293</a></span>&#160; z3::context <a class="code" href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">cxt</a>;</div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126"> 294</a></span>&#160; z3::solver <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>;</div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4"> 295</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* <a class="code" href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">trueCond</a>;</div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90"> 296</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* <a class="code" href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90">falseCond</a>;</div><div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b"> 297</a></span>&#160; IDToCondExprMap <a class="code" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a>; </div><div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914"> 298</a></span>&#160; BranchCondToCondExprMap <a class="code" href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">branchCondToCondExpr</a>; </div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329"> 299</a></span>&#160; CondToTermInstMap <a class="code" href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">condToInstMap</a>; </div><div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1"> 300</a></span>&#160; <a class="code" href="classSVF_1_1BranchCondManager.html">BranchCondManager</a> <a class="code" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">branchCondManager</a>; </div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;};</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* BITVECTORCOND_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1BranchCondManager_html_a6c807df0d5627d3afda2359b658bc97c"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a6c807df0d5627d3afda2359b658bc97c">SVF::BranchCondManager::createCond</a></div><div class="ttdeci">BranchCond * createCond(u32_t i)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00130">Conditions.h:130</a></div></div>
70
- <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#l00296">Conditions.h:296</a></div></div>
69
+ <a href="Conditions_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- Conditions.h -- Context/Path BDD conditions----------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * Condition.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Oct 19, 2021</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei and Xiao</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef BITVECTORCOND_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define BITVECTORCOND_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="BasicTypes_8h.html">Util/BasicTypes.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;cstdio&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="cuddInt_8h.html">CUDD/cuddInt.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;z3++.h&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html"> 42</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#aef2356f5c1c3178a7b54f46b7c2144a6"> 45</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="classSVF_1_1CondExpr.html#aef2356f5c1c3178a7b54f46b7c2144a6">CondExprKind</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#aef2356f5c1c3178a7b54f46b7c2144a6ab2a0481a51dd867e2d2f196556c24521"> 47</a></span>&#160; <a class="code" href="classSVF_1_1CondExpr.html#aef2356f5c1c3178a7b54f46b7c2144a6ab2a0481a51dd867e2d2f196556c24521">BranchK</a></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; };</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#af925a6e646b64db7aacf301b37b89b05"> 50</a></span>&#160; <a class="code" href="classSVF_1_1CondExpr.html#af925a6e646b64db7aacf301b37b89b05">CondExpr</a>(<span class="keyword">const</span> z3::expr &amp;_e, <a class="code" href="classSVF_1_1CondExpr.html#aef2356f5c1c3178a7b54f46b7c2144a6">CondExprKind</a> _k) : <a class="code" href="classSVF_1_1CondExpr.html#aa730ac78b531e785b9c16b62a9cf0fa1">e</a>(_e), <a class="code" href="classSVF_1_1CondExpr.html#aa7cbd249e276b768b22677f5efd83dd1">condExprK</a>(_k) {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#a034728ff201af843f9ae980bbb872086"> 52</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1CondExpr.html#a034728ff201af843f9ae980bbb872086">~CondExpr</a>(){</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23"> 55</a></span>&#160; <span class="keyword">const</span> z3::expr&amp; <a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondExpr.html#aa730ac78b531e785b9c16b62a9cf0fa1">e</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#a069c3ac3e7f87250a11f590d23c3a864"> 60</a></span>&#160; <span class="keyword">inline</span> z3::context&amp; <a class="code" href="classSVF_1_1CondExpr.html#a069c3ac3e7f87250a11f590d23c3a864">getContext</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().ctx();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#adef8b04d84d8882a2db68e5acab20438"> 65</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CondExpr.html#adef8b04d84d8882a2db68e5acab20438">getId</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondExpr.html#ac83903c62554c6f91812d79d23ec4e23">getExpr</a>().id();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#a2ae78bbef9ad2f3c61aafa23111a50ef"> 70</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1CondExpr.html#aef2356f5c1c3178a7b54f46b7c2144a6">CondExprKind</a> <a class="code" href="classSVF_1_1CondExpr.html#a2ae78bbef9ad2f3c61aafa23111a50ef">getCondKind</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CondExpr.html#aa7cbd249e276b768b22677f5efd83dd1">condExprK</a>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#aa730ac78b531e785b9c16b62a9cf0fa1"> 75</a></span>&#160; z3::expr <a class="code" href="classSVF_1_1CondExpr.html#aa730ac78b531e785b9c16b62a9cf0fa1">e</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1CondExpr.html#aa7cbd249e276b768b22677f5efd83dd1"> 76</a></span>&#160; <a class="code" href="classSVF_1_1CondExpr.html#aef2356f5c1c3178a7b54f46b7c2144a6">CondExprKind</a> <a class="code" href="classSVF_1_1CondExpr.html#aa7cbd249e276b768b22677f5efd83dd1">condExprK</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;};</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondExpr.html"> 79</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1BranchCondExpr.html">BranchCondExpr</a>: <span class="keyword">public</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>{</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondExpr.html#ad90fb1713be8b6a064e2423da5dd98b3"> 82</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="structDdNode.html">DdNode</a> <a class="code" href="classSVF_1_1BranchCondExpr.html#ad90fb1713be8b6a064e2423da5dd98b3">BranchCond</a>;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondExpr.html#a4f34f370563761f8a1b6a3c1239d6979"> 83</a></span>&#160; <a class="code" href="classSVF_1_1BranchCondExpr.html#a4f34f370563761f8a1b6a3c1239d6979">BranchCondExpr</a>(<span class="keyword">const</span> z3::expr&amp; _e, BranchCond* _branchCond): <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>(_e, <a class="code" href="classSVF_1_1CondExpr.html#aef2356f5c1c3178a7b54f46b7c2144a6ab2a0481a51dd867e2d2f196556c24521">BranchK</a>), branchCond(_branchCond){</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondExpr.html#acbfed1c7771cdb49237cdd6d3c75d25c"> 87</a></span>&#160; BranchCond* <a class="code" href="classSVF_1_1BranchCondExpr.html#acbfed1c7771cdb49237cdd6d3c75d25c">getBranchCond</a>()<span class="keyword"> const</span>{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> branchCond;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondExpr.html#a466d24de131d064a74d53783a6664b5e"> 93</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchCondExpr.html#a466d24de131d064a74d53783a6664b5e">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1BranchCondExpr.html">BranchCondExpr</a> *)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondExpr.html#a410279631ba4a555a6b823be2465b0de"> 98</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1BranchCondExpr.html#a410279631ba4a555a6b823be2465b0de">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#a2ae78bbef9ad2f3c61aafa23111a50ef">getCondKind</a>() == <a class="code" href="classSVF_1_1CondExpr.html#aef2356f5c1c3178a7b54f46b7c2144a6ab2a0481a51dd867e2d2f196556c24521">BranchK</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondExpr.html#a99b54ea1152131f8e0991374043ffced"> 106</a></span>&#160; BranchCond* <a class="code" href="classSVF_1_1BranchCondExpr.html#a99b54ea1152131f8e0991374043ffced">branchCond</a>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;};</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html"> 114</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1BranchCondManager.html">BranchCondManager</a></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#a37bec50768d5df6317a4ba6c790c569d"> 117</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="structDdNode.html">BranchCondExpr::BranchCond</a> <a class="code" href="classSVF_1_1BranchCondManager.html#a37bec50768d5df6317a4ba6c790c569d">BranchCond</a>;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#af1d01bd350869616c143bf586ef4097e"> 119</a></span>&#160; <a class="code" href="classSVF_1_1BranchCondManager.html#af1d01bd350869616c143bf586ef4097e">BranchCondManager</a>()</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; m_bdd_mgr = <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="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#a44bdc46bc43e657a545a5bedcfcae920"> 125</a></span>&#160; <a class="code" href="classSVF_1_1BranchCondManager.html#a44bdc46bc43e657a545a5bedcfcae920">~BranchCondManager</a>()</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="cudd_8h.html#a2889ace3fcf7d4e00915de52554fd475">Cudd_Quit</a>(m_bdd_mgr);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#a6c807df0d5627d3afda2359b658bc97c"> 130</a></span>&#160; BranchCond* <a class="code" href="classSVF_1_1BranchCondManager.html#a6c807df0d5627d3afda2359b658bc97c">createCond</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cudd_8h.html#a40fd71665cde402bd5bc4f39015c09ae">Cudd_bddIthVar</a>(m_bdd_mgr, i);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363"> 134</a></span>&#160; <span class="keyword">inline</span> BranchCond* <a class="code" href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">getTrueCond</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> BddOne();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#a013eb66493beb2b1d004605c68894a95"> 138</a></span>&#160; <span class="keyword">inline</span> BranchCond* <a class="code" href="classSVF_1_1BranchCondManager.html#a013eb66493beb2b1d004605c68894a95">getFalseCond</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> BddZero();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#ab728e3f0906854e94776ff0e6297c181"> 143</a></span>&#160; <span class="keyword">inline</span> std::string <a class="code" href="classSVF_1_1BranchCondManager.html#ab728e3f0906854e94776ff0e6297c181">getMemUsage</a>()</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> std::to_string(<a class="code" href="cudd_8h.html#a03db7d4ba1119a3cd5843fa7bd3a1a30">Cudd_ReadMemoryInUse</a>(m_bdd_mgr));</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#a07dc09be78c287ac24adb20c54147a46"> 147</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1BranchCondManager.html#a07dc09be78c287ac24adb20c54147a46">getCondNumber</a>()</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cudd_8h.html#a9ba2c88b8f70df51791c26ffde800fc7">Cudd_ReadNodeCount</a>(m_bdd_mgr);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; BranchCond* AND(BranchCond* lhs, BranchCond* rhs);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; BranchCond* OR(BranchCond* lhs, BranchCond* rhs);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; BranchCond* NEG(BranchCond* lhs);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">void</span> <a class="code" href="cuddInt_8c.html#ab69f928c3cca42f5b1330803de1d9199">ddClearFlag</a>(BranchCond * f) <span class="keyword">const</span>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordtype">void</span> BddSupportStep( BranchCond * f, <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;support) <span class="keyword">const</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> extractSubConds( BranchCond * f, <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;support) <span class="keyword">const</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">void</span> dump(BranchCond* lhs, <a class="code" href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">raw_ostream</a> &amp; O);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; std::string dumpStr(BranchCond* lhs) <span class="keyword">const</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#a581c73dc30070db0a278ffb3985519dc"> 169</a></span>&#160; <span class="keyword">inline</span> BranchCond* <a class="code" href="classSVF_1_1BranchCondManager.html#a581c73dc30070db0a278ffb3985519dc">BddOne</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cudd_8h.html#a2651c953d81570d3f4f794bcbef40afe">Cudd_ReadOne</a>(m_bdd_mgr);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#a414483307915f9201e203eae9a07d389"> 173</a></span>&#160; <span class="keyword">inline</span> BranchCond* <a class="code" href="classSVF_1_1BranchCondManager.html#a414483307915f9201e203eae9a07d389">BddZero</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> <a class="code" href="cudd_8h.html#a1dd42d8cb5c86659170103a3068e13a6">Cudd_ReadLogicZero</a>(m_bdd_mgr);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classSVF_1_1BranchCondManager.html#a0c6278a5b4419e16c8fb5d3f8f8162a2"> 178</a></span>&#160; <a class="code" href="structDdManager.html">DdManager</a> *<a class="code" href="classSVF_1_1BranchCondManager.html#a0c6278a5b4419e16c8fb5d3f8f8162a2">m_bdd_mgr</a>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;};</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html"> 181</a></span>&#160;<span class="keyword">class </span><a class="code" href="classSVF_1_1CondManager.html">CondManager</a>{</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a1e48008a3fe3a562512e253133aa557f"> 184</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1CondManager.html">CondManager</a>* <a class="code" href="classSVF_1_1CondManager.html#a1e48008a3fe3a562512e253133aa557f">condMgr</a>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="classSVF_1_1CondManager.html">CondManager</a>();</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6"> 190</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="structDdNode.html">BranchCondExpr::BranchCond</a> <a class="code" href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">BranchCond</a>;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a3cd3149a0bb5b605e61f0935bd234f3b"> 191</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;const CondExpr*, const Instruction* &gt;</a> <a class="code" href="classSVF_1_1CondManager.html#a3cd3149a0bb5b605e61f0935bd234f3b">CondToTermInstMap</a>; <span class="comment">// map a condition to its branch instruction</span></div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a7efaeff7229fcfdc6c05d53ee3e1d916"> 192</a></span>&#160; <span class="keyword">static</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1CondManager.html#a7efaeff7229fcfdc6c05d53ee3e1d916">totalCondNum</a>; <span class="comment">// a counter for fresh condition</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a0128830b629c00d91dc78d348300e7c6"> 195</a></span>&#160; <span class="keyword">static</span> <span class="keyword">inline</span> <a class="code" href="classSVF_1_1CondManager.html">CondManager</a>* <a class="code" href="classSVF_1_1CondManager.html#a0128830b629c00d91dc78d348300e7c6">getCondMgr</a>()</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">if</span> (condMgr == <span class="keyword">nullptr</span>)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; condMgr = <span class="keyword">new</span> <a class="code" href="classSVF_1_1CondManager.html">CondManager</a>();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> condMgr;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a2748338b4a5b122b5bbf4a9cb1f54211"> 203</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CondManager.html#a2748338b4a5b122b5bbf4a9cb1f54211">releaseCondMgr</a>()</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">delete</span> condMgr;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; condMgr = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a1f6aceb4d48a37bcb0e2f1776116b760"> 210</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;u32_t, CondExpr*&gt;</a> <a class="code" href="classSVF_1_1CondManager.html#a1f6aceb4d48a37bcb0e2f1776116b760">IDToCondExprMap</a>;</div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#af2cf8e42c15d6a0640f13c55050f616f"> 211</a></span>&#160; <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;BranchCond*, CondExpr*&gt;</a> <a class="code" href="classSVF_1_1CondManager.html#af2cf8e42c15d6a0640f13c55050f616f">BranchCondToCondExprMap</a>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; ~<a class="code" href="classSVF_1_1CondManager.html">CondManager</a>();</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* createFreshBranchCond(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* getOrAddBranchCond(<span class="keyword">const</span> z3::expr&amp; <a class="code" href="classSVF_1_1CondExpr.html#aa730ac78b531e785b9c16b62a9cf0fa1">e</a>, BranchCond* branchCond);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> getCondNumber();</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc"> 226</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* <a class="code" href="classSVF_1_1CondManager.html#ac74f182ef249a7c892ba9c630f889ddc">getTrueCond</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> trueCond;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade"> 231</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* <a class="code" href="classSVF_1_1CondManager.html#a39e9d42cb3661d1c686b5163c70eeade">getFalseCond</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> falseCond;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; z3::expr simplify(<span class="keyword">const</span> z3::expr&amp; expr) <span class="keyword">const</span>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* AND(<a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* lhs, <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* rhs);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* OR(<a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* lhs, <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* rhs);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* NEG(<a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* lhs);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; std::string getMemUsage();</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordtype">void</span> printModel();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordtype">void</span> printDbg(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* <a class="code" href="classSVF_1_1CondExpr.html#aa730ac78b531e785b9c16b62a9cf0fa1">e</a>);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; std::string dumpStr(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* e) <span class="keyword">const</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordtype">void</span> extractSubConds(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* cond, <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> &amp;support) <span class="keyword">const</span>;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordtype">bool</span> isSatisfiable(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* cond);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#adef2474c65a7f9d96b27ee670136a240"> 264</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CondManager.html#adef2474c65a7f9d96b27ee670136a240">isEquivalentBranchCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* rhs)<span class="keyword"> const</span>{</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="classSVF_1_1BranchCondExpr.html">BranchCondExpr</a>&gt;(lhs)-&gt;getBranchCond() ==</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="classSVF_1_1BranchCondExpr.html">BranchCondExpr</a>&gt;(rhs)-&gt;getBranchCond();</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordtype">bool</span> isAllPathReachable(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* e);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#ac246b92ebdf6a9635ed79892b81b9ae8"> 272</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* <a class="code" href="classSVF_1_1CondManager.html#ac246b92ebdf6a9635ed79892b81b9ae8">getCond</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <span class="keywordtype">id</span>)<span class="keyword"> const </span>{</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">const</span> IDToCondExprMap::const_iterator it = allocatedConds.find(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=allocatedConds.end() &amp;&amp; <span class="stringliteral">&quot;condition not found!&quot;</span>);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><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;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="comment">//{@</span></div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a4fac6a918f1f6d09fe1a4ceac7c19428"> 280</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* <a class="code" href="classSVF_1_1CondManager.html#a4fac6a918f1f6d09fe1a4ceac7c19428">getCondInst</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* cond)<span class="keyword"> const</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; CondToTermInstMap::const_iterator it = condToInstMap.find(cond);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(it!=condToInstMap.end() &amp;&amp; <span class="stringliteral">&quot;this should be a fresh condition&quot;</span>);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> it-&gt;second;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; }</div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf"> 286</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">setCondInst</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* cond, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst){</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(condToInstMap.find(cond)==condToInstMap.end() &amp;&amp; <span class="stringliteral">&quot;this should be a fresh condition&quot;</span>);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; condToInstMap[cond] = inst;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a049541fec44cac3401a0dc68ff2f0ac1"> 291</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CondManager.html#a049541fec44cac3401a0dc68ff2f0ac1">setNegCondInst</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst) {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; setCondInst(cond, inst);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; negConds.set(cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#adef8b04d84d8882a2db68e5acab20438">getId</a>());</div><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;</div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#ad1de136dbd62c3b9a7447222bd0890fa"> 296</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1CondManager.html#ad1de136dbd62c3b9a7447222bd0890fa">isNegCond</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a> *cond)<span class="keyword"> const </span>{</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">return</span> negConds.test(cond-&gt;<a class="code" href="classSVF_1_1CondExpr.html#adef8b04d84d8882a2db68e5acab20438">getId</a>());</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11"> 302</a></span>&#160; z3::context <a class="code" href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">cxt</a>;</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126"> 303</a></span>&#160; z3::solver <a class="code" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a>;</div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4"> 304</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* <a class="code" href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">trueCond</a>;</div><div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90"> 305</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classSVF_1_1CondExpr.html">CondExpr</a>* <a class="code" href="classSVF_1_1CondManager.html#a0ba3cf86743de62bcd5fd38d8166bc90">falseCond</a>;</div><div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b"> 306</a></span>&#160; IDToCondExprMap <a class="code" href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">allocatedConds</a>; </div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914"> 307</a></span>&#160; BranchCondToCondExprMap <a class="code" href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">branchCondToCondExpr</a>; </div><div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329"> 308</a></span>&#160; CondToTermInstMap <a class="code" href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">condToInstMap</a>; </div><div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1"> 309</a></span>&#160; <a class="code" href="classSVF_1_1BranchCondManager.html">BranchCondManager</a> <a class="code" href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">branchCondManager</a>; </div><div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="classSVF_1_1CondManager.html#aa5e6dbdb4c88941996f7865a2d3ca314"> 310</a></span>&#160; <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> <a class="code" href="classSVF_1_1CondManager.html#aa5e6dbdb4c88941996f7865a2d3ca314">negConds</a>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;};</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;} <span class="comment">// End namespace SVF</span></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;<span class="preprocessor">#endif </span><span class="comment">/* BITVECTORCOND_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1BranchCondManager_html_a6c807df0d5627d3afda2359b658bc97c"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a6c807df0d5627d3afda2359b658bc97c">SVF::BranchCondManager::createCond</a></div><div class="ttdeci">BranchCond * createCond(u32_t i)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00130">Conditions.h:130</a></div></div>
70
+ <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#l00305">Conditions.h:305</a></div></div>
71
71
  <div class="ttc" id="classSVF_1_1CondManager_html_afb6c29587f01bf5b80878bae0850d2f6"><div class="ttname"><a href="classSVF_1_1CondManager.html#afb6c29587f01bf5b80878bae0850d2f6">SVF::CondManager::BranchCond</a></div><div class="ttdeci">BranchCondExpr::BranchCond BranchCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00190">Conditions.h:190</a></div></div>
72
72
  <div class="ttc" id="classSVF_1_1BranchCondManager_html_a44bdc46bc43e657a545a5bedcfcae920"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a44bdc46bc43e657a545a5bedcfcae920">SVF::BranchCondManager::~BranchCondManager</a></div><div class="ttdeci">~BranchCondManager()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00125">Conditions.h:125</a></div></div>
73
73
  <div class="ttc" id="classSVF_1_1BranchCondManager_html_af1d01bd350869616c143bf586ef4097e"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#af1d01bd350869616c143bf586ef4097e">SVF::BranchCondManager::BranchCondManager</a></div><div class="ttdeci">BranchCondManager()</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00119">Conditions.h:119</a></div></div>
74
74
  <div class="ttc" id="classSVF_1_1BranchCondManager_html_ac6fb7493ceb44406a4bd6a62a60a6363"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">SVF::BranchCondManager::getTrueCond</a></div><div class="ttdeci">BranchCond * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00134">Conditions.h:134</a></div></div>
75
- <div class="ttc" id="classSVF_1_1CondManager_html_a771bda4bb55dd8c95a03f1a74a215126"><div class="ttname"><a href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">SVF::CondManager::sol</a></div><div class="ttdeci">z3::solver sol</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00294">Conditions.h:294</a></div></div>
75
+ <div class="ttc" id="classSVF_1_1CondManager_html_a771bda4bb55dd8c95a03f1a74a215126"><div class="ttname"><a href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">SVF::CondManager::sol</a></div><div class="ttdeci">z3::solver sol</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00303">Conditions.h:303</a></div></div>
76
76
  <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>
77
77
  <div class="ttc" id="structDdNode_html"><div class="ttname"><a href="structDdNode.html">DdNode</a></div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00264">cudd.h:264</a></div></div>
78
78
  <div class="ttc" id="namespaceSVF_html_a424cc053c29ad7303699c529d1a2cc71"><div class="ttname"><a href="namespaceSVF.html#a424cc053c29ad7303699c529d1a2cc71">SVF::raw_ostream</a></div><div class="ttdeci">llvm::raw_ostream raw_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00099">BasicTypes.h:99</a></div></div>
@@ -81,11 +81,12 @@ $(function() {
81
81
  <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#l00226">Conditions.h:226</a></div></div>
82
82
  <div class="ttc" id="classSVF_1_1BranchCondManager_html_a37bec50768d5df6317a4ba6c790c569d"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a37bec50768d5df6317a4ba6c790c569d">SVF::BranchCondManager::BranchCond</a></div><div class="ttdeci">BranchCondExpr::BranchCond BranchCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00117">Conditions.h:117</a></div></div>
83
83
  <div class="ttc" id="cuddInt_8h_html"><div class="ttname"><a href="cuddInt_8h.html">cuddInt.h</a></div></div>
84
- <div class="ttc" id="classSVF_1_1CondManager_html_a087773d6ae6ed6af009a356dd7b61e11"><div class="ttname"><a href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">SVF::CondManager::cxt</a></div><div class="ttdeci">z3::context cxt</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00293">Conditions.h:293</a></div></div>
84
+ <div class="ttc" id="classSVF_1_1CondManager_html_a087773d6ae6ed6af009a356dd7b61e11"><div class="ttname"><a href="classSVF_1_1CondManager.html#a087773d6ae6ed6af009a356dd7b61e11">SVF::CondManager::cxt</a></div><div class="ttdeci">z3::context cxt</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00302">Conditions.h:302</a></div></div>
85
85
  <div class="ttc" id="classSVF_1_1CondManager_html_a3cd3149a0bb5b605e61f0935bd234f3b"><div class="ttname"><a href="classSVF_1_1CondManager.html#a3cd3149a0bb5b605e61f0935bd234f3b">SVF::CondManager::CondToTermInstMap</a></div><div class="ttdeci">Map&lt; const CondExpr *, const Instruction *&gt; CondToTermInstMap</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00191">Conditions.h:191</a></div></div>
86
86
  <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>
87
87
  <div class="ttc" id="classSVF_1_1CondManager_html_adef2474c65a7f9d96b27ee670136a240"><div class="ttname"><a href="classSVF_1_1CondManager.html#adef2474c65a7f9d96b27ee670136a240">SVF::CondManager::isEquivalentBranchCond</a></div><div class="ttdeci">bool isEquivalentBranchCond(const CondExpr *lhs, const CondExpr *rhs) const</div><div class="ttdoc">Whether lhs and rhs are equivalent branch conditions. </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00264">Conditions.h:264</a></div></div>
88
- <div class="ttc" id="classSVF_1_1CondManager_html_ac735eb27ed4328f97ced87494683f7f1"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">SVF::CondManager::branchCondManager</a></div><div class="ttdeci">BranchCondManager branchCondManager</div><div class="ttdoc">branch condition manager </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00300">Conditions.h:300</a></div></div>
88
+ <div class="ttc" id="classSVF_1_1CondManager_html_aa5e6dbdb4c88941996f7865a2d3ca314"><div class="ttname"><a href="classSVF_1_1CondManager.html#aa5e6dbdb4c88941996f7865a2d3ca314">SVF::CondManager::negConds</a></div><div class="ttdeci">NodeBS negConds</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00310">Conditions.h:310</a></div></div>
89
+ <div class="ttc" id="classSVF_1_1CondManager_html_ac735eb27ed4328f97ced87494683f7f1"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac735eb27ed4328f97ced87494683f7f1">SVF::CondManager::branchCondManager</a></div><div class="ttdeci">BranchCondManager branchCondManager</div><div class="ttdoc">branch condition manager </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00309">Conditions.h:309</a></div></div>
89
90
  <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>
90
91
  <div class="ttc" id="structDdManager_html"><div class="ttname"><a href="structDdManager.html">DdManager</a></div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00326">cuddInt.h:326</a></div></div>
91
92
  <div class="ttc" id="classSVF_1_1BranchCondExpr_html_a410279631ba4a555a6b823be2465b0de"><div class="ttname"><a href="classSVF_1_1BranchCondExpr.html#a410279631ba4a555a6b823be2465b0de">SVF::BranchCondExpr::classof</a></div><div class="ttdeci">static bool classof(const CondExpr *cond)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00098">Conditions.h:98</a></div></div>
@@ -99,8 +100,8 @@ $(function() {
99
100
  <div class="ttc" id="classSVF_1_1CondManager_html_a2748338b4a5b122b5bbf4a9cb1f54211"><div class="ttname"><a href="classSVF_1_1CondManager.html#a2748338b4a5b122b5bbf4a9cb1f54211">SVF::CondManager::releaseCondMgr</a></div><div class="ttdeci">static void releaseCondMgr()</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00203">Conditions.h:203</a></div></div>
100
101
  <div class="ttc" id="classSVF_1_1BranchCondManager_html"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html">SVF::BranchCondManager</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00114">Conditions.h:114</a></div></div>
101
102
  <div class="ttc" id="classSVF_1_1CondExpr_html_adef8b04d84d8882a2db68e5acab20438"><div class="ttname"><a href="classSVF_1_1CondExpr.html#adef8b04d84d8882a2db68e5acab20438">SVF::CondExpr::getId</a></div><div class="ttdeci">u32_t getId() const</div><div class="ttdoc">get id </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00065">Conditions.h:65</a></div></div>
102
- <div class="ttc" id="classSVF_1_1CondManager_html_ab986c3f6281995e302dabe4776768329"><div class="ttname"><a href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">SVF::CondManager::condToInstMap</a></div><div class="ttdeci">CondToTermInstMap condToInstMap</div><div class="ttdoc">map condition to llvm instruction </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00299">Conditions.h:299</a></div></div>
103
- <div class="ttc" id="classSVF_1_1CondManager_html_afd01891f45e085e990c9dbba5cbf3914"><div class="ttname"><a href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">SVF::CondManager::branchCondToCondExpr</a></div><div class="ttdeci">BranchCondToCondExprMap branchCondToCondExpr</div><div class="ttdoc">map branch condition to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00298">Conditions.h:298</a></div></div>
103
+ <div class="ttc" id="classSVF_1_1CondManager_html_ab986c3f6281995e302dabe4776768329"><div class="ttname"><a href="classSVF_1_1CondManager.html#ab986c3f6281995e302dabe4776768329">SVF::CondManager::condToInstMap</a></div><div class="ttdeci">CondToTermInstMap condToInstMap</div><div class="ttdoc">map condition to llvm instruction </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00308">Conditions.h:308</a></div></div>
104
+ <div class="ttc" id="classSVF_1_1CondManager_html_afd01891f45e085e990c9dbba5cbf3914"><div class="ttname"><a href="classSVF_1_1CondManager.html#afd01891f45e085e990c9dbba5cbf3914">SVF::CondManager::branchCondToCondExpr</a></div><div class="ttdeci">BranchCondToCondExprMap branchCondToCondExpr</div><div class="ttdoc">map branch condition to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00307">Conditions.h:307</a></div></div>
104
105
  <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00079">BasicTypes.h:79</a></div></div>
105
106
  <div class="ttc" id="classSVF_1_1BranchCondExpr_html_a466d24de131d064a74d53783a6664b5e"><div class="ttname"><a href="classSVF_1_1BranchCondExpr.html#a466d24de131d064a74d53783a6664b5e">SVF::BranchCondExpr::classof</a></div><div class="ttdeci">static bool classof(const BranchCondExpr *)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast: </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00093">Conditions.h:93</a></div></div>
106
107
  <div class="ttc" id="classSVF_1_1BranchCondExpr_html_ad90fb1713be8b6a064e2423da5dd98b3"><div class="ttname"><a href="classSVF_1_1BranchCondExpr.html#ad90fb1713be8b6a064e2423da5dd98b3">SVF::BranchCondExpr::BranchCond</a></div><div class="ttdeci">DdNode BranchCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00082">Conditions.h:82</a></div></div>
@@ -111,11 +112,13 @@ $(function() {
111
112
  <div class="ttc" id="classSVF_1_1BranchCondManager_html_a581c73dc30070db0a278ffb3985519dc"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a581c73dc30070db0a278ffb3985519dc">SVF::BranchCondManager::BddOne</a></div><div class="ttdeci">BranchCond * BddOne() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00169">Conditions.h:169</a></div></div>
112
113
  <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>
113
114
  <div class="ttc" id="classSVF_1_1CondExpr_html_a069c3ac3e7f87250a11f590d23c3a864"><div class="ttname"><a href="classSVF_1_1CondExpr.html#a069c3ac3e7f87250a11f590d23c3a864">SVF::CondExpr::getContext</a></div><div class="ttdeci">z3::context &amp; getContext() const</div><div class="ttdoc">get ctx </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00060">Conditions.h:60</a></div></div>
115
+ <div class="ttc" id="classSVF_1_1CondManager_html_ad1de136dbd62c3b9a7447222bd0890fa"><div class="ttname"><a href="classSVF_1_1CondManager.html#ad1de136dbd62c3b9a7447222bd0890fa">SVF::CondManager::isNegCond</a></div><div class="ttdeci">bool isNegCond(const CondExpr *cond) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00296">Conditions.h:296</a></div></div>
114
116
  <div class="ttc" id="BasicTypes_8h_html"><div class="ttname"><a href="BasicTypes_8h.html">BasicTypes.h</a></div></div>
115
117
  <div class="ttc" id="classSVF_1_1BranchCondManager_html_a414483307915f9201e203eae9a07d389"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a414483307915f9201e203eae9a07d389">SVF::BranchCondManager::BddZero</a></div><div class="ttdeci">BranchCond * BddZero() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00173">Conditions.h:173</a></div></div>
116
- <div class="ttc" id="classSVF_1_1CondManager_html_a3621c17b2ff1beb7aa4e467ec357713b"><div class="ttname"><a href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">SVF::CondManager::allocatedConds</a></div><div class="ttdeci">IDToCondExprMap allocatedConds</div><div class="ttdoc">map condition id (z3 ast id) to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00297">Conditions.h:297</a></div></div>
118
+ <div class="ttc" id="classSVF_1_1CondManager_html_a3621c17b2ff1beb7aa4e467ec357713b"><div class="ttname"><a href="classSVF_1_1CondManager.html#a3621c17b2ff1beb7aa4e467ec357713b">SVF::CondManager::allocatedConds</a></div><div class="ttdeci">IDToCondExprMap allocatedConds</div><div class="ttdoc">map condition id (z3 ast id) to its Condition wrapper </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00306">Conditions.h:306</a></div></div>
117
119
  <div class="ttc" id="classSVF_1_1CondManager_html_ac246b92ebdf6a9635ed79892b81b9ae8"><div class="ttname"><a href="classSVF_1_1CondManager.html#ac246b92ebdf6a9635ed79892b81b9ae8">SVF::CondManager::getCond</a></div><div class="ttdeci">CondExpr * getCond(u32_t id) const</div><div class="ttdoc">Get condition using condition id (z3 ast id) </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00272">Conditions.h:272</a></div></div>
118
120
  <div class="ttc" id="classSVF_1_1CondManager_html_af2cf8e42c15d6a0640f13c55050f616f"><div class="ttname"><a href="classSVF_1_1CondManager.html#af2cf8e42c15d6a0640f13c55050f616f">SVF::CondManager::BranchCondToCondExprMap</a></div><div class="ttdeci">Map&lt; BranchCond *, CondExpr * &gt; BranchCondToCondExprMap</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00211">Conditions.h:211</a></div></div>
121
+ <div class="ttc" id="classSVF_1_1CondManager_html_a049541fec44cac3401a0dc68ff2f0ac1"><div class="ttname"><a href="classSVF_1_1CondManager.html#a049541fec44cac3401a0dc68ff2f0ac1">SVF::CondManager::setNegCondInst</a></div><div class="ttdeci">void setNegCondInst(const CondExpr *cond, const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00291">Conditions.h:291</a></div></div>
119
122
  <div class="ttc" id="classSVF_1_1CondManager_html_a0128830b629c00d91dc78d348300e7c6"><div class="ttname"><a href="classSVF_1_1CondManager.html#a0128830b629c00d91dc78d348300e7c6">SVF::CondManager::getCondMgr</a></div><div class="ttdeci">static CondManager * getCondMgr()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis. ...</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00195">Conditions.h:195</a></div></div>
120
123
  <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>
121
124
  <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>
@@ -136,7 +139,7 @@ $(function() {
136
139
  <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#l00231">Conditions.h:231</a></div></div>
137
140
  <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>
138
141
  <div class="ttc" id="classSVF_1_1CondExpr_html_af925a6e646b64db7aacf301b37b89b05"><div class="ttname"><a href="classSVF_1_1CondExpr.html#af925a6e646b64db7aacf301b37b89b05">SVF::CondExpr::CondExpr</a></div><div class="ttdeci">CondExpr(const z3::expr &amp;_e, CondExprKind _k)</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00050">Conditions.h:50</a></div></div>
139
- <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#l00295">Conditions.h:295</a></div></div>
142
+ <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#l00304">Conditions.h:304</a></div></div>
140
143
  <div class="ttc" id="classSVF_1_1BranchCondManager_html_a0c6278a5b4419e16c8fb5d3f8f8162a2"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a0c6278a5b4419e16c8fb5d3f8f8162a2">SVF::BranchCondManager::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#l00178">Conditions.h:178</a></div></div>
141
144
  <div class="ttc" id="classSVF_1_1BranchCondExpr_html"><div class="ttname"><a href="classSVF_1_1BranchCondExpr.html">SVF::BranchCondExpr</a></div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00079">Conditions.h:79</a></div></div>
142
145
  <div class="ttc" id="classSVF_1_1CondExpr_html_a2ae78bbef9ad2f3c61aafa23111a50ef"><div class="ttname"><a href="classSVF_1_1CondExpr.html#a2ae78bbef9ad2f3c61aafa23111a50ef">SVF::CondExpr::getCondKind</a></div><div class="ttdeci">CondExprKind getCondKind() const</div><div class="ttdoc">get Condition kind </div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00070">Conditions.h:70</a></div></div>