svf-tools 1.0.572 → 1.0.574

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 (398) hide show
  1. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +1 -1
  3. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +5 -5
  4. package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
  5. package/SVF-doxygen/html/html/Annotator_8h_source.html +3 -3
  6. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +2 -2
  7. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +5 -5
  8. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +4 -4
  9. package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +11 -11
  10. package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +10 -10
  11. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +7 -7
  12. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +3 -3
  13. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +1 -1
  14. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +19 -2
  15. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +1 -1
  16. package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +1 -1
  17. package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +2 -2
  18. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +18 -18
  19. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +5 -5
  20. package/SVF-doxygen/html/html/CHG_8cpp.html +2 -2
  21. package/SVF-doxygen/html/html/CHG_8cpp_source.html +10 -10
  22. package/SVF-doxygen/html/html/CHG_8h_source.html +3 -3
  23. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +21 -21
  24. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +3 -3
  25. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +5 -5
  26. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
  27. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +1 -1
  28. package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
  29. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +4 -4
  30. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
  31. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +4 -4
  32. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +22 -22
  33. package/SVF-doxygen/html/html/DCHG_8h_source.html +9 -9
  34. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
  35. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +2 -2
  36. package/SVF-doxygen/html/html/DDAPass_8h_source.html +1 -1
  37. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +2 -2
  38. package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
  39. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +7 -7
  40. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +10 -10
  41. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
  42. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  43. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +3 -3
  44. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +5 -5
  45. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -1
  46. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +1 -1
  47. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  48. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
  49. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
  50. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
  51. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
  52. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +3 -3
  53. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
  54. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +8 -8
  55. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +2 -2
  56. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +2 -2
  57. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +3 -3
  58. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +6 -6
  59. package/SVF-doxygen/html/html/ICFG_8h_source.html +3 -3
  60. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +10 -10
  61. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
  62. package/SVF-doxygen/html/html/IRGraph_8h_source.html +3 -3
  63. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +5 -5
  64. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +22 -20
  65. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +13 -13
  66. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +23 -23
  67. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +16 -16
  68. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
  69. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
  70. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +5 -5
  71. package/SVF-doxygen/html/html/LocationSet_8h_source.html +2 -2
  72. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +8 -8
  73. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +4 -4
  74. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +13 -13
  75. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +2 -2
  76. package/SVF-doxygen/html/html/MHP_8cpp.html +2 -2
  77. package/SVF-doxygen/html/html/MHP_8cpp_source.html +14 -14
  78. package/SVF-doxygen/html/html/MHP_8h_source.html +6 -6
  79. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
  80. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +6 -6
  81. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +5 -5
  82. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +16 -16
  83. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +7 -7
  84. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +5 -5
  85. package/SVF-doxygen/html/html/MTA_8cpp_source.html +6 -6
  86. package/SVF-doxygen/html/html/MTA_8h_source.html +5 -5
  87. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
  88. package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
  89. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +8 -8
  90. package/SVF-doxygen/html/html/MemRegion_8h_source.html +3 -3
  91. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +9 -9
  92. package/SVF-doxygen/html/html/MemSSA_8h_source.html +2 -2
  93. package/SVF-doxygen/html/html/PCG_8cpp_source.html +8 -8
  94. package/SVF-doxygen/html/html/PCG_8h_source.html +3 -3
  95. package/SVF-doxygen/html/html/PEGGrammar_8txt.html +2 -2
  96. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
  97. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
  98. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -1
  99. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
  100. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +13 -13
  101. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +2 -2
  102. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +3 -3
  103. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +7 -7
  104. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +8 -0
  105. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +84 -81
  106. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +1 -1
  107. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
  108. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
  109. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +3 -3
  110. package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
  111. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +49 -52
  112. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +45 -45
  113. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +2 -2
  114. package/SVF-doxygen/html/html/SVFIR_8h_source.html +3 -3
  115. package/SVF-doxygen/html/html/SVFModule_8h_source.html +10 -10
  116. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +2 -2
  117. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
  118. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +3 -3
  119. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +12 -12
  120. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +10 -10
  121. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
  122. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +6 -6
  123. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +3 -3
  124. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +2 -2
  125. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +28 -30
  126. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +43 -47
  127. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -2
  128. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +1 -1
  129. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
  130. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +34 -36
  131. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +5 -5
  132. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +9 -9
  133. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +8 -8
  134. package/SVF-doxygen/html/html/TCT_8cpp_source.html +14 -14
  135. package/SVF-doxygen/html/html/TCT_8h_source.html +11 -11
  136. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +4 -4
  137. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +6 -6
  138. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +3 -3
  139. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +2 -2
  140. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +3 -3
  141. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +0 -7
  142. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +93 -94
  143. package/SVF-doxygen/html/html/VFGNode_8h_source.html +3 -3
  144. package/SVF-doxygen/html/html/VFG_8cpp_source.html +4 -4
  145. package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
  146. package/SVF-doxygen/html/html/VFG_8txt.html +18 -0
  147. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +1 -1
  148. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +3 -3
  149. package/SVF-doxygen/html/html/WPAPass_8h_source.html +3 -3
  150. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +1 -1
  151. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +1 -1
  152. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
  153. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
  154. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  155. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +1 -1
  156. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +5 -5
  157. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
  158. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +1 -1
  159. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  160. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +1 -1
  161. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +1 -1
  162. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  163. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
  164. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
  165. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +1 -1
  166. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +4 -4
  167. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer-members.html +5 -5
  168. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +80 -84
  169. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +7 -7
  170. package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +1 -1
  171. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +3 -3
  172. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +35 -35
  173. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +7 -7
  174. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  175. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +1 -1
  176. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
  177. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
  178. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +1 -1
  179. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  180. package/SVF-doxygen/html/html/classSVF_1_1CallSite-members.html +18 -21
  181. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +37 -120
  182. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  183. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
  184. package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +1 -1
  185. package/SVF-doxygen/html/html/classSVF_1_1CondVar.html +1 -1
  186. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +1 -1
  187. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +6 -6
  188. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  189. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +1 -1
  190. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
  191. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
  192. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
  193. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +57 -57
  194. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +2 -2
  195. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +1 -1
  196. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +1 -1
  197. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
  198. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +1 -1
  199. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
  200. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
  201. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +5 -5
  202. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +5 -5
  203. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  204. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +2 -2
  205. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
  206. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +22 -22
  207. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +1 -1
  208. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +1 -1
  209. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +1 -1
  210. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +1 -1
  211. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +2 -2
  212. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +3 -3
  213. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
  214. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  215. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  216. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +1 -1
  217. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  218. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
  219. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
  220. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +13 -13
  221. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +1 -1
  222. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  223. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +1 -1
  224. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +8 -8
  225. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
  227. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +1 -1
  228. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  229. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  230. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +1 -1
  231. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
  232. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
  233. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +1 -1
  234. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +1 -1
  235. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  236. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +3 -3
  237. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +5 -5
  238. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +58 -56
  239. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +3 -3
  240. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  241. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +1 -1
  242. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +6 -6
  243. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +32 -32
  244. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +15 -15
  245. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +26 -26
  246. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +10 -10
  247. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
  248. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
  249. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +6 -6
  250. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +9 -9
  251. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +30 -30
  252. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +9 -9
  253. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +6 -6
  254. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  255. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +16 -16
  256. package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +3 -3
  257. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
  258. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +1 -1
  259. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  260. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +20 -20
  261. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
  262. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +7 -7
  263. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
  264. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
  265. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +1 -1
  266. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
  267. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +19 -19
  268. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +12 -12
  269. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +9 -9
  270. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  271. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +1 -1
  272. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +1 -1
  273. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +1 -1
  274. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  275. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +1 -1
  276. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +3 -3
  277. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +22 -17
  278. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +279 -111
  279. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +2 -2
  280. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
  281. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +3 -3
  282. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +92 -98
  283. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +2 -2
  284. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +2 -2
  285. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +4 -4
  286. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +7 -7
  287. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator-members.html +27 -28
  288. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +118 -153
  289. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +2 -2
  290. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  291. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +1 -1
  292. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
  294. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +48 -50
  295. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +10 -10
  296. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +30 -30
  297. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  298. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  299. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +4 -4
  300. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +9 -9
  301. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +3 -3
  302. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +1 -1
  303. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +1 -1
  304. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +1 -1
  305. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +3 -3
  306. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  307. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
  308. package/SVF-doxygen/html/html/classSVF_1_1VFCFLGraphBuilder.html +16 -3
  309. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +4 -4
  310. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
  311. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
  312. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  313. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +1 -1
  314. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +1 -1
  315. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +1 -1
  316. package/SVF-doxygen/html/html/classllvm_1_1generic__bridge__gep__type__iterator.html +3 -3
  317. package/SVF-doxygen/html/html/functions_a.html +7 -13
  318. package/SVF-doxygen/html/html/functions_b.html +7 -4
  319. package/SVF-doxygen/html/html/functions_func.html +10 -13
  320. package/SVF-doxygen/html/html/functions_func_g.html +5 -5
  321. package/SVF-doxygen/html/html/functions_func_h.html +5 -2
  322. package/SVF-doxygen/html/html/functions_func_i.html +5 -2
  323. package/SVF-doxygen/html/html/functions_func_r.html +4 -1
  324. package/SVF-doxygen/html/html/functions_func_s.html +11 -11
  325. package/SVF-doxygen/html/html/functions_g.html +5 -5
  326. package/SVF-doxygen/html/html/functions_h.html +6 -3
  327. package/SVF-doxygen/html/html/functions_i.html +10 -7
  328. package/SVF-doxygen/html/html/functions_l.html +3 -3
  329. package/SVF-doxygen/html/html/functions_m.html +1 -1
  330. package/SVF-doxygen/html/html/functions_o.html +3 -3
  331. package/SVF-doxygen/html/html/functions_p.html +8 -12
  332. package/SVF-doxygen/html/html/functions_r.html +9 -4
  333. package/SVF-doxygen/html/html/functions_s.html +7 -7
  334. package/SVF-doxygen/html/html/functions_t.html +6 -4
  335. package/SVF-doxygen/html/html/functions_type.html +0 -3
  336. package/SVF-doxygen/html/html/functions_v.html +3 -3
  337. package/SVF-doxygen/html/html/functions_vars_b.html +3 -0
  338. package/SVF-doxygen/html/html/globals_e.html +1 -0
  339. package/SVF-doxygen/html/html/globals_vars.html +1 -0
  340. package/SVF-doxygen/html/html/namespaceSVF.html +123 -120
  341. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +47 -47
  342. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +19 -19
  343. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +40 -40
  344. package/SVF-doxygen/html/html/search/all_1.js +1 -3
  345. package/SVF-doxygen/html/html/search/all_10.js +5 -5
  346. package/SVF-doxygen/html/html/search/all_11.js +2 -1
  347. package/SVF-doxygen/html/html/search/all_12.js +11 -11
  348. package/SVF-doxygen/html/html/search/all_13.js +5 -5
  349. package/SVF-doxygen/html/html/search/all_15.js +2 -2
  350. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  351. package/SVF-doxygen/html/html/search/all_2.js +1 -0
  352. package/SVF-doxygen/html/html/search/all_5.js +1 -1
  353. package/SVF-doxygen/html/html/search/all_7.js +3 -3
  354. package/SVF-doxygen/html/html/search/all_8.js +1 -0
  355. package/SVF-doxygen/html/html/search/all_9.js +1 -0
  356. package/SVF-doxygen/html/html/search/all_b.js +1 -1
  357. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  358. package/SVF-doxygen/html/html/search/all_d.js +2 -2
  359. package/SVF-doxygen/html/html/search/all_e.js +1 -1
  360. package/SVF-doxygen/html/html/search/all_f.js +1 -1
  361. package/SVF-doxygen/html/html/search/functions_0.js +1 -2
  362. package/SVF-doxygen/html/html/search/functions_10.js +1 -0
  363. package/SVF-doxygen/html/html/search/functions_11.js +2 -2
  364. package/SVF-doxygen/html/html/search/functions_6.js +3 -3
  365. package/SVF-doxygen/html/html/search/functions_7.js +1 -0
  366. package/SVF-doxygen/html/html/search/functions_8.js +1 -0
  367. package/SVF-doxygen/html/html/search/typedefs_0.js +0 -1
  368. package/SVF-doxygen/html/html/search/variables_13.js +2 -2
  369. package/SVF-doxygen/html/html/search/variables_2.js +1 -0
  370. package/SVF-doxygen/html/html/search/variables_5.js +1 -1
  371. package/SVF-doxygen/html/html/search/variables_c.js +1 -1
  372. package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter.html +1 -1
  373. package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter_3_01T_00_018_01_4.html +1 -1
  374. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +3 -3
  375. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
  376. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
  377. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  378. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +2 -2
  379. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +4 -4
  380. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +4 -4
  381. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  382. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  383. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
  384. package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
  385. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +3 -3
  386. package/include/CFL/CFGNormalizer.h +3 -3
  387. package/include/CFL/VFG.txt +2 -1
  388. package/include/SABER/SaberCondAllocator.h +0 -7
  389. package/include/SVF-FE/BasicTypes.h +7 -0
  390. package/include/Util/BasicTypes.h +52 -17
  391. package/lib/CFL/CFGNormalizer.cpp +41 -42
  392. package/lib/CFL/CFLGraphBuilder.cpp +74 -29
  393. package/lib/CFL/CFLVF.cpp +1 -1
  394. package/lib/SABER/SaberCondAllocator.cpp +7 -9
  395. package/lib/SVF-FE/LLVMModule.cpp +8 -0
  396. package/lib/SVF-FE/SVFIRBuilder.cpp +2 -2
  397. package/lib/SVF-FE/SymbolTableBuilder.cpp +2 -2
  398. package/package.json +1 -1
@@ -106,7 +106,7 @@ $(function() {
106
106
  <div class="ttc" id="classSVF_1_1Andersen_html_a8ba593bd16d4436310f2f25e75687c57"><div class="ttname"><a href="classSVF_1_1Andersen.html#a8ba593bd16d4436310f2f25e75687c57">SVF::Andersen::addCopyEdge</a></div><div class="ttdeci">virtual bool addCopyEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add copy edge on constraint graph. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00298">Andersen.h:298</a></div></div>
107
107
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
108
108
  <div class="ttc" id="classSVF_1_1AndersenSCD_html_aaee864bb1fc5b5d4643e145d80ecfb8b"><div class="ttname"><a href="classSVF_1_1AndersenSCD.html#aaee864bb1fc5b5d4643e145d80ecfb8b">SVF::AndersenSCD::processPWC</a></div><div class="ttdeci">virtual void processPWC(ConstraintNode *rep)</div><div class="ttdef"><b>Definition:</b> <a href="AndersenSCD_8cpp_source.html#l00163">AndersenSCD.cpp:163</a></div></div>
109
- <div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00343">BasicTypes.h:343</a></div></div>
109
+ <div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00387">BasicTypes.h:387</a></div></div>
110
110
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ad95c842964e6ca46e51fb763fefec585"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ad95c842964e6ca46e51fb763fefec585">SVF::PointerAnalysis::CallSiteToFunPtrMap</a></div><div class="ttdeci">SVFIR::CallSiteToFunPtrMap CallSiteToFunPtrMap</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00104">PointerAnalysis.h:104</a></div></div>
111
111
  <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#l00169">GenericGraph.h:169</a></div></div>
112
112
  <div class="ttc" id="classSVF_1_1AddrCGEdge_html"><div class="ttname"><a href="classSVF_1_1AddrCGEdge.html">SVF::AddrCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00093">ConsGEdge.h:93</a></div></div>
@@ -127,7 +127,7 @@ $(function() {
127
127
  <div class="ttc" id="classSVF_1_1PointsTo_html_ac4688413177b49b37dbbfd3ed188d59b"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">SVF::PointsTo::empty</a></div><div class="ttdeci">bool empty(void) const</div><div class="ttdoc">Returns true if set is empty. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00094">PointsTo.cpp:94</a></div></div>
128
128
  <div class="ttc" id="namespaceSVFUtil_html"><div class="ttname"><a href="namespaceSVFUtil.html">SVFUtil</a></div></div>
129
129
  <div class="ttc" id="classSVF_1_1AndersenBase_html_a0d7298cbf83568f24fd2bd1926a32968"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a0d7298cbf83568f24fd2bd1926a32968">SVF::AndersenBase::numOfSCCDetection</a></div><div class="ttdeci">static u32_t numOfSCCDetection</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00131">Andersen.h:131</a></div></div>
130
- <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#l00082">BasicTypes.h:82</a></div></div>
130
+ <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#l00078">BasicTypes.h:78</a></div></div>
131
131
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
132
132
  <div class="ttc" id="classSVF_1_1AndersenBase_html_a9f453ec1b4236b8194ae590981217259"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a9f453ec1b4236b8194ae590981217259">SVF::AndersenBase::numOfFieldExpand</a></div><div class="ttdeci">static u32_t numOfFieldExpand</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00129">Andersen.h:129</a></div></div>
133
133
  <div class="ttc" id="classSVF_1_1AndersenBase_html_a6b7d0e57f741c446d0bf178939960143"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a6b7d0e57f741c446d0bf178939960143">SVF::AndersenBase::timeOfSCCDetection</a></div><div class="ttdeci">static double timeOfSCCDetection</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00132">Andersen.h:132</a></div></div>
@@ -89,7 +89,7 @@ $(function() {
89
89
  <div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00181">PointsTo.h:181</a></div></div>
90
90
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_ab1868f04de44f6fe1e9ac14f3d4ee56b"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#ab1868f04de44f6fe1e9ac14f3d4ee56b">SVF::ConstraintNode::const_iterator</a></div><div class="ttdeci">ConstraintEdge::ConstraintEdgeSetTy::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00045">ConsGNode.h:45</a></div></div>
91
91
  <div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
92
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00119">BasicTypes.h:119</a></div></div>
92
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00115">BasicTypes.h:115</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1AndersenBase_html_a69aae96fc1c99bf108075e5061f50f9e"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a69aae96fc1c99bf108075e5061f50f9e">SVF::AndersenBase::numOfProcessedLoad</a></div><div class="ttdeci">static u32_t numOfProcessedLoad</div><div class="ttdoc">Number of processed Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00126">Andersen.h:126</a></div></div>
94
94
  <div class="ttc" id="classSVF_1_1Andersen_html_a6c60b761ddf3d6bf08c8a9c3f6fd9f0b"><div class="ttname"><a href="classSVF_1_1Andersen.html#a6c60b761ddf3d6bf08c8a9c3f6fd9f0b">SVF::Andersen::updateCallGraph</a></div><div class="ttdeci">virtual bool updateCallGraph(const CallSiteToFunPtrMap &amp;callsites)</div><div class="ttdoc">Update call graph for the input indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00627">Andersen.cpp:627</a></div></div>
95
95
  <div class="ttc" id="classSVF_1_1GepCGEdge_html"><div class="ttname"><a href="classSVF_1_1GepCGEdge.html">SVF::GepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00225">ConsGEdge.h:225</a></div></div>
@@ -97,7 +97,7 @@ $(function() {
97
97
  <div class="ttc" id="SVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
98
98
  <div class="ttc" id="classSVF_1_1SVFVar_html"><div class="ttname"><a href="classSVF_1_1SVFVar.html">SVF::SVFVar</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00045">SVFVariables.h:45</a></div></div>
99
99
  <div class="ttc" id="classSVF_1_1Options_html_adfc1a5c6098d3867e29fc65ca9ffa1cc"><div class="ttname"><a href="classSVF_1_1Options.html#adfc1a5c6098d3867e29fc65ca9ffa1cc">SVF::Options::MaxFieldLimit</a></div><div class="ttdeci">static const llvm::cl::opt&lt; unsigned &gt; MaxFieldLimit</div><div class="ttdoc">Maximum number of field derivations for an object. </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00037">Options.h:37</a></div></div>
100
- <div class="ttc" id="classSVF_1_1CallSite_html_ab36a6a35eea673d4bdca615efc4336b1"><div class="ttname"><a href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">SVF::CallSite::getInstruction</a></div><div class="ttdeci">CallBase * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00351">BasicTypes.h:351</a></div></div>
100
+ <div class="ttc" id="classSVF_1_1CallSite_html_ab36a6a35eea673d4bdca615efc4336b1"><div class="ttname"><a href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">SVF::CallSite::getInstruction</a></div><div class="ttdeci">CallBase * getInstruction() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00395">BasicTypes.h:395</a></div></div>
101
101
  <div class="ttc" id="namespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div></div>
102
102
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00267">SVFUtil.cpp:267</a></div></div>
103
103
  <div class="ttc" id="namespaceSVF_html_ac82022f3f81965c3ce9b26c299f537a7"><div class="ttname"><a href="namespaceSVF.html#ac82022f3f81965c3ce9b26c299f537a7">SVF::NodePairSet</a></div><div class="ttdeci">Set&lt; NodePair &gt; NodePairSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00123">SVFBasicTypes.h:123</a></div></div>
@@ -185,12 +185,12 @@ $(function() {
185
185
  <div class="ttc" id="classSVF_1_1Andersen_html_ad90c8cf193bd81870ce8dd88c9580e2c"><div class="ttname"><a href="classSVF_1_1Andersen.html#ad90c8cf193bd81870ce8dd88c9580e2c">SVF::Andersen::finalize</a></div><div class="ttdeci">virtual void finalize()</div><div class="ttdoc">Finalize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00201">Andersen.cpp:201</a></div></div>
186
186
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
187
187
  <div class="ttc" id="classSVF_1_1AndersenBase_html_adaf738bee77a4b1fbb8d42911fabdb49"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#adaf738bee77a4b1fbb8d42911fabdb49">SVF::AndersenBase::AveragePointsToSetSize</a></div><div class="ttdeci">static u32_t AveragePointsToSetSize</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00135">Andersen.h:135</a></div></div>
188
- <div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00343">BasicTypes.h:343</a></div></div>
188
+ <div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00387">BasicTypes.h:387</a></div></div>
189
189
  <div class="ttc" id="classSVF_1_1Options_html_a8459d43a21bcf8a50fc55d14fcf5a81e"><div class="ttname"><a href="classSVF_1_1Options.html#a8459d43a21bcf8a50fc55d14fcf5a81e">SVF::Options::ClusterAnder</a></div><div class="ttdeci">static const llvm::cl::opt&lt; bool &gt; ClusterAnder</div><div class="ttdoc">Whether to stage Andersen&amp;#39;s with Steensgaard and cluster based on that data. </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00040">Options.h:40</a></div></div>
190
190
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ad95c842964e6ca46e51fb763fefec585"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ad95c842964e6ca46e51fb763fefec585">SVF::PointerAnalysis::CallSiteToFunPtrMap</a></div><div class="ttdeci">SVFIR::CallSiteToFunPtrMap CallSiteToFunPtrMap</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00104">PointerAnalysis.h:104</a></div></div>
191
191
  <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#l00169">GenericGraph.h:169</a></div></div>
192
192
  <div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
193
- <div class="ttc" id="classSVF_1_1CallSite_html_a9b7d53a345875e4e6c72eb23ac6475de"><div class="ttname"><a href="classSVF_1_1CallSite.html#a9b7d53a345875e4e6c72eb23ac6475de">SVF::CallSite::getType</a></div><div class="ttdeci">Type * getType() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00360">BasicTypes.h:360</a></div></div>
193
+ <div class="ttc" id="classSVF_1_1CallSite_html_a9b7d53a345875e4e6c72eb23ac6475de"><div class="ttname"><a href="classSVF_1_1CallSite.html#a9b7d53a345875e4e6c72eb23ac6475de">SVF::CallSite::getType</a></div><div class="ttdeci">Type * getType() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00403">BasicTypes.h:403</a></div></div>
194
194
  <div class="ttc" id="classSVF_1_1LocationSet_html"><div class="ttname"><a href="classSVF_1_1LocationSet.html">SVF::LocationSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LocationSet_8h_source.html#l00048">LocationSet.h:48</a></div></div>
195
195
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_a19c1ed324f65f4cc58dd2fd21ed4a971"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#a19c1ed324f65f4cc58dd2fd21ed4a971">SVF::ConstraintNode::incomingAddrsBegin</a></div><div class="ttdeci">const_iterator incomingAddrsBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00181">ConsGNode.h:181</a></div></div>
196
196
  <div class="ttc" id="SVFBasicTypes_8h_html_a7a295e02c56a93cf9206dd9d3b18dd17"><div class="ttname"><a href="SVFBasicTypes_8h.html#a7a295e02c56a93cf9206dd9d3b18dd17">DPAGBuild</a></div><div class="ttdeci">#define DPAGBuild</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00162">SVFBasicTypes.h:162</a></div></div>
@@ -200,7 +200,7 @@ $(function() {
200
200
  <div class="ttc" id="classSVF_1_1AndersenBase_html_ad40b196c2c699bd115529b806d20de25"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#ad40b196c2c699bd115529b806d20de25">SVF::AndersenBase::timeOfCollapse</a></div><div class="ttdeci">static double timeOfCollapse</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00134">Andersen.h:134</a></div></div>
201
201
  <div class="ttc" id="classSVF_1_1Options_html_a620fe156ba70f997eace0ccb0d2c9f67"><div class="ttname"><a href="classSVF_1_1Options.html#a620fe156ba70f997eace0ccb0d2c9f67">SVF::Options::AnderTimeLimit</a></div><div class="ttdeci">static const llvm::cl::opt&lt; unsigned &gt; AnderTimeLimit</div><div class="ttdoc">Time limit for the Andersen&amp;#39;s analyses. </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00074">Options.h:74</a></div></div>
202
202
  <div class="ttc" id="classSVF_1_1Andersen_html_ae6b1e54a389abc68994219e39539127e"><div class="ttname"><a href="classSVF_1_1Andersen.html#ae6b1e54a389abc68994219e39539127e">SVF::Andersen::mergeSrcToTgt</a></div><div class="ttdeci">virtual bool mergeSrcToTgt(NodeID srcId, NodeID tgtId)</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00779">Andersen.cpp:779</a></div></div>
203
- <div class="ttc" id="classSVF_1_1SVFFunction_html_a3c1fa59deae39c75c72c97e47326d982"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a3c1fa59deae39c75c72c97e47326d982">SVF::SVFFunction::isVarArg</a></div><div class="ttdeci">bool isVarArg() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00174">BasicTypes.h:174</a></div></div>
203
+ <div class="ttc" id="classSVF_1_1SVFFunction_html_a3c1fa59deae39c75c72c97e47326d982"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a3c1fa59deae39c75c72c97e47326d982">SVF::SVFFunction::isVarArg</a></div><div class="ttdeci">bool isVarArg() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00167">BasicTypes.h:167</a></div></div>
204
204
  <div class="ttc" id="classSVF_1_1ConstraintNode_html_ae8ac9ad8e766b961c7ce06d7219f37af"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#ae8ac9ad8e766b961c7ce06d7219f37af">SVF::ConstraintNode::incomingAddrsEnd</a></div><div class="ttdeci">const_iterator incomingAddrsEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00185">ConsGNode.h:185</a></div></div>
205
205
  <div class="ttc" id="classSVF_1_1Andersen_html_ac86ffd334568e4df5c08b3c827018bef"><div class="ttname"><a href="classSVF_1_1Andersen.html#ac86ffd334568e4df5c08b3c827018bef">SVF::Andersen::mergeSccCycle</a></div><div class="ttdeci">void mergeSccCycle()</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8cpp_source.html#l00479">Andersen.cpp:479</a></div></div>
206
206
  <div class="ttc" id="classSVF_1_1AndersenStat_html"><div class="ttname"><a href="classSVF_1_1AndersenStat.html">SVF::AndersenStat</a></div><div class="ttdef"><b>Definition:</b> <a href="WPAStat_8h_source.html#l00048">WPAStat.h:48</a></div></div>
@@ -89,7 +89,7 @@ $(function() {
89
89
  <div class="ttc" id="classSVF_1_1AndersenWaveDiff_html"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html">SVF::AndersenWaveDiff</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00378">Andersen.h:378</a></div></div>
90
90
  <div class="ttc" id="classSVF_1_1Andersen_html_a2f88b6035ecb480f7d11afe6bc666541"><div class="ttname"><a href="classSVF_1_1Andersen.html#a2f88b6035ecb480f7d11afe6bc666541">SVF::Andersen::callsite2DummyValPN</a></div><div class="ttdeci">CallSite2DummyValPN callsite2DummyValPN</div><div class="ttdoc">Map an instruction to a dummy obj which created at an indirect callsite, which invokes a heap allocat...</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00239">Andersen.h:239</a></div></div>
91
91
  <div class="ttc" id="classSVF_1_1DiffPTData_html_a0f422f826bb378ebb34199f0378e351d"><div class="ttname"><a href="classSVF_1_1DiffPTData.html#a0f422f826bb378ebb34199f0378e351d">SVF::DiffPTData::updatePropaPtsMap</a></div><div class="ttdeci">virtual void updatePropaPtsMap(Key &amp;src, Key &amp;dst)=0</div></div>
92
- <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00119">BasicTypes.h:119</a></div></div>
92
+ <div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00115">BasicTypes.h:115</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1AndersenBase_html_a69aae96fc1c99bf108075e5061f50f9e"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#a69aae96fc1c99bf108075e5061f50f9e">SVF::AndersenBase::numOfProcessedLoad</a></div><div class="ttdeci">static u32_t numOfProcessedLoad</div><div class="ttdoc">Number of processed Gep edge. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00126">Andersen.h:126</a></div></div>
94
94
  <div class="ttc" id="classSVF_1_1WPASolver_html_aa7c0636780a86f376e9222bce771e859"><div class="ttname"><a href="classSVF_1_1WPASolver.html#aa7c0636780a86f376e9222bce771e859">SVF::WPASolver::iterationForPrintStat</a></div><div class="ttdeci">u32_t iterationForPrintStat</div><div class="ttdoc">print out statistics for i-th iteration </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00177">WPASolver.h:177</a></div></div>
95
95
  <div class="ttc" id="classSVF_1_1GepCGEdge_html"><div class="ttname"><a href="classSVF_1_1GepCGEdge.html">SVF::GepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00225">ConsGEdge.h:225</a></div></div>
@@ -165,7 +165,7 @@ $(function() {
165
165
  <div class="ttc" id="classSVF_1_1Andersen_html_a8ba593bd16d4436310f2f25e75687c57"><div class="ttname"><a href="classSVF_1_1Andersen.html#a8ba593bd16d4436310f2f25e75687c57">SVF::Andersen::addCopyEdge</a></div><div class="ttdeci">virtual bool addCopyEdge(NodeID src, NodeID dst)</div><div class="ttdoc">Add copy edge on constraint graph. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00298">Andersen.h:298</a></div></div>
166
166
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
167
167
  <div class="ttc" id="classSVF_1_1AndersenBase_html_adaf738bee77a4b1fbb8d42911fabdb49"><div class="ttname"><a href="classSVF_1_1AndersenBase.html#adaf738bee77a4b1fbb8d42911fabdb49">SVF::AndersenBase::AveragePointsToSetSize</a></div><div class="ttdeci">static u32_t AveragePointsToSetSize</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00135">Andersen.h:135</a></div></div>
168
- <div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00343">BasicTypes.h:343</a></div></div>
168
+ <div class="ttc" id="classSVF_1_1CallSite_html"><div class="ttname"><a href="classSVF_1_1CallSite.html">SVF::CallSite</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00387">BasicTypes.h:387</a></div></div>
169
169
  <div class="ttc" id="classSVF_1_1PointerAnalysis_html_ad95c842964e6ca46e51fb763fefec585"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ad95c842964e6ca46e51fb763fefec585">SVF::PointerAnalysis::CallSiteToFunPtrMap</a></div><div class="ttdeci">SVFIR::CallSiteToFunPtrMap CallSiteToFunPtrMap</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00104">PointerAnalysis.h:104</a></div></div>
170
170
  <div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
171
171
  <div class="ttc" id="classSVF_1_1DiffPTData_html_a7784c4a76aa41149975840af8b32c2a9"><div class="ttname"><a href="classSVF_1_1DiffPTData.html#a7784c4a76aa41149975840af8b32c2a9">SVF::DiffPTData::clearPropaPts</a></div><div class="ttdeci">virtual void clearPropaPts(Key &amp;var)=0</div><div class="ttdoc">Clear propagated points-to set of var. </div></div>
@@ -77,18 +77,18 @@ $(function() {
77
77
  <div class="ttc" id="classSVF_1_1Annotator_html_a3fb284999931900d92e60104980648ef"><div class="ttname"><a href="classSVF_1_1Annotator.html#a3fb284999931900d92e60104980648ef">SVF::Annotator::hasSBSourceFlag</a></div><div class="ttdeci">bool hasSBSourceFlag(Instruction *inst) const</div><div class="ttdoc">SB Has flag methods. </div><div class="ttdef"><b>Definition:</b> <a href="Annotator_8h_source.html#l00044">Annotator.h:44</a></div></div>
78
78
  <div class="ttc" id="classSVF_1_1Annotator_html_a571eca4d816ffb519f256b7f37209ddb"><div class="ttname"><a href="classSVF_1_1Annotator.html#a571eca4d816ffb519f256b7f37209ddb">SVF::Annotator::evalMDTag</a></div><div class="ttdeci">bool evalMDTag(const Instruction *inst, const Value *val, std::string str, std::vector&lt; Value *&gt; &amp;) const</div><div class="ttdoc">evaluate llvm metadata </div><div class="ttdef"><b>Definition:</b> <a href="Annotator_8h_source.html#l00148">Annotator.h:148</a></div></div>
79
79
  <div class="ttc" id="classSVF_1_1Annotator_html_af220da6fe6fc879d15cc34ab397c5ba1"><div class="ttname"><a href="classSVF_1_1Annotator.html#af220da6fe6fc879d15cc34ab397c5ba1">SVF::Annotator::DR_NOT_CHECK</a></div><div class="ttdeci">const char * DR_NOT_CHECK</div><div class="ttdoc">Race Detection annotations. </div><div class="ttdef"><b>Definition:</b> <a href="Annotator_8h_source.html#l00182">Annotator.h:182</a></div></div>
80
- <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#l00073">BasicTypes.h:73</a></div></div>
80
+ <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#l00072">BasicTypes.h:72</a></div></div>
81
81
  <div class="ttc" id="classSVF_1_1Annotator_html_a556138c152d52921d6f0a709a826a93a"><div class="ttname"><a href="classSVF_1_1Annotator.html#a556138c152d52921d6f0a709a826a93a">SVF::Annotator::SB_INFESIBLE</a></div><div class="ttdeci">const char * SB_INFESIBLE</div><div class="ttdef"><b>Definition:</b> <a href="Annotator_8h_source.html#l00177">Annotator.h:177</a></div></div>
82
82
  <div class="ttc" id="classSVF_1_1Annotator_html_a11d7bfcb525e4fb74e3031dd9a2635fe"><div class="ttname"><a href="classSVF_1_1Annotator.html#a11d7bfcb525e4fb74e3031dd9a2635fe">SVF::Annotator::hasDRNotCheckFlag</a></div><div class="ttdeci">bool hasDRNotCheckFlag(const Instruction *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="Annotator_8h_source.html#l00067">Annotator.h:67</a></div></div>
83
83
  <div class="ttc" id="classSVF_1_1Annotator_html_a77ae10cccf9eeece8adf7dd00821e836"><div class="ttname"><a href="classSVF_1_1Annotator.html#a77ae10cccf9eeece8adf7dd00821e836">SVF::Annotator::~Annotator</a></div><div class="ttdeci">virtual ~Annotator()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="Annotator_8h_source.html#l00037">Annotator.h:37</a></div></div>
84
- <div class="ttc" id="namespaceSVF_html_ad3d3cec1813411f039211c86236f7adb"><div class="ttname"><a href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">SVF::MDNode</a></div><div class="ttdeci">llvm::MDNode MDNode</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00099">BasicTypes.h:99</a></div></div>
84
+ <div class="ttc" id="namespaceSVF_html_ad3d3cec1813411f039211c86236f7adb"><div class="ttname"><a href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">SVF::MDNode</a></div><div class="ttdeci">llvm::MDNode MDNode</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00095">BasicTypes.h:95</a></div></div>
85
85
  <div class="ttc" id="classSVF_1_1Annotator_html_abc2d4a40ac8a0d70428b5066266f861c"><div class="ttname"><a href="classSVF_1_1Annotator.html#abc2d4a40ac8a0d70428b5066266f861c">SVF::Annotator::hasDRCheckFlag</a></div><div class="ttdeci">bool hasDRCheckFlag(const Instruction *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="Annotator_8h_source.html#l00086">Annotator.h:86</a></div></div>
86
86
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
87
87
  <div class="ttc" id="classSVF_1_1Annotator_html_ad1424270d91f70dee1461b6301ce8091"><div class="ttname"><a href="classSVF_1_1Annotator.html#ad1424270d91f70dee1461b6301ce8091">SVF::Annotator::addMDTag</a></div><div class="ttdeci">void addMDTag(Instruction *inst, std::string str)</div><div class="ttdoc">Simple add/remove meta data information. </div><div class="ttdef"><b>Definition:</b> <a href="Annotator_8h_source.html#l00099">Annotator.h:99</a></div></div>
88
88
  <div class="ttc" id="classSVF_1_1Annotator_html_a3edacb8703c74abf42c4a29761a3437f"><div class="ttname"><a href="classSVF_1_1Annotator.html#a3edacb8703c74abf42c4a29761a3437f">SVF::Annotator::SB_SLICESINK</a></div><div class="ttdeci">const char * SB_SLICESINK</div><div class="ttdef"><b>Definition:</b> <a href="Annotator_8h_source.html#l00175">Annotator.h:175</a></div></div>
89
89
  <div class="ttc" id="classSVF_1_1Annotator_html_aa72e6952df50b5b36f0e0fed4024055f"><div class="ttname"><a href="classSVF_1_1Annotator.html#aa72e6952df50b5b36f0e0fed4024055f">SVF::Annotator::Annotator</a></div><div class="ttdeci">Annotator()</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="Annotator_8h_source.html#l00025">Annotator.h:25</a></div></div>
90
90
  <div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
91
- <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#l00072">BasicTypes.h:72</a></div></div>
91
+ <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#l00071">BasicTypes.h:71</a></div></div>
92
92
  <div class="ttc" id="classSVF_1_1Annotator_html_ad78f6de28e5474614f16707e1c599f48"><div class="ttname"><a href="classSVF_1_1Annotator.html#ad78f6de28e5474614f16707e1c599f48">SVF::Annotator::hasDRNotCheckFlag</a></div><div class="ttdeci">bool hasDRNotCheckFlag(Instruction *inst) const</div><div class="ttdoc">Race Detection Has flag methods. </div><div class="ttdef"><b>Definition:</b> <a href="Annotator_8h_source.html#l00058">Annotator.h:58</a></div></div>
93
93
  <div class="ttc" id="classSVF_1_1Annotator_html_a676a5c9b425e13f17fa73879c72787a6"><div class="ttname"><a href="classSVF_1_1Annotator.html#a676a5c9b425e13f17fa73879c72787a6">SVF::Annotator::removeMDTag</a></div><div class="ttdeci">void removeMDTag(Instruction *inst, Value *val, std::string str)</div><div class="ttdoc">remove flag from llvm metadata </div><div class="ttdef"><b>Definition:</b> <a href="Annotator_8h_source.html#l00130">Annotator.h:130</a></div></div>
94
94
  </div><!-- fragment --></div><!-- contents -->
@@ -153,7 +153,7 @@ Functions</h2></td></tr>
153
153
  </div><div class="memdoc">
154
154
 
155
155
  <p class="definition">Definition at line <a class="el" href="BreakConstantExpr_8cpp_source.html#l00118">118</a> of file <a class="el" href="BreakConstantExpr_8cpp_source.html">BreakConstantExpr.cpp</a>.</p>
156
- <div class="fragment"><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;{</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// Convert this constant expression into a regular instruction.</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span> (CE-&gt;getOpcode() == Instruction::GetElementPtr)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; ++GEPChanges;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; ++TotalChanges;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* Result = CE-&gt;getAsInstruction();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; Result-&gt;insertBefore(InsertPt);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> Result;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;}</div><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#l00073">BasicTypes.h:73</a></div></div>
156
+ <div class="fragment"><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;{</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// Convert this constant expression into a regular instruction.</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span> (CE-&gt;getOpcode() == Instruction::GetElementPtr)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; ++GEPChanges;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; ++TotalChanges;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* Result = CE-&gt;getAsInstruction();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; Result-&gt;insertBefore(InsertPt);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> Result;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;}</div><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#l00072">BasicTypes.h:72</a></div></div>
157
157
  </div><!-- fragment -->
158
158
  </div>
159
159
  </div>
@@ -184,7 +184,7 @@ Functions</h2></td></tr>
184
184
  <p class="definition">Definition at line <a class="el" href="BreakConstantExpr_8cpp_source.html#l00087">87</a> of file <a class="el" href="BreakConstantExpr_8cpp_source.html">BreakConstantExpr.cpp</a>.</p>
185
185
  <div class="fragment"><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;{</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> * CE = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(V))</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span> (CE-&gt;getOpcode() == Instruction::GetElementPtr)</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> CE;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> &lt; CE-&gt;getNumOperands(); ++<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a> (CE-&gt;getOperand(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)))</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> CE;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;}</div><div class="ttc" id="cJSON_8h_html_a750b5d744c39a06bfb13e6eb010e35d0"><div class="ttname"><a href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a></div><div class="ttdeci">int index</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00170">cJSON.h:170</a></div></div>
186
186
  <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#l00087">BreakConstantExpr.cpp:87</a></div></div>
187
- <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="SVF-FE_2BasicTypes_8h_source.html#l00063">BasicTypes.h:63</a></div></div>
187
+ <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="SVF-FE_2BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
188
188
  </div><!-- fragment -->
189
189
  </div>
190
190
  </div>
@@ -67,12 +67,12 @@ $(function() {
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
69
  <a href="BreakConstantExpr_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* SVF - Static Value-Flow Analysis Framework</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">Copyright (C) 2015 Yulei Sui</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">Copyright (C) 2015 Jingling Xue</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">This library is free software; you can redistribute it and/or</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">modify it under the terms of the GNU Lesser General Public</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">License as published by the Free Software Foundation; either</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">version 2.1 of the License, or (at your option) any later version.</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">This library is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">Lesser General Public License for more details.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">You should have received a copy of the GNU Lesser General Public</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">License along with this library; if not, write to the Free Software</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * BreakConstantExpr.cpp</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * Created on: Oct 8, 2013</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment">//===- BreakConstantGEPs.cpp - Change constant GEPs into GEP instructions - --//</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">// The SAFECode Compiler</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">// This file was developed by the LLVM research group and is distributed under</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">// the University of Illinois Open Source License. See LICENSE.TXT for details.</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// This pass changes all GEP constant expressions into GEP instructions. This</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// permits the rest of SAFECode to put run-time checks on them if necessary.</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &quot;llvm/ADT/Statistic.h&quot;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &quot;llvm/IR/Constants.h&quot;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &quot;llvm/IR/InstrTypes.h&quot;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &quot;llvm/IR/Instruction.h&quot;</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &quot;llvm/IR/Instructions.h&quot;</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;llvm/IR/LLVMContext.h&quot;</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &quot;llvm/IR/InstIterator.h&quot;</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="SVF-FE_2BasicTypes_8h.html">SVF-FE/BasicTypes.h</a>&quot;</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="BreakConstantExpr_8h.html">SVF-FE/BreakConstantExpr.h</a>&quot;</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &lt;iostream&gt;</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="comment">// Identifier variable for the pass</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keywordtype">char</span> <a class="code" href="classSVF_1_1BreakConstantGEPs.html#a8010c4f5824ed5ebcb7ae283473ada22">BreakConstantGEPs::ID</a> = 0;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keywordtype">char</span> <a class="code" href="classSVF_1_1MergeFunctionRets.html#a7a763ae6c9d3c72345495f01b0b4b458">MergeFunctionRets::ID</a> = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="BreakConstantExpr_8cpp.html#ad78e062f62e0d6e453941fb4ca843e4d"> 65</a></span>&#160;<span class="preprocessor">#define DEBUG_TYPE &quot;break-constgeps&quot;</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment">// Statistics</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<a class="code" href="BreakConstantExpr_8cpp.html#a53fcf89c33901a1e4bf09351eb612a6a">STATISTIC</a> (GEPChanges, <span class="stringliteral">&quot;Number of Converted GEP Constant Expressions&quot;</span>);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<a class="code" href="BreakConstantExpr_8cpp.html#a53fcf89c33901a1e4bf09351eb612a6a">STATISTIC</a> (TotalChanges, <span class="stringliteral">&quot;Number of Converted Constant Expressions&quot;</span>);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment">// Function: hasConstantGEP()</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment">// Description:</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment">// This function determines whether the given value is a constant expression</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment">// that has a constant GEP expression embedded within it.</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">// Inputs:</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment">// V - The value to check.</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="comment">// Return value:</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">// nullptr - This value is not a constant expression with a constant expression</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment">// GEP within it.</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment">// ~nullptr - A pointer to the value casted into a ConstantExpr is returned.</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> *</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4"> 87</a></span>&#160;<a class="code" href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a> (<a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> * V)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;{</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> * CE = SVFUtil::dyn_cast&lt;ConstantExpr&gt;(V))</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span> (CE-&gt;getOpcode() == Instruction::GetElementPtr)</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> CE;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> &lt; CE-&gt;getNumOperands(); ++<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a> (CE-&gt;getOperand(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)))</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> CE;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;}</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment">// Function: convertExpression()</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment">// Description:</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="comment">// Convert a constant expression into an instruction. This routine does *not*</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment">// perform any recursion, so the resulting instruction may have constant</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment">// expression operands.</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="keyword">static</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1"> 118</a></span>&#160;<a class="code" href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1">convertExpression</a> (<a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> * CE, <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * InsertPt)</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;{</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// Convert this constant expression into a regular instruction.</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span> (CE-&gt;getOpcode() == Instruction::GetElementPtr)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; ++GEPChanges;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; ++TotalChanges;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* Result = CE-&gt;getAsInstruction();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; Result-&gt;insertBefore(InsertPt);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> Result;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;}</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment">// Method: runOnFunction()</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment">// Description:</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment">// Entry point for this LLVM pass.</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="comment">// Return value:</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment">// true - The function was modified.</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment">// false - The function was not modified.</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keywordtype">bool</span></div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classSVF_1_1BreakConstantGEPs.html#ae99ceb7923161d54e7d0a687f4f68e1a"> 142</a></span>&#160;<a class="code" href="classSVF_1_1BreakConstantGEPs.html#ae99ceb7923161d54e7d0a687f4f68e1a">BreakConstantGEPs::runOnModule</a> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &amp; module)</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="keywordtype">bool</span> modified = <span class="keyword">false</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">for</span> (Module::iterator <a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a> = module.begin(), E = module.end(); <a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a> != E; ++<a class="code" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>)</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">// Worklist of values to check for constant GEP expressions</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; std::vector&lt;Instruction *&gt; Worklist;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">// Initialize the worklist by finding all instructions that have one or more</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="comment">// operands containing a constant GEP expression.</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">for</span> (Function::iterator BB = (*F).begin(); BB != (*F).end(); ++BB)</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="keywordflow">for</span> (BasicBlock::iterator i = BB-&gt;begin(); i != BB-&gt;end(); ++i)</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {</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; <span class="comment">// Scan through the operands of this instruction. If it is a constant</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">// expression GEP, insert an instruction GEP before the instruction.</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * I = &amp;(*i);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> &lt; I-&gt;getNumOperands(); ++<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)</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; <span class="keywordflow">if</span> (<a class="code" href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a> (I-&gt;getOperand(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)))</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; Worklist.push_back (I);</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; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="comment">// Determine whether we will modify anything.</span></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="keywordflow">if</span> (Worklist.size()) modified = <span class="keyword">true</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</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="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// operands into instructions if necessary, and determine if the newly</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">// added instructions need to be processed as well.</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">while</span> (Worklist.size())</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; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * I = Worklist.back();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; Worklist.pop_back();</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="comment">// Scan through the operands of this instruction and convert each into an</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">// instruction. Note that this works a little differently for phi</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// instructions because the new instruction must be added to the</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="comment">// appropriate predecessor block.</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</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="l00195"></a><span class="lineno"> 195</span>&#160; {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> &lt; PHI-&gt;getNumIncomingValues(); ++<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</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="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// want to insert the new instructions in the predecessor basic block.</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</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="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">// incoming basic block listed multiple times; this seems okay as long</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">// the same value is listed for the incoming block.</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> * InsertPt = PHI-&gt;getIncomingBlock(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)-&gt;getTerminator();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</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(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)))</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; <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="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i2 = <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>; i2 &lt; PHI-&gt;getNumIncomingValues(); ++i2)</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; <span class="keywordflow">if</span> ((PHI-&gt;getIncomingBlock (i2)) == PHI-&gt;getIncomingBlock (<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>))</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; PHI-&gt;setIncomingValue (i2, 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; Worklist.push_back (NewInst);</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; }</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">else</span></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="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> &lt; I-&gt;getNumOperands(); ++<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="comment">// For other instructions, we want to insert instructions replacing</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="comment">// constant expressions immediently before the instruction using the</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="comment">// constant expression.</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">//</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</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(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)))</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</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="l00231"></a><span class="lineno"> 231</span>&#160; I-&gt;replaceUsesOfWith (CE, NewInst);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; Worklist.push_back (NewInst);</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;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span> modified;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;}</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="ttc" id="cJSON_8h_html_a750b5d744c39a06bfb13e6eb010e35d0"><div class="ttname"><a href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a></div><div class="ttdeci">int index</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00170">cJSON.h:170</a></div></div>
70
- <div class="ttc" id="namespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00043">BasicTypes.h:43</a></div></div>
71
- <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="SVF-FE_2BasicTypes_8h_source.html#l00092">BasicTypes.h:92</a></div></div>
70
+ <div class="ttc" id="namespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00045">BasicTypes.h:45</a></div></div>
71
+ <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="SVF-FE_2BasicTypes_8h_source.html#l00099">BasicTypes.h:99</a></div></div>
72
72
  <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>
73
73
  <div class="ttc" id="BreakConstantExpr_8cpp_html_a53fcf89c33901a1e4bf09351eb612a6a"><div class="ttname"><a href="BreakConstantExpr_8cpp.html#a53fcf89c33901a1e4bf09351eb612a6a">STATISTIC</a></div><div class="ttdeci">STATISTIC(GEPChanges, &quot;Number of Converted GEP Constant Expressions&quot;)</div></div>
74
74
  <div class="ttc" id="SVF-FE_2BasicTypes_8h_html"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html">BasicTypes.h</a></div></div>
75
- <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#l00073">BasicTypes.h:73</a></div></div>
75
+ <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#l00072">BasicTypes.h:72</a></div></div>
76
76
  <div class="ttc" id="BreakConstantExpr_8h_html"><div class="ttname"><a href="BreakConstantExpr_8h.html">BreakConstantExpr.h</a></div></div>
77
77
  <div class="ttc" id="classSVF_1_1BreakConstantGEPs_html_ae99ceb7923161d54e7d0a687f4f68e1a"><div class="ttname"><a href="classSVF_1_1BreakConstantGEPs.html#ae99ceb7923161d54e7d0a687f4f68e1a">SVF::BreakConstantGEPs::runOnModule</a></div><div class="ttdeci">virtual bool runOnModule(Module &amp;M)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8cpp_source.html#l00142">BreakConstantExpr.cpp:142</a></div></div>
78
78
  <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#l00118">BreakConstantExpr.cpp:118</a></div></div>
@@ -80,8 +80,8 @@ $(function() {
80
80
  <div class="ttc" id="namespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode </div><div class="ttdef"><b>Definition:</b> <a href="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
81
81
  <div class="ttc" id="classSVF_1_1MergeFunctionRets_html_a7a763ae6c9d3c72345495f01b0b4b458"><div class="ttname"><a href="classSVF_1_1MergeFunctionRets.html#a7a763ae6c9d3c72345495f01b0b4b458">SVF::MergeFunctionRets::ID</a></div><div class="ttdeci">static char ID</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8h_source.html#l00062">BreakConstantExpr.h:62</a></div></div>
82
82
  <div class="ttc" id="CFLGrammar_8txt_html_a00967427d1c110ffcc82ea2a966f4564"><div class="ttname"><a href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a></div><div class="ttdeci">V Fbar V F</div><div class="ttdef"><b>Definition:</b> <a href="CFLGrammar_8txt_source.html#l00016">CFLGrammar.txt:16</a></div></div>
83
- <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="SVF-FE_2BasicTypes_8h_source.html#l00063">BasicTypes.h:63</a></div></div>
84
- <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#l00072">BasicTypes.h:72</a></div></div>
83
+ <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="SVF-FE_2BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
84
+ <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#l00071">BasicTypes.h:71</a></div></div>
85
85
  </div><!-- fragment --></div><!-- contents -->
86
86
  <!-- start footer part -->
87
87
  <hr class="footer"/><address class="footer"><small>