svf-tools 1.0.425 → 1.0.428

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 (584) hide show
  1. package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +2 -2
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +4 -4
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +7 -7
  5. package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +5 -5
  6. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +7 -7
  7. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
  8. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +11 -11
  9. package/SVF-doxygen/html/html/Andersen_8h_source.html +9 -9
  10. package/SVF-doxygen/html/html/Annotator_8h_source.html +3 -3
  11. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +10 -9
  12. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +9 -8
  13. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +6 -6
  14. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +21 -21
  15. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +5 -5
  16. package/SVF-doxygen/html/html/CHG_8cpp.html +3 -3
  17. package/SVF-doxygen/html/html/CHG_8cpp_source.html +11 -11
  18. package/SVF-doxygen/html/html/CHG_8h_source.html +6 -6
  19. package/SVF-doxygen/html/html/CPPUtil_8cpp.html +2 -2
  20. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +25 -25
  21. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +4 -4
  22. package/SVF-doxygen/html/html/CSC_8cpp_source.html +3 -3
  23. package/SVF-doxygen/html/html/CSC_8h_source.html +4 -4
  24. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +5 -5
  25. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +6 -6
  26. package/SVF-doxygen/html/html/Conditions_8cpp_source.html +4 -4
  27. package/SVF-doxygen/html/html/Conditions_8h_source.html +5 -5
  28. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
  29. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +2 -2
  30. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
  31. package/SVF-doxygen/html/html/ConsG_8h_source.html +7 -7
  32. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +19 -19
  33. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +13 -13
  34. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +2 -2
  36. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +6 -6
  37. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +29 -29
  38. package/SVF-doxygen/html/html/DCHG_8h_source.html +14 -14
  39. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +6 -6
  40. package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
  41. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +9 -9
  42. package/SVF-doxygen/html/html/DDAPass_8h_source.html +10 -11
  43. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +5 -5
  44. package/SVF-doxygen/html/html/DDAStat_8h_source.html +3 -3
  45. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +13 -13
  46. package/SVF-doxygen/html/html/DPItem_8h_source.html +6 -6
  47. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +7 -7
  48. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +11 -11
  49. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +4 -4
  50. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +7 -7
  51. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +4 -4
  52. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  53. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +5 -5
  54. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +6 -6
  55. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +8 -8
  56. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp.html +3 -3
  57. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +20 -20
  58. package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +8 -8
  59. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +19 -19
  60. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +9 -9
  61. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +3 -3
  62. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +5 -5
  63. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
  64. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +2 -2
  65. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +10 -10
  66. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +3 -3
  67. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +5 -5
  68. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +5 -5
  69. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
  70. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +7 -7
  71. package/SVF-doxygen/html/html/ICFG_8h_source.html +5 -5
  72. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +11 -11
  73. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -3
  74. package/SVF-doxygen/html/html/IRGraph_8h_source.html +22 -22
  75. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +14 -14
  76. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +9 -9
  77. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +27 -27
  78. package/SVF-doxygen/html/html/LLVMUtil_8h.html +11 -9
  79. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +21 -18
  80. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  81. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +3 -3
  82. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +12 -12
  83. package/SVF-doxygen/html/html/LocationSet_8h_source.html +6 -6
  84. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +12 -12
  85. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +11 -11
  86. package/SVF-doxygen/html/html/LockResultValidator_8cpp.html +1 -0
  87. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +22 -21
  88. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +10 -10
  89. package/SVF-doxygen/html/html/MHP_8cpp.html +8 -7
  90. package/SVF-doxygen/html/html/MHP_8cpp_source.html +63 -62
  91. package/SVF-doxygen/html/html/MHP_8h_source.html +37 -37
  92. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +4 -4
  93. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +9 -9
  94. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +7 -7
  95. package/SVF-doxygen/html/html/MTAResultValidator_8cpp.html +1 -0
  96. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +41 -40
  97. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +29 -29
  98. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +8 -8
  99. package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
  100. package/SVF-doxygen/html/html/MTA_8cpp_source.html +8 -8
  101. package/SVF-doxygen/html/html/MTA_8h_source.html +8 -8
  102. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +2 -2
  103. package/SVF-doxygen/html/html/MemPartition_8h_source.html +4 -4
  104. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +16 -16
  105. package/SVF-doxygen/html/html/MemRegion_8h_source.html +8 -8
  106. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +11 -11
  107. package/SVF-doxygen/html/html/MemSSA_8h_source.html +8 -8
  108. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +3 -3
  109. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +4 -4
  110. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +3 -3
  111. package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
  112. package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +2 -2
  113. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +3 -3
  114. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
  115. package/SVF-doxygen/html/html/PCG_8cpp_source.html +10 -10
  116. package/SVF-doxygen/html/html/PCG_8h_source.html +4 -4
  117. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +4 -4
  118. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +7 -7
  119. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +25 -28
  120. package/SVF-doxygen/html/html/PTAStat_8h_source.html +2 -2
  121. package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +52 -46
  122. package/SVF-doxygen/html/html/PathCondAllocator_8h.html +1 -0
  123. package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +74 -69
  124. package/SVF-doxygen/html/html/PathDPItem_8h_source.html +2 -2
  125. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +3 -3
  126. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +2 -2
  127. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +11 -12
  128. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +56 -58
  129. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +31 -31
  130. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +44 -45
  131. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +3 -3
  132. package/SVF-doxygen/html/html/PointsTo_8h_source.html +3 -3
  133. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +10 -9
  134. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +18 -18
  135. package/SVF-doxygen/html/html/SCC_8h_source.html +3 -3
  136. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +554 -11
  137. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +37 -7
  138. package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +7 -13
  139. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +38 -41
  140. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +4 -4
  141. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +2 -2
  142. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +3 -3
  143. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +4 -4
  144. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +11 -11
  145. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +15 -15
  146. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +3 -3
  147. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +4 -4
  148. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +15 -15
  149. package/SVF-doxygen/html/html/SVFG_8h_source.html +16 -16
  150. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +63 -62
  151. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +48 -48
  152. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +10 -10
  153. package/SVF-doxygen/html/html/SVFIR_8h_source.html +19 -19
  154. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
  155. package/SVF-doxygen/html/html/SVFModule_8h_source.html +5 -5
  156. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +5 -5
  157. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +9 -9
  158. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +15 -15
  159. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +16 -16
  160. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
  161. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +15 -15
  162. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +13 -11
  163. package/SVF-doxygen/html/html/SaberAnnotator_8h.html +1 -1
  164. package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +7 -8
  165. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +2 -2
  166. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +8 -8
  167. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -2
  168. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -2
  169. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +5 -5
  170. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
  171. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +2 -2
  172. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +58 -58
  173. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +7 -7
  174. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +103 -104
  175. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +135 -139
  176. package/SVF-doxygen/html/html/TCT_8cpp_source.html +19 -19
  177. package/SVF-doxygen/html/html/TCT_8h_source.html +18 -18
  178. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +5 -5
  179. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +6 -6
  180. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +11 -11
  181. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +6 -6
  182. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +4 -4
  183. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +1 -1
  184. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +25 -25
  185. package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +6 -6
  186. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +0 -69
  187. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +119 -153
  188. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +2 -2
  189. package/SVF-doxygen/html/html/VFGNode_8h_source.html +165 -170
  190. package/SVF-doxygen/html/html/VFG_8cpp_source.html +19 -19
  191. package/SVF-doxygen/html/html/VFG_8h_source.html +22 -22
  192. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +6 -6
  193. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +7 -7
  194. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +4 -4
  195. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +2 -2
  196. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +11 -11
  197. package/SVF-doxygen/html/html/WPAPass_8h_source.html +12 -12
  198. package/SVF-doxygen/html/html/WPASolver_8h_source.html +3 -3
  199. package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
  200. package/SVF-doxygen/html/html/WorkList_8h_source.html +1 -1
  201. package/SVF-doxygen/html/html/annotated.html +2 -3
  202. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  203. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  204. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +23 -23
  205. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +25 -25
  206. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  207. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +13 -13
  208. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +2 -2
  209. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +266 -267
  210. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +20 -23
  211. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +226 -227
  212. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +1 -4
  213. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +279 -280
  214. package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +0 -3
  215. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +288 -289
  216. package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +0 -3
  217. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +276 -277
  218. package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +1 -4
  219. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +275 -276
  220. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +5 -8
  221. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +287 -288
  222. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +7 -10
  223. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +9 -9
  224. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +274 -275
  225. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +1 -4
  226. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  227. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +17 -17
  228. package/SVF-doxygen/html/html/classSVF_1_1BDDManager.html +3 -3
  229. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +173 -174
  230. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +24 -71
  231. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  232. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +33 -36
  233. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +6 -6
  234. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +24 -26
  235. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +7 -7
  236. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +41 -41
  237. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +7 -7
  238. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +4 -4
  239. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  240. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +1 -1
  241. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
  242. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
  243. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +1 -1
  244. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  245. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +41 -41
  246. package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +1 -1
  247. package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +1 -1
  248. package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +1 -1
  249. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  250. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +25 -28
  251. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +166 -167
  252. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +120 -168
  253. package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +2 -2
  254. package/SVF-doxygen/html/html/classSVF_1_1CondVar.html +1 -1
  255. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +4 -4
  256. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +8 -8
  257. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +7 -7
  258. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +266 -267
  259. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +31 -34
  260. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  261. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +2 -2
  262. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +4 -4
  263. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +7 -7
  264. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +7 -7
  265. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +7 -7
  266. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +5 -5
  267. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +5 -5
  268. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +64 -64
  269. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +1 -1
  270. package/SVF-doxygen/html/html/classSVF_1_1DDAPass-members.html +19 -20
  271. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +28 -72
  272. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +5 -5
  273. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +3 -3
  274. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +1 -1
  275. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +4 -4
  276. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
  277. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
  278. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +1 -1
  279. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  280. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +293 -294
  281. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +0 -3
  282. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +259 -260
  283. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +10 -13
  284. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +284 -285
  285. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +43 -46
  286. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +12 -12
  287. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +324 -325
  288. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +25 -28
  289. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +65 -65
  290. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +1 -1
  291. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +1 -1
  292. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +29 -29
  293. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +28 -28
  294. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +2 -2
  295. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +2 -2
  296. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +3 -3
  297. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +6 -6
  298. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +13 -13
  300. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +2 -2
  301. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
  302. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +3 -3
  303. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +15 -15
  304. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +1 -1
  305. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  306. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +3 -3
  307. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +9 -9
  308. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +17 -17
  309. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +1 -1
  310. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +2 -2
  311. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  312. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +37 -37
  313. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  314. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +1 -1
  315. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +4 -4
  316. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  317. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +1 -1
  318. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
  319. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +23 -23
  320. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +3 -3
  321. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +26 -26
  322. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +3 -3
  323. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  324. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +2 -2
  325. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +15 -15
  326. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +53 -53
  327. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +37 -37
  328. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +119 -119
  329. package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +7 -7
  330. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +31 -31
  331. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
  332. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
  333. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +8 -8
  334. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +13 -13
  335. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +104 -104
  336. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +25 -25
  337. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +9 -9
  338. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +88 -88
  339. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +25 -25
  340. package/SVF-doxygen/html/html/classSVF_1_1MemSSADF.html +1 -1
  341. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +1 -1
  342. package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +3 -3
  343. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +1 -1
  344. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +2 -2
  345. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +22 -22
  346. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +99 -99
  347. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +2 -2
  348. package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +1 -1
  349. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +3 -3
  350. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +21 -21
  351. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +33 -33
  352. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +7 -7
  353. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +5 -5
  354. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
  355. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +2 -2
  356. package/SVF-doxygen/html/html/classSVF_1_1PTAStat-members.html +1 -1
  357. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +34 -49
  358. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator-members.html +26 -25
  359. package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +256 -217
  360. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +3 -3
  361. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +3 -3
  362. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +6 -6
  363. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +6 -6
  364. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
  365. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +129 -130
  366. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +107 -150
  367. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +6 -6
  368. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +35 -32
  369. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +9 -9
  370. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  371. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +1 -1
  372. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +1 -1
  373. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +1 -1
  374. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  375. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +1 -1
  376. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
  377. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +29 -29
  378. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +11 -11
  379. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
  380. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +15 -15
  381. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +5 -5
  382. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
  383. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +21 -21
  384. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +180 -180
  385. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +1 -1
  386. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +5 -5
  387. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +5 -5
  388. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator-members.html +3 -3
  389. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +35 -31
  390. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +8 -8
  391. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  392. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +4 -4
  393. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +39 -39
  394. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +240 -241
  395. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +1 -4
  396. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +1 -1
  397. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  398. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +2 -2
  399. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +104 -104
  400. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo-members.html +5 -7
  401. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +215 -281
  402. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +57 -57
  403. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  404. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  405. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +5 -5
  406. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +21 -21
  407. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +3 -3
  408. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +1 -1
  409. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +1 -1
  410. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +1 -1
  411. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +232 -233
  412. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +6 -9
  413. package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +33 -33
  414. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  415. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +35 -37
  416. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +28 -28
  417. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
  418. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +2 -2
  419. package/SVF-doxygen/html/html/classSVF_1_1VFPathCond.html +5 -5
  420. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  421. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +1 -1
  422. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +337 -338
  423. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +12 -15
  424. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +8 -8
  425. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +2 -2
  426. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +2 -2
  427. package/SVF-doxygen/html/html/classSVF_1_1WPAPass-members.html +19 -20
  428. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +24 -68
  429. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +2 -2
  430. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +1 -1
  431. package/SVF-doxygen/html/html/classSVF_1_1Z3Manager.html +4 -4
  432. package/SVF-doxygen/html/html/classes.html +96 -97
  433. package/SVF-doxygen/html/html/classllvm_1_1GraphPrinter.html +1 -1
  434. package/SVF-doxygen/html/html/classllvm_1_1generic__bridge__gep__type__iterator.html +3 -3
  435. package/SVF-doxygen/html/html/functions_a.html +7 -7
  436. package/SVF-doxygen/html/html/functions_b.html +1 -1
  437. package/SVF-doxygen/html/html/functions_d.html +0 -3
  438. package/SVF-doxygen/html/html/functions_e.html +2 -2
  439. package/SVF-doxygen/html/html/functions_f.html +3 -3
  440. package/SVF-doxygen/html/html/functions_func.html +10 -10
  441. package/SVF-doxygen/html/html/functions_func_b.html +1 -1
  442. package/SVF-doxygen/html/html/functions_func_e.html +2 -2
  443. package/SVF-doxygen/html/html/functions_func_g.html +6 -8
  444. package/SVF-doxygen/html/html/functions_func_o.html +1 -2
  445. package/SVF-doxygen/html/html/functions_g.html +5 -7
  446. package/SVF-doxygen/html/html/functions_l.html +6 -6
  447. package/SVF-doxygen/html/html/functions_n.html +3 -3
  448. package/SVF-doxygen/html/html/functions_o.html +11 -10
  449. package/SVF-doxygen/html/html/functions_p.html +4 -4
  450. package/SVF-doxygen/html/html/functions_r.html +3 -3
  451. package/SVF-doxygen/html/html/functions_s.html +6 -4
  452. package/SVF-doxygen/html/html/functions_t.html +3 -3
  453. package/SVF-doxygen/html/html/functions_v.html +6 -6
  454. package/SVF-doxygen/html/html/functions_vars_d.html +0 -3
  455. package/SVF-doxygen/html/html/functions_w.html +5 -9
  456. package/SVF-doxygen/html/html/globals.html +6 -0
  457. package/SVF-doxygen/html/html/globals_b.html +6 -0
  458. package/SVF-doxygen/html/html/globals_c.html +118 -100
  459. package/SVF-doxygen/html/html/globals_f.html +9 -3
  460. package/SVF-doxygen/html/html/globals_g.html +3 -0
  461. package/SVF-doxygen/html/html/globals_i.html +14 -2
  462. package/SVF-doxygen/html/html/globals_l.html +3 -0
  463. package/SVF-doxygen/html/html/globals_m.html +17 -14
  464. package/SVF-doxygen/html/html/globals_p.html +3 -0
  465. package/SVF-doxygen/html/html/globals_r.html +3 -0
  466. package/SVF-doxygen/html/html/globals_s.html +27 -22
  467. package/SVF-doxygen/html/html/globals_type.html +114 -0
  468. package/SVF-doxygen/html/html/globals_u.html +8 -2
  469. package/SVF-doxygen/html/html/globals_v.html +12 -0
  470. package/SVF-doxygen/html/html/hierarchy.html +149 -150
  471. package/SVF-doxygen/html/html/menudata.js +25 -19
  472. package/SVF-doxygen/html/html/namespaceSVF.html +128 -779
  473. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +128 -95
  474. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +46 -46
  475. package/SVF-doxygen/html/html/namespacemembers.html +0 -6
  476. package/SVF-doxygen/html/html/namespacemembers_b.html +2 -8
  477. package/SVF-doxygen/html/html/namespacemembers_c.html +2 -26
  478. package/SVF-doxygen/html/html/namespacemembers_f.html +0 -6
  479. package/SVF-doxygen/html/html/namespacemembers_func.html +6 -3
  480. package/SVF-doxygen/html/html/namespacemembers_g.html +3 -3
  481. package/SVF-doxygen/html/html/namespacemembers_i.html +10 -22
  482. package/SVF-doxygen/html/html/namespacemembers_l.html +0 -3
  483. package/SVF-doxygen/html/html/namespacemembers_m.html +0 -3
  484. package/SVF-doxygen/html/html/namespacemembers_p.html +0 -6
  485. package/SVF-doxygen/html/html/namespacemembers_r.html +1 -4
  486. package/SVF-doxygen/html/html/namespacemembers_s.html +1 -19
  487. package/SVF-doxygen/html/html/namespacemembers_type.html +560 -4
  488. package/SVF-doxygen/html/html/namespacemembers_u.html +0 -6
  489. package/SVF-doxygen/html/html/namespacemembers_v.html +0 -12
  490. package/SVF-doxygen/html/html/search/all_1.js +6 -6
  491. package/SVF-doxygen/html/html/search/all_10.js +8 -9
  492. package/SVF-doxygen/html/html/search/all_12.js +3 -3
  493. package/SVF-doxygen/html/html/search/all_13.js +10 -13
  494. package/SVF-doxygen/html/html/search/all_14.js +3 -3
  495. package/SVF-doxygen/html/html/search/all_15.js +2 -2
  496. package/SVF-doxygen/html/html/search/all_16.js +6 -6
  497. package/SVF-doxygen/html/html/search/all_17.js +1 -1
  498. package/SVF-doxygen/html/html/search/all_2.js +3 -3
  499. package/SVF-doxygen/html/html/search/all_3.js +7 -9
  500. package/SVF-doxygen/html/html/search/all_4.js +0 -1
  501. package/SVF-doxygen/html/html/search/all_5.js +2 -2
  502. package/SVF-doxygen/html/html/search/all_6.js +3 -3
  503. package/SVF-doxygen/html/html/search/all_7.js +3 -3
  504. package/SVF-doxygen/html/html/search/all_8.js +0 -1
  505. package/SVF-doxygen/html/html/search/all_9.js +4 -4
  506. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  507. package/SVF-doxygen/html/html/search/all_d.js +2 -2
  508. package/SVF-doxygen/html/html/search/all_e.js +3 -3
  509. package/SVF-doxygen/html/html/search/all_f.js +2 -2
  510. package/SVF-doxygen/html/html/search/classes_7.js +0 -1
  511. package/SVF-doxygen/html/html/search/functions_0.js +4 -4
  512. package/SVF-doxygen/html/html/search/functions_1.js +1 -1
  513. package/SVF-doxygen/html/html/search/functions_10.js +1 -1
  514. package/SVF-doxygen/html/html/search/functions_4.js +2 -2
  515. package/SVF-doxygen/html/html/search/functions_6.js +2 -2
  516. package/SVF-doxygen/html/html/search/functions_d.js +1 -1
  517. package/SVF-doxygen/html/html/search/typedefs_0.js +2 -2
  518. package/SVF-doxygen/html/html/search/typedefs_1.js +2 -2
  519. package/SVF-doxygen/html/html/search/typedefs_10.js +1 -1
  520. package/SVF-doxygen/html/html/search/typedefs_11.js +4 -7
  521. package/SVF-doxygen/html/html/search/typedefs_13.js +2 -2
  522. package/SVF-doxygen/html/html/search/typedefs_14.js +4 -4
  523. package/SVF-doxygen/html/html/search/typedefs_2.js +7 -9
  524. package/SVF-doxygen/html/html/search/typedefs_5.js +2 -2
  525. package/SVF-doxygen/html/html/search/typedefs_6.js +1 -1
  526. package/SVF-doxygen/html/html/search/typedefs_8.js +4 -4
  527. package/SVF-doxygen/html/html/search/typedefs_b.js +1 -1
  528. package/SVF-doxygen/html/html/search/typedefs_c.js +1 -1
  529. package/SVF-doxygen/html/html/search/typedefs_f.js +1 -2
  530. package/SVF-doxygen/html/html/search/variables_14.js +1 -1
  531. package/SVF-doxygen/html/html/search/variables_4.js +0 -1
  532. package/SVF-doxygen/html/html/search/variables_e.js +2 -2
  533. package/SVF-doxygen/html/html/structSVF_1_1Hash.html +3 -3
  534. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html +5 -5
  535. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  536. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
  537. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  538. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +1 -1
  539. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +2 -2
  540. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +19 -19
  541. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +19 -19
  542. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  543. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CondStdSet_3_01Element_01_4_01_4.html +1 -1
  544. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtDPItem_01_4.html +1 -1
  545. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  546. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  547. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
  548. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +1 -1
  549. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1StmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  550. package/SVF-doxygen/html/html/structstd_1_1hash_3_01llvm_1_1SparseBitVector_3_01N_01_4_01_4.html +3 -3
  551. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  552. package/SVF-doxygen/html/html/svf-ex_8cpp.html +4 -4
  553. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +6 -6
  554. package/clean.sh +2 -2
  555. package/include/DDA/DDAPass.h +0 -6
  556. package/include/Graphs/VFGNode.h +4 -18
  557. package/include/MemoryModel/PointerAnalysis.h +0 -4
  558. package/include/MemoryModel/PointerAnalysisImpl.h +0 -10
  559. package/include/MemoryModel/SVFVariables.h +4 -4
  560. package/include/MemoryModel/SymbolTableInfo.h +0 -11
  561. package/include/SABER/PathCondAllocator.h +9 -2
  562. package/include/SABER/SaberAnnotator.h +4 -4
  563. package/include/SVF-FE/BasicTypes.h +41 -2
  564. package/include/SVF-FE/LLVMUtil.h +7 -0
  565. package/include/Util/BasicTypes.h +0 -35
  566. package/include/Util/SVFBasicTypes.h +6 -27
  567. package/include/Util/SVFUtil.h +1 -1
  568. package/include/WPA/WPAPass.h +0 -6
  569. package/lib/DDA/DDAPass.cpp +1 -1
  570. package/lib/MTA/LockResultValidator.cpp +1 -0
  571. package/lib/MTA/MHP.cpp +1 -0
  572. package/lib/MTA/MTAResultValidator.cpp +1 -0
  573. package/lib/MTA/PCG.cpp +1 -1
  574. package/lib/MemoryModel/PointerAnalysisImpl.cpp +0 -9
  575. package/lib/MemoryModel/SVFVariables.cpp +2 -2
  576. package/lib/MemoryModel/SymbolTableInfo.cpp +0 -5
  577. package/lib/SABER/PathCondAllocator.cpp +32 -27
  578. package/lib/SABER/ProgSlice.cpp +7 -4
  579. package/lib/SABER/SaberAnnotator.cpp +8 -8
  580. package/lib/SVF-FE/BreakConstantExpr.cpp +1 -0
  581. package/lib/SVF-FE/LLVMUtil.cpp +3 -2
  582. package/lib/SVF-FE/SVFIRBuilder.cpp +1 -1
  583. package/lib/Util/PTAStat.cpp +3 -1
  584. package/package.json +1 -1
@@ -286,7 +286,7 @@ Additional Inherited Members</h2></td></tr>
286
286
  </table>
287
287
  <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
288
288
  <div class="textblock">
289
- <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00550">550</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
289
+ <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00539">539</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
290
290
  </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
291
291
  <a id="ad1aa629eae4006a68a1e6e8a7621a494"></a>
292
292
  <h2 class="memtitle"><span class="permalink"><a href="#ad1aa629eae4006a68a1e6e8a7621a494">&#9670;&nbsp;</a></span>BranchVFGNode() <span class="overload">[1/3]</span></h2>
@@ -379,12 +379,10 @@ Additional Inherited Members</h2></td></tr>
379
379
 
380
380
  <p>Constructor. </p>
381
381
 
382
- <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00559">559</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
383
- <div class="fragment"><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; : <a class="code" href="classSVF_1_1VFGNode.html#a775b3bd4c7558a18c5bc890fe711f03c">VFGNode</a>(<span class="keywordtype">id</span>, <a class="code" href="classSVF_1_1VFGNode.html#a99a54cf322b0eec3a1ef109ce5f2db75a7e37444f61c10c22b694a86064ae4f01">Branch</a>), <a class="code" href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">brstmt</a>(r) {</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val = r-&gt;getValue();</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>((SVFUtil::isa&lt;BranchInst&gt;(val) || SVFUtil::isa&lt;SwitchInst&gt;(val)) &amp;&amp; <span class="stringliteral">&quot;not a BranchInst or a SwitchInst?&quot;</span>);</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
384
- <div class="ttc" id="classSVF_1_1VFGNode_html_a775b3bd4c7558a18c5bc890fe711f03c"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a775b3bd4c7558a18c5bc890fe711f03c">SVF::VFGNode::VFGNode</a></div><div class="ttdeci">VFGNode(NodeID i, VFGNodeK k)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00066">VFGNode.h:66</a></div></div>
382
+ <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00548">548</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
383
+ <div class="fragment"><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;: <a class="code" href="classSVF_1_1VFGNode.html#a775b3bd4c7558a18c5bc890fe711f03c">VFGNode</a>(<span class="keywordtype">id</span>, <a class="code" href="classSVF_1_1VFGNode.html#a99a54cf322b0eec3a1ef109ce5f2db75a7e37444f61c10c22b694a86064ae4f01">Branch</a>), <a class="code" href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">brstmt</a>(r) { }</div><div class="ttc" id="classSVF_1_1VFGNode_html_a775b3bd4c7558a18c5bc890fe711f03c"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a775b3bd4c7558a18c5bc890fe711f03c">SVF::VFGNode::VFGNode</a></div><div class="ttdeci">VFGNode(NodeID i, VFGNodeK k)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00066">VFGNode.h:66</a></div></div>
385
384
  <div class="ttc" id="classSVF_1_1VFGNode_html_a99a54cf322b0eec3a1ef109ce5f2db75a7e37444f61c10c22b694a86064ae4f01"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a99a54cf322b0eec3a1ef109ce5f2db75a7e37444f61c10c22b694a86064ae4f01">SVF::VFGNode::Branch</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00054">VFGNode.h:54</a></div></div>
386
- <div class="ttc" id="classSVF_1_1BranchVFGNode_html_ab2c5f49a3ac21d827b37b0e4b61f1a10"><div class="ttname"><a href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">SVF::BranchVFGNode::brstmt</a></div><div class="ttdeci">const BranchStmt * brstmt</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00556">VFGNode.h:556</a></div></div>
387
- <div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
385
+ <div class="ttc" id="classSVF_1_1BranchVFGNode_html_ab2c5f49a3ac21d827b37b0e4b61f1a10"><div class="ttname"><a href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">SVF::BranchVFGNode::brstmt</a></div><div class="ttdeci">const BranchStmt * brstmt</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00545">VFGNode.h:545</a></div></div>
388
386
  </div><!-- fragment -->
389
387
  </div>
390
388
  </div>
@@ -415,8 +413,8 @@ Additional Inherited Members</h2></td></tr>
415
413
 
416
414
  <p>Methods for support type inquiry through isa, cast, and dyn_cast: </p>
417
415
 
418
- <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00565">565</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
419
- <div class="fragment"><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; {</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; }</div></div><!-- fragment -->
416
+ <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00551">551</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
417
+ <div class="fragment"><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; }</div></div><!-- fragment -->
420
418
  </div>
421
419
  </div>
422
420
  <a id="aa578e56a2a4d145ba63628367786b9f0"></a>
@@ -443,8 +441,8 @@ Additional Inherited Members</h2></td></tr>
443
441
  </table>
444
442
  </div><div class="memdoc">
445
443
 
446
- <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00569">569</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
447
- <div class="fragment"><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; {</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">return</span> node-&gt;getNodeKind() == <a class="code" href="classSVF_1_1VFGNode.html#a99a54cf322b0eec3a1ef109ce5f2db75a7e37444f61c10c22b694a86064ae4f01">Branch</a>;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; }</div><div class="ttc" id="classSVF_1_1VFGNode_html_a99a54cf322b0eec3a1ef109ce5f2db75a7e37444f61c10c22b694a86064ae4f01"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a99a54cf322b0eec3a1ef109ce5f2db75a7e37444f61c10c22b694a86064ae4f01">SVF::VFGNode::Branch</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00054">VFGNode.h:54</a></div></div>
444
+ <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00555">555</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
445
+ <div class="fragment"><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; {</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">return</span> node-&gt;getNodeKind() == <a class="code" href="classSVF_1_1VFGNode.html#a99a54cf322b0eec3a1ef109ce5f2db75a7e37444f61c10c22b694a86064ae4f01">Branch</a>;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; }</div><div class="ttc" id="classSVF_1_1VFGNode_html_a99a54cf322b0eec3a1ef109ce5f2db75a7e37444f61c10c22b694a86064ae4f01"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a99a54cf322b0eec3a1ef109ce5f2db75a7e37444f61c10c22b694a86064ae4f01">SVF::VFGNode::Branch</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00054">VFGNode.h:54</a></div></div>
448
446
  </div><!-- fragment -->
449
447
  </div>
450
448
  </div>
@@ -472,8 +470,8 @@ Additional Inherited Members</h2></td></tr>
472
470
  </table>
473
471
  </div><div class="memdoc">
474
472
 
475
- <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00573">573</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
476
- <div class="fragment"><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; {</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">return</span> node-&gt;getNodeKind() == <a class="code" href="classSVF_1_1VFGNode.html#a99a54cf322b0eec3a1ef109ce5f2db75a7e37444f61c10c22b694a86064ae4f01">Branch</a>;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; }</div><div class="ttc" id="classSVF_1_1VFGNode_html_a99a54cf322b0eec3a1ef109ce5f2db75a7e37444f61c10c22b694a86064ae4f01"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a99a54cf322b0eec3a1ef109ce5f2db75a7e37444f61c10c22b694a86064ae4f01">SVF::VFGNode::Branch</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00054">VFGNode.h:54</a></div></div>
473
+ <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00559">559</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
474
+ <div class="fragment"><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">return</span> node-&gt;getNodeKind() == <a class="code" href="classSVF_1_1VFGNode.html#a99a54cf322b0eec3a1ef109ce5f2db75a7e37444f61c10c22b694a86064ae4f01">Branch</a>;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; }</div><div class="ttc" id="classSVF_1_1VFGNode_html_a99a54cf322b0eec3a1ef109ce5f2db75a7e37444f61c10c22b694a86064ae4f01"><div class="ttname"><a href="classSVF_1_1VFGNode.html#a99a54cf322b0eec3a1ef109ce5f2db75a7e37444f61c10c22b694a86064ae4f01">SVF::VFGNode::Branch</a></div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00054">VFGNode.h:54</a></div></div>
477
475
  </div><!-- fragment -->
478
476
  </div>
479
477
  </div>
@@ -502,8 +500,8 @@ Additional Inherited Members</h2></td></tr>
502
500
 
503
501
  <p>Return the branch statement. </p>
504
502
 
505
- <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00580">580</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
506
- <div class="fragment"><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; {</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">brstmt</a>;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; }</div><div class="ttc" id="classSVF_1_1BranchVFGNode_html_ab2c5f49a3ac21d827b37b0e4b61f1a10"><div class="ttname"><a href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">SVF::BranchVFGNode::brstmt</a></div><div class="ttdeci">const BranchStmt * brstmt</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00556">VFGNode.h:556</a></div></div>
503
+ <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00566">566</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
504
+ <div class="fragment"><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; {</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">brstmt</a>;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; }</div><div class="ttc" id="classSVF_1_1BranchVFGNode_html_ab2c5f49a3ac21d827b37b0e4b61f1a10"><div class="ttname"><a href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">SVF::BranchVFGNode::brstmt</a></div><div class="ttdeci">const BranchStmt * brstmt</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00545">VFGNode.h:545</a></div></div>
507
505
  </div><!-- fragment -->
508
506
  </div>
509
507
  </div>
@@ -535,7 +533,7 @@ Additional Inherited Members</h2></td></tr>
535
533
  <p>Implements <a class="el" href="classSVF_1_1VFGNode.html#ac2161154777d5bedfdb541658efdc651">SVF::VFGNode</a>.</p>
536
534
 
537
535
  <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00164">164</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
538
- <div class="fragment"><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00088">SVFBasicTypes.h:88</a></div></div>
536
+ <div class="fragment"><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a>();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00092">SVFBasicTypes.h:92</a></div></div>
539
537
  </div><!-- fragment -->
540
538
  </div>
541
539
  </div>
@@ -563,8 +561,8 @@ Additional Inherited Members</h2></td></tr>
563
561
  </div><div class="memdoc">
564
562
  <p>Successors of this branch statement </p>
565
563
 
566
- <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00585">585</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
567
- <div class="fragment"><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; {</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">brstmt</a>-&gt;<a class="code" href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b">getNumSuccessors</a>();</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; }</div><div class="ttc" id="classSVF_1_1BranchVFGNode_html_ab2c5f49a3ac21d827b37b0e4b61f1a10"><div class="ttname"><a href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">SVF::BranchVFGNode::brstmt</a></div><div class="ttdeci">const BranchStmt * brstmt</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00556">VFGNode.h:556</a></div></div>
564
+ <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00571">571</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
565
+ <div class="fragment"><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; {</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">brstmt</a>-&gt;<a class="code" href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b">getNumSuccessors</a>();</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; }</div><div class="ttc" id="classSVF_1_1BranchVFGNode_html_ab2c5f49a3ac21d827b37b0e4b61f1a10"><div class="ttname"><a href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">SVF::BranchVFGNode::brstmt</a></div><div class="ttdeci">const BranchStmt * brstmt</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00545">VFGNode.h:545</a></div></div>
568
566
  <div class="ttc" id="classSVF_1_1BranchStmt_html_a022d355bde3d0d0a9471cd125b24583b"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a022d355bde3d0d0a9471cd125b24583b">SVF::BranchStmt::getNumSuccessors</a></div><div class="ttdeci">u32_t getNumSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00981">SVFStatements.h:981</a></div></div>
569
567
  </div><!-- fragment -->
570
568
  </div>
@@ -593,9 +591,9 @@ Additional Inherited Members</h2></td></tr>
593
591
  </table>
594
592
  </div><div class="memdoc">
595
593
 
596
- <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00591">591</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
597
- <div class="fragment"><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; {</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">brstmt</a>-&gt;<a class="code" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">getSuccessor</a>(i);</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; }</div><div class="ttc" id="classSVF_1_1BranchStmt_html_a7d9a6ebb2d95942c453864b5327b1ae8"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">SVF::BranchStmt::getSuccessor</a></div><div class="ttdeci">const ICFGNode * getSuccessor(u32_t i) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00987">SVFStatements.h:987</a></div></div>
598
- <div class="ttc" id="classSVF_1_1BranchVFGNode_html_ab2c5f49a3ac21d827b37b0e4b61f1a10"><div class="ttname"><a href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">SVF::BranchVFGNode::brstmt</a></div><div class="ttdeci">const BranchStmt * brstmt</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00556">VFGNode.h:556</a></div></div>
594
+ <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00577">577</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
595
+ <div class="fragment"><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; {</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">brstmt</a>-&gt;<a class="code" href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">getSuccessor</a>(i);</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; }</div><div class="ttc" id="classSVF_1_1BranchStmt_html_a7d9a6ebb2d95942c453864b5327b1ae8"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a7d9a6ebb2d95942c453864b5327b1ae8">SVF::BranchStmt::getSuccessor</a></div><div class="ttdeci">const ICFGNode * getSuccessor(u32_t i) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00987">SVFStatements.h:987</a></div></div>
596
+ <div class="ttc" id="classSVF_1_1BranchVFGNode_html_ab2c5f49a3ac21d827b37b0e4b61f1a10"><div class="ttname"><a href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">SVF::BranchVFGNode::brstmt</a></div><div class="ttdeci">const BranchStmt * brstmt</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00545">VFGNode.h:545</a></div></div>
599
597
  </div><!-- fragment -->
600
598
  </div>
601
599
  </div>
@@ -622,9 +620,9 @@ Additional Inherited Members</h2></td></tr>
622
620
  </table>
623
621
  </div><div class="memdoc">
624
622
 
625
- <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00588">588</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
626
- <div class="fragment"><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; {</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">brstmt</a>-&gt;<a class="code" href="classSVF_1_1BranchStmt.html#a93040c884df211ac62d53ceafdd9c4dd">getSuccessors</a>();</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; }</div><div class="ttc" id="classSVF_1_1BranchStmt_html_a93040c884df211ac62d53ceafdd9c4dd"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a93040c884df211ac62d53ceafdd9c4dd">SVF::BranchStmt::getSuccessors</a></div><div class="ttdeci">const SuccAndCondPairVec &amp; getSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00984">SVFStatements.h:984</a></div></div>
627
- <div class="ttc" id="classSVF_1_1BranchVFGNode_html_ab2c5f49a3ac21d827b37b0e4b61f1a10"><div class="ttname"><a href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">SVF::BranchVFGNode::brstmt</a></div><div class="ttdeci">const BranchStmt * brstmt</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00556">VFGNode.h:556</a></div></div>
623
+ <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00574">574</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
624
+ <div class="fragment"><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; {</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">brstmt</a>-&gt;<a class="code" href="classSVF_1_1BranchStmt.html#a93040c884df211ac62d53ceafdd9c4dd">getSuccessors</a>();</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; }</div><div class="ttc" id="classSVF_1_1BranchStmt_html_a93040c884df211ac62d53ceafdd9c4dd"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#a93040c884df211ac62d53ceafdd9c4dd">SVF::BranchStmt::getSuccessors</a></div><div class="ttdeci">const SuccAndCondPairVec &amp; getSuccessors() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8h_source.html#l00984">SVFStatements.h:984</a></div></div>
625
+ <div class="ttc" id="classSVF_1_1BranchVFGNode_html_ab2c5f49a3ac21d827b37b0e4b61f1a10"><div class="ttname"><a href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">SVF::BranchVFGNode::brstmt</a></div><div class="ttdeci">const BranchStmt * brstmt</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00545">VFGNode.h:545</a></div></div>
628
626
  </div><!-- fragment -->
629
627
  </div>
630
628
  </div>
@@ -683,8 +681,8 @@ Additional Inherited Members</h2></td></tr>
683
681
 
684
682
  <p class="definition">Definition at line <a class="el" href="VFG_8cpp_source.html#l00168">168</a> of file <a class="el" href="VFG_8cpp_source.html">VFG.cpp</a>.</p>
685
683
  <div class="fragment"><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; std::string str;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;BranchVFGNode ID: &quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; rawstr &lt;&lt; <span class="stringliteral">&quot;PAGEdge: [&quot;</span> &lt;&lt; <a class="code" href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">brstmt</a>-&gt;<a class="code" href="classSVF_1_1BranchStmt.html#afc44edd6d1d5c855dc2169d26629377f">toString</a>() &lt;&lt; <span class="stringliteral">&quot;\t&quot;</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;}</div><div class="ttc" id="classSVF_1_1BranchStmt_html_afc44edd6d1d5c855dc2169d26629377f"><div class="ttname"><a href="classSVF_1_1BranchStmt.html#afc44edd6d1d5c855dc2169d26629377f">SVF::BranchStmt::toString</a></div><div class="ttdeci">virtual const std::string toString() const override</div><div class="ttdef"><b>Definition:</b> <a href="SVFStatements_8cpp_source.html#l00153">SVFStatements.cpp:153</a></div></div>
686
- <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00095">BasicTypes.h:95</a></div></div>
687
- <div class="ttc" id="classSVF_1_1BranchVFGNode_html_ab2c5f49a3ac21d827b37b0e4b61f1a10"><div class="ttname"><a href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">SVF::BranchVFGNode::brstmt</a></div><div class="ttdeci">const BranchStmt * brstmt</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00556">VFGNode.h:556</a></div></div>
684
+ <div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdoc">LLVM outputs. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00094">BasicTypes.h:94</a></div></div>
685
+ <div class="ttc" id="classSVF_1_1BranchVFGNode_html_ab2c5f49a3ac21d827b37b0e4b61f1a10"><div class="ttname"><a href="classSVF_1_1BranchVFGNode.html#ab2c5f49a3ac21d827b37b0e4b61f1a10">SVF::BranchVFGNode::brstmt</a></div><div class="ttdeci">const BranchStmt * brstmt</div><div class="ttdef"><b>Definition:</b> <a href="VFGNode_8h_source.html#l00545">VFGNode.h:545</a></div></div>
688
686
  <div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00165">GenericGraph.h:165</a></div></div>
689
687
  </div><!-- fragment -->
690
688
  </div>
@@ -710,7 +708,7 @@ Additional Inherited Members</h2></td></tr>
710
708
  </table>
711
709
  </div><div class="memdoc">
712
710
 
713
- <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00556">556</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
711
+ <p class="definition">Definition at line <a class="el" href="VFGNode_8h_source.html#l00545">545</a> of file <a class="el" href="VFGNode_8h_source.html">VFGNode.h</a>.</p>
714
712
 
715
713
  </div>
716
714
  </div>
@@ -123,7 +123,7 @@ Static Public Attributes</h2></td></tr>
123
123
  </div><div class="memdoc">
124
124
 
125
125
  <p class="definition">Definition at line <a class="el" href="BreakConstantExpr_8h_source.html#l00039">39</a> of file <a class="el" href="BreakConstantExpr_8h_source.html">BreakConstantExpr.h</a>.</p>
126
- <div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;: <a class="code" href="namespaceSVF.html#ac226d84f86637126d17f6814632c8a90">ModulePass</a>(<a class="code" href="classSVF_1_1BreakConstantGEPs.html#a8010c4f5824ed5ebcb7ae283473ada22">ID</a>) {}</div><div class="ttc" id="namespaceSVF_html_ac226d84f86637126d17f6814632c8a90"><div class="ttname"><a href="namespaceSVF.html#ac226d84f86637126d17f6814632c8a90">SVF::ModulePass</a></div><div class="ttdeci">llvm::ModulePass ModulePass</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00092">BasicTypes.h:92</a></div></div>
126
+ <div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;: <a class="code" href="namespaceSVF.html#ac226d84f86637126d17f6814632c8a90">ModulePass</a>(<a class="code" href="classSVF_1_1BreakConstantGEPs.html#a8010c4f5824ed5ebcb7ae283473ada22">ID</a>) {}</div><div class="ttc" id="namespaceSVF_html_ac226d84f86637126d17f6814632c8a90"><div class="ttname"><a href="namespaceSVF.html#ac226d84f86637126d17f6814632c8a90">SVF::ModulePass</a></div><div class="ttdeci">llvm::ModulePass ModulePass</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00091">BasicTypes.h:91</a></div></div>
127
127
  <div class="ttc" id="classSVF_1_1BreakConstantGEPs_html_a8010c4f5824ed5ebcb7ae283473ada22"><div class="ttname"><a href="classSVF_1_1BreakConstantGEPs.html#a8010c4f5824ed5ebcb7ae283473ada22">SVF::BreakConstantGEPs::ID</a></div><div class="ttdeci">static char ID</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8h_source.html#l00038">BreakConstantExpr.h:38</a></div></div>
128
128
  </div><!-- fragment -->
129
129
  </div>
@@ -180,12 +180,12 @@ Static Public Attributes</h2></td></tr>
180
180
  </table>
181
181
  </div><div class="memdoc">
182
182
 
183
- <p class="definition">Definition at line <a class="el" href="BreakConstantExpr_8cpp_source.html#l00139">139</a> of file <a class="el" href="BreakConstantExpr_8cpp_source.html">BreakConstantExpr.cpp</a>.</p>
184
- <div class="fragment"><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;{</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordtype">bool</span> modified = <span class="keyword">false</span>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">for</span> (Module::iterator F = module.begin(), E = module.end(); F != E; ++F)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="comment">// Worklist of values to check for constant GEP expressions</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; std::vector&lt;Instruction *&gt; Worklist;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">// Initialize the worklist by finding all instructions that have one or more</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">// operands containing a constant GEP expression.</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">for</span> (Function::iterator BB = (*F).begin(); BB != (*F).end(); ++BB)</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; <span class="keywordflow">for</span> (BasicBlock::iterator i = BB-&gt;begin(); i != BB-&gt;end(); ++i)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// Scan through the operands of this instruction. If it is a constant</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">// expression GEP, insert an instruction GEP before the instruction.</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * I = &amp;(*i);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> index = 0; index &lt; I-&gt;getNumOperands(); ++index)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a> (I-&gt;getOperand(index)))</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; Worklist.push_back (I);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">// Determine whether we will modify anything.</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">if</span> (Worklist.size()) modified = <span class="keyword">true</span>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="comment">// While the worklist is not empty, take an item from it, convert the</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">// operands into instructions if necessary, and determine if the newly</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">// added instructions need to be processed as well.</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">while</span> (Worklist.size())</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * I = Worklist.back();</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; Worklist.pop_back();</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="comment">// Scan through the operands of this instruction and convert each into an</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="comment">// instruction. Note that this works a little differently for phi</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="comment">// instructions because the new instruction must be added to the</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="comment">// appropriate predecessor block.</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#ac8d4990439af7a2ecca7e15383119674">PHINode</a> * PHI = SVFUtil::dyn_cast&lt;PHINode&gt;(I))</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> index = 0; index &lt; PHI-&gt;getNumIncomingValues(); ++index)</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">// For PHI Nodes, if an operand is a constant expression with a GEP, we</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">// want to insert the new instructions in the predecessor basic block.</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="comment">// Note: It seems that it&#39;s possible for a phi to have the same</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// incoming basic block listed multiple times; this seems okay as long</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="comment">// the same value is listed for the incoming block.</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * InsertPt = PHI-&gt;getIncomingBlock(index)-&gt;getTerminator();</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> * CE = <a class="code" href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a> (PHI-&gt;getIncomingValue(index)))</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * NewInst = <a class="code" href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1">convertExpression</a> (CE, InsertPt);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i2 = index; i2 &lt; PHI-&gt;getNumIncomingValues(); ++i2)</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span> ((PHI-&gt;getIncomingBlock (i2)) == PHI-&gt;getIncomingBlock (index))</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; PHI-&gt;setIncomingValue (i2, NewInst);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; Worklist.push_back (NewInst);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> index = 0; index &lt; I-&gt;getNumOperands(); ++index)</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="comment">// For other instructions, we want to insert instructions replacing</span></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="comment">// constant expressions immediently before the instruction using the</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">// constant expression.</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> * CE = <a class="code" href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a> (I-&gt;getOperand(index)))</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * NewInst = <a class="code" href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1">convertExpression</a> (CE, I);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; I-&gt;replaceUsesOfWith (CE, NewInst);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; Worklist.push_back (NewInst);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</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="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">return</span> modified;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_ac8d4990439af7a2ecca7e15383119674"><div class="ttname"><a href="namespaceSVF.html#ac8d4990439af7a2ecca7e15383119674">SVF::PHINode</a></div><div class="ttdeci">llvm::PHINode PHINode</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00141">BasicTypes.h:141</a></div></div>
185
- <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00077">BasicTypes.h:77</a></div></div>
186
- <div class="ttc" id="BreakConstantExpr_8cpp_html_a25cf7d9aff084a1cd1aa51c85a4a17e1"><div class="ttname"><a href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1">convertExpression</a></div><div class="ttdeci">static Instruction * convertExpression(ConstantExpr *CE, Instruction *InsertPt)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8cpp_source.html#l00115">BreakConstantExpr.cpp:115</a></div></div>
187
- <div class="ttc" id="BreakConstantExpr_8cpp_html_a81381bb19688464256bd09ef22e965e4"><div class="ttname"><a href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a></div><div class="ttdeci">static ConstantExpr * hasConstantGEP(Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8cpp_source.html#l00084">BreakConstantExpr.cpp:84</a></div></div>
188
- <div class="ttc" id="namespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00122">BasicTypes.h:122</a></div></div>
183
+ <p class="definition">Definition at line <a class="el" href="BreakConstantExpr_8cpp_source.html#l00140">140</a> of file <a class="el" href="BreakConstantExpr_8cpp_source.html">BreakConstantExpr.cpp</a>.</p>
184
+ <div class="fragment"><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;{</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">bool</span> modified = <span class="keyword">false</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">for</span> (Module::iterator F = module.begin(), E = module.end(); F != E; ++F)</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="comment">// Worklist of values to check for constant GEP expressions</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; std::vector&lt;Instruction *&gt; Worklist;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">// Initialize the worklist by finding all instructions that have one or more</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">// operands containing a constant GEP expression.</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">for</span> (Function::iterator BB = (*F).begin(); BB != (*F).end(); ++BB)</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">for</span> (BasicBlock::iterator i = BB-&gt;begin(); i != BB-&gt;end(); ++i)</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">// Scan through the operands of this instruction. If it is a constant</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">// expression GEP, insert an instruction GEP before the instruction.</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * I = &amp;(*i);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> index = 0; index &lt; I-&gt;getNumOperands(); ++index)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a> (I-&gt;getOperand(index)))</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; Worklist.push_back (I);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="comment">// Determine whether we will modify anything.</span></div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">if</span> (Worklist.size()) modified = <span class="keyword">true</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">// While the worklist is not empty, take an item from it, convert the</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">// operands into instructions if necessary, and determine if the newly</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="comment">// added instructions need to be processed as well.</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">while</span> (Worklist.size())</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; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * I = Worklist.back();</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; Worklist.pop_back();</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="comment">// Scan through the operands of this instruction and convert each into an</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="comment">// instruction. Note that this works a little differently for phi</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="comment">// instructions because the new instruction must be added to the</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">// appropriate predecessor block.</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="SVF-FE_2BasicTypes_8h.html#a65732ea63bff4b444b225629ee7cf252">PHINode</a> * PHI = SVFUtil::dyn_cast&lt;PHINode&gt;(I))</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> index = 0; index &lt; PHI-&gt;getNumIncomingValues(); ++index)</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">// For PHI Nodes, if an operand is a constant expression with a GEP, we</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">// want to insert the new instructions in the predecessor basic block.</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// Note: It seems that it&#39;s possible for a phi to have the same</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="comment">// incoming basic block listed multiple times; this seems okay as long</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">// the same value is listed for the incoming block.</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * InsertPt = PHI-&gt;getIncomingBlock(index)-&gt;getTerminator();</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="SVF-FE_2BasicTypes_8h.html#a60115de303225d173fb935cf7619a2cb">ConstantExpr</a> * CE = <a class="code" href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a> (PHI-&gt;getIncomingValue(index)))</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * NewInst = <a class="code" href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1">convertExpression</a> (CE, InsertPt);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i2 = index; i2 &lt; PHI-&gt;getNumIncomingValues(); ++i2)</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"> 210</span>&#160; <span class="keywordflow">if</span> ((PHI-&gt;getIncomingBlock (i2)) == PHI-&gt;getIncomingBlock (index))</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; PHI-&gt;setIncomingValue (i2, NewInst);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; Worklist.push_back (NewInst);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> index = 0; index &lt; I-&gt;getNumOperands(); ++index)</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="comment">// For other instructions, we want to insert instructions replacing</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">// constant expressions immediently before the instruction using the</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="comment">// constant expression.</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="SVF-FE_2BasicTypes_8h.html#a60115de303225d173fb935cf7619a2cb">ConstantExpr</a> * CE = <a class="code" href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a> (I-&gt;getOperand(index)))</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * NewInst = <a class="code" href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1">convertExpression</a> (CE, I);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; I-&gt;replaceUsesOfWith (CE, NewInst);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; Worklist.push_back (NewInst);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</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="l00236"></a><span class="lineno"> 236</span>&#160; }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">return</span> modified;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;}</div><div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a65732ea63bff4b444b225629ee7cf252"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a65732ea63bff4b444b225629ee7cf252">PHINode</a></div><div class="ttdeci">llvm::PHINode PHINode</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00041">BasicTypes.h:41</a></div></div>
185
+ <div class="ttc" id="SVF-FE_2BasicTypes_8h_html_a60115de303225d173fb935cf7619a2cb"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html#a60115de303225d173fb935cf7619a2cb">ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00027">BasicTypes.h:27</a></div></div>
186
+ <div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
187
+ <div class="ttc" id="BreakConstantExpr_8cpp_html_a25cf7d9aff084a1cd1aa51c85a4a17e1"><div class="ttname"><a href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1">convertExpression</a></div><div class="ttdeci">static Instruction * convertExpression(ConstantExpr *CE, Instruction *InsertPt)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8cpp_source.html#l00116">BreakConstantExpr.cpp:116</a></div></div>
188
+ <div class="ttc" id="BreakConstantExpr_8cpp_html_a81381bb19688464256bd09ef22e965e4"><div class="ttname"><a href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a></div><div class="ttdeci">static ConstantExpr * hasConstantGEP(Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8cpp_source.html#l00085">BreakConstantExpr.cpp:85</a></div></div>
189
189
  </div><!-- fragment -->
190
190
  </div>
191
191
  </div>