svf-tools 1.0.587 → 1.0.589

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 (592) hide show
  1. package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +1 -1
  2. package/SVF-doxygen/html/html/AndersenPWC_8h_source.html +6 -6
  3. package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +7 -7
  4. package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +8 -8
  5. package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +20 -20
  6. package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
  7. package/SVF-doxygen/html/html/Andersen_8cpp_source.html +25 -25
  8. package/SVF-doxygen/html/html/Andersen_8h_source.html +17 -17
  9. package/SVF-doxygen/html/html/Annotator_8h_source.html +3 -3
  10. package/SVF-doxygen/html/html/BasicTypes_8cpp_source.html +5 -5
  11. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +2 -2
  12. package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +5 -5
  13. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +4 -4
  14. package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +5 -5
  15. package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +3 -3
  16. package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +12 -12
  17. package/SVF-doxygen/html/html/CFLAlias_8h_source.html +11 -11
  18. package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +2 -2
  19. package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +4 -4
  20. package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +7 -7
  21. package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +7 -7
  22. package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +6 -6
  23. package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +2 -2
  24. package/SVF-doxygen/html/html/CFLGraph_8h_source.html +3 -3
  25. package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +2 -2
  26. package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +1 -1
  27. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +27 -27
  28. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +5 -5
  29. package/SVF-doxygen/html/html/CHG_8cpp.html +3 -3
  30. package/SVF-doxygen/html/html/CHG_8cpp_source.html +13 -13
  31. package/SVF-doxygen/html/html/CHG_8h_source.html +8 -8
  32. package/SVF-doxygen/html/html/CPPUtil_8cpp.html +2 -2
  33. package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +26 -26
  34. package/SVF-doxygen/html/html/CPPUtil_8h_source.html +4 -4
  35. package/SVF-doxygen/html/html/CSC_8cpp_source.html +7 -7
  36. package/SVF-doxygen/html/html/CSC_8h_source.html +4 -4
  37. package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +6 -6
  38. package/SVF-doxygen/html/html/Casting_8h.html +1 -0
  39. package/SVF-doxygen/html/html/Casting_8h_source.html +42 -42
  40. package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +8 -8
  41. package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
  42. package/SVF-doxygen/html/html/ConsGNode_8h_source.html +21 -21
  43. package/SVF-doxygen/html/html/ConsG_8cpp_source.html +38 -38
  44. package/SVF-doxygen/html/html/ConsG_8h_source.html +28 -28
  45. package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +25 -23
  46. package/SVF-doxygen/html/html/ContextDDA_8h_source.html +11 -11
  47. package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
  48. package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +2 -2
  49. package/SVF-doxygen/html/html/CxtStmt_8h_source.html +5 -5
  50. package/SVF-doxygen/html/html/DCHG_8cpp_source.html +36 -36
  51. package/SVF-doxygen/html/html/DCHG_8h_source.html +15 -15
  52. package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +13 -13
  53. package/SVF-doxygen/html/html/DDAClient_8h_source.html +4 -4
  54. package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +12 -12
  55. package/SVF-doxygen/html/html/DDAPass_8h_source.html +4 -4
  56. package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +8 -8
  57. package/SVF-doxygen/html/html/DDAStat_8h_source.html +3 -3
  58. package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +16 -16
  59. package/SVF-doxygen/html/html/DPItem_8h_source.html +5 -5
  60. package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +7 -7
  61. package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +11 -11
  62. package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
  63. package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
  64. package/SVF-doxygen/html/html/ExeState_8cpp_source.html +6 -6
  65. package/SVF-doxygen/html/html/ExeState_8h_source.html +4 -4
  66. package/SVF-doxygen/html/html/ExtAPI_8cpp.html +1 -1
  67. package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +8 -8
  68. package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
  69. package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +16 -16
  70. package/SVF-doxygen/html/html/FSMPTA_8h_source.html +7 -7
  71. package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
  72. package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +7 -7
  73. package/SVF-doxygen/html/html/FlowDDA_8h_source.html +13 -13
  74. package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +13 -13
  75. package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +19 -19
  76. package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +8 -8
  77. package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +3 -3
  78. package/SVF-doxygen/html/html/GenericGraph_8h_source.html +61 -61
  79. package/SVF-doxygen/html/html/GrammarBuilder_8h_source.html +1 -1
  80. package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +3 -3
  81. package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
  82. package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +12 -12
  83. package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +3 -3
  84. package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +5 -5
  85. package/SVF-doxygen/html/html/ICFGNode_8h_source.html +5 -5
  86. package/SVF-doxygen/html/html/ICFGStat_8h_source.html +3 -3
  87. package/SVF-doxygen/html/html/ICFG_8cpp_source.html +37 -34
  88. package/SVF-doxygen/html/html/ICFG_8h_source.html +30 -30
  89. package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +28 -28
  90. package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +4 -4
  91. package/SVF-doxygen/html/html/IRGraph_8h_source.html +10 -10
  92. package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +8 -8
  93. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +28 -28
  94. package/SVF-doxygen/html/html/LLVMModule_8h_source.html +7 -7
  95. package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +26 -26
  96. package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +18 -18
  97. package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +5 -5
  98. package/SVF-doxygen/html/html/LeakChecker_8h_source.html +3 -3
  99. package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +12 -12
  100. package/SVF-doxygen/html/html/LocationSet_8h_source.html +7 -7
  101. package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +16 -16
  102. package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +11 -11
  103. package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +15 -15
  104. package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +5 -5
  105. package/SVF-doxygen/html/html/MHP_8cpp.html +3 -3
  106. package/SVF-doxygen/html/html/MHP_8cpp_source.html +35 -36
  107. package/SVF-doxygen/html/html/MHP_8h_source.html +15 -15
  108. package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +5 -5
  109. package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +13 -13
  110. package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +8 -8
  111. package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +28 -28
  112. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +11 -11
  113. package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +8 -8
  114. package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
  115. package/SVF-doxygen/html/html/MTA_8cpp_source.html +14 -14
  116. package/SVF-doxygen/html/html/MTA_8h_source.html +7 -7
  117. package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +11 -11
  118. package/SVF-doxygen/html/html/MemPartition_8h_source.html +4 -4
  119. package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +41 -41
  120. package/SVF-doxygen/html/html/MemRegion_8h_source.html +14 -14
  121. package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +17 -17
  122. package/SVF-doxygen/html/html/MemSSA_8h_source.html +8 -8
  123. package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +7 -7
  124. package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +6 -6
  125. package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +3 -3
  126. package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
  127. package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
  128. package/SVF-doxygen/html/html/PCG_8cpp_source.html +11 -11
  129. package/SVF-doxygen/html/html/PCG_8h_source.html +7 -7
  130. package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +8 -8
  131. package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +9 -9
  132. package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +9 -9
  133. package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
  134. package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +3 -3
  135. package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +3 -3
  136. package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +34 -34
  137. package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +31 -31
  138. package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +63 -63
  139. package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +83 -84
  140. package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +15 -15
  141. package/SVF-doxygen/html/html/PointsTo_8h_source.html +3 -3
  142. package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +10 -10
  143. package/SVF-doxygen/html/html/ProgSlice_8h_source.html +10 -10
  144. package/SVF-doxygen/html/html/SCC_8h_source.html +6 -6
  145. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +5 -1
  146. package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +85 -85
  147. package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +23 -27
  148. package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +73 -74
  149. package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
  150. package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +3 -3
  151. package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +3 -3
  152. package/SVF-doxygen/html/html/SVFGNode_8h_source.html +5 -5
  153. package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +8 -8
  154. package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +14 -14
  155. package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +8 -8
  156. package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +7 -7
  157. package/SVF-doxygen/html/html/SVFGStat_8h_source.html +4 -4
  158. package/SVF-doxygen/html/html/SVFG_8cpp_source.html +25 -25
  159. package/SVF-doxygen/html/html/SVFG_8h_source.html +12 -12
  160. package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +58 -58
  161. package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +75 -75
  162. package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +11 -11
  163. package/SVF-doxygen/html/html/SVFIR_8h_source.html +34 -34
  164. package/SVF-doxygen/html/html/SVFLoop_8h_source.html +2 -2
  165. package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +3 -3
  166. package/SVF-doxygen/html/html/SVFModule_8h_source.html +13 -13
  167. package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +8 -8
  168. package/SVF-doxygen/html/html/SVFStat_8h_source.html +1 -1
  169. package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +5 -5
  170. package/SVF-doxygen/html/html/SVFStatements_8h_source.html +10 -10
  171. package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +18 -18
  172. package/SVF-doxygen/html/html/SVFUtil_8h_source.html +23 -23
  173. package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
  174. package/SVF-doxygen/html/html/SVFVariables_8h_source.html +8 -8
  175. package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +4 -4
  176. package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +1 -1
  177. package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +4 -4
  178. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +34 -34
  179. package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +47 -47
  180. package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +14 -14
  181. package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +3 -3
  182. package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +59 -59
  183. package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +10 -10
  184. package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +4 -4
  185. package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +2 -2
  186. package/SVF-doxygen/html/html/Steensgaard_8h_source.html +3 -3
  187. package/SVF-doxygen/html/html/SymState_8h_source.html +1 -1
  188. package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +40 -40
  189. package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +6 -6
  190. package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +16 -16
  191. package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +13 -13
  192. package/SVF-doxygen/html/html/TCT_8cpp_source.html +22 -23
  193. package/SVF-doxygen/html/html/TCT_8h_source.html +21 -21
  194. package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +5 -5
  195. package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +8 -8
  196. package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +14 -14
  197. package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +6 -6
  198. package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +15 -15
  199. package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +6 -6
  200. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +1 -14
  201. package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +97 -97
  202. package/SVF-doxygen/html/html/VFGEdge_8h_source.html +2 -2
  203. package/SVF-doxygen/html/html/VFGNode_8h_source.html +8 -8
  204. package/SVF-doxygen/html/html/VFG_8cpp_source.html +72 -69
  205. package/SVF-doxygen/html/html/VFG_8h_source.html +57 -57
  206. package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +9 -9
  207. package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +24 -24
  208. package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +7 -7
  209. package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +5 -5
  210. package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +13 -13
  211. package/SVF-doxygen/html/html/WPAPass_8h_source.html +6 -6
  212. package/SVF-doxygen/html/html/WPASolver_8h_source.html +3 -3
  213. package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
  214. package/SVF-doxygen/html/html/WorkList_8h_source.html +2 -2
  215. package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
  216. package/SVF-doxygen/html/html/Z3Expr_8h_source.html +1 -1
  217. package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
  218. package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
  219. package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +3 -3
  220. package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +3 -3
  221. package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +2 -2
  222. package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
  223. package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +3 -3
  224. package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +2 -2
  225. package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
  226. package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +249 -250
  227. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +64 -66
  228. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +216 -217
  229. package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +15 -17
  230. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +259 -260
  231. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +16 -18
  232. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +271 -272
  233. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +12 -14
  234. package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +35 -35
  235. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +257 -258
  236. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +6 -8
  237. package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
  238. package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +3 -3
  239. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +164 -165
  240. package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +67 -69
  241. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
  242. package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +5 -5
  243. package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +2 -2
  244. package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +2 -2
  245. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +4 -4
  246. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +6 -6
  247. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +191 -192
  248. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +20 -22
  249. package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +185 -186
  250. package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +9 -11
  251. package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +1 -1
  252. package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
  253. package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +3 -3
  254. package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +2 -2
  255. package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +1 -1
  256. package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +189 -190
  257. package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +2 -4
  258. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +57 -57
  259. package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +11 -11
  260. package/SVF-doxygen/html/html/classSVF_1_1CSC.html +9 -9
  261. package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
  262. package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +1 -1
  263. package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
  264. package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +2 -2
  265. package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +1 -1
  266. package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
  267. package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +36 -36
  268. package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
  269. package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +5 -5
  270. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +153 -154
  271. package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +19 -21
  272. package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +2 -2
  273. package/SVF-doxygen/html/html/classSVF_1_1CondVar.html +1 -1
  274. package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +80 -80
  275. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +12 -12
  276. package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +120 -120
  277. package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +1 -1
  278. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +255 -256
  279. package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +52 -52
  280. package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
  281. package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +3 -3
  282. package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +4 -4
  283. package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +2 -2
  284. package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
  285. package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
  286. package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
  287. package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +88 -88
  288. package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +9 -9
  289. package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +21 -21
  290. package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +10 -10
  291. package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +35 -35
  292. package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +1 -1
  293. package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +12 -12
  294. package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +3 -3
  295. package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
  296. package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
  297. package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +2 -2
  298. package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +9 -9
  299. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +12 -12
  300. package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
  301. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +283 -284
  302. package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +3 -5
  303. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +249 -250
  304. package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +28 -30
  305. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +274 -275
  306. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +88 -90
  307. package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +31 -31
  308. package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +41 -42
  309. package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
  310. package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
  311. package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +4 -4
  312. package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +4 -4
  313. package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +3 -3
  314. package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +4 -4
  315. package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +5 -5
  316. package/SVF-doxygen/html/html/classSVF_1_1GenericGraph.html +44 -44
  317. package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +7 -7
  318. package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
  319. package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
  320. package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +3 -3
  321. package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
  322. package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
  323. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +4 -4
  324. package/SVF-doxygen/html/html/classSVF_1_1GrammarBase_1_1SymbolHash.html +1 -1
  325. package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +71 -67
  326. package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +22 -22
  327. package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +1 -1
  328. package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
  329. package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +5 -5
  330. package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +2 -2
  331. package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +60 -60
  332. package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +8 -8
  333. package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +1 -1
  334. package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +3 -3
  335. package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +2 -2
  336. package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
  337. package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
  338. package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +1 -1
  339. package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +9 -9
  340. package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +2 -2
  341. package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +1 -1
  342. package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +2 -2
  343. package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
  344. package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +3 -3
  345. package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +8 -8
  346. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +51 -51
  347. package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +5 -5
  348. package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
  349. package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +3 -3
  350. package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +15 -15
  351. package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +67 -67
  352. package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +19 -19
  353. package/SVF-doxygen/html/html/classSVF_1_1MHP.html +70 -71
  354. package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +108 -108
  355. package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
  356. package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
  357. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +16 -16
  358. package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +19 -19
  359. package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +55 -55
  360. package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +40 -40
  361. package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +9 -9
  362. package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
  363. package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +4 -4
  364. package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +52 -52
  365. package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +2 -2
  366. package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +3 -3
  367. package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +3 -3
  368. package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +9 -9
  369. package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +3 -3
  370. package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
  371. package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
  372. package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +6 -6
  373. package/SVF-doxygen/html/html/classSVF_1_1PCG.html +26 -26
  374. package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +5 -5
  375. package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +7 -7
  376. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +10 -10
  377. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
  378. package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +5 -5
  379. package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +13 -13
  380. package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +4 -4
  381. package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +3 -3
  382. package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +6 -6
  383. package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +6 -6
  384. package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
  385. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +120 -121
  386. package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +258 -276
  387. package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +14 -14
  388. package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +8 -8
  389. package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +23 -23
  390. package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +11 -11
  391. package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
  392. package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +1 -1
  393. package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +2 -2
  394. package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +1 -1
  395. package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
  396. package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +1 -1
  397. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +3 -3
  398. package/SVF-doxygen/html/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +1 -1
  399. package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +4 -4
  400. package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +97 -97
  401. package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +52 -52
  402. package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +8 -8
  403. package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +23 -23
  404. package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +12 -12
  405. package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +4 -4
  406. package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +79 -79
  407. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +255 -255
  408. package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +3 -3
  409. package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +9 -9
  410. package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +8 -8
  411. package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +33 -33
  412. package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +4 -4
  413. package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +7 -7
  414. package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +132 -132
  415. package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +20 -20
  416. package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
  417. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +103 -103
  418. package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +45 -45
  419. package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +11 -11
  420. package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +1 -1
  421. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +228 -229
  422. package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +5 -7
  423. package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +3 -3
  424. package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
  425. package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +2 -2
  426. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +71 -71
  427. package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +29 -29
  428. package/SVF-doxygen/html/html/classSVF_1_1TCT.html +59 -60
  429. package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
  430. package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
  431. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +5 -5
  432. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +26 -26
  433. package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +4 -4
  434. package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +1 -1
  435. package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +1 -1
  436. package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +1 -1
  437. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +221 -222
  438. package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +24 -26
  439. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
  440. package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +3 -3
  441. package/SVF-doxygen/html/html/classSVF_1_1VFCFLGraphBuilder.html +1 -1
  442. package/SVF-doxygen/html/html/classSVF_1_1VFG.html +168 -165
  443. package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
  444. package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
  445. package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
  446. package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +1 -1
  447. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +324 -325
  448. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +70 -72
  449. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +17 -17
  450. package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +3 -3
  451. package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +3 -3
  452. package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +5 -5
  453. package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +15 -15
  454. package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +3 -3
  455. package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +1 -1
  456. package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +1 -1
  457. package/SVF-doxygen/html/html/classllvm_1_1generic__bridge__gep__type__iterator.html +3 -3
  458. package/SVF-doxygen/html/html/functions_a.html +9 -12
  459. package/SVF-doxygen/html/html/functions_func.html +4 -4
  460. package/SVF-doxygen/html/html/functions_func_i.html +3 -3
  461. package/SVF-doxygen/html/html/functions_func_r.html +8 -8
  462. package/SVF-doxygen/html/html/functions_func_s.html +1 -1
  463. package/SVF-doxygen/html/html/functions_i.html +2 -2
  464. package/SVF-doxygen/html/html/functions_l.html +8 -8
  465. package/SVF-doxygen/html/html/functions_n.html +4 -4
  466. package/SVF-doxygen/html/html/functions_o.html +8 -8
  467. package/SVF-doxygen/html/html/functions_p.html +14 -16
  468. package/SVF-doxygen/html/html/functions_r.html +10 -12
  469. package/SVF-doxygen/html/html/functions_s.html +7 -7
  470. package/SVF-doxygen/html/html/functions_type.html +0 -3
  471. package/SVF-doxygen/html/html/functions_v.html +6 -6
  472. package/SVF-doxygen/html/html/functions_w.html +11 -11
  473. package/SVF-doxygen/html/html/namespaceSVF.html +175 -193
  474. package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +55 -55
  475. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +44 -44
  476. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +46 -46
  477. package/SVF-doxygen/html/html/namespacemembers_s.html +0 -3
  478. package/SVF-doxygen/html/html/namespacemembers_type_s.html +0 -3
  479. package/SVF-doxygen/html/html/search/all_1.js +4 -5
  480. package/SVF-doxygen/html/html/search/all_10.js +6 -6
  481. package/SVF-doxygen/html/html/search/all_11.js +10 -10
  482. package/SVF-doxygen/html/html/search/all_12.js +5 -6
  483. package/SVF-doxygen/html/html/search/all_13.js +4 -4
  484. package/SVF-doxygen/html/html/search/all_15.js +3 -3
  485. package/SVF-doxygen/html/html/search/all_16.js +2 -2
  486. package/SVF-doxygen/html/html/search/all_9.js +2 -2
  487. package/SVF-doxygen/html/html/search/all_c.js +5 -5
  488. package/SVF-doxygen/html/html/search/all_e.js +2 -2
  489. package/SVF-doxygen/html/html/search/all_f.js +1 -1
  490. package/SVF-doxygen/html/html/search/functions_0.js +4 -4
  491. package/SVF-doxygen/html/html/search/functions_10.js +8 -8
  492. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  493. package/SVF-doxygen/html/html/search/functions_8.js +1 -1
  494. package/SVF-doxygen/html/html/search/functions_f.js +1 -1
  495. package/SVF-doxygen/html/html/search/typedefs_0.js +0 -1
  496. package/SVF-doxygen/html/html/search/typedefs_10.js +0 -1
  497. package/SVF-doxygen/html/html/search/variables_13.js +2 -2
  498. package/SVF-doxygen/html/html/search/variables_9.js +1 -1
  499. package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +4 -4
  500. package/SVF-doxygen/html/html/structSVF_1_1Hash.html +3 -3
  501. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
  502. package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html +5 -5
  503. package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter.html +1 -1
  504. package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter_3_01T_00_018_01_4.html +1 -1
  505. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__convert__val.html +5 -5
  506. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__convert__val_3_01To_00_01FromTy_00_01FromTy_01_4.html +3 -3
  507. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty.html +2 -2
  508. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl.html +2 -2
  509. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01From_01_5_01_4.html +2 -2
  510. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_4.html +2 -2
  511. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_5_01_4.html +2 -2
  512. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_5const_01_4.html +2 -2
  513. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01std_1_1unique__ptr_3_01From_01_4_01_4.html +4 -4
  514. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__wrap.html +2 -2
  515. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__wrap_3_01To_00_01FromTy_00_01FromTy_01_4.html +2 -2
  516. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__simple__type.html +2 -2
  517. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl.html +3 -3
  518. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl_3_01To_00_01From_00_01typename_01std_1_1enable__if_3_01std_1_1101a002941fb8432b76e90258f1ec6b7.html +3 -3
  519. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl.html +3 -3
  520. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01From_01_5_01_4.html +3 -3
  521. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01From_01_5const_01_4.html +3 -3
  522. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01From_01_4.html +3 -3
  523. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01From_01_5_01_4.html +3 -3
  524. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01From_01_5const_01_4.html +3 -3
  525. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01std_1_1unique__ptr_3_01From_01_4_01_4.html +3 -3
  526. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__wrap.html +5 -5
  527. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__wrap_3_01To_00_01FromTy_00_01FromTy_01_4.html +3 -3
  528. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1simplify__type.html +4 -4
  529. package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1simplify__type_3_01const_01From_01_4.html +6 -6
  530. package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +15 -15
  531. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +3 -3
  532. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +17 -17
  533. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +17 -17
  534. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
  535. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +2 -2
  536. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +4 -4
  537. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +1 -1
  538. package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +21 -21
  539. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_4_01_4.html +14 -14
  540. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4.html +1 -1
  541. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4.html +1 -1
  542. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1GenericGraph_3_01NodeTy_00_01EdgeTy_01_4_01_5_4.html +20 -20
  543. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_01_4.html +16 -16
  544. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4.html +1 -1
  545. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1ICFG_01_5_01_4.html +2 -2
  546. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFGNode_01_5_01_4.html +1 -1
  547. package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1VFG_01_5_01_4.html +2 -2
  548. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
  549. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CondStdSet_3_01Element_01_4_01_4.html +1 -1
  550. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtDPItem_01_4.html +1 -1
  551. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
  552. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  553. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
  554. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html +1 -1
  555. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +1 -1
  556. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
  557. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +6 -6
  558. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1StmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
  559. package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SymState_01_4.html +1 -1
  560. package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
  561. package/SVF-doxygen/html/html/svf-ex_8cpp.html +8 -8
  562. package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +9 -9
  563. package/include/Graphs/ConsGNode.h +48 -24
  564. package/include/Graphs/GenericGraph.h +4 -2
  565. package/include/Graphs/ICFG.h +3 -2
  566. package/include/Graphs/SVFGOPT.h +7 -7
  567. package/include/Graphs/VFG.h +3 -2
  568. package/include/MSSA/MemSSA.h +6 -6
  569. package/include/MemoryModel/PersistentPointsToDS.h +1 -1
  570. package/include/MemoryModel/PointerAnalysis.h +0 -1
  571. package/include/MemoryModel/SVFIR.h +3 -1
  572. package/include/SABER/SaberCondAllocator.h +7 -2
  573. package/include/SVF-FE/BasicTypes.h +7 -1
  574. package/include/SVF-FE/IRAnnotator.h +3 -1
  575. package/include/Util/BasicTypes.h +1 -22
  576. package/include/Util/Casting.h +1 -0
  577. package/include/Util/SVFBasicTypes.h +0 -5
  578. package/include/Util/SparseBitVector.h +2 -0
  579. package/lib/DDA/ContextDDA.cpp +8 -5
  580. package/lib/Graphs/ConsG.cpp +46 -23
  581. package/lib/Graphs/ICFG.cpp +8 -4
  582. package/lib/Graphs/VFG.cpp +6 -3
  583. package/lib/MSSA/MemRegion.cpp +1 -0
  584. package/lib/MTA/MHP.cpp +4 -4
  585. package/lib/MTA/TCT.cpp +2 -1
  586. package/lib/MemoryModel/PointerAnalysisImpl.cpp +3 -1
  587. package/lib/SABER/SaberCondAllocator.cpp +3 -1
  588. package/lib/SVF-FE/CHGBuilder.cpp +2 -2
  589. package/lib/SVF-FE/SVFIRBuilder.cpp +4 -1
  590. package/lib/WPA/AndersenSFR.cpp +3 -0
  591. package/lib/WPA/TypeAnalysis.cpp +1 -0
  592. package/package.json +1 -1
@@ -66,12 +66,12 @@ $(function() {
66
66
  <div class="title">SVFUtil.h</div> </div>
67
67
  </div><!--header-->
68
68
  <div class="contents">
69
- <a href="SVFUtil_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- SVFUtil.h -- Analysis helper functions----------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * SVFUtil.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Apr 11, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei Sui, dye</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef AnalysisUtil_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define AnalysisUtil_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="fastcluster_8h.html">FastCluster/fastcluster.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LLVMModule_8h.html">SVF-FE/LLVMModule.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Util_2BasicTypes_8h.html">Util/BasicTypes.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PointsTo_8h.html">MemoryModel/PointsTo.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;time.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> * Util class to assist pointer analysis</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVFUtil.html">SVFUtil</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61"> 49</a></span>&#160;<span class="keyword">inline</span> std::ostream &amp;<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>()</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> std::cout;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc"> 55</a></span>&#160;<span class="keyword">inline</span> std::ostream &amp;<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">errs</a>()</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> std::cerr;</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;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">dumpSet</a>(<a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> To, <a class="code" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</a> &amp; O = <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>());</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">dumpSet</a>(<a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> To, <a class="code" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</a> &amp; O = <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>());</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#abd0a9ee845a455f9354d24a8b84a0bb3">dumpPointsToSet</a>(<span class="keywordtype">unsigned</span> node, <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> To) ;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab30a35713852a0a525c52ae5dd463442">dumpSparseSet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; To);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a4a15cc5570eed12dd6ee766213e11d61">dumpAliasSet</a>(<span class="keywordtype">unsigned</span> node, <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> To) ;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">sucMsg</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6c06020737f7dff22a666b75c28c5e7d">wrnMsg</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6c66553e2559eebfe4f98c0c7ec4b08">bugMsg1</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a054c3e668ce8b265bbc5d923f6243ce7">bugMsg2</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aabbca7c40d2da6bd2374ea53d5de0553">bugMsg3</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6cfe12afa463d0ceddeee11540c33ab3">reportMemoryUsageKB</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; infor, <a class="code" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</a> &amp; O = <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>());</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a630ff9c47f58f9b8df7c8a2b3711477c">getMemoryUsageKB</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>* vmrss_kb, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>* vmsize_kb);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a0d7588578735679773493ff2d5e458e1">increaseStackSize</a>();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aa5ce14119a6e3b0b6022753ddd5890f3"> 105</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aa5ce14119a6e3b0b6022753ddd5890f3">cmpPts</a> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; lpts,<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; rpts)</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; <span class="keywordflow">if</span> (lpts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>() != rpts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>())</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> (lpts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>() &lt; rpts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>());</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> bit = lpts.<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>(), eit = lpts.<a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> rbit = rpts.<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>(), reit = rpts.<a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">for</span> (; bit != eit &amp;&amp; rbit != reit; bit++, rbit++)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span> (*bit != *rbit)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> (*bit &lt; *rbit);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;}</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a8f749354b7e882ef3e5bf5081fa715b5"> 123</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8f749354b7e882ef3e5bf5081fa715b5">cmpNodeBS</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; lpts,<span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; rpts)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span> (lpts.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>() != rpts.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>())</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> (lpts.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>() &lt; rpts.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>());</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> bit = lpts.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = lpts.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> rbit = rpts.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), reit = rpts.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">for</span> (; bit != eit &amp;&amp; rbit != reit; bit++, rbit++)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span> (*bit != *rbit)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> (*bit &lt; *rbit);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="structSVF_1_1SVFUtil_1_1equalPointsTo.html"> 141</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structSVF_1_1SVFUtil_1_1equalPointsTo.html">equalPointsTo</a></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="structSVF_1_1SVFUtil_1_1equalPointsTo.html#a4a7e42b2cca7e54766ce7657fefb91f9"> 143</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structSVF_1_1SVFUtil_1_1equalPointsTo.html#a4a7e42b2cca7e54766ce7657fefb91f9">operator()</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aa5ce14119a6e3b0b6022753ddd5890f3">SVFUtil::cmpPts</a>(lhs, rhs);</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;} <a class="code" href="namespaceSVF_1_1SVFUtil.html#a68302f07b13f6e1f39aace5699762c41">equalPointsTo</a>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="structSVF_1_1SVFUtil_1_1equalNodeBS.html"> 149</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structSVF_1_1SVFUtil_1_1equalNodeBS.html">equalNodeBS</a></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;{</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="structSVF_1_1SVFUtil_1_1equalNodeBS.html#a023a5352ff198ab9f2e0dbc2a5eadc9e"> 151</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structSVF_1_1SVFUtil_1_1equalNodeBS.html#a023a5352ff198ab9f2e0dbc2a5eadc9e">operator()</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8f749354b7e882ef3e5bf5081fa715b5">SVFUtil::cmpNodeBS</a>(lhs, rhs);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;} <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c2b39ae857d78ed9dda83880e703b0f">equalNodeBS</a>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a86ebab122895189be57637b84adc7642"> 157</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a86ebab122895189be57637b84adc7642">ptsToNodeBS</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;pts)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;{</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> nbs;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : pts) nbs.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(o);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">return</span> nbs;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a4740b14abf7d308e7806a0d6d6c42ee2"> 164</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">OrderedSet&lt;PointsTo, equalPointsTo&gt;</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a4740b14abf7d308e7806a0d6d6c42ee2">PointsToList</a>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#af4ceddbe4d57b24e80201bc895f73810">dumpPointsToList</a>(<span class="keyword">const</span> PointsToList&amp; ptl);</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"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ad2c53be5490882768d51aa894b37cbf1"> 167</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ad2c53be5490882768d51aa894b37cbf1">isIntrinsicFun</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func)</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; <span class="keywordflow">if</span> (func &amp;&amp; (func-&gt;getIntrinsicID() == llvm::Intrinsic::donothing ||</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; func-&gt;getIntrinsicID() == llvm::Intrinsic::dbg_addr ||</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; func-&gt;getIntrinsicID() == llvm::Intrinsic::dbg_declare ||</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; func-&gt;getIntrinsicID() == llvm::Intrinsic::dbg_label ||</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; func-&gt;getIntrinsicID() == llvm::Intrinsic::dbg_value))</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;}</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ab7f58caf27c30a1d414e06f60ca84d80"> 181</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab7f58caf27c30a1d414e06f60ca84d80">isIntrinsicInst</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;{</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">llvm::CallBase</a>* call = llvm::dyn_cast&lt;llvm::CallBase&gt;(inst))</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = call-&gt;getCalledFunction();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#ad2c53be5490882768d51aa894b37cbf1">isIntrinsicFun</a>(func))</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="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;}</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526"> 196</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">isCallSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst)</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="keywordflow">return</span> SVFUtil::isa&lt;CallBase&gt;(inst);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;}</div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a38bf8f7eaa18fc5a09711959b5417854"> 201</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">isCallSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;{</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = SVFUtil::dyn_cast&lt;Instruction&gt;(val))</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVFUtil::isCallSite</a>(inst);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91"> 209</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">isNonInstricCallSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst)</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;{</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab7f58caf27c30a1d414e06f60ca84d80">isIntrinsicInst</a>(inst))</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">isCallSite</a>(inst);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;}</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9"> 217</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">getLLVMCallSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;{</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">isCallSite</a>(inst) &amp;&amp; <span class="stringliteral">&quot;not a callsite?&quot;</span>);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs(const_cast&lt;Instruction*&gt;(inst));</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> cs;</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;</div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aa09c2b313ff1c1abcc1e5cb3f9ef46a5"> 225</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#aa09c2b313ff1c1abcc1e5cb3f9ef46a5">getFunction</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>)</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;{</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(name);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;}</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#af54e70082388bbd70868250aaa0bc86b"> 231</a></span>&#160;<span class="keyword">inline</span> std::vector&lt;std::string&gt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#af54e70082388bbd70868250aaa0bc86b">split</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; s, <span class="keywordtype">char</span> seperator)</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;{</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; std::vector&lt;std::string&gt; output;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; std::string::size_type prev_pos = 0, pos = 0;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">while</span>((pos = s.find(seperator, pos)) != std::string::npos)</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; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> substring( s.substr(prev_pos, pos-prev_pos) );</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; output.push_back(substring);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; prev_pos = ++pos;</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; output.push_back(s.substr(prev_pos, pos-prev_pos));</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> output;</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="line"><a name="l00246"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a4b55d5252da1f316f505cf6ce2078b28"> 246</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#a4b55d5252da1f316f505cf6ce2078b28">getGlobalRep</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;{</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* gvar = SVFUtil::dyn_cast&lt;GlobalVariable&gt;(val))</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;hasGlobalRep(gvar))</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; val = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a757bf149437cce22163c764ea9993e12">getGlobalRep</a>(gvar);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> val;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;}</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637"> 257</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637">getDefFunForMultipleModule</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun)</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;{</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">if</span>(fun == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html">LLVMModuleSet</a>* llvmModuleset = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfFun = llvmModuleset-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(fun);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">if</span> (fun-&gt;isDeclaration() &amp;&amp; llvmModuleset-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a32558da64f03452c502ec57d1e106427">hasDefinition</a>(fun))</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; svfFun = llvmModuleset-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a6e670254385050b9a5e612f881b07b9c">getDefinition</a>(fun));</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> svfFun;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;}</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d"> 269</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;{</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="comment">// FIXME: do we need to strip-off the casts here to discover more library functions</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *callee = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(cs.<a class="code" href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">getCalledValue</a>()-&gt;stripPointerCasts());</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637">getDefFunForMultipleModule</a>(callee);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;}</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#af26c7636bfef7ab2a36cccdcf12c3538"> 276</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;{</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">isCallSite</a>(inst))</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs(const_cast&lt;Instruction*&gt;(inst));</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;}</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a86c1c8bdfc1075c07c631525555194d2">getSourceLocOfFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *F);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* value);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Data&gt;</div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a36c91f952a69875c33d4bd0b05a27ff2"> 294</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a36c91f952a69875c33d4bd0b05a27ff2">mergePtsOccMaps</a>(<a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;Data, unsigned&gt;</a> &amp;to, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;Data, unsigned&gt;</a> from)</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;{</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">typename</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;Data, unsigned&gt;::value_type</a> &amp;ptocc : from)</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; to[ptocc.first] += ptocc.second;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;}</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a14a4c5124f2fd03ca3d898e2acd54160">hclustMethodToString</a>(<a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dd">hclust_fast_methods</a> method);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet&gt;</div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aeecfaf26800dcebf0b079395126bc7f7"> 307</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aeecfaf26800dcebf0b079395126bc7f7">insertKey</a>(<span class="keyword">const</span> Key &amp;key, KeySet &amp;keySet)</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;{</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; keySet.insert(key);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;}</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a4f75b8313eb2b1e5a4c798a01cb99471"> 313</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aeecfaf26800dcebf0b079395126bc7f7">insertKey</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> &amp;key, <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> &amp;keySet)</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;{</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; keySet.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(key);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;}</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet&gt;</div><div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aee74719d33695e4da6fee5fc83f745d9"> 320</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aee74719d33695e4da6fee5fc83f745d9">removeKey</a>(<span class="keyword">const</span> Key &amp;key, KeySet &amp;keySet)</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;{</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; keySet.erase(key);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;}</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aa59af7fc01a534662b3b1524186ef97e"> 326</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aee74719d33695e4da6fee5fc83f745d9">removeKey</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> &amp;key, <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> &amp;keySet)</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;{</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; keySet.<a class="code" href="classSVF_1_1SparseBitVector.html#ad5337b5aeed50f8b7ffd56b14ee25c9f">reset</a>(key);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;}</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#add4cd21115988f9f5eec12e268ddf1d9">timeLimitReached</a>(<span class="keywordtype">int</span> signum);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a757815a2c758695176120509ceb0ce70">startAnalysisLimitTimer</a>(<span class="keywordtype">unsigned</span> timeLimit);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a168f7f7a3a8c70dbf2b5b4269cd4c7c5">stopAnalysisLimitTimer</a>(<span class="keywordtype">bool</span> limitTimerSet);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400"> 346</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;{</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; <a class="code" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#a21f45c806672255c044d39490990eae2">is_ext</a>(fun);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;}</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a19b96a872d9096037f20e25122e469ea">isHeapAllocExtFunViaRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;{</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; (<a class="code" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#a0d865c55681a3b4a9bb965fd0200029d">is_alloc</a>(fun)</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; || <a class="code" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4">is_realloc</a>(fun));</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;}</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ab4a69173f50ebe48e69103befe516245"> 360</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab4a69173f50ebe48e69103befe516245">isHeapAllocExtFunViaArg</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;{</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; <a class="code" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#a158e7da51d45b746e067dc40e912c477">is_arg_alloc</a>(fun);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;}</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b"> 367</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">getHeapAllocHoldingArgPosition</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;{</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#a68939c789d0530151a4e79e79317531a">get_alloc_arg_pos</a>(fun);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;}</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a97c74c642ad43d955ac8a3f3ad8907b4">isReallocExtFun</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;{</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; (<a class="code" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4">is_realloc</a>(fun));</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;}</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a3495236e22e4bc6404b6ac352060439c">isDeallocExtFun</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;{</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; (<a class="code" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#aeef27a358ba1815760c893bd2d2335b1">is_dealloc</a>(fun));</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;}</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a1bc9bb7bd6c9682debf3ffab7182abf5">isStaticExtFun</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;{</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; <a class="code" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#ae20ea24cce02de87d89a2d0b773a2357">has_static</a>(fun);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;}</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">isProgEntryFunction</a> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * fun)</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;{</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; fun-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">getName</a>() == <span class="stringliteral">&quot;main&quot;</span>;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;}</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a6f82e03d880257527bd9cb5978e05604"> 406</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6f82e03d880257527bd9cb5978e05604">getProgFunction</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule, <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; funName)</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;{</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#afcf2978f32e15127fb093405dc17d7f1">SVFModule::const_iterator</a> it = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a5486697889c6cca4f9f426650defc255">begin</a>(), eit = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a58d03edb6ff85f4943135478f113df31">end</a>(); it != eit; ++it)</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; {</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun = *it;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">if</span> (fun-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">getName</a>()==funName)</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">return</span> fun;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; }</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;}</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aa8017e3e5100b3f63ee338b66118d266"> 418</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#aa8017e3e5100b3f63ee338b66118d266">getProgEntryFunction</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule)</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;{</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#afcf2978f32e15127fb093405dc17d7f1">SVFModule::const_iterator</a> it = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a5486697889c6cca4f9f426650defc255">begin</a>(), eit = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a58d03edb6ff85f4943135478f113df31">end</a>(); it != eit; ++it)</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; {</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun = *it;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">isProgEntryFunction</a>(fun))</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">return</span> (fun);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;}</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div><div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aec7ee60be22e8f9397db108131696d57"> 431</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aec7ee60be22e8f9397db108131696d57">isProgExitFunction</a> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * fun)</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;{</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; (fun-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">getName</a>() == <span class="stringliteral">&quot;exit&quot;</span> ||</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; fun-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">getName</a>() == <span class="stringliteral">&quot;__assert_rtn&quot;</span> ||</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; fun-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">getName</a>() == <span class="stringliteral">&quot;__assert_fail&quot;</span> );</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;}</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;</div><div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a9e85d445e8b7b205134acd3874bba388"> 439</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9e85d445e8b7b205134acd3874bba388">isConstantData</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;{</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;ConstantData&gt;(val)</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; || SVFUtil::isa&lt;ConstantAggregate&gt;(val)</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; || SVFUtil::isa&lt;MetadataAsValue&gt;(val)</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; || SVFUtil::isa&lt;BlockAddress&gt;(val);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;}</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;</div><div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ac840e43fa58a90099de99a1953f091ac"> 449</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac840e43fa58a90099de99a1953f091ac">getForkedFun</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;{</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a7ddc0c71aeae315af21972a4905b3456">getForkedFun</a>(cs);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;}</div><div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a4cc8c549625712e006079642c656ec83"> 453</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac840e43fa58a90099de99a1953f091ac">getForkedFun</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;{</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a7ddc0c71aeae315af21972a4905b3456">getForkedFun</a>(inst);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;}</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a817a63e8330530cb18e077556f7ce518">type2String</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ab302ca3fcbde9bd1a7d9d5d837a69c23"> 462</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab302ca3fcbde9bd1a7d9d5d837a69c23">isAnAllocationWraper</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>*)</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;{</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;}</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;</div><div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ad98299033577f1e7f4e9bc73dff3b253"> 468</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#ad98299033577f1e7f4e9bc73dff3b253">getLLVMFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;{</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fun = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(val-&gt;stripPointerCasts());</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">return</span> fun;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;}</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aad27a96075234ad2182a84e0e9d31a45"> 474</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;{</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs));</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;}</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div><div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#af3e5fd7ffce966575ebf7c7e653b0919"> 479</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;{</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(inst));</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;}</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;</div><div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76"> 484</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">isHeapAllocExtCallViaArg</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;{</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab4a69173f50ebe48e69103befe516245">isHeapAllocExtFunViaArg</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs));</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;}</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a0bde3acf22383eac5bbf4e2c065a2226"> 489</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">isHeapAllocExtCallViaArg</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;{</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab4a69173f50ebe48e69103befe516245">isHeapAllocExtFunViaArg</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(inst));</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;}</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;</div><div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35"> 495</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">isHeapAllocExtCallViaRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;{</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordtype">bool</span> isPtrTy = cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>()-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a19b96a872d9096037f20e25122e469ea">isHeapAllocExtFunViaRet</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs));</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;}</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;</div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a24514d87685f2258201f0de15d220bbc"> 501</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">isHeapAllocExtCallViaRet</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;{</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordtype">bool</span> isPtrTy = inst-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a19b96a872d9096037f20e25122e469ea">isHeapAllocExtFunViaRet</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(inst));</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;}</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;</div><div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75"> 507</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;{</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">isHeapAllocExtCallViaRet</a>(cs) || <a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">isHeapAllocExtCallViaArg</a>(cs);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;}</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div><div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a1ebbf43e294c3f94a2a7d5c56759bbba"> 512</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;{</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">isHeapAllocExtCallViaRet</a>(inst) || <a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">isHeapAllocExtCallViaArg</a>(inst);</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;}</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div><div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a298b6366145ed871faf3d01420ae5d20"> 518</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">getHeapAllocHoldingArgPosition</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;{</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">getHeapAllocHoldingArgPosition</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs));</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;}</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a5af986a7698e72272707cc2a466d5ae7"> 523</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">getHeapAllocHoldingArgPosition</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;{</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">getHeapAllocHoldingArgPosition</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(inst));</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;}</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a6740e7686ba111ae525c6c093cbbaf46"> 529</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6740e7686ba111ae525c6c093cbbaf46">isReallocExtCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;{</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordtype">bool</span> isPtrTy = cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>()-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a97c74c642ad43d955ac8a3f3ad8907b4">isReallocExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs));</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;}</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div><div class="line"><a name="l00535"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a42748153e4845f3eee0ca58a1e151f97"> 535</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6740e7686ba111ae525c6c093cbbaf46">isReallocExtCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;{</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keywordtype">bool</span> isPtrTy = inst-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a97c74c642ad43d955ac8a3f3ad8907b4">isReallocExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(inst));</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;}</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div><div class="line"><a name="l00542"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a1f52a7f183f1eec7c4db7e4e54fa5e2c"> 542</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a1f52a7f183f1eec7c4db7e4e54fa5e2c">isDeallocExtCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;{</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a3495236e22e4bc6404b6ac352060439c">isDeallocExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs));</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;}</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a9973c1326717326b26ec1ea21ebd8da5"> 547</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a1f52a7f183f1eec7c4db7e4e54fa5e2c">isDeallocExtCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;{</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a3495236e22e4bc6404b6ac352060439c">isDeallocExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(inst));</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;}</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf"> 553</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">isStaticExtCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;{</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordtype">bool</span> isPtrTy = cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>()-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a1bc9bb7bd6c9682debf3ffab7182abf5">isStaticExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs));</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;}</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aab8ac16a9a2961f98001ab94aeaedf64"> 559</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">isStaticExtCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;{</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordtype">bool</span> isPtrTy = inst-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a1bc9bb7bd6c9682debf3ffab7182abf5">isStaticExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(inst));</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;}</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;</div><div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a61ed4bb80d88b0f8dbc02535c224fdfb"> 568</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a61ed4bb80d88b0f8dbc02535c224fdfb">isHeapAllocOrStaticExtCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;{</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">isStaticExtCall</a>(cs) || <a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(cs);</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;}</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a0c8afe88cb58a2ac484c3bc4dd15ece9"> 573</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a61ed4bb80d88b0f8dbc02535c224fdfb">isHeapAllocOrStaticExtCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;{</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">isStaticExtCall</a>(inst) || <a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(inst);</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;}</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div><div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a5c2abeb363081381c3dc939ab511e3f0"> 581</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c2abeb363081381c3dc939ab511e3f0">isThreadForkCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;{</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a9da276dca5092d18f4f22d32e5ab6cdf">isTDFork</a>(cs);</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;}</div><div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a834afc0042c24ed5a1dd00cadc1f00c3"> 585</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c2abeb363081381c3dc939ab511e3f0">isThreadForkCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;{</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a9da276dca5092d18f4f22d32e5ab6cdf">isTDFork</a>(inst);</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;}</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a28fbb7cc51eb7e25d88f43e3eb1f30fb"> 593</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28fbb7cc51eb7e25d88f43e3eb1f30fb">isHareParForCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;{</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a86d75b7e3570337e484397e60f97d88e">isHareParFor</a>(cs);</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;}</div><div class="line"><a name="l00597"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a9b37c6fe1232ebc35ffa052bd392e2e8"> 597</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28fbb7cc51eb7e25d88f43e3eb1f30fb">isHareParForCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;{</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a86d75b7e3570337e484397e60f97d88e">isHareParFor</a>(inst);</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;}</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a194a8cf292726bd6cd54307b555c068a"> 605</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a194a8cf292726bd6cd54307b555c068a">isThreadJoinCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;{</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a8cc5f9ff6039392ce1471cd830973c44">isTDJoin</a>(cs);</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;}</div><div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a14793b41b05439a8a82fdce02e0587d5"> 609</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a194a8cf292726bd6cd54307b555c068a">isThreadJoinCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;{</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a8cc5f9ff6039392ce1471cd830973c44">isTDJoin</a>(inst);</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;}</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div><div class="line"><a name="l00617"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a3af5073a1cdc000678f7e4bbc943f5d5"> 617</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a3af5073a1cdc000678f7e4bbc943f5d5">isThreadExitCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;{</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#ae87d129560d7015966336f06a516db23">isTDExit</a>(cs);</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;}</div><div class="line"><a name="l00621"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aae025d6727ef34fbeaa7ad48a4dabdcd"> 621</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a3af5073a1cdc000678f7e4bbc943f5d5">isThreadExitCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;{</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#ae87d129560d7015966336f06a516db23">isTDExit</a>(inst);</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;}</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div><div class="line"><a name="l00629"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a5f3ecd0770991b6e84afe47a3934f0d2"> 629</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5f3ecd0770991b6e84afe47a3934f0d2">isLockAquireCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;{</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a9db4df7968ec179e5012794c58fdee70">isTDAcquire</a>(cs);</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;}</div><div class="line"><a name="l00633"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a343dae805a34d102b9c1b96f173468df"> 633</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5f3ecd0770991b6e84afe47a3934f0d2">isLockAquireCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;{</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a9db4df7968ec179e5012794c58fdee70">isTDAcquire</a>(inst);</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;}</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div><div class="line"><a name="l00641"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a1241ef1c19df14f7db0bd62dd68f14f9"> 641</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a1241ef1c19df14f7db0bd62dd68f14f9">isLockReleaseCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;{</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a38adae633d5aceddcca3b3a23ad66db9">isTDRelease</a>(cs);</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;}</div><div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a84ac49c70252036a957694f2cf05ae2c"> 645</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a1241ef1c19df14f7db0bd62dd68f14f9">isLockReleaseCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;{</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a38adae633d5aceddcca3b3a23ad66db9">isTDRelease</a>(inst);</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;}</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;</div><div class="line"><a name="l00653"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ad09ba410acbbaee2aac9dd406c3cf01a"> 653</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ad09ba410acbbaee2aac9dd406c3cf01a">isBarrierWaitCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;{</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a0ff50b4312b9aa2c7ebd00e9a40a2668">isTDBarWait</a>(cs);</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;}</div><div class="line"><a name="l00657"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a0a7fc57e1f5cec705e310a4bb72cba94"> 657</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ad09ba410acbbaee2aac9dd406c3cf01a">isBarrierWaitCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;{</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a0ff50b4312b9aa2c7ebd00e9a40a2668">isTDBarWait</a>(inst);</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;}</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;</div><div class="line"><a name="l00665"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aaeeb386d80b51d729322317065606454"> 665</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#aaeeb386d80b51d729322317065606454">getActualParmAtForkSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;{</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a6bc40bc0b35c23e9d1874c844511449d">getActualParmAtForkSite</a>(cs);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;}</div><div class="line"><a name="l00669"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a01119ea4e3a10ebecdef4d390a1c4c88"> 669</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#aaeeb386d80b51d729322317065606454">getActualParmAtForkSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;{</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a6bc40bc0b35c23e9d1874c844511449d">getActualParmAtForkSite</a>(inst);</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;}</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;</div><div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ab048cbce6e4f5a3d6ff90da3565220ff"> 677</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab048cbce6e4f5a3d6ff90da3565220ff">getTaskFuncAtHareParForSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;{</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#afeedd6e518af76fa9e7142af8899b2f5">getTaskFuncAtHareParForSite</a>(cs);</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;}</div><div class="line"><a name="l00681"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a111fa1ecf72adbd2e0ff27e922f0d34a"> 681</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab048cbce6e4f5a3d6ff90da3565220ff">getTaskFuncAtHareParForSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;{</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#afeedd6e518af76fa9e7142af8899b2f5">getTaskFuncAtHareParForSite</a>(inst);</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;}</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;</div><div class="line"><a name="l00689"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ad3471260b66bdd7e6b790ad2a94fe7ce"> 689</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#ad3471260b66bdd7e6b790ad2a94fe7ce">getTaskDataAtHareParForSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;{</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a58cf56e35be873a5a26c5eb0d9b5c9b3">getTaskDataAtHareParForSite</a>(cs);</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;}</div><div class="line"><a name="l00693"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a5f3dd36ee492b60039928a86519518a5"> 693</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#ad3471260b66bdd7e6b790ad2a94fe7ce">getTaskDataAtHareParForSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;{</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a58cf56e35be873a5a26c5eb0d9b5c9b3">getTaskDataAtHareParForSite</a>(inst);</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;}</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div><div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ab87fef7b10465d3e635643fcb93b95a7"> 699</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">isProgEntryFunction</a> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> * fun)</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;{</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; fun-&gt;getName() == <span class="stringliteral">&quot;main&quot;</span>;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;}</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;</div><div class="line"><a name="l00705"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a6528edf9a1750df4a84d1a60d4d0bbe4"> 705</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6528edf9a1750df4a84d1a60d4d0bbe4">isProgExitCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;{</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aec7ee60be22e8f9397db108131696d57">isProgExitFunction</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs));</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;}</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;</div><div class="line"><a name="l00710"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a68b531ca4077e71dcc6d085e47a9730b"> 710</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6528edf9a1750df4a84d1a60d4d0bbe4">isProgExitCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;{</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aec7ee60be22e8f9397db108131696d57">isProgExitFunction</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(inst));</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;}</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;constexpr <span class="keyword">typename</span> <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">std::remove_reference&lt;T&gt;::type</a> &amp;&amp;</div><div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016"> 717</a></span>&#160;<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">move</a>(T &amp;&amp;t) noexcept</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;{</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(t);</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;}</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;} <span class="comment">// End namespace SVFUtil</span></div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* AnalysisUtil_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00534">SparseBitVector.h:534</a></div></div>
69
+ <a href="SVFUtil_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//===- SVFUtil.h -- Analysis helper functions----------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// Copyright (C) &lt;2013-2017&gt; &lt;Yulei Sui&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * SVFUtil.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * Created on: Apr 11, 2013</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * Author: Yulei Sui, dye</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#ifndef AnalysisUtil_H_</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#define AnalysisUtil_H_</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="fastcluster_8h.html">FastCluster/fastcluster.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="LLVMModule_8h.html">SVF-FE/LLVMModule.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="Util_2BasicTypes_8h.html">Util/BasicTypes.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="PointsTo_8h.html">MemoryModel/PointsTo.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;time.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment"> * Util class to assist pointer analysis</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceSVFUtil.html">SVFUtil</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61"> 49</a></span>&#160;<span class="keyword">inline</span> std::ostream &amp;<a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>()</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> std::cout;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc"> 55</a></span>&#160;<span class="keyword">inline</span> std::ostream &amp;<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">errs</a>()</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> std::cerr;</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;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">dumpSet</a>(<a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> To, <a class="code" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</a> &amp; O = <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>());</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">dumpSet</a>(<a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> To, <a class="code" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</a> &amp; O = <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>());</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#abd0a9ee845a455f9354d24a8b84a0bb3">dumpPointsToSet</a>(<span class="keywordtype">unsigned</span> node, <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> To) ;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab30a35713852a0a525c52ae5dd463442">dumpSparseSet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; To);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a4a15cc5570eed12dd6ee766213e11d61">dumpAliasSet</a>(<span class="keywordtype">unsigned</span> node, <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> To) ;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">sucMsg</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6c06020737f7dff22a666b75c28c5e7d">wrnMsg</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">writeWrnMsg</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">errMsg</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#af6c66553e2559eebfe4f98c0c7ec4b08">bugMsg1</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a054c3e668ce8b265bbc5d923f6243ce7">bugMsg2</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aabbca7c40d2da6bd2374ea53d5de0553">bugMsg3</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">pasMsg</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> msg);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6cfe12afa463d0ceddeee11540c33ab3">reportMemoryUsageKB</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; infor, <a class="code" href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">OutStream</a> &amp; O = <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>());</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a630ff9c47f58f9b8df7c8a2b3711477c">getMemoryUsageKB</a>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>* vmrss_kb, <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a>* vmsize_kb);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a0d7588578735679773493ff2d5e458e1">increaseStackSize</a>();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aa5ce14119a6e3b0b6022753ddd5890f3"> 105</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aa5ce14119a6e3b0b6022753ddd5890f3">cmpPts</a> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; lpts,<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; rpts)</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; <span class="keywordflow">if</span> (lpts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>() != rpts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>())</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> (lpts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>() &lt; rpts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>());</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> bit = lpts.<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>(), eit = lpts.<a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> rbit = rpts.<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>(), reit = rpts.<a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">for</span> (; bit != eit &amp;&amp; rbit != reit; bit++, rbit++)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span> (*bit != *rbit)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> (*bit &lt; *rbit);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;}</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a8f749354b7e882ef3e5bf5081fa715b5"> 123</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8f749354b7e882ef3e5bf5081fa715b5">cmpNodeBS</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; lpts,<span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; rpts)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span> (lpts.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>() != rpts.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>())</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> (lpts.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>() &lt; rpts.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>());</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> bit = lpts.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), eit = lpts.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">NodeBS::iterator</a> rbit = rpts.<a class="code" href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">begin</a>(), reit = rpts.<a class="code" href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">end</a>();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">for</span> (; bit != eit &amp;&amp; rbit != reit; bit++, rbit++)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span> (*bit != *rbit)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> (*bit &lt; *rbit);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="structSVF_1_1SVFUtil_1_1equalPointsTo.html"> 141</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structSVF_1_1SVFUtil_1_1equalPointsTo.html">equalPointsTo</a></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="structSVF_1_1SVFUtil_1_1equalPointsTo.html#a4a7e42b2cca7e54766ce7657fefb91f9"> 143</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structSVF_1_1SVFUtil_1_1equalPointsTo.html#a4a7e42b2cca7e54766ce7657fefb91f9">operator()</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>&amp; rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aa5ce14119a6e3b0b6022753ddd5890f3">SVFUtil::cmpPts</a>(lhs, rhs);</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;} <a class="code" href="namespaceSVF_1_1SVFUtil.html#a68302f07b13f6e1f39aace5699762c41">equalPointsTo</a>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="structSVF_1_1SVFUtil_1_1equalNodeBS.html"> 149</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structSVF_1_1SVFUtil_1_1equalNodeBS.html">equalNodeBS</a></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;{</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="structSVF_1_1SVFUtil_1_1equalNodeBS.html#a023a5352ff198ab9f2e0dbc2a5eadc9e"> 151</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structSVF_1_1SVFUtil_1_1equalNodeBS.html#a023a5352ff198ab9f2e0dbc2a5eadc9e">operator()</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>&amp; rhs)<span class="keyword"> const</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="keyword"> </span>{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8f749354b7e882ef3e5bf5081fa715b5">SVFUtil::cmpNodeBS</a>(lhs, rhs);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;} <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c2b39ae857d78ed9dda83880e703b0f">equalNodeBS</a>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a86ebab122895189be57637b84adc7642"> 157</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a86ebab122895189be57637b84adc7642">ptsToNodeBS</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &amp;pts)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;{</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> nbs;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> o : pts) nbs.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(o);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">return</span> nbs;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a4740b14abf7d308e7806a0d6d6c42ee2"> 164</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">OrderedSet&lt;PointsTo, equalPointsTo&gt;</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a4740b14abf7d308e7806a0d6d6c42ee2">PointsToList</a>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#af4ceddbe4d57b24e80201bc895f73810">dumpPointsToList</a>(<span class="keyword">const</span> PointsToList&amp; ptl);</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"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ad2c53be5490882768d51aa894b37cbf1"> 167</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ad2c53be5490882768d51aa894b37cbf1">isIntrinsicFun</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func)</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; <span class="keywordflow">if</span> (func &amp;&amp; (func-&gt;getIntrinsicID() == llvm::Intrinsic::donothing ||</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; func-&gt;getIntrinsicID() == llvm::Intrinsic::dbg_addr ||</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; func-&gt;getIntrinsicID() == llvm::Intrinsic::dbg_declare ||</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; func-&gt;getIntrinsicID() == llvm::Intrinsic::dbg_label ||</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; func-&gt;getIntrinsicID() == llvm::Intrinsic::dbg_value))</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;}</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ab7f58caf27c30a1d414e06f60ca84d80"> 181</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab7f58caf27c30a1d414e06f60ca84d80">isIntrinsicInst</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;{</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">llvm::CallBase</a>* call = llvm::dyn_cast&lt;llvm::CallBase&gt;(inst))</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = call-&gt;getCalledFunction();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#ad2c53be5490882768d51aa894b37cbf1">isIntrinsicFun</a>(func))</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="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;}</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526"> 196</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">isCallSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst)</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="keywordflow">return</span> SVFUtil::isa&lt;CallBase&gt;(inst);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;}</div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a38bf8f7eaa18fc5a09711959b5417854"> 201</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">isCallSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;{</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = SVFUtil::dyn_cast&lt;Instruction&gt;(val))</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVFUtil::isCallSite</a>(inst);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91"> 209</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">isNonInstricCallSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst)</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;{</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#ab7f58caf27c30a1d414e06f60ca84d80">isIntrinsicInst</a>(inst))</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">isCallSite</a>(inst);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;}</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9"> 217</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">getLLVMCallSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;{</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; assert(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">isCallSite</a>(inst) &amp;&amp; <span class="stringliteral">&quot;not a callsite?&quot;</span>);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs(const_cast&lt;Instruction*&gt;(inst));</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> cs;</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;</div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aa09c2b313ff1c1abcc1e5cb3f9ef46a5"> 225</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#aa09c2b313ff1c1abcc1e5cb3f9ef46a5">getFunction</a>(<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>)</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;{</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(name);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;}</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#af54e70082388bbd70868250aaa0bc86b"> 231</a></span>&#160;<span class="keyword">inline</span> std::vector&lt;std::string&gt; <a class="code" href="namespaceSVF_1_1SVFUtil.html#af54e70082388bbd70868250aaa0bc86b">split</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; s, <span class="keywordtype">char</span> seperator)</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;{</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; std::vector&lt;std::string&gt; output;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; std::string::size_type prev_pos = 0, pos = 0;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">while</span>((pos = s.find(seperator, pos)) != std::string::npos)</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; <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> substring( s.substr(prev_pos, pos-prev_pos) );</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; output.push_back(substring);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; prev_pos = ++pos;</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; output.push_back(s.substr(prev_pos, pos-prev_pos));</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> output;</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="line"><a name="l00246"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a4b55d5252da1f316f505cf6ce2078b28"> 246</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#a4b55d5252da1f316f505cf6ce2078b28">getGlobalRep</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;{</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* gvar = SVFUtil::dyn_cast&lt;GlobalVariable&gt;(val))</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;hasGlobalRep(gvar))</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; val = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a757bf149437cce22163c764ea9993e12">getGlobalRep</a>(gvar);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> val;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;}</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637"> 257</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637">getDefFunForMultipleModule</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun)</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;{</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">if</span>(fun == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="classSVF_1_1LLVMModuleSet.html">LLVMModuleSet</a>* llvmModuleset = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfFun = llvmModuleset-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(fun);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">if</span> (fun-&gt;isDeclaration() &amp;&amp; llvmModuleset-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a32558da64f03452c502ec57d1e106427">hasDefinition</a>(fun))</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; svfFun = llvmModuleset-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-&gt;<a class="code" href="classSVF_1_1LLVMModuleSet.html#a6e670254385050b9a5e612f881b07b9c">getDefinition</a>(fun));</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">return</span> svfFun;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;}</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d"> 269</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;{</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="comment">// FIXME: do we need to strip-off the casts here to discover more library functions</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *callee = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(cs.<a class="code" href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">getCalledValue</a>()-&gt;stripPointerCasts());</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637">getDefFunForMultipleModule</a>(callee);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;}</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#af26c7636bfef7ab2a36cccdcf12c3538"> 276</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;{</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">isCallSite</a>(inst))</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs(const_cast&lt;Instruction*&gt;(inst));</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;}</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *val);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a86c1c8bdfc1075c07c631525555194d2">getSourceLocOfFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *F);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a7486fd8e5350879ed1cbd835c0d4e191">value2String</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* value);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Data&gt;</div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a36c91f952a69875c33d4bd0b05a27ff2"> 294</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a36c91f952a69875c33d4bd0b05a27ff2">mergePtsOccMaps</a>(<a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;Data, unsigned&gt;</a> &amp;to, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;Data, unsigned&gt;</a> from)</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;{</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">typename</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map&lt;Data, unsigned&gt;::value_type</a> &amp;ptocc : from)</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; to[ptocc.first] += ptocc.second;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;}</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a14a4c5124f2fd03ca3d898e2acd54160">hclustMethodToString</a>(<a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dd">hclust_fast_methods</a> method);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet&gt;</div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aeecfaf26800dcebf0b079395126bc7f7"> 307</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aeecfaf26800dcebf0b079395126bc7f7">insertKey</a>(<span class="keyword">const</span> Key &amp;key, KeySet &amp;keySet)</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;{</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; keySet.insert(key);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;}</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a4f75b8313eb2b1e5a4c798a01cb99471"> 313</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aeecfaf26800dcebf0b079395126bc7f7">insertKey</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> &amp;key, <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> &amp;keySet)</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;{</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; keySet.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(key);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;}</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Key, <span class="keyword">typename</span> KeySet&gt;</div><div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aee74719d33695e4da6fee5fc83f745d9"> 320</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aee74719d33695e4da6fee5fc83f745d9">removeKey</a>(<span class="keyword">const</span> Key &amp;key, KeySet &amp;keySet)</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;{</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; keySet.erase(key);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;}</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aa59af7fc01a534662b3b1524186ef97e"> 326</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aee74719d33695e4da6fee5fc83f745d9">removeKey</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> &amp;key, <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> &amp;keySet)</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;{</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; keySet.<a class="code" href="classSVF_1_1SparseBitVector.html#ad5337b5aeed50f8b7ffd56b14ee25c9f">reset</a>(key);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;}</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#add4cd21115988f9f5eec12e268ddf1d9">timeLimitReached</a>(<span class="keywordtype">int</span> signum);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;<span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a757815a2c758695176120509ceb0ce70">startAnalysisLimitTimer</a>(<span class="keywordtype">unsigned</span> timeLimit);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a168f7f7a3a8c70dbf2b5b4269cd4c7c5">stopAnalysisLimitTimer</a>(<span class="keywordtype">bool</span> limitTimerSet);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400"> 346</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;{</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; <a class="code" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#a21f45c806672255c044d39490990eae2">is_ext</a>(fun);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;}</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a19b96a872d9096037f20e25122e469ea">isHeapAllocExtFunViaRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;{</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; (<a class="code" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#a0d865c55681a3b4a9bb965fd0200029d">is_alloc</a>(fun)</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; || <a class="code" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4">is_realloc</a>(fun));</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;}</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ab4a69173f50ebe48e69103befe516245"> 360</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab4a69173f50ebe48e69103befe516245">isHeapAllocExtFunViaArg</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;{</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; <a class="code" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#a158e7da51d45b746e067dc40e912c477">is_arg_alloc</a>(fun);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;}</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b"> 367</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">getHeapAllocHoldingArgPosition</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;{</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#a68939c789d0530151a4e79e79317531a">get_alloc_arg_pos</a>(fun);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;}</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a97c74c642ad43d955ac8a3f3ad8907b4">isReallocExtFun</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;{</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; (<a class="code" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#ac6d6bdc51a6b75d6d5741cb751559fe4">is_realloc</a>(fun));</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;}</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a3495236e22e4bc6404b6ac352060439c">isDeallocExtFun</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;{</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; (<a class="code" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#aeef27a358ba1815760c893bd2d2335b1">is_dealloc</a>(fun));</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;}</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a1bc9bb7bd6c9682debf3ffab7182abf5">isStaticExtFun</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun)</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;{</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; <a class="code" href="classSVF_1_1ExtAPI.html#a02380d22fd6021ebce1e54723d695c99">ExtAPI::getExtAPI</a>()-&gt;<a class="code" href="classSVF_1_1ExtAPI.html#ae20ea24cce02de87d89a2d0b773a2357">has_static</a>(fun);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;}</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">isProgEntryFunction</a> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * fun)</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;{</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; fun-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">getName</a>() == <span class="stringliteral">&quot;main&quot;</span>;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;}</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a6f82e03d880257527bd9cb5978e05604"> 406</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6f82e03d880257527bd9cb5978e05604">getProgFunction</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule, <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>&amp; funName)</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;{</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#afcf2978f32e15127fb093405dc17d7f1">SVFModule::const_iterator</a> it = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a5486697889c6cca4f9f426650defc255">begin</a>(), eit = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a58d03edb6ff85f4943135478f113df31">end</a>(); it != eit; ++it)</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; {</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun = *it;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">if</span> (fun-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">getName</a>()==funName)</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">return</span> fun;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; }</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;}</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aa8017e3e5100b3f63ee338b66118d266"> 418</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#aa8017e3e5100b3f63ee338b66118d266">getProgEntryFunction</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule)</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;{</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#afcf2978f32e15127fb093405dc17d7f1">SVFModule::const_iterator</a> it = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a5486697889c6cca4f9f426650defc255">begin</a>(), eit = svfModule-&gt;<a class="code" href="classSVF_1_1SVFModule.html#a58d03edb6ff85f4943135478f113df31">end</a>(); it != eit; ++it)</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; {</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *fun = *it;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">isProgEntryFunction</a>(fun))</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">return</span> (fun);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;}</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div><div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aec7ee60be22e8f9397db108131696d57"> 431</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aec7ee60be22e8f9397db108131696d57">isProgExitFunction</a> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> * fun)</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;{</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; (fun-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">getName</a>() == <span class="stringliteral">&quot;exit&quot;</span> ||</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; fun-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">getName</a>() == <span class="stringliteral">&quot;__assert_rtn&quot;</span> ||</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; fun-&gt;<a class="code" href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">getName</a>() == <span class="stringliteral">&quot;__assert_fail&quot;</span> );</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;}</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;</div><div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a9e85d445e8b7b205134acd3874bba388"> 439</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a9e85d445e8b7b205134acd3874bba388">isConstantData</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;{</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">return</span> SVFUtil::isa&lt;ConstantData&gt;(val)</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; || SVFUtil::isa&lt;ConstantAggregate&gt;(val)</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; || SVFUtil::isa&lt;MetadataAsValue&gt;(val)</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; || SVFUtil::isa&lt;BlockAddress&gt;(val);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;}</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;</div><div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ac840e43fa58a90099de99a1953f091ac"> 449</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac840e43fa58a90099de99a1953f091ac">getForkedFun</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;{</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a7ddc0c71aeae315af21972a4905b3456">getForkedFun</a>(cs);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;}</div><div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a4cc8c549625712e006079642c656ec83"> 453</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#ac840e43fa58a90099de99a1953f091ac">getForkedFun</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;{</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a7ddc0c71aeae315af21972a4905b3456">getForkedFun</a>(inst);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;}</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a817a63e8330530cb18e077556f7ce518">type2String</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a>);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ab302ca3fcbde9bd1a7d9d5d837a69c23"> 462</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab302ca3fcbde9bd1a7d9d5d837a69c23">isAnAllocationWraper</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>*)</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;{</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;}</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;</div><div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ad98299033577f1e7f4e9bc73dff3b253"> 468</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#ad98299033577f1e7f4e9bc73dff3b253">getLLVMFunction</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* val)</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;{</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fun = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(val-&gt;stripPointerCasts());</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">return</span> fun;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;}</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aad27a96075234ad2182a84e0e9d31a45"> 474</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;{</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs));</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;}</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div><div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#af3e5fd7ffce966575ebf7c7e653b0919"> 479</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;{</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">isExtCall</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(inst));</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;}</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;</div><div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76"> 484</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">isHeapAllocExtCallViaArg</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;{</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab4a69173f50ebe48e69103befe516245">isHeapAllocExtFunViaArg</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs));</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;}</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a0bde3acf22383eac5bbf4e2c065a2226"> 489</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">isHeapAllocExtCallViaArg</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;{</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab4a69173f50ebe48e69103befe516245">isHeapAllocExtFunViaArg</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(inst));</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;}</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;</div><div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35"> 495</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">isHeapAllocExtCallViaRet</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;{</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordtype">bool</span> isPtrTy = cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>()-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a19b96a872d9096037f20e25122e469ea">isHeapAllocExtFunViaRet</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs));</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;}</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;</div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a24514d87685f2258201f0de15d220bbc"> 501</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">isHeapAllocExtCallViaRet</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;{</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordtype">bool</span> isPtrTy = inst-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a19b96a872d9096037f20e25122e469ea">isHeapAllocExtFunViaRet</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(inst));</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;}</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;</div><div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75"> 507</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;{</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">isHeapAllocExtCallViaRet</a>(cs) || <a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">isHeapAllocExtCallViaArg</a>(cs);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;}</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div><div class="line"><a name="l00512"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a1ebbf43e294c3f94a2a7d5c56759bbba"> 512</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;{</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab2064cb70c76f399ce115f2621adea35">isHeapAllocExtCallViaRet</a>(inst) || <a class="code" href="namespaceSVF_1_1SVFUtil.html#aedfa6e9216c6c788c26aef1967689b76">isHeapAllocExtCallViaArg</a>(inst);</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;}</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div><div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a298b6366145ed871faf3d01420ae5d20"> 518</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">getHeapAllocHoldingArgPosition</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;{</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">getHeapAllocHoldingArgPosition</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs));</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;}</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a5af986a7698e72272707cc2a466d5ae7"> 523</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">getHeapAllocHoldingArgPosition</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;{</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">getHeapAllocHoldingArgPosition</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(inst));</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;}</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a6740e7686ba111ae525c6c093cbbaf46"> 529</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6740e7686ba111ae525c6c093cbbaf46">isReallocExtCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;{</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordtype">bool</span> isPtrTy = cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>()-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a97c74c642ad43d955ac8a3f3ad8907b4">isReallocExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs));</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;}</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div><div class="line"><a name="l00535"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a42748153e4845f3eee0ca58a1e151f97"> 535</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6740e7686ba111ae525c6c093cbbaf46">isReallocExtCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;{</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keywordtype">bool</span> isPtrTy = inst-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a97c74c642ad43d955ac8a3f3ad8907b4">isReallocExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(inst));</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;}</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div><div class="line"><a name="l00542"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a1f52a7f183f1eec7c4db7e4e54fa5e2c"> 542</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a1f52a7f183f1eec7c4db7e4e54fa5e2c">isDeallocExtCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;{</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a3495236e22e4bc6404b6ac352060439c">isDeallocExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs));</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;}</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a9973c1326717326b26ec1ea21ebd8da5"> 547</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a1f52a7f183f1eec7c4db7e4e54fa5e2c">isDeallocExtCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;{</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a3495236e22e4bc6404b6ac352060439c">isDeallocExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(inst));</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;}</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf"> 553</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">isStaticExtCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;{</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordtype">bool</span> isPtrTy = cs.<a class="code" href="classSVF_1_1CallSite.html#ab36a6a35eea673d4bdca615efc4336b1">getInstruction</a>()-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a1bc9bb7bd6c9682debf3ffab7182abf5">isStaticExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs));</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;}</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aab8ac16a9a2961f98001ab94aeaedf64"> 559</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">isStaticExtCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;{</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordtype">bool</span> isPtrTy = inst-&gt;getType()-&gt;isPointerTy();</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">return</span> isPtrTy &amp;&amp; <a class="code" href="namespaceSVF_1_1SVFUtil.html#a1bc9bb7bd6c9682debf3ffab7182abf5">isStaticExtFun</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(inst));</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;}</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;</div><div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a61ed4bb80d88b0f8dbc02535c224fdfb"> 568</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a61ed4bb80d88b0f8dbc02535c224fdfb">isHeapAllocOrStaticExtCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;{</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">isStaticExtCall</a>(cs) || <a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(cs);</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;}</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a0c8afe88cb58a2ac484c3bc4dd15ece9"> 573</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a61ed4bb80d88b0f8dbc02535c224fdfb">isHeapAllocOrStaticExtCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;{</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ae62938f722543d6d7fc201b685be1abf">isStaticExtCall</a>(inst) || <a class="code" href="namespaceSVF_1_1SVFUtil.html#a93ac673b885633849fa484938405ca75">isHeapAllocExtCall</a>(inst);</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;}</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div><div class="line"><a name="l00581"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a5c2abeb363081381c3dc939ab511e3f0"> 581</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c2abeb363081381c3dc939ab511e3f0">isThreadForkCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;{</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a9da276dca5092d18f4f22d32e5ab6cdf">isTDFork</a>(cs);</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;}</div><div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a834afc0042c24ed5a1dd00cadc1f00c3"> 585</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5c2abeb363081381c3dc939ab511e3f0">isThreadForkCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;{</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a9da276dca5092d18f4f22d32e5ab6cdf">isTDFork</a>(inst);</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;}</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a28fbb7cc51eb7e25d88f43e3eb1f30fb"> 593</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28fbb7cc51eb7e25d88f43e3eb1f30fb">isHareParForCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;{</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a86d75b7e3570337e484397e60f97d88e">isHareParFor</a>(cs);</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;}</div><div class="line"><a name="l00597"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a9b37c6fe1232ebc35ffa052bd392e2e8"> 597</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28fbb7cc51eb7e25d88f43e3eb1f30fb">isHareParForCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;{</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a86d75b7e3570337e484397e60f97d88e">isHareParFor</a>(inst);</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;}</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a194a8cf292726bd6cd54307b555c068a"> 605</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a194a8cf292726bd6cd54307b555c068a">isThreadJoinCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;{</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a8cc5f9ff6039392ce1471cd830973c44">isTDJoin</a>(cs);</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;}</div><div class="line"><a name="l00609"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a14793b41b05439a8a82fdce02e0587d5"> 609</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a194a8cf292726bd6cd54307b555c068a">isThreadJoinCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;{</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a8cc5f9ff6039392ce1471cd830973c44">isTDJoin</a>(inst);</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;}</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div><div class="line"><a name="l00617"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a3af5073a1cdc000678f7e4bbc943f5d5"> 617</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a3af5073a1cdc000678f7e4bbc943f5d5">isThreadExitCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;{</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#ae87d129560d7015966336f06a516db23">isTDExit</a>(cs);</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;}</div><div class="line"><a name="l00621"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aae025d6727ef34fbeaa7ad48a4dabdcd"> 621</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a3af5073a1cdc000678f7e4bbc943f5d5">isThreadExitCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;{</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#ae87d129560d7015966336f06a516db23">isTDExit</a>(inst);</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;}</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div><div class="line"><a name="l00629"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a5f3ecd0770991b6e84afe47a3934f0d2"> 629</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5f3ecd0770991b6e84afe47a3934f0d2">isLockAquireCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;{</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a9db4df7968ec179e5012794c58fdee70">isTDAcquire</a>(cs);</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;}</div><div class="line"><a name="l00633"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a343dae805a34d102b9c1b96f173468df"> 633</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5f3ecd0770991b6e84afe47a3934f0d2">isLockAquireCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;{</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a9db4df7968ec179e5012794c58fdee70">isTDAcquire</a>(inst);</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;}</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div><div class="line"><a name="l00641"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a1241ef1c19df14f7db0bd62dd68f14f9"> 641</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a1241ef1c19df14f7db0bd62dd68f14f9">isLockReleaseCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;{</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a38adae633d5aceddcca3b3a23ad66db9">isTDRelease</a>(cs);</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;}</div><div class="line"><a name="l00645"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a84ac49c70252036a957694f2cf05ae2c"> 645</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a1241ef1c19df14f7db0bd62dd68f14f9">isLockReleaseCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;{</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a38adae633d5aceddcca3b3a23ad66db9">isTDRelease</a>(inst);</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;}</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;</div><div class="line"><a name="l00653"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ad09ba410acbbaee2aac9dd406c3cf01a"> 653</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ad09ba410acbbaee2aac9dd406c3cf01a">isBarrierWaitCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;{</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a0ff50b4312b9aa2c7ebd00e9a40a2668">isTDBarWait</a>(cs);</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;}</div><div class="line"><a name="l00657"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a0a7fc57e1f5cec705e310a4bb72cba94"> 657</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#ad09ba410acbbaee2aac9dd406c3cf01a">isBarrierWaitCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;{</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a0ff50b4312b9aa2c7ebd00e9a40a2668">isTDBarWait</a>(inst);</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;}</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;</div><div class="line"><a name="l00665"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#aaeeb386d80b51d729322317065606454"> 665</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#aaeeb386d80b51d729322317065606454">getActualParmAtForkSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;{</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a6bc40bc0b35c23e9d1874c844511449d">getActualParmAtForkSite</a>(cs);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;}</div><div class="line"><a name="l00669"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a01119ea4e3a10ebecdef4d390a1c4c88"> 669</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#aaeeb386d80b51d729322317065606454">getActualParmAtForkSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;{</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a6bc40bc0b35c23e9d1874c844511449d">getActualParmAtForkSite</a>(inst);</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;}</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;</div><div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ab048cbce6e4f5a3d6ff90da3565220ff"> 677</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab048cbce6e4f5a3d6ff90da3565220ff">getTaskFuncAtHareParForSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;{</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#afeedd6e518af76fa9e7142af8899b2f5">getTaskFuncAtHareParForSite</a>(cs);</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;}</div><div class="line"><a name="l00681"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a111fa1ecf72adbd2e0ff27e922f0d34a"> 681</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab048cbce6e4f5a3d6ff90da3565220ff">getTaskFuncAtHareParForSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;{</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#afeedd6e518af76fa9e7142af8899b2f5">getTaskFuncAtHareParForSite</a>(inst);</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;}</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;</div><div class="line"><a name="l00689"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ad3471260b66bdd7e6b790ad2a94fe7ce"> 689</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#ad3471260b66bdd7e6b790ad2a94fe7ce">getTaskDataAtHareParForSite</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;{</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a58cf56e35be873a5a26c5eb0d9b5c9b3">getTaskDataAtHareParForSite</a>(cs);</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;}</div><div class="line"><a name="l00693"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a5f3dd36ee492b60039928a86519518a5"> 693</a></span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* <a class="code" href="namespaceSVF_1_1SVFUtil.html#ad3471260b66bdd7e6b790ad2a94fe7ce">getTaskDataAtHareParForSite</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;{</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ThreadAPI.html#a6852ff1eedc1117e95e45e4a90c80d53">ThreadAPI::getThreadAPI</a>()-&gt;<a class="code" href="classSVF_1_1ThreadAPI.html#a58cf56e35be873a5a26c5eb0d9b5c9b3">getTaskDataAtHareParForSite</a>(inst);</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;}</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div><div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#ab87fef7b10465d3e635643fcb93b95a7"> 699</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">isProgEntryFunction</a> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> * fun)</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;{</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">return</span> fun &amp;&amp; fun-&gt;getName() == <span class="stringliteral">&quot;main&quot;</span>;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;}</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;</div><div class="line"><a name="l00705"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a6528edf9a1750df4a84d1a60d4d0bbe4"> 705</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6528edf9a1750df4a84d1a60d4d0bbe4">isProgExitCall</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CallSite.html">CallSite</a> cs)</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;{</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aec7ee60be22e8f9397db108131696d57">isProgExitFunction</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(cs));</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;}</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;</div><div class="line"><a name="l00710"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a68b531ca4077e71dcc6d085e47a9730b"> 710</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6528edf9a1750df4a84d1a60d4d0bbe4">isProgExitCall</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst)</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;{</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#aec7ee60be22e8f9397db108131696d57">isProgExitFunction</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(inst));</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;}</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;constexpr <span class="keyword">typename</span> <a class="code" href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">std::remove_reference&lt;T&gt;::type</a> &amp;&amp;</div><div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016"> 717</a></span>&#160;<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">move</a>(T &amp;&amp;t) noexcept</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;{</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">return</span> <a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(t);</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;}</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;} <span class="comment">// End namespace SVFUtil</span></div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;} <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* AnalysisUtil_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html">SVF::SparseBitVector::SparseBitVectorIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00536">SparseBitVector.h:536</a></div></div>
70
70
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2e08ce822223842fa6a73fd659b1a526"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2e08ce822223842fa6a73fd659b1a526">SVF::SVFUtil::isCallSite</a></div><div class="ttdeci">bool isCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a call or invoke instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00196">SVFUtil.h:196</a></div></div>
71
71
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ad98299033577f1e7f4e9bc73dff3b253"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ad98299033577f1e7f4e9bc73dff3b253">SVF::SVFUtil::getLLVMFunction</a></div><div class="ttdeci">const Function * getLLVMFunction(const Value *val)</div><div class="ttdoc">Return LLVM function if this value is. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00468">SVFUtil.h:468</a></div></div>
72
72
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aeb570e9267fd7b189bd1bc877896d7ab"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aeb570e9267fd7b189bd1bc877896d7ab">SVF::SVFUtil::dumpSet</a></div><div class="ttdeci">void dumpSet(NodeBS To, OutStream &amp;O=SVFUtil::outs())</div><div class="ttdoc">Dump sparse bitvector set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00147">SVFUtil.cpp:147</a></div></div>
73
73
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a9da276dca5092d18f4f22d32e5ab6cdf"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a9da276dca5092d18f4f22d32e5ab6cdf">SVF::ThreadAPI::isTDFork</a></div><div class="ttdeci">bool isTDFork(const Instruction *inst) const</div><div class="ttdoc">Return true if this call create a new thread. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00129">ThreadAPI.h:129</a></div></div>
74
- <div class="ttc" id="namespaceSVF_html_a4f21e91ff8eaea5207afe5c60dbd78d7"><div class="ttname"><a href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">SVF::OrderedSet</a></div><div class="ttdeci">std::set&lt; Key, Compare, Allocator &gt; OrderedSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00113">SVFBasicTypes.h:113</a></div></div>
74
+ <div class="ttc" id="namespaceSVF_html_a4f21e91ff8eaea5207afe5c60dbd78d7"><div class="ttname"><a href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">SVF::OrderedSet</a></div><div class="ttdeci">std::set&lt; Key, Compare, Allocator &gt; OrderedSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00109">SVFBasicTypes.h:109</a></div></div>
75
75
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_add4cd21115988f9f5eec12e268ddf1d9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#add4cd21115988f9f5eec12e268ddf1d9">SVF::SVFUtil::timeLimitReached</a></div><div class="ttdeci">void timeLimitReached(int signum)</div><div class="ttdoc">Function to call when alarm for time limit hits. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00421">SVFUtil.cpp:421</a></div></div>
76
76
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a6bc40bc0b35c23e9d1874c844511449d"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a6bc40bc0b35c23e9d1874c844511449d">SVF::ThreadAPI::getActualParmAtForkSite</a></div><div class="ttdeci">const Value * getActualParmAtForkSite(const Instruction *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00181">ThreadAPI.h:181</a></div></div>
77
77
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a5c2b39ae857d78ed9dda83880e703b0f"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5c2b39ae857d78ed9dda83880e703b0f">SVF::SVFUtil::equalNodeBS</a></div><div class="ttdeci">struct SVF::SVFUtil::equalNodeBS equalNodeBS</div></div>
@@ -80,37 +80,37 @@ $(function() {
80
80
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab30a35713852a0a525c52ae5dd463442"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab30a35713852a0a525c52ae5dd463442">SVF::SVFUtil::dumpSparseSet</a></div><div class="ttdeci">void dumpSparseSet(const NodeBS &amp;To)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00115">SVFUtil.cpp:115</a></div></div>
81
81
  <div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
82
82
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ad09ba410acbbaee2aac9dd406c3cf01a"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ad09ba410acbbaee2aac9dd406c3cf01a">SVF::SVFUtil::isBarrierWaitCall</a></div><div class="ttdeci">bool isBarrierWaitCall(const CallSite cs)</div><div class="ttdoc">Return true if this is a barrier wait call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00653">SVFUtil.h:653</a></div></div>
83
- <div class="ttc" id="namespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdoc">LLVM Basic classes. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00064">BasicTypes.h:64</a></div></div>
83
+ <div class="ttc" id="namespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdoc">LLVM Basic classes. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00047">BasicTypes.h:47</a></div></div>
84
84
  <div class="ttc" id="Util_2BasicTypes_8h_html"><div class="ttname"><a href="Util_2BasicTypes_8h.html">BasicTypes.h</a></div></div>
85
85
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a86ebab122895189be57637b84adc7642"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a86ebab122895189be57637b84adc7642">SVF::SVFUtil::ptsToNodeBS</a></div><div class="ttdeci">NodeBS ptsToNodeBS(const PointsTo &amp;pts)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00157">SVFUtil.h:157</a></div></div>
86
86
  <div class="ttc" id="classSVF_1_1ThreadAPI_html_a9db4df7968ec179e5012794c58fdee70"><div class="ttname"><a href="classSVF_1_1ThreadAPI.html#a9db4df7968ec179e5012794c58fdee70">SVF::ThreadAPI::isTDAcquire</a></div><div class="ttdeci">bool isTDAcquire(const Instruction *inst) const</div><div class="ttdoc">Return true if this call acquire a lock. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadAPI_8h_source.html#l00283">ThreadAPI.h:283</a></div></div>
87
87
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a609eea630a8f88fe9eaba15ce7e48738"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(std::string msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00099">SVFUtil.cpp:99</a></div></div>
88
88
  <div class="ttc" id="classSVF_1_1SVFModule_html_a5486697889c6cca4f9f426650defc255"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a5486697889c6cca4f9f426650defc255">SVF::SVFModule::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00156">SVFModule.h:156</a></div></div>
89
89
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a142e650415cb81011eb59dadd3cb0637"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a142e650415cb81011eb59dadd3cb0637">SVF::SVFUtil::getDefFunForMultipleModule</a></div><div class="ttdeci">const SVFFunction * getDefFunForMultipleModule(const Function *fun)</div><div class="ttdoc">Get the definition of a function across multiple modules. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00257">SVFUtil.h:257</a></div></div>
90
- <div class="ttc" id="namespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00075">BasicTypes.h:75</a></div></div>
90
+ <div class="ttc" id="namespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00054">BasicTypes.h:54</a></div></div>
91
91
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a5f3ecd0770991b6e84afe47a3934f0d2"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5f3ecd0770991b6e84afe47a3934f0d2">SVF::SVFUtil::isLockAquireCall</a></div><div class="ttdeci">bool isLockAquireCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00629">SVFUtil.h:629</a></div></div>
92
92
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aeecfaf26800dcebf0b079395126bc7f7"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aeecfaf26800dcebf0b079395126bc7f7">SVF::SVFUtil::insertKey</a></div><div class="ttdeci">void insertKey(const Key &amp;key, KeySet &amp;keySet)</div><div class="ttdoc">Inserts an element into a Set/CondSet (with ::insert). </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00307">SVFUtil.h:307</a></div></div>
93
- <div class="ttc" id="classSVF_1_1CallSite_html_a9526f6c3829f8897d1ca617feda8451a"><div class="ttname"><a href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">SVF::CallSite::getCalledValue</a></div><div class="ttdeci">Value * getCalledValue() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00334">BasicTypes.h:334</a></div></div>
93
+ <div class="ttc" id="classSVF_1_1CallSite_html_a9526f6c3829f8897d1ca617feda8451a"><div class="ttname"><a href="classSVF_1_1CallSite.html#a9526f6c3829f8897d1ca617feda8451a">SVF::CallSite::getCalledValue</a></div><div class="ttdeci">Value * getCalledValue() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00313">BasicTypes.h:313</a></div></div>
94
94
  <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>
95
95
  <div class="ttc" id="structSVF_1_1SVFUtil_1_1equalPointsTo_html_a4a7e42b2cca7e54766ce7657fefb91f9"><div class="ttname"><a href="structSVF_1_1SVFUtil_1_1equalPointsTo.html#a4a7e42b2cca7e54766ce7657fefb91f9">SVF::SVFUtil::equalPointsTo::operator()</a></div><div class="ttdeci">bool operator()(const PointsTo &amp;lhs, const PointsTo &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00143">SVFUtil.h:143</a></div></div>
96
- <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#l00114">BasicTypes.h:114</a></div></div>
96
+ <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#l00093">BasicTypes.h:93</a></div></div>
97
97
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a4b55d5252da1f316f505cf6ce2078b28"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a4b55d5252da1f316f505cf6ce2078b28">SVF::SVFUtil::getGlobalRep</a></div><div class="ttdeci">const Value * getGlobalRep(const Value *val)</div><div class="ttdoc">find the unique defined global across multiple modules </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00246">SVFUtil.h:246</a></div></div>
98
98
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a2c97c2b79b795465490512e267a9309b"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a2c97c2b79b795465490512e267a9309b">SVF::SVFUtil::isProgEntryFunction</a></div><div class="ttdeci">bool isProgEntryFunction(const SVFFunction *fun)</div><div class="ttdoc">Program entry function e.g. main. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00399">SVFUtil.h:399</a></div></div>
99
99
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab302ca3fcbde9bd1a7d9d5d837a69c23"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab302ca3fcbde9bd1a7d9d5d837a69c23">SVF::SVFUtil::isAnAllocationWraper</a></div><div class="ttdeci">bool isAnAllocationWraper(const Instruction *)</div><div class="ttdoc">This function servers a allocation wrapper detector. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00462">SVFUtil.h:462</a></div></div>
100
100
  <div class="ttc" id="structSVF_1_1SVFUtil_1_1equalNodeBS_html"><div class="ttname"><a href="structSVF_1_1SVFUtil_1_1equalNodeBS.html">SVF::SVFUtil::equalNodeBS</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00149">SVFUtil.h:149</a></div></div>
101
101
  <div class="ttc" id="LLVMModule_8h_html"><div class="ttname"><a href="LLVMModule_8h.html">LLVMModule.h</a></div></div>
102
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_ad5337b5aeed50f8b7ffd56b14ee25c9f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ad5337b5aeed50f8b7ffd56b14ee25c9f">SVF::SparseBitVector::reset</a></div><div class="ttdeci">void reset(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00722">SparseBitVector.h:722</a></div></div>
102
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_ad5337b5aeed50f8b7ffd56b14ee25c9f"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ad5337b5aeed50f8b7ffd56b14ee25c9f">SVF::SparseBitVector::reset</a></div><div class="ttdeci">void reset(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00724">SparseBitVector.h:724</a></div></div>
103
103
  <div class="ttc" id="cJSON_8h_html_a25d22ecc7e656d2c59332072684e8766"><div class="ttname"><a href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a></div><div class="ttdeci">const char *const name</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00264">cJSON.h:264</a></div></div>
104
- <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#l00302">BasicTypes.h:302</a></div></div>
104
+ <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#l00281">BasicTypes.h:281</a></div></div>
105
105
  <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>
106
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a9f96e6a886fa69e07cda5dbfaed8b7c9"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">SVF::SparseBitVector::count</a></div><div class="ttdeci">unsigned count() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01102">SparseBitVector.h:1102</a></div></div>
106
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a9f96e6a886fa69e07cda5dbfaed8b7c9"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">SVF::SparseBitVector::count</a></div><div class="ttdeci">unsigned count() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01104">SparseBitVector.h:1104</a></div></div>
107
107
  <div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
108
108
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a054c3e668ce8b265bbc5d923f6243ce7"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a054c3e668ce8b265bbc5d923f6243ce7">SVF::SVFUtil::bugMsg2</a></div><div class="ttdeci">std::string bugMsg2(std::string msg)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00086">SVFUtil.cpp:86</a></div></div>
109
109
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aa8017e3e5100b3f63ee338b66118d266"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aa8017e3e5100b3f63ee338b66118d266">SVF::SVFUtil::getProgEntryFunction</a></div><div class="ttdeci">const SVFFunction * getProgEntryFunction(SVFModule *svfModule)</div><div class="ttdoc">Get program entry function from module. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00418">SVFUtil.h:418</a></div></div>
110
110
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6a55f1f8598998a3ffbbc67d32eaf8c4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">SVF::SVFUtil::sucMsg</a></div><div class="ttdeci">std::string sucMsg(std::string msg)</div><div class="ttdoc">Returns successful message by converting a string into green string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00054">SVFUtil.cpp:54</a></div></div>
111
- <div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00110">SVFBasicTypes.h:110</a></div></div>
111
+ <div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map&lt; Key, Value, Hash, KeyEqual, Allocator &gt; Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00106">SVFBasicTypes.h:106</a></div></div>
112
112
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_af4ceddbe4d57b24e80201bc895f73810"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#af4ceddbe4d57b24e80201bc895f73810">SVF::SVFUtil::dumpPointsToList</a></div><div class="ttdeci">void dumpPointsToList(const PointsToList &amp;ptl)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00122">SVFUtil.cpp:122</a></div></div>
113
- <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00085">SVFBasicTypes.h:85</a></div></div>
113
+ <div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00081">SVFBasicTypes.h:81</a></div></div>
114
114
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a077caa1b10ab84d101d79fc7ea50db2d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVF::SVFUtil::writeWrnMsg</a></div><div class="ttdeci">void writeWrnMsg(std::string msg)</div><div class="ttdoc">Writes a message run through wrnMsg. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00067">SVFUtil.cpp:67</a></div></div>
115
115
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a32558da64f03452c502ec57d1e106427"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a32558da64f03452c502ec57d1e106427">SVF::LLVMModuleSet::hasDefinition</a></div><div class="ttdeci">bool hasDefinition(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00136">LLVMModule.h:136</a></div></div>
116
116
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a194a8cf292726bd6cd54307b555c068a"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a194a8cf292726bd6cd54307b555c068a">SVF::SVFUtil::isThreadJoinCall</a></div><div class="ttdeci">bool isThreadJoinCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00605">SVFUtil.h:605</a></div></div>
@@ -135,9 +135,9 @@ $(function() {
135
135
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6528edf9a1750df4a84d1a60d4d0bbe4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6528edf9a1750df4a84d1a60d4d0bbe4">SVF::SVFUtil::isProgExitCall</a></div><div class="ttdeci">bool isProgExitCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00705">SVFUtil.h:705</a></div></div>
136
136
  <div class="ttc" id="classSVF_1_1ExtAPI_html_a158e7da51d45b746e067dc40e912c477"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a158e7da51d45b746e067dc40e912c477">SVF::ExtAPI::is_arg_alloc</a></div><div class="ttdeci">bool is_arg_alloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00462">ExtAPI.cpp:462</a></div></div>
137
137
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a757815a2c758695176120509ceb0ce70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a757815a2c758695176120509ceb0ce70">SVF::SVFUtil::startAnalysisLimitTimer</a></div><div class="ttdeci">bool startAnalysisLimitTimer(unsigned timeLimit)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00430">SVFUtil.cpp:430</a></div></div>
138
- <div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00069">BasicTypes.h:69</a></div></div>
138
+ <div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00048">BasicTypes.h:48</a></div></div>
139
139
  <div class="ttc" id="fastcluster_8h_html_a4205a14ad66b3320d2e94c61d74913dd"><div class="ttname"><a href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dd">hclust_fast_methods</a></div><div class="ttdeci">hclust_fast_methods</div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8h_source.html#l00065">fastcluster.h:65</a></div></div>
140
- <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>
140
+ <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#l00051">BasicTypes.h:51</a></div></div>
141
141
  <div class="ttc" id="cJSON_8cpp_html_a3f9a0d3265a6254722587175dac3e4dc"><div class="ttname"><a href="cJSON_8cpp.html#a3f9a0d3265a6254722587175dac3e4dc">type</a></div><div class="ttdeci">newitem type</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02739">cJSON.cpp:2739</a></div></div>
142
142
  <div class="ttc" id="classSVF_1_1PointsTo_html_a879783ba6629e500af9aa7dfcda2563d"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">SVF::PointsTo::count</a></div><div class="ttdeci">u32_t count(void) const</div><div class="ttdoc">Returns number of elements. </div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00107">PointsTo.cpp:107</a></div></div>
143
143
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a1241ef1c19df14f7db0bd62dd68f14f9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a1241ef1c19df14f7db0bd62dd68f14f9">SVF::SVFUtil::isLockReleaseCall</a></div><div class="ttdeci">bool isLockReleaseCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00641">SVFUtil.h:641</a></div></div>
@@ -155,7 +155,7 @@ $(function() {
155
155
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a145abbd2958629718fbca41d25c3124d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVF::SVFUtil::getCallee</a></div><div class="ttdeci">const SVFFunction * getCallee(const CallSite cs)</div><div class="ttdoc">Return callee of a callsite. Return null if this is an indirect call. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00269">SVFUtil.h:269</a></div></div>
156
156
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream &amp; errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
157
157
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aaeeb386d80b51d729322317065606454"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aaeeb386d80b51d729322317065606454">SVF::SVFUtil::getActualParmAtForkSite</a></div><div class="ttdeci">const Value * getActualParmAtForkSite(const CallSite cs)</div><div class="ttdoc">Return sole argument of the thread routine. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00665">SVFUtil.h:665</a></div></div>
158
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01118">SparseBitVector.h:1118</a></div></div>
158
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a1b5abe09fd0fcd337385653cb47343c1"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1b5abe09fd0fcd337385653cb47343c1">SVF::SparseBitVector::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01120">SparseBitVector.h:1120</a></div></div>
159
159
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream &amp; outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
160
160
  <div class="ttc" id="PointsTo_8h_html"><div class="ttname"><a href="PointsTo_8h.html">PointsTo.h</a></div></div>
161
161
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a19b96a872d9096037f20e25122e469ea"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a19b96a872d9096037f20e25122e469ea">SVF::SVFUtil::isHeapAllocExtFunViaRet</a></div><div class="ttdeci">bool isHeapAllocExtFunViaRet(const SVFFunction *fun)</div><div class="ttdoc">Return true if the call is a heap allocator/reallocator. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00354">SVFUtil.h:354</a></div></div>
@@ -173,8 +173,8 @@ $(function() {
173
173
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a73215bac62f1340a58f6c7f2ba9b0e7b"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a73215bac62f1340a58f6c7f2ba9b0e7b">SVF::SVFUtil::getHeapAllocHoldingArgPosition</a></div><div class="ttdeci">int getHeapAllocHoldingArgPosition(const SVFFunction *fun)</div><div class="ttdoc">Get the position of argument that holds an allocated heap object. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00367">SVFUtil.h:367</a></div></div>
174
174
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6f82e03d880257527bd9cb5978e05604"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6f82e03d880257527bd9cb5978e05604">SVF::SVFUtil::getProgFunction</a></div><div class="ttdeci">const SVFFunction * getProgFunction(SVFModule *svfModule, const std::string &amp;funName)</div><div class="ttdoc">Get program entry function from module. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00406">SVFUtil.h:406</a></div></div>
175
175
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a757bf149437cce22163c764ea9993e12"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a757bf149437cce22163c764ea9993e12">SVF::LLVMModuleSet::getGlobalRep</a></div><div class="ttdeci">GlobalVariable * getGlobalRep(const GlobalVariable *val) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00182">LLVMModule.h:182</a></div></div>
176
- <div class="ttc" id="classSVF_1_1SVFValue_html_a2409c01221b9a6632655cee43d1b35e4"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">SVF::SVFValue::getName</a></div><div class="ttdeci">const std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00253">SVFBasicTypes.h:253</a></div></div>
177
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01113">SparseBitVector.h:1113</a></div></div>
176
+ <div class="ttc" id="classSVF_1_1SVFValue_html_a2409c01221b9a6632655cee43d1b35e4"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a2409c01221b9a6632655cee43d1b35e4">SVF::SVFValue::getName</a></div><div class="ttdeci">const std::string getName() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00248">SVFBasicTypes.h:248</a></div></div>
177
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_abf76d8157c49ddba24bdc9dab3655772"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#abf76d8157c49ddba24bdc9dab3655772">SVF::SparseBitVector::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01115">SparseBitVector.h:1115</a></div></div>
178
178
  <div class="ttc" id="classSVF_1_1ExtAPI_html_a68939c789d0530151a4e79e79317531a"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a68939c789d0530151a4e79e79317531a">SVF::ExtAPI::get_alloc_arg_pos</a></div><div class="ttdeci">s32_t get_alloc_arg_pos(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00469">ExtAPI.cpp:469</a></div></div>
179
179
  <div class="ttc" id="classSVF_1_1ExtAPI_html_a0d865c55681a3b4a9bb965fd0200029d"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a0d865c55681a3b4a9bb965fd0200029d">SVF::ExtAPI::is_alloc</a></div><div class="ttdeci">bool is_alloc(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00455">ExtAPI.cpp:455</a></div></div>
180
180
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_abd0a9ee845a455f9354d24a8b84a0bb3"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#abd0a9ee845a455f9354d24a8b84a0bb3">SVF::SVFUtil::dumpPointsToSet</a></div><div class="ttdeci">void dumpPointsToSet(unsigned node, NodeBS To)</div><div class="ttdoc">Dump points-to set. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00107">SVFUtil.cpp:107</a></div></div>
@@ -183,17 +183,17 @@ $(function() {
183
183
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acf40310917909e4234282c0695a43160"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">SVF::LLVMModuleSet::getLLVMModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * getLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00070">LLVMModule.h:70</a></div></div>
184
184
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a202de7ad2bea0311e2f75894c030e7a9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a202de7ad2bea0311e2f75894c030e7a9">SVF::SVFUtil::getLLVMCallSite</a></div><div class="ttdeci">CallSite getLLVMCallSite(const Instruction *inst)</div><div class="ttdoc">Return LLVM callsite given a instruction. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00217">SVFUtil.h:217</a></div></div>
185
185
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ac840e43fa58a90099de99a1953f091ac"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ac840e43fa58a90099de99a1953f091ac">SVF::SVFUtil::getForkedFun</a></div><div class="ttdeci">const Value * getForkedFun(const CallSite cs)</div><div class="ttdoc">Return thread fork function. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00449">SVFUtil.h:449</a></div></div>
186
- <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00460">SparseBitVector.h:460</a></div></div>
186
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00462">SparseBitVector.h:462</a></div></div>
187
187
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a9e85d445e8b7b205134acd3874bba388"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a9e85d445e8b7b205134acd3874bba388">SVF::SVFUtil::isConstantData</a></div><div class="ttdeci">bool isConstantData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00439">SVFUtil.h:439</a></div></div>
188
188
  <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>
189
189
  <div class="ttc" id="classSVF_1_1ExtAPI_html_a21f45c806672255c044d39490990eae2"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#a21f45c806672255c044d39490990eae2">SVF::ExtAPI::is_ext</a></div><div class="ttdeci">bool is_ext(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00556">ExtAPI.cpp:556</a></div></div>
190
- <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#l00294">BasicTypes.h:294</a></div></div>
190
+ <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#l00273">BasicTypes.h:273</a></div></div>
191
191
  <div class="ttc" id="fastcluster_8h_html"><div class="ttname"><a href="fastcluster_8h.html">fastcluster.h</a></div></div>
192
192
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a3af5073a1cdc000678f7e4bbc943f5d5"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a3af5073a1cdc000678f7e4bbc943f5d5">SVF::SVFUtil::isThreadExitCall</a></div><div class="ttdeci">bool isThreadExitCall(const CallSite cs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00617">SVFUtil.h:617</a></div></div>
193
193
  <div class="ttc" id="classSVF_1_1SVFModule_html_a58d03edb6ff85f4943135478f113df31"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a58d03edb6ff85f4943135478f113df31">SVF::SVFModule::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00164">SVFModule.h:164</a></div></div>
194
- <div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00745">SparseBitVector.h:745</a></div></div>
194
+ <div class="ttc" id="classSVF_1_1SparseBitVector_html_a61bd86909a141f9de873d92c0f904832"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">SVF::SparseBitVector::set</a></div><div class="ttdeci">void set(unsigned Idx)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00747">SparseBitVector.h:747</a></div></div>
195
195
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aee74719d33695e4da6fee5fc83f745d9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aee74719d33695e4da6fee5fc83f745d9">SVF::SVFUtil::removeKey</a></div><div class="ttdeci">void removeKey(const Key &amp;key, KeySet &amp;keySet)</div><div class="ttdoc">Removes an element from a Set/CondSet (or anything implementing ::erase). </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00320">SVFUtil.h:320</a></div></div>
196
- <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
196
+ <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00344">Casting.h:344</a></div></div>
197
197
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8d8216a92140d982303f83ea424ddc91"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVF::SVFUtil::isNonInstricCallSite</a></div><div class="ttdeci">bool isNonInstricCallSite(const Instruction *inst)</div><div class="ttdoc">Whether an instruction is a callsite in the application code, excluding llvm intrinsic calls...</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00209">SVFUtil.h:209</a></div></div>
198
198
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a36c91f952a69875c33d4bd0b05a27ff2"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a36c91f952a69875c33d4bd0b05a27ff2">SVF::SVFUtil::mergePtsOccMaps</a></div><div class="ttdeci">void mergePtsOccMaps(Map&lt; Data, unsigned &gt; &amp;to, const Map&lt; Data, unsigned &gt; from)</div><div class="ttdoc">Given a map mapping points-to sets to a count, adds from into to. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00294">SVFUtil.h:294</a></div></div>
199
199
  <div class="ttc" id="classSVF_1_1ExtAPI_html_ae20ea24cce02de87d89a2d0b773a2357"><div class="ttname"><a href="classSVF_1_1ExtAPI.html#ae20ea24cce02de87d89a2d0b773a2357">SVF::ExtAPI::has_static</a></div><div class="ttdeci">bool has_static(const SVFFunction *F)</div><div class="ttdef"><b>Definition:</b> <a href="ExtAPI_8cpp_source.html#l00442">ExtAPI.cpp:442</a></div></div>
@@ -201,15 +201,15 @@ $(function() {
201
201
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a168f7f7a3a8c70dbf2b5b4269cd4c7c5"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a168f7f7a3a8c70dbf2b5b4269cd4c7c5">SVF::SVFUtil::stopAnalysisLimitTimer</a></div><div class="ttdeci">void stopAnalysisLimitTimer(bool limitTimerSet)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00451">SVFUtil.cpp:451</a></div></div>
202
202
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ad3471260b66bdd7e6b790ad2a94fe7ce"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ad3471260b66bdd7e6b790ad2a94fe7ce">SVF::SVFUtil::getTaskDataAtHareParForSite</a></div><div class="ttdeci">const Value * getTaskDataAtHareParForSite(const CallSite cs)</div><div class="ttdoc">Return the task data argument of the parallel_for rountine. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00689">SVFUtil.h:689</a></div></div>
203
203
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6c06020737f7dff22a666b75c28c5e7d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6c06020737f7dff22a666b75c28c5e7d">SVF::SVFUtil::wrnMsg</a></div><div class="ttdeci">std::string wrnMsg(std::string msg)</div><div class="ttdoc">Returns warning message by converting a string into yellow string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00062">SVFUtil.cpp:62</a></div></div>
204
- <div class="ttc" id="namespaceSVF_html_a1f4624771922dc8c2447ad7433588c73"><div class="ttname"><a href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">SVF::CallBase</a></div><div class="ttdeci">llvm::CallBase CallBase</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00073">BasicTypes.h:73</a></div></div>
204
+ <div class="ttc" id="namespaceSVF_html_a1f4624771922dc8c2447ad7433588c73"><div class="ttname"><a href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">SVF::CallBase</a></div><div class="ttdeci">llvm::CallBase CallBase</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00052">BasicTypes.h:52</a></div></div>
205
205
  <div class="ttc" id="structSVF_1_1SVFUtil_1_1equalPointsTo_html"><div class="ttname"><a href="structSVF_1_1SVFUtil_1_1equalPointsTo.html">SVF::SVFUtil::equalPointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00141">SVFUtil.h:141</a></div></div>
206
206
  <div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
207
- <div class="ttc" id="namespaceSVF_html_a8bd74fdcb0e58d0249003df9c3fb8b31"><div class="ttname"><a href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">SVF::OutStream</a></div><div class="ttdeci">std::ostream OutStream</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00083">SVFBasicTypes.h:83</a></div></div>
207
+ <div class="ttc" id="namespaceSVF_html_a8bd74fdcb0e58d0249003df9c3fb8b31"><div class="ttname"><a href="namespaceSVF.html#a8bd74fdcb0e58d0249003df9c3fb8b31">SVF::OutStream</a></div><div class="ttdeci">std::ostream OutStream</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00079">SVFBasicTypes.h:79</a></div></div>
208
208
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a5d4bb92f5df30417f414397f8e58cf01"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVF::SVFUtil::errMsg</a></div><div class="ttdeci">std::string errMsg(std::string msg)</div><div class="ttdoc">Print error message by converting a string into red string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00076">SVFUtil.cpp:76</a></div></div>
209
209
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a0d7588578735679773493ff2d5e458e1"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a0d7588578735679773493ff2d5e458e1">SVF::SVFUtil::increaseStackSize</a></div><div class="ttdeci">void increaseStackSize()</div><div class="ttdoc">Increase the stack size limit. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00227">SVFUtil.cpp:227</a></div></div>
210
210
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8f749354b7e882ef3e5bf5081fa715b5"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8f749354b7e882ef3e5bf5081fa715b5">SVF::SVFUtil::cmpNodeBS</a></div><div class="ttdeci">bool cmpNodeBS(const NodeBS &amp;lpts, const NodeBS &amp;rpts)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00123">SVFUtil.h:123</a></div></div>
211
211
  <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>
212
- <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>
212
+ <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#l00050">BasicTypes.h:50</a></div></div>
213
213
  <div class="ttc" id="classSVF_1_1SVFModule_html_afcf2978f32e15127fb093405dc17d7f1"><div class="ttname"><a href="classSVF_1_1SVFModule.html#afcf2978f32e15127fb093405dc17d7f1">SVF::SVFModule::const_iterator</a></div><div class="ttdeci">FunctionSetType::const_iterator const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00052">SVFModule.h:52</a></div></div>
214
214
  <div class="ttc" id="classSVF_1_1PointsTo_html_a8f741cdffbf3c5fe0f602cdca677dee6"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">SVF::PointsTo::end</a></div><div class="ttdeci">const_iterator end(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00132">PointsTo.h:132</a></div></div>
215
215
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_a547b3bc62de65b9dbfc6dee55c063dd7"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">SVF::LLVMModuleSet::getSVFFunction</a></div><div class="ttdeci">const SVFFunction * getSVFFunction(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00114">LLVMModule.h:114</a></div></div>