svf-tools 1.0.802 → 1.0.804

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 (228) hide show
  1. package/SVF-doxygen/html/BreakConstantExpr_8cpp.html +109 -14
  2. package/SVF-doxygen/html/BreakConstantExpr_8cpp_source.html +188 -141
  3. package/SVF-doxygen/html/BreakConstantExpr_8h_source.html +1 -1
  4. package/SVF-doxygen/html/IntervalValue_8h.html +0 -4
  5. package/SVF-doxygen/html/IntervalValue_8h_source.html +354 -302
  6. package/SVF-doxygen/html/LLVMModule_8cpp_source.html +1 -1
  7. package/SVF-doxygen/html/MSSAMuChi_8h_source.html +1 -1
  8. package/SVF-doxygen/html/MemRegion_8cpp_source.html +1 -1
  9. package/SVF-doxygen/html/PointsTo_8cpp_source.html +2 -2
  10. package/SVF-doxygen/html/PointsTo_8h_source.html +2 -2
  11. package/SVF-doxygen/html/SVFType_8cpp_source.html +1 -1
  12. package/SVF-doxygen/html/SVFType_8h_source.html +1 -1
  13. package/SVF-doxygen/html/SVFValue_8h_source.html +1 -1
  14. package/SVF-doxygen/html/SparseBitVector_8h_source.html +2 -2
  15. package/SVF-doxygen/html/classSVF_1_1BreakConstantGEPs.html +102 -101
  16. package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +1 -1
  17. package/SVF-doxygen/html/fastcluster__dm_8cpp_8inc_source.html +1 -1
  18. package/SVF-doxygen/html/globals_func_h.html +6 -0
  19. package/SVF-doxygen/html/globals_h.html +6 -0
  20. package/SVF-doxygen/html/namespaceSVF.html +330 -294
  21. package/SVF-doxygen/html/search/all_10.js +324 -324
  22. package/SVF-doxygen/html/search/all_11.js +222 -222
  23. package/SVF-doxygen/html/search/all_12.js +542 -542
  24. package/SVF-doxygen/html/search/all_13.js +191 -191
  25. package/SVF-doxygen/html/search/all_14.js +67 -67
  26. package/SVF-doxygen/html/search/all_15.js +170 -170
  27. package/SVF-doxygen/html/search/all_16.js +63 -63
  28. package/SVF-doxygen/html/search/all_17.js +1 -1
  29. package/SVF-doxygen/html/search/all_18.js +1 -1
  30. package/SVF-doxygen/html/search/all_19.js +11 -11
  31. package/SVF-doxygen/html/search/all_1a.js +172 -172
  32. package/SVF-doxygen/html/search/all_8.js +135 -133
  33. package/SVF-doxygen/html/search/all_9.js +610 -610
  34. package/SVF-doxygen/html/search/all_a.js +46 -46
  35. package/SVF-doxygen/html/search/all_b.js +26 -26
  36. package/SVF-doxygen/html/search/all_c.js +116 -116
  37. package/SVF-doxygen/html/search/all_d.js +196 -196
  38. package/SVF-doxygen/html/search/all_e.js +207 -207
  39. package/SVF-doxygen/html/search/all_f.js +116 -116
  40. package/SVF-doxygen/html/search/classes_0.js +26 -26
  41. package/SVF-doxygen/html/search/classes_1.js +9 -9
  42. package/SVF-doxygen/html/search/classes_10.js +73 -73
  43. package/SVF-doxygen/html/search/classes_11.js +15 -15
  44. package/SVF-doxygen/html/search/classes_12.js +2 -2
  45. package/SVF-doxygen/html/search/classes_13.js +10 -10
  46. package/SVF-doxygen/html/search/classes_14.js +14 -14
  47. package/SVF-doxygen/html/search/classes_15.js +1 -1
  48. package/SVF-doxygen/html/search/classes_2.js +80 -80
  49. package/SVF-doxygen/html/search/classes_3.js +37 -37
  50. package/SVF-doxygen/html/search/classes_4.js +9 -9
  51. package/SVF-doxygen/html/search/classes_5.js +28 -28
  52. package/SVF-doxygen/html/search/classes_6.js +104 -104
  53. package/SVF-doxygen/html/search/classes_7.js +33 -33
  54. package/SVF-doxygen/html/search/classes_8.js +56 -56
  55. package/SVF-doxygen/html/search/classes_9.js +1 -1
  56. package/SVF-doxygen/html/search/classes_a.js +12 -12
  57. package/SVF-doxygen/html/search/classes_b.js +29 -29
  58. package/SVF-doxygen/html/search/classes_c.js +6 -6
  59. package/SVF-doxygen/html/search/classes_d.js +18 -18
  60. package/SVF-doxygen/html/search/classes_e.js +36 -36
  61. package/SVF-doxygen/html/search/classes_f.js +25 -25
  62. package/SVF-doxygen/html/search/defines_0.js +3 -3
  63. package/SVF-doxygen/html/search/defines_1.js +2 -2
  64. package/SVF-doxygen/html/search/defines_2.js +30 -30
  65. package/SVF-doxygen/html/search/defines_3.js +21 -21
  66. package/SVF-doxygen/html/search/defines_4.js +2 -2
  67. package/SVF-doxygen/html/search/defines_5.js +4 -4
  68. package/SVF-doxygen/html/search/defines_6.js +2 -2
  69. package/SVF-doxygen/html/search/defines_7.js +5 -5
  70. package/SVF-doxygen/html/search/defines_8.js +11 -11
  71. package/SVF-doxygen/html/search/defines_9.js +9 -9
  72. package/SVF-doxygen/html/search/defines_a.js +2 -2
  73. package/SVF-doxygen/html/search/defines_b.js +1 -1
  74. package/SVF-doxygen/html/search/defines_c.js +3 -3
  75. package/SVF-doxygen/html/search/defines_d.js +2 -2
  76. package/SVF-doxygen/html/search/defines_e.js +7 -7
  77. package/SVF-doxygen/html/search/defines_f.js +3 -3
  78. package/SVF-doxygen/html/search/enums_0.js +3 -3
  79. package/SVF-doxygen/html/search/enums_1.js +2 -2
  80. package/SVF-doxygen/html/search/enums_10.js +1 -1
  81. package/SVF-doxygen/html/search/enums_11.js +1 -1
  82. package/SVF-doxygen/html/search/enums_2.js +8 -8
  83. package/SVF-doxygen/html/search/enums_3.js +1 -1
  84. package/SVF-doxygen/html/search/enums_4.js +3 -3
  85. package/SVF-doxygen/html/search/enums_5.js +1 -1
  86. package/SVF-doxygen/html/search/enums_6.js +2 -2
  87. package/SVF-doxygen/html/search/enums_7.js +2 -2
  88. package/SVF-doxygen/html/search/enums_8.js +4 -4
  89. package/SVF-doxygen/html/search/enums_9.js +1 -1
  90. package/SVF-doxygen/html/search/enums_a.js +1 -1
  91. package/SVF-doxygen/html/search/enums_b.js +7 -7
  92. package/SVF-doxygen/html/search/enums_c.js +1 -1
  93. package/SVF-doxygen/html/search/enums_d.js +4 -4
  94. package/SVF-doxygen/html/search/enums_e.js +2 -2
  95. package/SVF-doxygen/html/search/enums_f.js +4 -4
  96. package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
  97. package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
  98. package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
  99. package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
  100. package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
  101. package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
  102. package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
  103. package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
  104. package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
  105. package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
  106. package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
  107. package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
  108. package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
  109. package/SVF-doxygen/html/search/enumvalues_7.js +9 -9
  110. package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
  111. package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
  112. package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
  113. package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
  114. package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
  115. package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
  116. package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
  117. package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
  118. package/SVF-doxygen/html/search/files_0.js +13 -13
  119. package/SVF-doxygen/html/search/files_1.js +7 -7
  120. package/SVF-doxygen/html/search/files_10.js +8 -8
  121. package/SVF-doxygen/html/search/files_11.js +8 -8
  122. package/SVF-doxygen/html/search/files_12.js +2 -2
  123. package/SVF-doxygen/html/search/files_2.js +55 -55
  124. package/SVF-doxygen/html/search/files_3.js +14 -14
  125. package/SVF-doxygen/html/search/files_4.js +5 -5
  126. package/SVF-doxygen/html/search/files_5.js +13 -13
  127. package/SVF-doxygen/html/search/files_6.js +9 -9
  128. package/SVF-doxygen/html/search/files_7.js +14 -14
  129. package/SVF-doxygen/html/search/files_8.js +13 -13
  130. package/SVF-doxygen/html/search/files_9.js +18 -18
  131. package/SVF-doxygen/html/search/files_a.js +3 -3
  132. package/SVF-doxygen/html/search/files_b.js +2 -2
  133. package/SVF-doxygen/html/search/files_c.js +20 -20
  134. package/SVF-doxygen/html/search/files_d.js +4 -4
  135. package/SVF-doxygen/html/search/files_e.js +62 -62
  136. package/SVF-doxygen/html/search/files_f.js +8 -8
  137. package/SVF-doxygen/html/search/functions_0.js +12 -12
  138. package/SVF-doxygen/html/search/functions_1.js +359 -359
  139. package/SVF-doxygen/html/search/functions_10.js +140 -140
  140. package/SVF-doxygen/html/search/functions_11.js +138 -138
  141. package/SVF-doxygen/html/search/functions_12.js +277 -277
  142. package/SVF-doxygen/html/search/functions_13.js +59 -59
  143. package/SVF-doxygen/html/search/functions_14.js +39 -39
  144. package/SVF-doxygen/html/search/functions_15.js +71 -71
  145. package/SVF-doxygen/html/search/functions_16.js +32 -32
  146. package/SVF-doxygen/html/search/functions_17.js +3 -3
  147. package/SVF-doxygen/html/search/functions_18.js +172 -172
  148. package/SVF-doxygen/html/search/functions_2.js +86 -86
  149. package/SVF-doxygen/html/search/functions_3.js +257 -257
  150. package/SVF-doxygen/html/search/functions_4.js +75 -75
  151. package/SVF-doxygen/html/search/functions_5.js +53 -53
  152. package/SVF-doxygen/html/search/functions_6.js +59 -59
  153. package/SVF-doxygen/html/search/functions_7.js +851 -851
  154. package/SVF-doxygen/html/search/functions_8.js +148 -146
  155. package/SVF-doxygen/html/search/functions_9.js +428 -428
  156. package/SVF-doxygen/html/search/functions_a.js +30 -30
  157. package/SVF-doxygen/html/search/functions_b.js +2 -2
  158. package/SVF-doxygen/html/search/functions_c.js +26 -26
  159. package/SVF-doxygen/html/search/functions_d.js +77 -77
  160. package/SVF-doxygen/html/search/functions_e.js +35 -35
  161. package/SVF-doxygen/html/search/functions_f.js +56 -56
  162. package/SVF-doxygen/html/search/namespaces_0.js +1 -1
  163. package/SVF-doxygen/html/search/namespaces_1.js +7 -7
  164. package/SVF-doxygen/html/search/related_0.js +2 -2
  165. package/SVF-doxygen/html/search/related_1.js +2 -2
  166. package/SVF-doxygen/html/search/related_2.js +2 -2
  167. package/SVF-doxygen/html/search/related_3.js +2 -2
  168. package/SVF-doxygen/html/search/related_4.js +2 -2
  169. package/SVF-doxygen/html/search/related_5.js +1 -1
  170. package/SVF-doxygen/html/search/related_6.js +2 -2
  171. package/SVF-doxygen/html/search/related_7.js +4 -4
  172. package/SVF-doxygen/html/search/related_8.js +2 -2
  173. package/SVF-doxygen/html/search/related_9.js +4 -4
  174. package/SVF-doxygen/html/search/related_a.js +19 -19
  175. package/SVF-doxygen/html/search/related_b.js +4 -4
  176. package/SVF-doxygen/html/search/related_c.js +1 -1
  177. package/SVF-doxygen/html/search/related_d.js +11 -11
  178. package/SVF-doxygen/html/search/related_e.js +2 -2
  179. package/SVF-doxygen/html/search/related_f.js +2 -2
  180. package/SVF-doxygen/html/search/typedefs_0.js +18 -18
  181. package/SVF-doxygen/html/search/typedefs_1.js +26 -26
  182. package/SVF-doxygen/html/search/typedefs_10.js +61 -61
  183. package/SVF-doxygen/html/search/typedefs_11.js +13 -13
  184. package/SVF-doxygen/html/search/typedefs_12.js +11 -11
  185. package/SVF-doxygen/html/search/typedefs_13.js +35 -35
  186. package/SVF-doxygen/html/search/typedefs_14.js +8 -8
  187. package/SVF-doxygen/html/search/typedefs_2.js +129 -129
  188. package/SVF-doxygen/html/search/typedefs_3.js +39 -39
  189. package/SVF-doxygen/html/search/typedefs_4.js +17 -17
  190. package/SVF-doxygen/html/search/typedefs_5.js +41 -41
  191. package/SVF-doxygen/html/search/typedefs_6.js +55 -55
  192. package/SVF-doxygen/html/search/typedefs_7.js +42 -42
  193. package/SVF-doxygen/html/search/typedefs_8.js +1 -1
  194. package/SVF-doxygen/html/search/typedefs_9.js +6 -6
  195. package/SVF-doxygen/html/search/typedefs_a.js +29 -29
  196. package/SVF-doxygen/html/search/typedefs_b.js +29 -29
  197. package/SVF-doxygen/html/search/typedefs_c.js +41 -41
  198. package/SVF-doxygen/html/search/typedefs_d.js +15 -15
  199. package/SVF-doxygen/html/search/typedefs_e.js +52 -52
  200. package/SVF-doxygen/html/search/typedefs_f.js +14 -14
  201. package/SVF-doxygen/html/search/variables_0.js +151 -151
  202. package/SVF-doxygen/html/search/variables_1.js +75 -75
  203. package/SVF-doxygen/html/search/variables_10.js +97 -97
  204. package/SVF-doxygen/html/search/variables_11.js +44 -44
  205. package/SVF-doxygen/html/search/variables_12.js +92 -92
  206. package/SVF-doxygen/html/search/variables_13.js +75 -75
  207. package/SVF-doxygen/html/search/variables_14.js +14 -14
  208. package/SVF-doxygen/html/search/variables_15.js +48 -48
  209. package/SVF-doxygen/html/search/variables_16.js +9 -9
  210. package/SVF-doxygen/html/search/variables_17.js +1 -1
  211. package/SVF-doxygen/html/search/variables_18.js +2 -2
  212. package/SVF-doxygen/html/search/variables_2.js +37 -37
  213. package/SVF-doxygen/html/search/variables_3.js +142 -142
  214. package/SVF-doxygen/html/search/variables_4.js +55 -55
  215. package/SVF-doxygen/html/search/variables_5.js +36 -36
  216. package/SVF-doxygen/html/search/variables_6.js +66 -66
  217. package/SVF-doxygen/html/search/variables_7.js +33 -33
  218. package/SVF-doxygen/html/search/variables_8.js +7 -7
  219. package/SVF-doxygen/html/search/variables_9.js +77 -77
  220. package/SVF-doxygen/html/search/variables_a.js +4 -4
  221. package/SVF-doxygen/html/search/variables_b.js +10 -10
  222. package/SVF-doxygen/html/search/variables_c.js +45 -45
  223. package/SVF-doxygen/html/search/variables_d.js +56 -56
  224. package/SVF-doxygen/html/search/variables_e.js +123 -123
  225. package/SVF-doxygen/html/search/variables_f.js +30 -30
  226. package/package.json +1 -1
  227. package/svf/include/AbstractExecution/IntervalValue.h +74 -26
  228. package/svf-llvm/lib/BreakConstantExpr.cpp +53 -9
@@ -1543,7 +1543,7 @@ $(function() {
1543
1543
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a0b46a2a5ff2165d17993a071d9cc82c1"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a0b46a2a5ff2165d17993a071d9cc82c1">SVF::LLVMModuleSet::getLLVMGlobalFunctions</a></div><div class="ttdeci">std::vector&lt; const Function * &gt; getLLVMGlobalFunctions(const GlobalVariable *global)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00557">LLVMModule.cpp:557</a></div></div>
1544
1544
  <div class="ttc" id="aclassSVF_1_1SVFStat_html_aa4950ec26b66a085ad38ac154b789db5"><div class="ttname"><a href="classSVF_1_1SVFStat.html#aa4950ec26b66a085ad38ac154b789db5">SVF::SVFStat::timeOfBuildingLLVMModule</a></div><div class="ttdeci">static double timeOfBuildingLLVMModule</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00090">SVFStat.h:90</a></div></div>
1545
1545
  <div class="ttc" id="anamespaceSVF_html_a0fd33072b099f61eaa642e94ed0c03fc"><div class="ttname"><a href="namespaceSVF.html#a0fd33072b099f61eaa642e94ed0c03fc">SVF::GlobalAlias</a></div><div class="ttdeci">llvm::GlobalAlias GlobalAlias</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00126">BasicTypes.h:126</a></div></div>
1546
- <div class="ttc" id="anamespaceSVF_html_aedd9d023a68dddd66314be63bb8e48d2"><div class="ttname"><a href="namespaceSVF.html#aedd9d023a68dddd66314be63bb8e48d2">SVF::operator&gt;</a></div><div class="ttdeci">IntervalValue operator&gt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Greater than IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00581">IntervalValue.h:581</a></div></div>
1546
+ <div class="ttc" id="anamespaceSVF_html_aedd9d023a68dddd66314be63bb8e48d2"><div class="ttname"><a href="namespaceSVF.html#aedd9d023a68dddd66314be63bb8e48d2">SVF::operator&gt;</a></div><div class="ttdeci">IntervalValue operator&gt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00581">IntervalValue.h:581</a></div></div>
1547
1547
  <div class="ttc" id="aclassSVF_1_1StInfo_html_a00339d1d7074e9222776801ce8689f6b"><div class="ttname"><a href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">SVF::StInfo::addFldWithType</a></div><div class="ttdeci">void addFldWithType(u32_t fldIdx, const SVFType *type, u32_t elemIdx)</div><div class="ttdoc">Add field index and element index and their corresponding type.</div></div>
1548
1548
  <div class="ttc" id="aSVFUtil_8h_html"><div class="ttname"><a href="SVFUtil_8h.html">SVFUtil.h</a></div></div>
1549
1549
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_af8edfe08027020f14b81b44362c6018e"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#af8edfe08027020f14b81b44362c6018e">SVF::LLVMModuleSet::build</a></div><div class="ttdeci">void build()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00137">LLVMModule.cpp:137</a></div></div>
@@ -698,7 +698,7 @@ $(function() {
698
698
  <div class="ttc" id="aclassSVF_1_1CallCHI_html_a7c0708ad9a2aa6278b1e7404340ca2ad"><div class="ttname"><a href="classSVF_1_1CallCHI.html#a7c0708ad9a2aa6278b1e7404340ca2ad">SVF::CallCHI::classof</a></div><div class="ttdeci">static bool classof(const CallCHI *chi)</div><div class="ttdoc">Methods for support type inquiry through isa, cast, and dyn_cast:</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00551">MSSAMuChi.h:551</a></div></div>
699
699
  <div class="ttc" id="aclassSVF_1_1StoreCHI_html_ae232efca311f75613b16c2a3195c0620"><div class="ttname"><a href="classSVF_1_1StoreCHI.html#ae232efca311f75613b16c2a3195c0620">SVF::StoreCHI::getBasicBlock</a></div><div class="ttdeci">const SVFBasicBlock * getBasicBlock() const</div><div class="ttdoc">Get basic block.</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00479">MSSAMuChi.h:479</a></div></div>
700
700
  <div class="ttc" id="aclassSVF_1_1StoreCHI_html_a4324f81324dd6d6c6ba6d1af32e29985"><div class="ttname"><a href="classSVF_1_1StoreCHI.html#a4324f81324dd6d6c6ba6d1af32e29985">SVF::StoreCHI::classof</a></div><div class="ttdeci">static bool classof(const MSSADEF *chi)</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00500">MSSAMuChi.h:500</a></div></div>
701
- <div class="ttc" id="anamespaceSVF_html_af95793adab8fb9aa19e19027e73372a6"><div class="ttname"><a href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">SVF::operator&lt;&lt;</a></div><div class="ttdeci">IntervalValue operator&lt;&lt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Left binary shift of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00736">IntervalValue.h:736</a></div></div>
701
+ <div class="ttc" id="anamespaceSVF_html_af95793adab8fb9aa19e19027e73372a6"><div class="ttname"><a href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">SVF::operator&lt;&lt;</a></div><div class="ttdeci">IntervalValue operator&lt;&lt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Left binary shift of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00784">IntervalValue.h:784</a></div></div>
702
702
  <div class="ttc" id="aclassSVF_1_1MSSADEF_html_aa7e06959d5b3197d930aa44b09694b52"><div class="ttname"><a href="classSVF_1_1MSSADEF.html#aa7e06959d5b3197d930aa44b09694b52">SVF::MSSADEF::dump</a></div><div class="ttdeci">virtual void dump()</div><div class="ttdoc">Print MSSADef.</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00386">MSSAMuChi.h:386</a></div></div>
703
703
  <div class="ttc" id="aclassSVF_1_1MSSACHI_html_a450055eb758896fb2e3e4f67febe7782"><div class="ttname"><a href="classSVF_1_1MSSACHI.html#a450055eb758896fb2e3e4f67febe7782">SVF::MSSACHI::classof</a></div><div class="ttdeci">static bool classof(const MSSADEF *chi)</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00439">MSSAMuChi.h:439</a></div></div>
704
704
  <div class="ttc" id="aclassSVF_1_1MSSADEF_html_a32682e20c9c08d2bdd5abc62ea17af18aeebaf47309ac06cd04ae69979f4c2580"><div class="ttname"><a href="classSVF_1_1MSSADEF.html#a32682e20c9c08d2bdd5abc62ea17af18aeebaf47309ac06cd04ae69979f4c2580">SVF::MSSADEF::SSACHI</a></div><div class="ttdeci">@ SSACHI</div><div class="ttdef"><b>Definition:</b> <a href="MSSAMuChi_8h_source.html#l00331">MSSAMuChi.h:331</a></div></div>
@@ -808,7 +808,7 @@ $(function() {
808
808
  <div class="ttc" id="aclassSVF_1_1PointsTo_html_ad1d19d52800341484a136c6d5e0112ea"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ad1d19d52800341484a136c6d5e0112ea">SVF::PointsTo::toNodeBS</a></div><div class="ttdeci">NodeBS toNodeBS() const</div><div class="ttdoc">Returns this points-to set as a NodeBS.</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00313">PointsTo.cpp:313</a></div></div>
809
809
  <div class="ttc" id="aclassSVF_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>
810
810
  <div class="ttc" id="aclassSVF_1_1MRGenerator_html_ab250a4950269f57027d8e8ef10089f58"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58">SVF::MRGenerator::pagEdgeToFunMap</a></div><div class="ttdeci">PAGEdgeToFunMap pagEdgeToFunMap</div><div class="ttdoc">Map a PAGEdge to its fun.</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00224">MemRegion.h:224</a></div></div>
811
- <div class="ttc" id="anamespaceSVF_html_af95793adab8fb9aa19e19027e73372a6"><div class="ttname"><a href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">SVF::operator&lt;&lt;</a></div><div class="ttdeci">IntervalValue operator&lt;&lt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Left binary shift of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00736">IntervalValue.h:736</a></div></div>
811
+ <div class="ttc" id="anamespaceSVF_html_af95793adab8fb9aa19e19027e73372a6"><div class="ttname"><a href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">SVF::operator&lt;&lt;</a></div><div class="ttdeci">IntervalValue operator&lt;&lt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Left binary shift of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00784">IntervalValue.h:784</a></div></div>
812
812
  <div class="ttc" id="aclassSVF_1_1MRGenerator_html_a1331e6f0941838064d77a5adaa5c6303"><div class="ttname"><a href="classSVF_1_1MRGenerator.html#a1331e6f0941838064d77a5adaa5c6303">SVF::MRGenerator::getFunToPointsToList</a></div><div class="ttdeci">FunToPointsTosMap &amp; getFunToPointsToList()</div><div class="ttdef"><b>Definition:</b> <a href="MemRegion_8h_source.html#l00371">MemRegion.h:371</a></div></div>
813
813
  <div class="ttc" id="aclassSVF_1_1FIFOWorkList_html_a7056704c224dfb4b57287fe90c004aa8"><div class="ttname"><a href="classSVF_1_1FIFOWorkList.html#a7056704c224dfb4b57287fe90c004aa8">SVF::FIFOWorkList::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="WorkList_8h_source.html#l00146">WorkList.h:146</a></div></div>
814
814
  <div class="ttc" id="aclassSVF_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>
@@ -691,7 +691,7 @@ $(function() {
691
691
  <div class="ttc" id="aclassSVF_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#l00459">SparseBitVector.h:459</a></div></div>
692
692
  <div class="ttc" id="aclassSVF_1_1PointsTo_html_a849f670b38cb6f65fc23707a212591c7"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">SVF::PointsTo::MappingPtr</a></div><div class="ttdeci">std::shared_ptr&lt; std::vector&lt; NodeID &gt; &gt; MappingPtr</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00042">PointsTo.h:42</a></div></div>
693
693
  <div class="ttc" id="aclassSVF_1_1PointsTo_1_1PointsToIterator_html_a0fc3ebfd1990d09cc1b7c26bd94fb57a"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a0fc3ebfd1990d09cc1b7c26bd94fb57a">SVF::PointsTo::PointsToIterator::operator*</a></div><div class="ttdeci">u32_t operator*() const</div><div class="ttdoc">Dereference: *it.</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00516">PointsTo.cpp:516</a></div></div>
694
- <div class="ttc" id="anamespaceSVF_html_abed4354cf0282ae30b8330c0e91008d8"><div class="ttname"><a href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8">SVF::operator|</a></div><div class="ttdeci">IntervalValue operator|(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise OR of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00820">IntervalValue.h:820</a></div></div>
694
+ <div class="ttc" id="anamespaceSVF_html_abed4354cf0282ae30b8330c0e91008d8"><div class="ttname"><a href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8">SVF::operator|</a></div><div class="ttdeci">IntervalValue operator|(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise OR of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00868">IntervalValue.h:868</a></div></div>
695
695
  <div class="ttc" id="aclassSVF_1_1PointsTo_html_a79333c4ae5c002d9632fa589956b3605"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">SVF::PointsTo::cbv</a></div><div class="ttdeci">CoreBitVector cbv</div><div class="ttdoc">Core bit vector backing.</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00168">PointsTo.h:168</a></div></div>
696
696
  <div class="ttc" id="acJSON_8cpp_html_ab6e2ea6dc7bd57d1483413449998230a"><div class="ttname"><a href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a></div><div class="ttdeci">cJSON * n</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02558">cJSON.cpp:2558</a></div></div>
697
697
  <div class="ttc" id="aclassSVF_1_1PointsTo_html_a731a028a2a4ed30e86992652ad71a63f"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a731a028a2a4ed30e86992652ad71a63f">SVF::PointsTo::checkAndRemap</a></div><div class="ttdeci">void checkAndRemap()</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00378">PointsTo.cpp:378</a></div></div>
@@ -710,7 +710,7 @@ $(function() {
710
710
  <div class="ttc" id="aclassSVF_1_1PointsTo_1_1PointsToIterator_html_a735a2a9f0c3f4bc3997edf11b133c0f9"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a735a2a9f0c3f4bc3997edf11b133c0f9">SVF::PointsTo::PointsToIterator::sbvIt</a></div><div class="ttdeci">SparseBitVector ::iterator sbvIt</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00227">PointsTo.h:227</a></div></div>
711
711
  <div class="ttc" id="aclassSVF_1_1PointsTo_1_1PointsToIterator_html_acbbcff746f7f0dc37815e688e9172f21"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html#acbbcff746f7f0dc37815e688e9172f21">SVF::PointsTo::PointsToIterator::operator=</a></div><div class="ttdeci">PointsToIterator &amp; operator=(const PointsToIterator &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00455">PointsTo.cpp:455</a></div></div>
712
712
  <div class="ttc" id="aclassSVF_1_1PointsTo_html_a269d334618e4acc7e739317fd58d7fe7"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a269d334618e4acc7e739317fd58d7fe7">SVF::PointsTo::operator=</a></div><div class="ttdeci">PointsTo &amp; operator=(const PointsTo &amp;rhs)</div><div class="ttdoc">Copy assignment.</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00066">PointsTo.cpp:66</a></div></div>
713
- <div class="ttc" id="anamespaceSVF_html_a8ca7e84917358976240bc88c3cceb0c2"><div class="ttname"><a href="namespaceSVF.html#a8ca7e84917358976240bc88c3cceb0c2">SVF::operator&amp;</a></div><div class="ttdeci">IntervalValue operator&amp;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise AND of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00793">IntervalValue.h:793</a></div></div>
713
+ <div class="ttc" id="anamespaceSVF_html_a8ca7e84917358976240bc88c3cceb0c2"><div class="ttname"><a href="namespaceSVF.html#a8ca7e84917358976240bc88c3cceb0c2">SVF::operator&amp;</a></div><div class="ttdeci">IntervalValue operator&amp;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise AND of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00841">IntervalValue.h:841</a></div></div>
714
714
  <div class="ttc" id="aclassSVF_1_1PointsTo_1_1PointsToIterator_html_abd2c3366cbb4f24b2e0bc30ea282b752"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html#abd2c3366cbb4f24b2e0bc30ea282b752">SVF::PointsTo::PointsToIterator::PointsToIterator</a></div><div class="ttdeci">PointsToIterator()=delete</div><div class="ttdoc">Deleted because we don't want iterators with null pt.</div></div>
715
715
  <div class="ttc" id="anamespaceSVF_html_a4bddb7dbd28d3c0deb3cd35e48179a36"><div class="ttname"><a href="namespaceSVF.html#a4bddb7dbd28d3c0deb3cd35e48179a36">SVF::operator-</a></div><div class="ttdeci">IntervalValue operator-(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Subtract IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00477">IntervalValue.h:477</a></div></div>
716
716
  <div class="ttc" id="aclassSVF_1_1PointsTo_html_ab196d86cfb48d1c5d27a0c03c7497afa"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">SVF::PointsTo::set</a></div><div class="ttdeci">void set(u32_t n)</div><div class="ttdoc">Inserts n in the set.</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00157">PointsTo.cpp:157</a></div></div>
@@ -287,7 +287,7 @@ $(function() {
287
287
  <div class="ttc" id="aclassSVF_1_1PointsTo_html_a849f670b38cb6f65fc23707a212591c7"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">SVF::PointsTo::MappingPtr</a></div><div class="ttdeci">std::shared_ptr&lt; std::vector&lt; NodeID &gt; &gt; MappingPtr</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00042">PointsTo.h:42</a></div></div>
288
288
  <div class="ttc" id="aSparseBitVector_8h_html"><div class="ttname"><a href="SparseBitVector_8h.html">SparseBitVector.h</a></div></div>
289
289
  <div class="ttc" id="aclassSVF_1_1PointsTo_1_1PointsToIterator_html_a0fc3ebfd1990d09cc1b7c26bd94fb57a"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a0fc3ebfd1990d09cc1b7c26bd94fb57a">SVF::PointsTo::PointsToIterator::operator*</a></div><div class="ttdeci">u32_t operator*() const</div><div class="ttdoc">Dereference: *it.</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00516">PointsTo.cpp:516</a></div></div>
290
- <div class="ttc" id="anamespaceSVF_html_abed4354cf0282ae30b8330c0e91008d8"><div class="ttname"><a href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8">SVF::operator|</a></div><div class="ttdeci">IntervalValue operator|(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise OR of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00820">IntervalValue.h:820</a></div></div>
290
+ <div class="ttc" id="anamespaceSVF_html_abed4354cf0282ae30b8330c0e91008d8"><div class="ttname"><a href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8">SVF::operator|</a></div><div class="ttdeci">IntervalValue operator|(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise OR of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00868">IntervalValue.h:868</a></div></div>
291
291
  <div class="ttc" id="aclassSVF_1_1PointsTo_html_a79333c4ae5c002d9632fa589956b3605"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a79333c4ae5c002d9632fa589956b3605">SVF::PointsTo::cbv</a></div><div class="ttdeci">CoreBitVector cbv</div><div class="ttdoc">Core bit vector backing.</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00168">PointsTo.h:168</a></div></div>
292
292
  <div class="ttc" id="acJSON_8cpp_html_ab6e2ea6dc7bd57d1483413449998230a"><div class="ttname"><a href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a></div><div class="ttdeci">cJSON * n</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02558">cJSON.cpp:2558</a></div></div>
293
293
  <div class="ttc" id="aclassSVF_1_1PointsTo_html_a731a028a2a4ed30e86992652ad71a63f"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a731a028a2a4ed30e86992652ad71a63f">SVF::PointsTo::checkAndRemap</a></div><div class="ttdeci">void checkAndRemap()</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00378">PointsTo.cpp:378</a></div></div>
@@ -306,7 +306,7 @@ $(function() {
306
306
  <div class="ttc" id="aclassSVF_1_1PointsTo_1_1PointsToIterator_html_a28e12df86b7514e119e2b4f7bffd29c9"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html#a28e12df86b7514e119e2b4f7bffd29c9">SVF::PointsTo::PointsToIterator::reference</a></div><div class="ttdeci">u32_t &amp; reference</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00188">PointsTo.h:188</a></div></div>
307
307
  <div class="ttc" id="aclassSVF_1_1PointsTo_1_1PointsToIterator_html_acbbcff746f7f0dc37815e688e9172f21"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html#acbbcff746f7f0dc37815e688e9172f21">SVF::PointsTo::PointsToIterator::operator=</a></div><div class="ttdeci">PointsToIterator &amp; operator=(const PointsToIterator &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00455">PointsTo.cpp:455</a></div></div>
308
308
  <div class="ttc" id="aclassSVF_1_1PointsTo_html_a269d334618e4acc7e739317fd58d7fe7"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a269d334618e4acc7e739317fd58d7fe7">SVF::PointsTo::operator=</a></div><div class="ttdeci">PointsTo &amp; operator=(const PointsTo &amp;rhs)</div><div class="ttdoc">Copy assignment.</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00066">PointsTo.cpp:66</a></div></div>
309
- <div class="ttc" id="anamespaceSVF_html_a8ca7e84917358976240bc88c3cceb0c2"><div class="ttname"><a href="namespaceSVF.html#a8ca7e84917358976240bc88c3cceb0c2">SVF::operator&amp;</a></div><div class="ttdeci">IntervalValue operator&amp;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise AND of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00793">IntervalValue.h:793</a></div></div>
309
+ <div class="ttc" id="anamespaceSVF_html_a8ca7e84917358976240bc88c3cceb0c2"><div class="ttname"><a href="namespaceSVF.html#a8ca7e84917358976240bc88c3cceb0c2">SVF::operator&amp;</a></div><div class="ttdeci">IntervalValue operator&amp;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise AND of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00841">IntervalValue.h:841</a></div></div>
310
310
  <div class="ttc" id="aclassSVF_1_1PointsTo_1_1PointsToIterator_html_abd2c3366cbb4f24b2e0bc30ea282b752"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html#abd2c3366cbb4f24b2e0bc30ea282b752">SVF::PointsTo::PointsToIterator::PointsToIterator</a></div><div class="ttdeci">PointsToIterator()=delete</div><div class="ttdoc">Deleted because we don't want iterators with null pt.</div></div>
311
311
  <div class="ttc" id="anamespaceSVF_html_a4bddb7dbd28d3c0deb3cd35e48179a36"><div class="ttname"><a href="namespaceSVF.html#a4bddb7dbd28d3c0deb3cd35e48179a36">SVF::operator-</a></div><div class="ttdeci">IntervalValue operator-(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Subtract IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00477">IntervalValue.h:477</a></div></div>
312
312
  <div class="ttc" id="aclassSVF_1_1PointsTo_html_ab196d86cfb48d1c5d27a0c03c7497afa"><div class="ttname"><a href="classSVF_1_1PointsTo.html#ab196d86cfb48d1c5d27a0c03c7497afa">SVF::PointsTo::set</a></div><div class="ttdeci">void set(u32_t n)</div><div class="ttdoc">Inserts n in the set.</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8cpp_source.html#l00157">PointsTo.cpp:157</a></div></div>
@@ -135,7 +135,7 @@ $(function() {
135
135
  <div class="ttc" id="aclassSVF_1_1SVFIntegerType_html_a887e8255bb19f85d80d737ac753f0a87"><div class="ttname"><a href="classSVF_1_1SVFIntegerType.html#a887e8255bb19f85d80d737ac753f0a87">SVF::SVFIntegerType::signAndWidth</a></div><div class="ttdeci">short signAndWidth</div><div class="ttdoc">For printing.</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00382">SVFType.h:382</a></div></div>
136
136
  <div class="ttc" id="aclassSVF_1_1SVFStructType_html_ab801eeb012f9c462bca9745afdb2c43b"><div class="ttname"><a href="classSVF_1_1SVFStructType.html#ab801eeb012f9c462bca9745afdb2c43b">SVF::SVFStructType::print</a></div><div class="ttdeci">void print(std::ostream &amp;os) const override</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8cpp_source.html#l00046">SVFType.cpp:46</a></div></div>
137
137
  <div class="ttc" id="anamespaceSVF_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="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
138
- <div class="ttc" id="anamespaceSVF_html_af95793adab8fb9aa19e19027e73372a6"><div class="ttname"><a href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">SVF::operator&lt;&lt;</a></div><div class="ttdeci">IntervalValue operator&lt;&lt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Left binary shift of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00736">IntervalValue.h:736</a></div></div>
138
+ <div class="ttc" id="anamespaceSVF_html_af95793adab8fb9aa19e19027e73372a6"><div class="ttname"><a href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">SVF::operator&lt;&lt;</a></div><div class="ttdeci">IntervalValue operator&lt;&lt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Left binary shift of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00784">IntervalValue.h:784</a></div></div>
139
139
  <div class="ttc" id="aSVFType_8h_html"><div class="ttname"><a href="SVFType_8h.html">SVFType.h</a></div></div>
140
140
  <div class="ttc" id="aclassSVF_1_1SVFOtherType_html_a09ccc6569e4a775e21596511a9c58d97"><div class="ttname"><a href="classSVF_1_1SVFOtherType.html#a09ccc6569e4a775e21596511a9c58d97">SVF::SVFOtherType::print</a></div><div class="ttdeci">void print(std::ostream &amp;os) const override</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8cpp_source.html#l00056">SVFType.cpp:56</a></div></div>
141
141
  <div class="ttc" id="acJSON_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>
@@ -734,7 +734,7 @@ $(function() {
734
734
  <div class="ttc" id="astructSVF_1_1Hash_html"><div class="ttname"><a href="structSVF_1_1Hash.html">SVF::Hash</a></div><div class="ttdoc">provide extra hash function for std::pair handling</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00067">SVFType.h:67</a></div></div>
735
735
  <div class="ttc" id="anamespaceSVF_html_a4831992588252dc51c102e9e3f7d5e2e"><div class="ttname"><a href="namespaceSVF.html#a4831992588252dc51c102e9e3f7d5e2e">SVF::EdgeVector</a></div><div class="ttdeci">std::vector&lt; EdgeID &gt; EdgeVector</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00118">SVFType.h:118</a></div></div>
736
736
  <div class="ttc" id="aclassSVF_1_1SVFStructType_html_acb09f35e745bc341d15285d528bc1240"><div class="ttname"><a href="classSVF_1_1SVFStructType.html#acb09f35e745bc341d15285d528bc1240">SVF::SVFStructType::SVFStructType</a></div><div class="ttdeci">SVFStructType()</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00439">SVFType.h:439</a></div></div>
737
- <div class="ttc" id="anamespaceSVF_html_af95793adab8fb9aa19e19027e73372a6"><div class="ttname"><a href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">SVF::operator&lt;&lt;</a></div><div class="ttdeci">IntervalValue operator&lt;&lt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Left binary shift of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00736">IntervalValue.h:736</a></div></div>
737
+ <div class="ttc" id="anamespaceSVF_html_af95793adab8fb9aa19e19027e73372a6"><div class="ttname"><a href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">SVF::operator&lt;&lt;</a></div><div class="ttdeci">IntervalValue operator&lt;&lt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Left binary shift of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00784">IntervalValue.h:784</a></div></div>
738
738
  <div class="ttc" id="anamespaceSVF_html_a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239"><div class="ttname"><a href="namespaceSVF.html#a61c01e2e687ab3a001fb806737583943afdd83ddff93d38902f07775cd36df239">SVF::NoAlias</a></div><div class="ttdeci">@ NoAlias</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00613">SVFType.h:613</a></div></div>
739
739
  <div class="ttc" id="aclassSVF_1_1StInfo_html_ae5fad367673315da57a604e64b5889f0"><div class="ttname"><a href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0">SVF::StInfo::getNumOfFlattenFields</a></div><div class="ttdeci">u32_t getNumOfFlattenFields() const</div><div class="ttdoc">Return the number of fields after flattening (ignoring array elements)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00231">SVFType.h:231</a></div></div>
740
740
  <div class="ttc" id="aclassSVF_1_1SVFPointerType_html_aaaa79de3df0f6764bfd3d2e487ea7a09"><div class="ttname"><a href="classSVF_1_1SVFPointerType.html#aaaa79de3df0f6764bfd3d2e487ea7a09">SVF::SVFPointerType::setPtrElementType</a></div><div class="ttdeci">void setPtrElementType(SVFType *_ptrElementType)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00368">SVFType.h:368</a></div></div>
@@ -1339,7 +1339,7 @@ $(function() {
1339
1339
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_ad865b8440a6e0d5d212798d2213e1e9c"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ad865b8440a6e0d5d212798d2213e1e9c">SVF::SVFFunction::addArgument</a></div><div class="ttdeci">void addArgument(SVFArgument *arg)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00331">SVFValue.h:331</a></div></div>
1340
1340
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a65d9c963b658fbcc67bdf949d5644e65"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a65d9c963b658fbcc67bdf949d5644e65">SVF::SVFFunction::getDomFrontierMap</a></div><div class="ttdeci">const Map&lt; const SVFBasicBlock *, BBSet &gt; &amp; getDomFrontierMap() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00496">SVFValue.h:496</a></div></div>
1341
1341
  <div class="ttc" id="aclassSVF_1_1SVFConstantNullPtr_html_ab1b6b67fc90132d8ddbac873ced2f76e"><div class="ttname"><a href="classSVF_1_1SVFConstantNullPtr.html#ab1b6b67fc90132d8ddbac873ced2f76e">SVF::SVFConstantNullPtr::classof</a></div><div class="ttdeci">static bool classof(const SVFValue *node)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01028">SVFValue.h:1028</a></div></div>
1342
- <div class="ttc" id="anamespaceSVF_html_af95793adab8fb9aa19e19027e73372a6"><div class="ttname"><a href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">SVF::operator&lt;&lt;</a></div><div class="ttdeci">IntervalValue operator&lt;&lt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Left binary shift of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00736">IntervalValue.h:736</a></div></div>
1342
+ <div class="ttc" id="anamespaceSVF_html_af95793adab8fb9aa19e19027e73372a6"><div class="ttname"><a href="namespaceSVF.html#af95793adab8fb9aa19e19027e73372a6">SVF::operator&lt;&lt;</a></div><div class="ttdeci">IntervalValue operator&lt;&lt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Left binary shift of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00784">IntervalValue.h:784</a></div></div>
1343
1343
  <div class="ttc" id="aclassSVF_1_1SVFCallInst_html_ab8ea07e329ce09b1874d482465724121"><div class="ttname"><a href="classSVF_1_1SVFCallInst.html#ab8ea07e329ce09b1874d482465724121">SVF::SVFCallInst::getNumArgOperands</a></div><div class="ttdeci">u32_t getNumArgOperands() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00740">SVFValue.h:740</a></div></div>
1344
1344
  <div class="ttc" id="anamespaceSVF_html_a366625858f450a1ea5f985a3c83e0f14"><div class="ttname"><a href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">SVF::u64_t</a></div><div class="ttdeci">unsigned long long u64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00053">SVFType.h:53</a></div></div>
1345
1345
  <div class="ttc" id="aclassSVF_1_1SVFFunction_html_a37f89063b55ff657a07e186224338ce8"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a37f89063b55ff657a07e186224338ce8">SVF::SVFFunction::setIsUncalledFunction</a></div><div class="ttdeci">void setIsUncalledFunction(bool uncalledFunction)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00336">SVFValue.h:336</a></div></div>
@@ -1275,7 +1275,7 @@ $(function() {
1275
1275
  <div class="ttc" id="aclassSVF_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#l00459">SparseBitVector.h:459</a></div></div>
1276
1276
  <div class="ttc" id="astructSVF_1_1SparseBitVectorElement_html_a6d81176f07f369b38da34e624710b387"><div class="ttname"><a href="structSVF_1_1SparseBitVectorElement.html#a6d81176f07f369b38da34e624710b387">SVF::SparseBitVectorElement::intersectWithComplement</a></div><div class="ttdeci">void intersectWithComplement(const SparseBitVectorElement &amp;RHS1, const SparseBitVectorElement &amp;RHS2, bool &amp;BecameZero)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00441">SparseBitVector.h:441</a></div></div>
1277
1277
  <div class="ttc" id="astructSVF_1_1SparseBitVectorElement_html_a2281ff5a0a492064cff864d4c246cbc2"><div class="ttname"><a href="structSVF_1_1SparseBitVectorElement.html#a2281ff5a0a492064cff864d4c246cbc2">SVF::SparseBitVectorElement::find_first</a></div><div class="ttdeci">int find_first() const</div><div class="ttdoc">find_first - Returns the index of the first set bit.</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00315">SparseBitVector.h:315</a></div></div>
1278
- <div class="ttc" id="anamespaceSVF_html_abed4354cf0282ae30b8330c0e91008d8"><div class="ttname"><a href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8">SVF::operator|</a></div><div class="ttdeci">IntervalValue operator|(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise OR of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00820">IntervalValue.h:820</a></div></div>
1278
+ <div class="ttc" id="anamespaceSVF_html_abed4354cf0282ae30b8330c0e91008d8"><div class="ttname"><a href="namespaceSVF.html#abed4354cf0282ae30b8330c0e91008d8">SVF::operator|</a></div><div class="ttdeci">IntervalValue operator|(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise OR of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00868">IntervalValue.h:868</a></div></div>
1279
1279
  <div class="ttc" id="aclassSVF_1_1SparseBitVector_html_ab094576b73de3c8580ea152f90d63636"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#ab094576b73de3c8580ea152f90d63636">SVF::SparseBitVector::Elements</a></div><div class="ttdeci">ElementList Elements</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00472">SparseBitVector.h:472</a></div></div>
1280
1280
  <div class="ttc" id="aclassSVF_1_1SparseBitVector_html_a9cb4261779da0cbeb8d09b8fbd5cf557"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a9cb4261779da0cbeb8d09b8fbd5cf557">SVF::SparseBitVector::SparseBitVector</a></div><div class="ttdeci">SparseBitVector(const SparseBitVector &amp;RHS)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00679">SparseBitVector.h:679</a></div></div>
1281
1281
  <div class="ttc" id="aclassSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html_abc3768e05459a1d0a2d2220858a7a53d"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html#abc3768e05459a1d0a2d2220858a7a53d">SVF::SparseBitVector::SparseBitVectorIterator::Bits</a></div><div class="ttdeci">SparseBitVectorElement&lt; ElementSize &gt;::BitWord Bits</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00553">SparseBitVector.h:553</a></div></div>
@@ -1289,7 +1289,7 @@ $(function() {
1289
1289
  <div class="ttc" id="aclassSVF_1_1SparseBitVector_html_a1558d1431f987fa42e99126e171a5a00"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a1558d1431f987fa42e99126e171a5a00">SVF::SparseBitVector::operator&amp;=</a></div><div class="ttdeci">bool operator&amp;=(const SparseBitVector &amp;RHS)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00844">SparseBitVector.h:844</a></div></div>
1290
1290
  <div class="ttc" id="aclassSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html_ab1f0f55fdfef6b2d64d0a715483f5da4"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html#ab1f0f55fdfef6b2d64d0a715483f5da4">SVF::SparseBitVector::SparseBitVectorIterator::operator*</a></div><div class="ttdeci">unsigned operator*() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00653">SparseBitVector.h:653</a></div></div>
1291
1291
  <div class="ttc" id="astructSVF_1_1SparseBitVectorElement_html_ad9e38352db094adcdfb2964f325d9e53"><div class="ttname"><a href="structSVF_1_1SparseBitVectorElement.html#ad9e38352db094adcdfb2964f325d9e53">SVF::SparseBitVectorElement::size_type</a></div><div class="ttdeci">unsigned size_type</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00224">SparseBitVector.h:224</a></div></div>
1292
- <div class="ttc" id="anamespaceSVF_html_a8ca7e84917358976240bc88c3cceb0c2"><div class="ttname"><a href="namespaceSVF.html#a8ca7e84917358976240bc88c3cceb0c2">SVF::operator&amp;</a></div><div class="ttdeci">IntervalValue operator&amp;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise AND of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00793">IntervalValue.h:793</a></div></div>
1292
+ <div class="ttc" id="anamespaceSVF_html_a8ca7e84917358976240bc88c3cceb0c2"><div class="ttname"><a href="namespaceSVF.html#a8ca7e84917358976240bc88c3cceb0c2">SVF::operator&amp;</a></div><div class="ttdeci">IntervalValue operator&amp;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Bitwise AND of IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00841">IntervalValue.h:841</a></div></div>
1293
1293
  <div class="ttc" id="aclassSVF_1_1SparseBitVector_1_1SparseBitVectorIterator_html_a7fc92990c6a09c33c3676ab47807bc68"><div class="ttname"><a href="classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html#a7fc92990c6a09c33c3676ab47807bc68">SVF::SparseBitVector::SparseBitVectorIterator::operator==</a></div><div class="ttdeci">bool operator==(const SparseBitVectorIterator &amp;RHS) const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00658">SparseBitVector.h:658</a></div></div>
1294
1294
  <div class="ttc" id="anamespaceSVF_html_a68ad438785ef7186d76378b98dc83543"><div class="ttname"><a href="namespaceSVF.html#a68ad438785ef7186d76378b98dc83543">SVF::operator&amp;=</a></div><div class="ttdeci">bool operator&amp;=(SparseBitVector&lt; ElementSize &gt; *LHS, const SparseBitVector&lt; ElementSize &gt; &amp;RHS)</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01144">SparseBitVector.h:1144</a></div></div>
1295
1295
  <div class="ttc" id="anamespaceSVF_html_a4bddb7dbd28d3c0deb3cd35e48179a36"><div class="ttname"><a href="namespaceSVF.html#a4bddb7dbd28d3c0deb3cd35e48179a36">SVF::operator-</a></div><div class="ttdeci">IntervalValue operator-(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Subtract IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00477">IntervalValue.h:477</a></div></div>
@@ -183,105 +183,105 @@ Static Public Attributes</h2></td></tr>
183
183
  </table>
184
184
  </div><div class="memdoc">
185
185
 
186
- <p class="definition">Definition at line <a class="el" href="BreakConstantExpr_8cpp_source.html#l00142">142</a> of file <a class="el" href="BreakConstantExpr_8cpp_source.html">BreakConstantExpr.cpp</a>.</p>
187
- <div class="fragment"><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;{</div>
188
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">bool</span> modified = <span class="keyword">false</span>;</div>
189
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">for</span> (Module::iterator <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> = module.begin(), E = module.end(); <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> != E; ++<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
190
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div>
191
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">// Worklist of values to check for constant GEP expressions</span></div>
192
- <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; std::vector&lt;Instruction* &gt; Worklist;</div>
193
- <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; </div>
194
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">//</span></div>
195
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">// Initialize the worklist by finding all instructions that have one or more</span></div>
196
- <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="comment">// operands containing a constant GEP expression.</span></div>
197
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">//</span></div>
198
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">for</span> (Function::iterator BB = (*F).begin(); BB != (*F).end(); ++BB)</div>
199
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {</div>
200
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">for</span> (BasicBlock::iterator i = BB-&gt;begin(); i != BB-&gt;end(); ++i)</div>
201
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {</div>
202
- <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">//</span></div>
203
- <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="comment">// Scan through the operands of this instruction. If it is a constant</span></div>
204
- <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">// expression GEP, insert an instruction GEP before the instruction.</span></div>
205
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">//</span></div>
206
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* I = &amp;(*i);</div>
207
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> &lt; I-&gt;getNumOperands(); ++<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)</div>
208
- <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; {</div>
209
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a> (I-&gt;getOperand(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)))</div>
210
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; {</div>
211
- <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; Worklist.push_back (I);</div>
212
- <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div>
213
- <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div>
214
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div>
215
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div>
216
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; </div>
217
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">//</span></div>
218
- <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="comment">// Determine whether we will modify anything.</span></div>
219
- <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">//</span></div>
220
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span> (Worklist.size()) modified = <span class="keyword">true</span>;</div>
221
- <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; </div>
222
- <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">//</span></div>
223
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="comment">// While the worklist is not empty, take an item from it, convert the</span></div>
224
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// operands into instructions if necessary, and determine if the newly</span></div>
225
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">// added instructions need to be processed as well.</span></div>
226
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="comment">//</span></div>
227
- <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">while</span> (Worklist.size())</div>
228
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; {</div>
229
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* I = Worklist.back();</div>
230
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; Worklist.pop_back();</div>
231
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; </div>
232
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="comment">//</span></div>
233
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="comment">// Scan through the operands of this instruction and convert each into an</span></div>
234
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">// instruction. Note that this works a little differently for phi</span></div>
235
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// instructions because the new instruction must be added to the</span></div>
236
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="comment">// appropriate predecessor block.</span></div>
237
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">//</span></div>
238
- <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#ac8d4990439af7a2ecca7e15383119674">PHINode</a> * PHI = SVFUtil::dyn_cast&lt;PHINode&gt;(I))</div>
239
- <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; {</div>
240
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> &lt; PHI-&gt;getNumIncomingValues(); ++<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)</div>
241
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; {</div>
242
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">//</span></div>
243
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="comment">// For PHI Nodes, if an operand is a constant expression with a GEP, we</span></div>
244
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// want to insert the new instructions in the predecessor basic block.</span></div>
245
- <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="comment">//</span></div>
246
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">// Note: It seems that it&#39;s possible for a phi to have the same</span></div>
247
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">// incoming basic block listed multiple times; this seems okay as long</span></div>
248
- <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">// the same value is listed for the incoming block.</span></div>
249
- <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="comment">//</span></div>
250
- <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* InsertPt = PHI-&gt;getIncomingBlock(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)-&gt;getTerminator();</div>
251
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> * CE = <a class="code" href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a> (PHI-&gt;getIncomingValue(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)))</div>
252
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div>
253
- <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* NewInst = <a class="code" href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1">convertExpression</a> (CE, InsertPt);</div>
254
- <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i2 = <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>; i2 &lt; PHI-&gt;getNumIncomingValues(); ++i2)</div>
255
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; {</div>
256
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span> ((PHI-&gt;getIncomingBlock (i2)) == PHI-&gt;getIncomingBlock (<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>))</div>
257
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; PHI-&gt;setIncomingValue (i2, NewInst);</div>
258
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div>
259
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; Worklist.push_back (NewInst);</div>
260
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div>
261
- <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div>
262
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div>
263
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">else</span></div>
264
- <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; {</div>
265
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> &lt; I-&gt;getNumOperands(); ++<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)</div>
266
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; {</div>
267
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">//</span></div>
268
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="comment">// For other instructions, we want to insert instructions replacing</span></div>
269
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="comment">// constant expressions immediately before the instruction using the</span></div>
270
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="comment">// constant expression.</span></div>
271
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">//</span></div>
272
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> * CE = <a class="code" href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a> (I-&gt;getOperand(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)))</div>
273
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; {</div>
274
- <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* NewInst = <a class="code" href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1">convertExpression</a> (CE, I);</div>
275
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; I-&gt;replaceUsesOfWith (CE, NewInst);</div>
276
- <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; Worklist.push_back (NewInst);</div>
277
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div>
278
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div>
279
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div>
280
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div>
281
- <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; </div>
282
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div>
283
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span> modified;</div>
284
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;}</div>
186
+ <p class="definition">Definition at line <a class="el" href="BreakConstantExpr_8cpp_source.html#l00186">186</a> of file <a class="el" href="BreakConstantExpr_8cpp_source.html">BreakConstantExpr.cpp</a>.</p>
187
+ <div class="fragment"><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;{</div>
188
+ <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordtype">bool</span> modified = <span class="keyword">false</span>;</div>
189
+ <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">for</span> (Module::iterator <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> = module.begin(), E = module.end(); <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> != E; ++<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
190
+ <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; {</div>
191
+ <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// Worklist of values to check for constant GEP expressions</span></div>
192
+ <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; std::vector&lt;Instruction* &gt; Worklist;</div>
193
+ <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div>
194
+ <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="comment">//</span></div>
195
+ <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="comment">// Initialize the worklist by finding all instructions that have one or more</span></div>
196
+ <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">// operands containing a constant GEP expression.</span></div>
197
+ <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">//</span></div>
198
+ <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">for</span> (Function::iterator BB = (*F).begin(); BB != (*F).end(); ++BB)</div>
199
+ <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; {</div>
200
+ <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">for</span> (BasicBlock::iterator i = BB-&gt;begin(); i != BB-&gt;end(); ++i)</div>
201
+ <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; {</div>
202
+ <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">//</span></div>
203
+ <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">// Scan through the operands of this instruction. If it is a constant</span></div>
204
+ <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">// expression GEP, insert an instruction GEP before the instruction.</span></div>
205
+ <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="comment">//</span></div>
206
+ <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* I = &amp;(*i);</div>
207
+ <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> &lt; I-&gt;getNumOperands(); ++<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)</div>
208
+ <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; {</div>
209
+ <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="BreakConstantExpr_8cpp.html#a7b06934734ebef30b8f24221e1380f93">hasConstantExpr</a>(I-&gt;getOperand(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)))</div>
210
+ <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div>
211
+ <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; Worklist.push_back (I);</div>
212
+ <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div>
213
+ <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div>
214
+ <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div>
215
+ <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div>
216
+ <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; </div>
217
+ <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">//</span></div>
218
+ <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">// Determine whether we will modify anything.</span></div>
219
+ <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="comment">//</span></div>
220
+ <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span> (Worklist.size()) modified = <span class="keyword">true</span>;</div>
221
+ <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; </div>
222
+ <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="comment">//</span></div>
223
+ <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">// While the worklist is not empty, take an item from it, convert the</span></div>
224
+ <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="comment">// operands into instructions if necessary, and determine if the newly</span></div>
225
+ <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="comment">// added instructions need to be processed as well.</span></div>
226
+ <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="comment">//</span></div>
227
+ <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">while</span> (Worklist.size())</div>
228
+ <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; {</div>
229
+ <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* I = Worklist.back();</div>
230
+ <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; Worklist.pop_back();</div>
231
+ <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; </div>
232
+ <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="comment">//</span></div>
233
+ <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="comment">// Scan through the operands of this instruction and convert each into an</span></div>
234
+ <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// instruction. Note that this works a little differently for phi</span></div>
235
+ <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="comment">// instructions because the new instruction must be added to the</span></div>
236
+ <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="comment">// appropriate predecessor block.</span></div>
237
+ <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="comment">//</span></div>
238
+ <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#ac8d4990439af7a2ecca7e15383119674">PHINode</a> * PHI = SVFUtil::dyn_cast&lt;PHINode&gt;(I))</div>
239
+ <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; {</div>
240
+ <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> &lt; PHI-&gt;getNumIncomingValues(); ++<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)</div>
241
+ <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; {</div>
242
+ <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="comment">//</span></div>
243
+ <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="comment">// For PHI Nodes, if an operand is a constant expression with a GEP, we</span></div>
244
+ <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="comment">// want to insert the new instructions in the predecessor basic block.</span></div>
245
+ <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="comment">//</span></div>
246
+ <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="comment">// Note: It seems that it&#39;s possible for a phi to have the same</span></div>
247
+ <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="comment">// incoming basic block listed multiple times; this seems okay as long</span></div>
248
+ <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="comment">// the same value is listed for the incoming block.</span></div>
249
+ <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="comment">//</span></div>
250
+ <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* InsertPt = PHI-&gt;getIncomingBlock(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)-&gt;getTerminator();</div>
251
+ <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> * CE = <a class="code" href="BreakConstantExpr_8cpp.html#a7b06934734ebef30b8f24221e1380f93">hasConstantExpr</a>(PHI-&gt;getIncomingValue(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)))</div>
252
+ <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; {</div>
253
+ <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* NewInst = <a class="code" href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1">convertExpression</a> (CE, InsertPt);</div>
254
+ <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i2 = <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>; i2 &lt; PHI-&gt;getNumIncomingValues(); ++i2)</div>
255
+ <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; {</div>
256
+ <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">if</span> ((PHI-&gt;getIncomingBlock (i2)) == PHI-&gt;getIncomingBlock (<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>))</div>
257
+ <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; PHI-&gt;setIncomingValue (i2, NewInst);</div>
258
+ <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div>
259
+ <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; Worklist.push_back (NewInst);</div>
260
+ <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div>
261
+ <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</div>
262
+ <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; }</div>
263
+ <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">else</span></div>
264
+ <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; {</div>
265
+ <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> = 0; <a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a> &lt; I-&gt;getNumOperands(); ++<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)</div>
266
+ <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; {</div>
267
+ <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="comment">//</span></div>
268
+ <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="comment">// For other instructions, we want to insert instructions replacing</span></div>
269
+ <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="comment">// constant expressions immediately before the instruction using the</span></div>
270
+ <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="comment">// constant expression.</span></div>
271
+ <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="comment">//</span></div>
272
+ <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">ConstantExpr</a> * CE = <a class="code" href="BreakConstantExpr_8cpp.html#a7b06934734ebef30b8f24221e1380f93">hasConstantExpr</a>(I-&gt;getOperand(<a class="code" href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a>)))</div>
273
+ <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; {</div>
274
+ <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* NewInst = <a class="code" href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1">convertExpression</a> (CE, I);</div>
275
+ <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; I-&gt;replaceUsesOfWith (CE, NewInst);</div>
276
+ <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; Worklist.push_back (NewInst);</div>
277
+ <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div>
278
+ <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; }</div>
279
+ <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div>
280
+ <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div>
281
+ <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; </div>
282
+ <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div>
283
+ <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">return</span> modified;</div>
284
+ <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;}</div>
285
285
  </div><!-- fragment -->
286
286
  </div>
287
287
  </div>
@@ -315,15 +315,16 @@ Static Public Attributes</h2></td></tr>
315
315
  <li>/home/runner/work/SVF/SVF/svf-llvm/lib/<a class="el" href="BreakConstantExpr_8cpp_source.html">BreakConstantExpr.cpp</a></li>
316
316
  </ul>
317
317
  </div><!-- contents -->
318
+ <div class="ttc" id="aBreakConstantExpr_8cpp_html_a7b06934734ebef30b8f24221e1380f93"><div class="ttname"><a href="BreakConstantExpr_8cpp.html#a7b06934734ebef30b8f24221e1380f93">hasConstantExpr</a></div><div class="ttdeci">static ConstantExpr * hasConstantExpr(Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8cpp_source.html#l00136">BreakConstantExpr.cpp:136</a></div></div>
318
319
  <div class="ttc" id="anamespaceSVF_html_ac226d84f86637126d17f6814632c8a90"><div class="ttname"><a href="namespaceSVF.html#ac226d84f86637126d17f6814632c8a90">SVF::ModulePass</a></div><div class="ttdeci">llvm::ModulePass ModulePass</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00071">BasicTypes.h:71</a></div></div>
319
320
  <div class="ttc" id="aclassSVF_1_1BreakConstantGEPs_html_a8010c4f5824ed5ebcb7ae283473ada22"><div class="ttname"><a href="classSVF_1_1BreakConstantGEPs.html#a8010c4f5824ed5ebcb7ae283473ada22">SVF::BreakConstantGEPs::ID</a></div><div class="ttdeci">static char ID</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8h_source.html#l00038">BreakConstantExpr.h:38</a></div></div>
320
321
  <div class="ttc" id="acJSON_8h_html_a750b5d744c39a06bfb13e6eb010e35d0"><div class="ttname"><a href="cJSON_8h.html#a750b5d744c39a06bfb13e6eb010e35d0">index</a></div><div class="ttdeci">int index</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00170">cJSON.h:170</a></div></div>
321
322
  <div class="ttc" id="anamespaceSVF_html_ac8d4990439af7a2ecca7e15383119674"><div class="ttname"><a href="namespaceSVF.html#ac8d4990439af7a2ecca7e15383119674">SVF::PHINode</a></div><div class="ttdeci">llvm::PHINode PHINode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00163">BasicTypes.h:163</a></div></div>
322
323
  <div class="ttc" id="anamespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00085">BasicTypes.h:85</a></div></div>
323
- <div class="ttc" id="aBreakConstantExpr_8cpp_html_a25cf7d9aff084a1cd1aa51c85a4a17e1"><div class="ttname"><a href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1">convertExpression</a></div><div class="ttdeci">static Instruction * convertExpression(ConstantExpr *CE, Instruction *InsertPt)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8cpp_source.html#l00118">BreakConstantExpr.cpp:118</a></div></div>
324
- <div class="ttc" id="aBreakConstantExpr_8cpp_html_a81381bb19688464256bd09ef22e965e4"><div class="ttname"><a href="BreakConstantExpr_8cpp.html#a81381bb19688464256bd09ef22e965e4">hasConstantGEP</a></div><div class="ttdeci">static ConstantExpr * hasConstantGEP(Value *V)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8cpp_source.html#l00087">BreakConstantExpr.cpp:87</a></div></div>
324
+ <div class="ttc" id="aBreakConstantExpr_8cpp_html_a25cf7d9aff084a1cd1aa51c85a4a17e1"><div class="ttname"><a href="BreakConstantExpr_8cpp.html#a25cf7d9aff084a1cd1aa51c85a4a17e1">convertExpression</a></div><div class="ttdeci">static Instruction * convertExpression(ConstantExpr *CE, Instruction *InsertPt)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8cpp_source.html#l00162">BreakConstantExpr.cpp:162</a></div></div>
325
325
  <div class="ttc" id="anamespaceSVF_html_a911dbaab38cb42deb9c195c7f687853d"><div class="ttname"><a href="namespaceSVF.html#a911dbaab38cb42deb9c195c7f687853d">SVF::ConstantExpr</a></div><div class="ttdeci">llvm::ConstantExpr ConstantExpr</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00118">BasicTypes.h:118</a></div></div>
326
326
  <div class="ttc" id="aSVFFileSystem_8cpp_html_ab25baccb41e3b67ef0bfdaa1336c9649"><div class="ttname"><a href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a></div><div class="ttdeci">#define F(f)</div></div>
327
+ <div class="ttc" id="anamespaceSVF_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="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
327
328
  <!-- start footer part -->
328
329
  <hr class="footer"/><address class="footer"><small>
329
330
  Generated by &#160;<a href="http://www.doxygen.org/index.html">
@@ -4367,7 +4367,7 @@ Friends</h2></td></tr>
4367
4367
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a0b46a2a5ff2165d17993a071d9cc82c1"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a0b46a2a5ff2165d17993a071d9cc82c1">SVF::LLVMModuleSet::getLLVMGlobalFunctions</a></div><div class="ttdeci">std::vector&lt; const Function * &gt; getLLVMGlobalFunctions(const GlobalVariable *global)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00557">LLVMModule.cpp:557</a></div></div>
4368
4368
  <div class="ttc" id="aclassSVF_1_1SVFStat_html_aa4950ec26b66a085ad38ac154b789db5"><div class="ttname"><a href="classSVF_1_1SVFStat.html#aa4950ec26b66a085ad38ac154b789db5">SVF::SVFStat::timeOfBuildingLLVMModule</a></div><div class="ttdeci">static double timeOfBuildingLLVMModule</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00090">SVFStat.h:90</a></div></div>
4369
4369
  <div class="ttc" id="anamespaceSVF_html_a0fd33072b099f61eaa642e94ed0c03fc"><div class="ttname"><a href="namespaceSVF.html#a0fd33072b099f61eaa642e94ed0c03fc">SVF::GlobalAlias</a></div><div class="ttdeci">llvm::GlobalAlias GlobalAlias</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00126">BasicTypes.h:126</a></div></div>
4370
- <div class="ttc" id="anamespaceSVF_html_aedd9d023a68dddd66314be63bb8e48d2"><div class="ttname"><a href="namespaceSVF.html#aedd9d023a68dddd66314be63bb8e48d2">SVF::operator&gt;</a></div><div class="ttdeci">IntervalValue operator&gt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdoc">Greater than IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00581">IntervalValue.h:581</a></div></div>
4370
+ <div class="ttc" id="anamespaceSVF_html_aedd9d023a68dddd66314be63bb8e48d2"><div class="ttname"><a href="namespaceSVF.html#aedd9d023a68dddd66314be63bb8e48d2">SVF::operator&gt;</a></div><div class="ttdeci">IntervalValue operator&gt;(const IntervalValue &amp;lhs, const IntervalValue &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00581">IntervalValue.h:581</a></div></div>
4371
4371
  <div class="ttc" id="aclassSVF_1_1StInfo_html_a00339d1d7074e9222776801ce8689f6b"><div class="ttname"><a href="classSVF_1_1StInfo.html#a00339d1d7074e9222776801ce8689f6b">SVF::StInfo::addFldWithType</a></div><div class="ttdeci">void addFldWithType(u32_t fldIdx, const SVFType *type, u32_t elemIdx)</div><div class="ttdoc">Add field index and element index and their corresponding type.</div></div>
4372
4372
  <div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_af8edfe08027020f14b81b44362c6018e"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#af8edfe08027020f14b81b44362c6018e">SVF::LLVMModuleSet::build</a></div><div class="ttdeci">void build()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00137">LLVMModule.cpp:137</a></div></div>
4373
4373
  <div class="ttc" id="aclassSVF_1_1SVFModule_html_aa6627399cf4d30d576f76f681d83449d"><div class="ttname"><a href="classSVF_1_1SVFModule.html#aa6627399cf4d30d576f76f681d83449d">SVF::SVFModule::addAliasSet</a></div><div class="ttdeci">void addAliasSet(SVFGlobalValue *alias)</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00115">SVFModule.h:115</a></div></div>