svf-tools 1.0.564 → 1.0.565

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 (79) hide show
  1. package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +1 -2
  2. package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +11 -10
  3. package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +10 -9
  4. package/SVF-doxygen/html/html/CFLGrammar_8txt.html +37 -37
  5. package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -2
  6. package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +1 -2
  7. package/SVF-doxygen/html/html/CPPUtil_8h.html +4 -4
  8. package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -2
  9. package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +1 -2
  10. package/SVF-doxygen/html/html/PEGGrammar_8txt.html +37 -138
  11. package/SVF-doxygen/html/html/SVFUtil_8h.html +1 -1
  12. package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +1 -2
  13. package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +1 -1
  14. package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
  15. package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
  16. package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +1 -1
  17. package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +1 -1
  18. package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +1 -1
  19. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer-members.html +12 -11
  20. package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +63 -28
  21. package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +1 -1
  22. package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +7 -10
  23. package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +12 -12
  24. package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +1 -2
  25. package/SVF-doxygen/html/html/classSVF_1_1MTA.html +1 -1
  26. package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +2 -3
  27. package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +2 -2
  28. package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +1 -1
  29. package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
  30. package/SVF-doxygen/html/html/functions_b.html +12 -9
  31. package/SVF-doxygen/html/html/functions_func_b.html +5 -2
  32. package/SVF-doxygen/html/html/functions_func_s.html +1 -1
  33. package/SVF-doxygen/html/html/functions_i.html +3 -3
  34. package/SVF-doxygen/html/html/functions_l.html +6 -6
  35. package/SVF-doxygen/html/html/functions_o.html +3 -3
  36. package/SVF-doxygen/html/html/functions_p.html +14 -14
  37. package/SVF-doxygen/html/html/functions_s.html +7 -7
  38. package/SVF-doxygen/html/html/functions_w.html +11 -11
  39. package/SVF-doxygen/html/html/globals_a.html +0 -1
  40. package/SVF-doxygen/html/html/globals_c.html +5 -6
  41. package/SVF-doxygen/html/html/globals_e.html +0 -1
  42. package/SVF-doxygen/html/html/globals_f.html +2 -3
  43. package/SVF-doxygen/html/html/globals_func.html +3 -0
  44. package/SVF-doxygen/html/html/globals_g.html +5 -7
  45. package/SVF-doxygen/html/html/globals_m.html +3 -6
  46. package/SVF-doxygen/html/html/globals_vars.html +10 -19
  47. package/SVF-doxygen/html/html/namespaceSVF.html +2 -2
  48. package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
  49. package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +4 -4
  50. package/SVF-doxygen/html/html/search/all_1.js +1 -1
  51. package/SVF-doxygen/html/html/search/all_10.js +6 -6
  52. package/SVF-doxygen/html/html/search/all_11.js +1 -1
  53. package/SVF-doxygen/html/html/search/all_12.js +8 -8
  54. package/SVF-doxygen/html/html/search/all_13.js +4 -4
  55. package/SVF-doxygen/html/html/search/all_16.js +1 -1
  56. package/SVF-doxygen/html/html/search/all_2.js +1 -0
  57. package/SVF-doxygen/html/html/search/all_3.js +1 -1
  58. package/SVF-doxygen/html/html/search/all_5.js +1 -1
  59. package/SVF-doxygen/html/html/search/all_6.js +2 -2
  60. package/SVF-doxygen/html/html/search/all_7.js +4 -4
  61. package/SVF-doxygen/html/html/search/all_9.js +1 -1
  62. package/SVF-doxygen/html/html/search/all_c.js +3 -3
  63. package/SVF-doxygen/html/html/search/all_d.js +1 -1
  64. package/SVF-doxygen/html/html/search/all_e.js +1 -1
  65. package/SVF-doxygen/html/html/search/all_f.js +1 -1
  66. package/SVF-doxygen/html/html/search/functions_1.js +1 -0
  67. package/SVF-doxygen/html/html/search/functions_11.js +1 -1
  68. package/SVF-doxygen/html/html/search/functions_5.js +1 -0
  69. package/SVF-doxygen/html/html/search/variables_1.js +1 -1
  70. package/SVF-doxygen/html/html/search/variables_13.js +2 -2
  71. package/SVF-doxygen/html/html/search/variables_3.js +1 -1
  72. package/SVF-doxygen/html/html/search/variables_5.js +1 -1
  73. package/SVF-doxygen/html/html/search/variables_6.js +2 -2
  74. package/SVF-doxygen/html/html/search/variables_7.js +4 -4
  75. package/SVF-doxygen/html/html/search/variables_d.js +1 -1
  76. package/include/CFL/CFGNormalizer.h +3 -1
  77. package/include/CFL/PEGGrammar.txt +5 -18
  78. package/lib/CFL/CFGNormalizer.cpp +57 -6
  79. package/package.json +1 -1
@@ -324,7 +324,7 @@ Static Private Attributes</h2></td></tr>
324
324
  </div><div class="memdoc">
325
325
 
326
326
  <p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00357">357</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
327
- <div class="fragment"><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;{</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; std::vector&lt;const Function *&gt; ctor_funcs;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; std::vector&lt;const Function *&gt; dtor_funcs;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> * orgMain = 0;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mainMod = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &amp;mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="comment">// Collect ctor and dtor functions</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">for</span> (Module::global_iterator it = mod.global_begin(),</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; eit = mod.global_end();</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; it != eit; ++it)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *global = &amp;*it;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">if</span> (global-&gt;getName().equals(<a class="code" href="LLVMModule_8cpp.html#aa18802f2f60ef8030c66a42f20f285af">SVF_GLOBAL_CTORS</a>) &amp;&amp;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; global-&gt;hasInitializer())</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; {</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; ctor_funcs = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0b46a2a5ff2165d17993a071d9cc82c1">getLLVMGlobalFunctions</a>(global);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (global-&gt;getName().equals(<a class="code" href="LLVMModule_8cpp.html#a9fd6e28e6ed93f65a20a348ab0646320">SVF_GLOBAL_DTORS</a>) &amp;&amp;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; global-&gt;hasInitializer())</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; dtor_funcs = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0b46a2a5ff2165d17993a071d9cc82c1">getLLVMGlobalFunctions</a>(global);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="comment">// Find main function</span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;func : mod)</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">if</span> (func.getName().equals(<a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>))</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a> <span class="stringliteral">&quot; already defined&quot;</span>);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">if</span>(func.getName().equals(<span class="stringliteral">&quot;main&quot;</span>))</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; orgMain = &amp;func;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; mainMod = &amp;mod;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; }</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="comment">// Only create svf.main when the original main function is found, and also</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="comment">// there are global contructor or destructor functions.</span></div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">if</span> (orgMain &amp;&amp; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">getModuleNum</a>() &gt; 0 &amp;&amp;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; (ctor_funcs.size() &gt; 0 || dtor_funcs.size() &gt; 0))</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; {</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; assert(mainMod &amp;&amp; <span class="stringliteral">&quot;Module with main function not found.&quot;</span>);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &amp; <a class="code" href="PEGGrammar_8txt.html#abd600039647a1e73c88e7161fa6eb989">M</a> = *mainMod;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="comment">// char **</span></div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * i8ptr2 = PointerType::getInt8PtrTy(M.getContext())-&gt;getPointerTo();</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * i32 = IntegerType::getInt32Ty(M.getContext());</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="comment">// define void @svf.main(i32, i8**, i8**)</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor">#if (LLVM_VERSION_MAJOR &gt;= 9)</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; FunctionCallee svfmainFn = M.getOrInsertFunction(</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>,</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; Type::getVoidTy(M.getContext()),</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; i32,i8ptr2,i8ptr2</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; );</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *svfmain = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(svfmainFn.getCallee());</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *svfmain = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(M.getOrInsertFunction(</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>,</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; Type::getVoidTy(M.getContext()),</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; i32,i8ptr2,i8ptr2</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; ));</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; svfmain-&gt;setCallingConv(llvm::CallingConv::C);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* block = BasicBlock::Create(M.getContext(), <span class="stringliteral">&quot;entry&quot;</span>, svfmain);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <a class="code" href="namespaceSVF.html#a94824519e439aeef1568d415b6f7331c">IRBuilder</a> Builder(block);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="comment">// emit &quot;call void @ctor()&quot;. ctor_funcs is sorted so the functions are</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="comment">// emitted in the order of priority</span></div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp; ctor: ctor_funcs)</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keyword">auto</span> target = M.getOrInsertFunction(</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; ctor-&gt;getName(),</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; Type::getVoidTy(M.getContext())</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; );</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; Builder.CreateCall(target);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="comment">// main() should be called after all ctor functions and before dtor</span></div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="comment">// functions.</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; Function::arg_iterator arg_it = svfmain-&gt;arg_begin();</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> * args[] = {arg_it, arg_it + 1, arg_it + 2 };</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordtype">size_t</span> cnt = orgMain-&gt;arg_size();</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; assert(cnt &lt;= 3 &amp;&amp; <span class="stringliteral">&quot;Too many arguments for main()&quot;</span>);</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; Builder.CreateCall(orgMain, llvm::ArrayRef&lt;Value*&gt;(args,args + cnt));</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="comment">// emit &quot;call void @dtor()&quot;. dtor_funcs is sorted so the functions are</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="comment">// emitted in the order of priority</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;dtor : dtor_funcs)</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; {</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keyword">auto</span> target = M.getOrInsertFunction(</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; dtor-&gt;getName(),</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; Type::getVoidTy(M.getContext())</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; );</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; Builder.CreateCall(target);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; }</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="comment">// return;</span></div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; Builder.CreateRetVoid();</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00041">BasicTypes.h:41</a></div></div>
327
+ <div class="fragment"><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;{</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; std::vector&lt;const Function *&gt; ctor_funcs;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; std::vector&lt;const Function *&gt; dtor_funcs;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> * orgMain = 0;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mainMod = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &amp;mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="comment">// Collect ctor and dtor functions</span></div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">for</span> (Module::global_iterator it = mod.global_begin(),</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; eit = mod.global_end();</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; it != eit; ++it)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a> *global = &amp;*it;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">if</span> (global-&gt;getName().equals(<a class="code" href="LLVMModule_8cpp.html#aa18802f2f60ef8030c66a42f20f285af">SVF_GLOBAL_CTORS</a>) &amp;&amp;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; global-&gt;hasInitializer())</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; {</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; ctor_funcs = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0b46a2a5ff2165d17993a071d9cc82c1">getLLVMGlobalFunctions</a>(global);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (global-&gt;getName().equals(<a class="code" href="LLVMModule_8cpp.html#a9fd6e28e6ed93f65a20a348ab0646320">SVF_GLOBAL_DTORS</a>) &amp;&amp;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; global-&gt;hasInitializer())</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; dtor_funcs = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0b46a2a5ff2165d17993a071d9cc82c1">getLLVMGlobalFunctions</a>(global);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="comment">// Find main function</span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;func : mod)</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">if</span> (func.getName().equals(<a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>))</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; assert(<span class="keyword">false</span> &amp;&amp; <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a> <span class="stringliteral">&quot; already defined&quot;</span>);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">if</span>(func.getName().equals(<span class="stringliteral">&quot;main&quot;</span>))</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; orgMain = &amp;func;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; mainMod = &amp;mod;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; }</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="comment">// Only create svf.main when the original main function is found, and also</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="comment">// there are global contructor or destructor functions.</span></div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">if</span> (orgMain &amp;&amp; <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">getModuleNum</a>() &gt; 0 &amp;&amp;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; (ctor_funcs.size() &gt; 0 || dtor_funcs.size() &gt; 0))</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; {</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; assert(mainMod &amp;&amp; <span class="stringliteral">&quot;Module with main function not found.&quot;</span>);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &amp; M = *mainMod;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="comment">// char **</span></div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * i8ptr2 = PointerType::getInt8PtrTy(M.getContext())-&gt;getPointerTo();</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> * i32 = IntegerType::getInt32Ty(M.getContext());</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="comment">// define void @svf.main(i32, i8**, i8**)</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="preprocessor">#if (LLVM_VERSION_MAJOR &gt;= 9)</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; FunctionCallee svfmainFn = M.getOrInsertFunction(</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>,</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; Type::getVoidTy(M.getContext()),</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; i32,i8ptr2,i8ptr2</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; );</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *svfmain = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(svfmainFn.getCallee());</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *svfmain = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a>&lt;<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&gt;(M.getOrInsertFunction(</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>,</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; Type::getVoidTy(M.getContext()),</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; i32,i8ptr2,i8ptr2</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; ));</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; svfmain-&gt;setCallingConv(llvm::CallingConv::C);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* block = BasicBlock::Create(M.getContext(), <span class="stringliteral">&quot;entry&quot;</span>, svfmain);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <a class="code" href="namespaceSVF.html#a94824519e439aeef1568d415b6f7331c">IRBuilder</a> Builder(block);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="comment">// emit &quot;call void @ctor()&quot;. ctor_funcs is sorted so the functions are</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="comment">// emitted in the order of priority</span></div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp; ctor: ctor_funcs)</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keyword">auto</span> target = M.getOrInsertFunction(</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; ctor-&gt;getName(),</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; Type::getVoidTy(M.getContext())</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; );</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; Builder.CreateCall(target);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="comment">// main() should be called after all ctor functions and before dtor</span></div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="comment">// functions.</span></div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; Function::arg_iterator arg_it = svfmain-&gt;arg_begin();</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> * args[] = {arg_it, arg_it + 1, arg_it + 2 };</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordtype">size_t</span> cnt = orgMain-&gt;arg_size();</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; assert(cnt &lt;= 3 &amp;&amp; <span class="stringliteral">&quot;Too many arguments for main()&quot;</span>);</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; Builder.CreateCall(orgMain, llvm::ArrayRef&lt;Value*&gt;(args,args + cnt));</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="comment">// emit &quot;call void @dtor()&quot;. dtor_funcs is sorted so the functions are</span></div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="comment">// emitted in the order of priority</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">auto</span> &amp;dtor : dtor_funcs)</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; {</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keyword">auto</span> target = M.getOrInsertFunction(</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; dtor-&gt;getName(),</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; Type::getVoidTy(M.getContext())</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; );</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; Builder.CreateCall(target);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; }</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="comment">// return;</span></div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; Builder.CreateRetVoid();</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;}</div><div class="ttc" id="namespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00041">BasicTypes.h:41</a></div></div>
328
328
  <div class="ttc" id="namespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00071">BasicTypes.h:71</a></div></div>
329
329
  <div class="ttc" id="namespaceSVF_html_a1d008c0666c145622b81d427be64c52d"><div class="ttname"><a href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">SVF::Type</a></div><div class="ttdeci">llvm::Type Type</div><div class="ttdoc">LLVM Basic classes. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
330
330
  <div class="ttc" id="namespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
@@ -337,7 +337,6 @@ Static Private Attributes</h2></td></tr>
337
337
  <div class="ttc" id="LLVMModule_8cpp_html_a10ab7c7da3a458495d8528b9e90d714b"><div class="ttname"><a href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a></div><div class="ttdeci">#define SVF_MAIN_FUNC_NAME</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00067">LLVMModule.cpp:67</a></div></div>
338
338
  <div class="ttc" id="classSVF_1_1LLVMModuleSet_html_acde6292e719c80f93d3d1c344ab442cd"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">SVF::LLVMModuleSet::modules</a></div><div class="ttdeci">std::vector&lt; std::reference_wrapper&lt; Module &gt; &gt; modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00055">LLVMModule.h:55</a></div></div>
339
339
  <div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if&lt;!is_simple_type&lt; Y &gt;::value, typename cast_retty&lt; X, const Y &gt;::ret_type &gt;::type dyn_cast(const Y &amp;Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00343">Casting.h:343</a></div></div>
340
- <div class="ttc" id="PEGGrammar_8txt_html_abd600039647a1e73c88e7161fa6eb989"><div class="ttname"><a href="PEGGrammar_8txt.html#abd600039647a1e73c88e7161fa6eb989">M</a></div><div class="ttdeci">V M</div><div class="ttdef"><b>Definition:</b> <a href="PEGGrammar_8txt_source.html#l00010">PEGGrammar.txt:10</a></div></div>
341
340
  <div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00072">BasicTypes.h:72</a></div></div>
342
341
  </div><!-- fragment -->
343
342
  </div>
@@ -127,7 +127,7 @@ Public Member Functions</h2></td></tr>
127
127
  </table><table class="memberdecls">
128
128
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
129
129
  Static Public Member Functions</h2></td></tr>
130
- <tr class="memitem:a7cb2fd230ed5839b59f650cc87de192e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceSVF.html#ad8794eb3c00de3d3b5c5e43dded3fb42">ScalarEvolution</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MTA.html#a7cb2fd230ed5839b59f650cc87de192e">getSE</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *<a class="el" href="PEGGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>)</td></tr>
130
+ <tr class="memitem:a7cb2fd230ed5839b59f650cc87de192e"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="namespaceSVF.html#ad8794eb3c00de3d3b5c5e43dded3fb42">ScalarEvolution</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MTA.html#a7cb2fd230ed5839b59f650cc87de192e">getSE</a> (const <a class="el" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *<a class="el" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>)</td></tr>
131
131
  <tr class="separator:a7cb2fd230ed5839b59f650cc87de192e"><td class="memSeparator" colspan="2">&#160;</td></tr>
132
132
  </table><table class="memberdecls">
133
133
  <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
@@ -87,7 +87,7 @@ Public Member Functions</h2></td></tr>
87
87
  <tr class="separator:a2b989707893cd81dd275be6a3b8c79fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
88
88
  <tr class="memitem:a436a61f00b607dd0e5728daad9dd2e93"><td class="memItemLeft" align="right" valign="top">llvm::StringRef&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MergeFunctionRets.html#a436a61f00b607dd0e5728daad9dd2e93">getPassName</a> () const</td></tr>
89
89
  <tr class="separator:a436a61f00b607dd0e5728daad9dd2e93"><td class="memSeparator" colspan="2">&#160;</td></tr>
90
- <tr class="memitem:a8fe74477a43f80104fb3461d006ad392"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MergeFunctionRets.html#a8fe74477a43f80104fb3461d006ad392">runOnModule</a> (<a class="el" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &amp;<a class="el" href="PEGGrammar_8txt.html#abd600039647a1e73c88e7161fa6eb989">M</a>)</td></tr>
90
+ <tr class="memitem:a8fe74477a43f80104fb3461d006ad392"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MergeFunctionRets.html#a8fe74477a43f80104fb3461d006ad392">runOnModule</a> (<a class="el" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &amp;M)</td></tr>
91
91
  <tr class="separator:a8fe74477a43f80104fb3461d006ad392"><td class="memSeparator" colspan="2">&#160;</td></tr>
92
92
  <tr class="memitem:a8c04750179ee48d283c5db4d84b3eca1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1MergeFunctionRets.html#a8c04750179ee48d283c5db4d84b3eca1">UnifyFunctionExit</a> (<a class="el" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &amp;module)</td></tr>
93
93
  <tr class="separator:a8c04750179ee48d283c5db4d84b3eca1"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -217,8 +217,7 @@ Static Public Attributes</h2></td></tr>
217
217
  </div><div class="memdoc">
218
218
 
219
219
  <p class="definition">Definition at line <a class="el" href="BreakConstantExpr_8h_source.html#l00068">68</a> of file <a class="el" href="BreakConstantExpr_8h_source.html">BreakConstantExpr.h</a>.</p>
220
- <div class="fragment"><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1MergeFunctionRets.html#a8c04750179ee48d283c5db4d84b3eca1">UnifyFunctionExit</a>(<a class="code" href="PEGGrammar_8txt.html#abd600039647a1e73c88e7161fa6eb989">M</a>);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="ttc" id="PEGGrammar_8txt_html_abd600039647a1e73c88e7161fa6eb989"><div class="ttname"><a href="PEGGrammar_8txt.html#abd600039647a1e73c88e7161fa6eb989">M</a></div><div class="ttdeci">V M</div><div class="ttdef"><b>Definition:</b> <a href="PEGGrammar_8txt_source.html#l00010">PEGGrammar.txt:10</a></div></div>
221
- <div class="ttc" id="classSVF_1_1MergeFunctionRets_html_a8c04750179ee48d283c5db4d84b3eca1"><div class="ttname"><a href="classSVF_1_1MergeFunctionRets.html#a8c04750179ee48d283c5db4d84b3eca1">SVF::MergeFunctionRets::UnifyFunctionExit</a></div><div class="ttdeci">void UnifyFunctionExit(Module &amp;module)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8h_source.html#l00073">BreakConstantExpr.h:73</a></div></div>
220
+ <div class="fragment"><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classSVF_1_1MergeFunctionRets.html#a8c04750179ee48d283c5db4d84b3eca1">UnifyFunctionExit</a>(M);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="ttc" id="classSVF_1_1MergeFunctionRets_html_a8c04750179ee48d283c5db4d84b3eca1"><div class="ttname"><a href="classSVF_1_1MergeFunctionRets.html#a8c04750179ee48d283c5db4d84b3eca1">SVF::MergeFunctionRets::UnifyFunctionExit</a></div><div class="ttdeci">void UnifyFunctionExit(Module &amp;module)</div><div class="ttdef"><b>Definition:</b> <a href="BreakConstantExpr_8h_source.html#l00073">BreakConstantExpr.h:73</a></div></div>
222
221
  </div><!-- fragment -->
223
222
  </div>
224
223
  </div>
@@ -139,7 +139,7 @@ Protected Member Functions</h2></td></tr>
139
139
  <tr class="memitem:a4cb5ac4a19002023683c4ee47aabb802"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIRBuilder.html#a4cb5ac4a19002023683c4ee47aabb802">getBaseTypeAndFlattenedFields</a> (const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V, std::vector&lt; <a class="el" href="classSVF_1_1LocationSet.html">LocationSet</a> &gt; &amp;fields, const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *sz)</td></tr>
140
140
  <tr class="memdesc:a4cb5ac4a19002023683c4ee47aabb802"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the base type and max offset. <a href="#a4cb5ac4a19002023683c4ee47aabb802">More...</a><br /></td></tr>
141
141
  <tr class="separator:a4cb5ac4a19002023683c4ee47aabb802"><td class="memSeparator" colspan="2">&#160;</td></tr>
142
- <tr class="memitem:afd3125974393d68b4b8f5298ef699ab3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIRBuilder.html#afd3125974393d68b4b8f5298ef699ab3">handleDirectCall</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="PEGGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>)</td></tr>
142
+ <tr class="memitem:afd3125974393d68b4b8f5298ef699ab3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIRBuilder.html#afd3125974393d68b4b8f5298ef699ab3">handleDirectCall</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>)</td></tr>
143
143
  <tr class="memdesc:afd3125974393d68b4b8f5298ef699ab3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handle direct call. <a href="#afd3125974393d68b4b8f5298ef699ab3">More...</a><br /></td></tr>
144
144
  <tr class="separator:afd3125974393d68b4b8f5298ef699ab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
145
145
  <tr class="memitem:aa21ed35656d26eec22c53dc41019adc4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIRBuilder.html#aa21ed35656d26eec22c53dc41019adc4">handleIndCall</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs)</td></tr>
@@ -221,7 +221,7 @@ Protected Member Functions</h2></td></tr>
221
221
  <tr class="memitem:a8f4716f34bc0738ed9dec756113f0a37"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIRBuilder.html#a8f4716f34bc0738ed9dec756113f0a37">parseOperations</a> (std::vector&lt; <a class="el" href="classSVF_1_1ExtAPI_1_1Operation.html">ExtAPI::Operation</a> &gt; &amp;operations, <a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs)</td></tr>
222
222
  <tr class="memdesc:a8f4716f34bc0738ed9dec756113f0a37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handle external call. <a href="#a8f4716f34bc0738ed9dec756113f0a37">More...</a><br /></td></tr>
223
223
  <tr class="separator:a8f4716f34bc0738ed9dec756113f0a37"><td class="memSeparator" colspan="2">&#160;</td></tr>
224
- <tr class="memitem:aff08d65b1411d1db81f80b9d4228c65d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIRBuilder.html#aff08d65b1411d1db81f80b9d4228c65d">handleExtCall</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="PEGGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>)</td></tr>
224
+ <tr class="memitem:aff08d65b1411d1db81f80b9d4228c65d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIRBuilder.html#aff08d65b1411d1db81f80b9d4228c65d">handleExtCall</a> (<a class="el" href="classSVF_1_1CallSite.html">CallSite</a> cs, const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>)</td></tr>
225
225
  <tr class="separator:aff08d65b1411d1db81f80b9d4228c65d"><td class="memSeparator" colspan="2">&#160;</td></tr>
226
226
  <tr class="memitem:ad0e9f1dd1cba235a699c2b710a888d06"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SVFIRBuilder.html#ad0e9f1dd1cba235a699c2b710a888d06">addComplexConsForExt</a> (<a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *D, <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *S, const <a class="el" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *sz)</td></tr>
227
227
  <tr class="separator:ad0e9f1dd1cba235a699c2b710a888d06"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -140,7 +140,7 @@ Private Member Functions</h2></td></tr>
140
140
  <tr class="memitem:a5771df69ffa75b6103a32c8bd48ef488"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SaberCheckerAPI.html#a5771df69ffa75b6103a32c8bd48ef488">init</a> ()</td></tr>
141
141
  <tr class="memdesc:a5771df69ffa75b6103a32c8bd48ef488"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the map. <a href="#a5771df69ffa75b6103a32c8bd48ef488">More...</a><br /></td></tr>
142
142
  <tr class="separator:a5771df69ffa75b6103a32c8bd48ef488"><td class="memSeparator" colspan="2">&#160;</td></tr>
143
- <tr class="memitem:ab0cdd9671c406e8d881f0a057fe44081"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SaberCheckerAPI.html#a32f3c37a5957dc7533f7e82617d5d056">CHECKER_TYPE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SaberCheckerAPI.html#ab0cdd9671c406e8d881f0a057fe44081">getType</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="PEGGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>) const</td></tr>
143
+ <tr class="memitem:ab0cdd9671c406e8d881f0a057fe44081"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1SaberCheckerAPI.html#a32f3c37a5957dc7533f7e82617d5d056">CHECKER_TYPE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1SaberCheckerAPI.html#ab0cdd9671c406e8d881f0a057fe44081">getType</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>) const</td></tr>
144
144
  <tr class="memdesc:ab0cdd9671c406e8d881f0a057fe44081"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the function type of a function. <a href="#ab0cdd9671c406e8d881f0a057fe44081">More...</a><br /></td></tr>
145
145
  <tr class="separator:ab0cdd9671c406e8d881f0a057fe44081"><td class="memSeparator" colspan="2">&#160;</td></tr>
146
146
  </table><table class="memberdecls">
@@ -224,7 +224,7 @@ Private Member Functions</h2></td></tr>
224
224
  <tr class="memitem:a4535862f26efff9f45236000507932c9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadAPI.html#a4535862f26efff9f45236000507932c9">init</a> ()</td></tr>
225
225
  <tr class="memdesc:a4535862f26efff9f45236000507932c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the map. <a href="#a4535862f26efff9f45236000507932c9">More...</a><br /></td></tr>
226
226
  <tr class="separator:a4535862f26efff9f45236000507932c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
227
- <tr class="memitem:a768a655dffc5fcf1d63e2a0b3f2930f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3">TD_TYPE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadAPI.html#a768a655dffc5fcf1d63e2a0b3f2930f4">getType</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="PEGGrammar_8txt.html#acc7b4cf736579c4d83be2316d5a9e5f2">F</a>) const</td></tr>
227
+ <tr class="memitem:a768a655dffc5fcf1d63e2a0b3f2930f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classSVF_1_1ThreadAPI.html#a38a7516702c55ab418167b7c850516b3">TD_TYPE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classSVF_1_1ThreadAPI.html#a768a655dffc5fcf1d63e2a0b3f2930f4">getType</a> (const <a class="el" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *<a class="el" href="CFLGrammar_8txt.html#a00967427d1c110ffcc82ea2a966f4564">F</a>) const</td></tr>
228
228
  <tr class="memdesc:a768a655dffc5fcf1d63e2a0b3f2930f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the function type if it is a threadAPI function. <a href="#a768a655dffc5fcf1d63e2a0b3f2930f4">More...</a><br /></td></tr>
229
229
  <tr class="separator:a768a655dffc5fcf1d63e2a0b3f2930f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
230
230
  </table><table class="memberdecls">
@@ -102,6 +102,9 @@ $(function() {
102
102
  : <a class="el" href="classSVF_1_1DDAVFSolver.html#a63d04c3af4529d0e0f82acd76ed57f6c">SVF::DDAVFSolver&lt; CVar, CPtSet, DPIm &gt;</a>
103
103
  , <a class="el" href="classSVF_1_1SrcSnkDDA.html#a32cc8a131b2448b5e8e1fe65d99fd286">SVF::SrcSnkDDA</a>
104
104
  </li>
105
+ <li>barReplace()
106
+ : <a class="el" href="classSVF_1_1CFGNormalizer.html#ad56aa4b7f6eba0c873ea18f83c398bc5">SVF::CFGNormalizer</a>
107
+ </li>
105
108
  <li>base
106
109
  : <a class="el" href="classSVF_1_1GepObjVar.html#aff50e1d96403eeacaa64f7adb07ce0a5">SVF::GepObjVar</a>
107
110
  </li>
@@ -194,12 +197,12 @@ $(function() {
194
197
  <li>bbSuccessorPosMap
195
198
  : <a class="el" href="classSVF_1_1SVFModule.html#aea210fb8fd41aa497f609f4d9c49b3ae">SVF::SVFModule</a>
196
199
  </li>
197
- <li>bbToCondMap
198
- : <a class="el" href="classSVF_1_1SaberCondAllocator.html#a6d29487d00d66dadae7b4b79f9bf50e9">SVF::SaberCondAllocator</a>
199
- </li>
200
200
  <li>BBToCondMap
201
201
  : <a class="el" href="classSVF_1_1SaberCondAllocator.html#a43782d54ecac8b538c4f8484e8b32dab">SVF::SaberCondAllocator</a>
202
202
  </li>
203
+ <li>bbToCondMap
204
+ : <a class="el" href="classSVF_1_1SaberCondAllocator.html#a6d29487d00d66dadae7b4b79f9bf50e9">SVF::SaberCondAllocator</a>
205
+ </li>
203
206
  <li>BBToMRSetMap
204
207
  : <a class="el" href="classSVF_1_1MemSSA.html#a4d4f7039c2972e671dc15b8c75abad14">SVF::MemSSA</a>
205
208
  </li>
@@ -295,7 +298,7 @@ $(function() {
295
298
  : <a class="el" href="classSVF_1_1SVFStat.html#a17c8ea68bf1341ab80f71fff76a9ffce">SVF::SVFStat</a>
296
299
  </li>
297
300
  <li>BranchStmt()
298
- : <a class="el" href="classSVF_1_1BranchStmt.html#a83244ad7db61a544f7538961081d4fbd">SVF::BranchStmt</a>
301
+ : <a class="el" href="classSVF_1_1BranchStmt.html#a5e102d5c08b7121efc87b99651f0b5d2">SVF::BranchStmt</a>
299
302
  </li>
300
303
  <li>BranchVFGNode()
301
304
  : <a class="el" href="classSVF_1_1BranchVFGNode.html#ad1aa629eae4006a68a1e6e8a7621a494">SVF::BranchVFGNode</a>
@@ -316,7 +319,7 @@ $(function() {
316
319
  : <a class="el" href="structprintbuffer.html#a754f63618e91db99f7ab6cfc4e629013">printbuffer</a>
317
320
  </li>
318
321
  <li>build()
319
- : <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a5944c6a36e150a50a54aedd622c43ff9">SVF::CFLGraphBuilder</a>
322
+ : <a class="el" href="classSVF_1_1CFLGraphBuilder.html#ab0d2bd46dd1c3be10c04f573e9365757">SVF::CFLGraphBuilder</a>
320
323
  , <a class="el" href="classSVF_1_1GrammarBuilder.html#a23d03b2cd348d85bda1ee582dded6505">SVF::GrammarBuilder</a>
321
324
  , <a class="el" href="classSVF_1_1ICFGBuilder.html#ae66565ee32fff4ef5f0157e867333250">SVF::ICFGBuilder</a>
322
325
  , <a class="el" href="classSVF_1_1LLVMLoopAnalysis.html#a17e4805c2db146430c58af35625a388d">SVF::LLVMLoopAnalysis</a>
@@ -350,7 +353,7 @@ $(function() {
350
353
  : <a class="el" href="classSVF_1_1CHGBuilder.html#a7420a3a4858ebe861aaa47d76f49ab1f">SVF::CHGBuilder</a>
351
354
  </li>
352
355
  <li>buildCHGNodes()
353
- : <a class="el" href="classSVF_1_1CHGBuilder.html#a51a07b2bd7cccf7c9ab24eb87db17216">SVF::CHGBuilder</a>
356
+ : <a class="el" href="classSVF_1_1CHGBuilder.html#a648e97899c16a5634fc8369aef8a031f">SVF::CHGBuilder</a>
354
357
  </li>
355
358
  <li>buildClassNameToAncestorsDescendantsMap()
356
359
  : <a class="el" href="classSVF_1_1CHGBuilder.html#ae7832c277f0ff86f3ae750aac6063adb">SVF::CHGBuilder</a>
@@ -423,12 +426,12 @@ $(function() {
423
426
  <li>buildVTables()
424
427
  : <a class="el" href="classSVF_1_1DCHGraph.html#a1215db390515a30fbc416fb14d2e863f">SVF::DCHGraph</a>
425
428
  </li>
426
- <li>bv
427
- : <a class="el" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">SVF::PointsTo</a>
428
- </li>
429
429
  <li>BV
430
430
  : <a class="el" href="classSVF_1_1PointsTo.html#a8f757f92ebf0a2ebdb5e6b001606923eafd6e0658d0eb4cdba368fa8e77d4d892">SVF::PointsTo</a>
431
431
  </li>
432
+ <li>bv
433
+ : <a class="el" href="classSVF_1_1PointsTo.html#a668be9270539fdfc5dbf3efb9cc17587">SVF::PointsTo</a>
434
+ </li>
432
435
  <li>bv2int
433
436
  : <a class="el" href="classSVF_1_1Z3Expr.html#a349068a6c6c45f42ee3fedb0a487c06a">SVF::Z3Expr</a>
434
437
  </li>
@@ -92,10 +92,13 @@ $(function() {
92
92
  <li>backwardVisited()
93
93
  : <a class="el" href="classSVF_1_1SrcSnkDDA.html#a32cc8a131b2448b5e8e1fe65d99fd286">SVF::SrcSnkDDA</a>
94
94
  </li>
95
+ <li>barReplace()
96
+ : <a class="el" href="classSVF_1_1CFGNormalizer.html#ad56aa4b7f6eba0c873ea18f83c398bc5">SVF::CFGNormalizer</a>
97
+ </li>
95
98
  <li>begin()
96
99
  : <a class="el" href="classllvm_1_1generic__bridge__gep__type__iterator.html#aabd833b8eca182f681462209c9f24f1a">llvm::generic_bridge_gep_type_iterator&lt; ItTy &gt;</a>
97
100
  , <a class="el" href="classSVF_1_1CondPointsToSet.html#a3521ec3be48cc03d9d3f562cb088a9ad">SVF::CondPointsToSet&lt; Cond &gt;</a>
98
- , <a class="el" href="classSVF_1_1CondStdSet.html#adf095111734d81b6ad1908a7f795b038">SVF::CondStdSet&lt; Element &gt;</a>
101
+ , <a class="el" href="classSVF_1_1CondStdSet.html#a76fb2382bf424638ed8e03cb48cdc90e">SVF::CondStdSet&lt; Element &gt;</a>
99
102
  , <a class="el" href="classSVF_1_1ContextCond.html#a4ae7e2236708b0d205f393cdce75c8d1">SVF::ContextCond</a>
100
103
  , <a class="el" href="classSVF_1_1CoreBitVector.html#a835bf11a1f698942db8e6bdadbbfd1f3">SVF::CoreBitVector</a>
101
104
  , <a class="el" href="classSVF_1_1GenericGraph.html#a0d9744b1b0e7a09a6f7af29188e243b7">SVF::GenericGraph&lt; NodeTy, EdgeTy &gt;</a>
@@ -107,7 +110,7 @@ $(function() {
107
110
  : <a class="el" href="classSVF_1_1BinaryOPStmt.html#a4c87a90a0190b50c0318c0f316f4fc2a">SVF::BinaryOPStmt</a>
108
111
  </li>
109
112
  <li>BinaryOPVFGNode()
110
- : <a class="el" href="classSVF_1_1BinaryOPVFGNode.html#a20a0cf8366831b6be38c9c1945254362">SVF::BinaryOPVFGNode</a>
113
+ : <a class="el" href="classSVF_1_1BinaryOPVFGNode.html#afa52d77205075141b59847b8400344e7">SVF::BinaryOPVFGNode</a>
111
114
  </li>
112
115
  <li>BitVector()
113
116
  : <a class="el" href="classSVF_1_1BitVector.html#a212871312b985f7d7215dd46ba171990">SVF::BitVector</a>
@@ -658,7 +658,7 @@ $(function() {
658
658
  : <a class="el" href="classSVF_1_1SymbolTableInfo.html#aff272bc1d00f2e57b7677d1826a31237">SVF::SymbolTableInfo</a>
659
659
  </li>
660
660
  <li>SymState()
661
- : <a class="el" href="classSVF_1_1SymState.html#a74011f042d561221c30fcd176490abad">SVF::SymState</a>
661
+ : <a class="el" href="classSVF_1_1SymState.html#aee986d8fbccf71a606284d8467f450e4">SVF::SymState</a>
662
662
  </li>
663
663
  <li>szudzik()
664
664
  : <a class="el" href="structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html#adf5f19b1b32c117571fe74035cdcdbe2">SVF::Hash&lt; std::pair&lt; S, T &gt; &gt;</a>
@@ -106,12 +106,12 @@ $(function() {
106
106
  <li>icfgNode2PTASVFStmtsMap
107
107
  : <a class="el" href="classSVF_1_1SVFIR.html#aaae756185bbd5b7175e96f8928a989c2">SVF::SVFIR</a>
108
108
  </li>
109
- <li>ICFGNode2SVFStmtsMap
110
- : <a class="el" href="classSVF_1_1SVFIR.html#a4666dabcbeb3f40f96a0694ce2f07eb0">SVF::SVFIR</a>
111
- </li>
112
109
  <li>icfgNode2SVFStmtsMap
113
110
  : <a class="el" href="classSVF_1_1SVFIR.html#a86c0c23d854b034d741d9d8891debab7">SVF::SVFIR</a>
114
111
  </li>
112
+ <li>ICFGNode2SVFStmtsMap
113
+ : <a class="el" href="classSVF_1_1SVFIR.html#a4666dabcbeb3f40f96a0694ce2f07eb0">SVF::SVFIR</a>
114
+ </li>
115
115
  <li>ICFGNodeIDToNodeMapTy
116
116
  : <a class="el" href="classSVF_1_1ICFG.html#af1fe5708c6f67fd87fa1edaa6c73ff5d">SVF::ICFG</a>
117
117
  </li>
@@ -116,12 +116,12 @@ $(function() {
116
116
  <li>LLVMLoopAnalysis()
117
117
  : <a class="el" href="classSVF_1_1LLVMLoopAnalysis.html#a93161bbdb47c74fce1d8e54a45df2df8">SVF::LLVMLoopAnalysis</a>
118
118
  </li>
119
- <li>LLVMModuleSet()
120
- : <a class="el" href="classSVF_1_1LLVMModuleSet.html#a8e70de9eefe2e188b10e214e073750e6">SVF::LLVMModuleSet</a>
121
- </li>
122
119
  <li>llvmModuleSet
123
120
  : <a class="el" href="classSVF_1_1LLVMModuleSet.html#ac59b07cafcbacc950eefea4082425b63">SVF::LLVMModuleSet</a>
124
121
  </li>
122
+ <li>LLVMModuleSet()
123
+ : <a class="el" href="classSVF_1_1LLVMModuleSet.html#a8e70de9eefe2e188b10e214e073750e6">SVF::LLVMModuleSet</a>
124
+ </li>
125
125
  <li>Load
126
126
  : <a class="el" href="classSVF_1_1ConstraintEdge.html#a663af27955ba0c545f34fa1f076b7375a1bdeb9a06641d16b43391120812b40b2">SVF::ConstraintEdge</a>
127
127
  </li>
@@ -172,12 +172,12 @@ $(function() {
172
172
  <li>LoadStmt()
173
173
  : <a class="el" href="classSVF_1_1LoadStmt.html#a4bd939005c7c6a5da4ed3b6be6ef1a22">SVF::LoadStmt</a>
174
174
  </li>
175
- <li>LoadsToMRsMap
176
- : <a class="el" href="classSVF_1_1MRGenerator.html#a273b2634adcfa10a08924517e8d51175">SVF::MRGenerator</a>
177
- </li>
178
175
  <li>loadsToMRsMap
179
176
  : <a class="el" href="classSVF_1_1MRGenerator.html#a0d8229b1f0b8428708e923d19096e4ba">SVF::MRGenerator</a>
180
177
  </li>
178
+ <li>LoadsToMRsMap
179
+ : <a class="el" href="classSVF_1_1MRGenerator.html#a273b2634adcfa10a08924517e8d51175">SVF::MRGenerator</a>
180
+ </li>
181
181
  <li>LoadsToPointsToMap
182
182
  : <a class="el" href="classSVF_1_1MRGenerator.html#acfadd565b5c978c9417e059b3ea7588c">SVF::MRGenerator</a>
183
183
  </li>
@@ -456,12 +456,12 @@ $(function() {
456
456
  <li>opVarBegin()
457
457
  : <a class="el" href="classSVF_1_1MultiOpndStmt.html#abebed8985cb4d4d1361c42e5454c90b9">SVF::MultiOpndStmt</a>
458
458
  </li>
459
- <li>OPVars
460
- : <a class="el" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">SVF::MultiOpndStmt</a>
461
- </li>
462
459
  <li>opVars
463
460
  : <a class="el" href="classSVF_1_1MultiOpndStmt.html#a172025849492f4de8f87564ef08f5880">SVF::MultiOpndStmt</a>
464
461
  </li>
462
+ <li>OPVars
463
+ : <a class="el" href="classSVF_1_1MultiOpndStmt.html#acf8c7cfbf1c8baab672040635bb9a007">SVF::MultiOpndStmt</a>
464
+ </li>
465
465
  <li>opVer
466
466
  : <a class="el" href="classSVF_1_1MSSACHI.html#a86f2f3f6e2215cdbe31caee048510757">SVF::MSSACHI&lt; Cond &gt;</a>
467
467
  </li>
@@ -86,12 +86,12 @@ $(function() {
86
86
  <li>PAGEdgeSetTy
87
87
  : <a class="el" href="classSVF_1_1SVFStmt.html#a2bdfa37167b5496629e5cae62705d5f2">SVF::SVFStmt</a>
88
88
  </li>
89
- <li>pagEdgeToFunMap
90
- : <a class="el" href="classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58">SVF::MRGenerator</a>
91
- </li>
92
89
  <li>PAGEdgeToFunMap
93
90
  : <a class="el" href="classSVF_1_1MRGenerator.html#a82be01b460a498c07fb6a8aba853ed31">SVF::MRGenerator</a>
94
91
  </li>
92
+ <li>pagEdgeToFunMap
93
+ : <a class="el" href="classSVF_1_1MRGenerator.html#ab250a4950269f57027d8e8ef10089f58">SVF::MRGenerator</a>
94
+ </li>
95
95
  <li>PAGEdgeToSetMapTy
96
96
  : <a class="el" href="classSVF_1_1SVFStmt.html#a229c78147511f2a581c761552179b6fa">SVF::SVFStmt</a>
97
97
  </li>
@@ -172,12 +172,12 @@ $(function() {
172
172
  <li>PAGPrint
173
173
  : <a class="el" href="classSVF_1_1Options.html#a98df022c5da54ea30b3f0ce008d3ca80">SVF::Options</a>
174
174
  </li>
175
- <li>pagReadFromTxt
176
- : <a class="el" href="classSVF_1_1SVFModule.html#a2547331e2c32b077d5876e609cb7f48f">SVF::SVFModule</a>
177
- </li>
178
175
  <li>pagReadFromTXT()
179
176
  : <a class="el" href="classSVF_1_1SVFModule.html#a1357c876eccedd58b3abe68875b3a570">SVF::SVFModule</a>
180
177
  </li>
178
+ <li>pagReadFromTxt
179
+ : <a class="el" href="classSVF_1_1SVFModule.html#a2547331e2c32b077d5876e609cb7f48f">SVF::SVFModule</a>
180
+ </li>
181
181
  <li>pairheadmap
182
182
  : <a class="el" href="classSVF_1_1MTASVFGBuilder.html#af65f6553c6a7184401e249d777cd520e">SVF::MTASVFGBuilder</a>
183
183
  </li>
@@ -825,12 +825,12 @@ $(function() {
825
825
  <li>PTAStat()
826
826
  : <a class="el" href="classSVF_1_1PTAStat.html#ac9b65b591200c16c420fbd26710b448f">SVF::PTAStat</a>
827
827
  </li>
828
- <li>ptaTy
829
- : <a class="el" href="classSVF_1_1PointerAnalysis.html#ade83738ac754d5ffc2a3b497b600cad4">SVF::PointerAnalysis</a>
830
- </li>
831
828
  <li>PTATY
832
829
  : <a class="el" href="classSVF_1_1PointerAnalysis.html#a0b182ac680cce0547dbe7714c870ca85">SVF::PointerAnalysis</a>
833
830
  </li>
831
+ <li>ptaTy
832
+ : <a class="el" href="classSVF_1_1PointerAnalysis.html#ade83738ac754d5ffc2a3b497b600cad4">SVF::PointerAnalysis</a>
833
+ </li>
834
834
  <li>PTAVector
835
835
  : <a class="el" href="classSVF_1_1DDAPass.html#acc7ad5d3266cb3e24fba0b4db186348a">SVF::DDAPass</a>
836
836
  , <a class="el" href="classSVF_1_1WPAPass.html#ad4e3d480ebcc6bbbb7bcc8dc3df8663e">SVF::WPAPass</a>
@@ -899,18 +899,18 @@ $(function() {
899
899
  <li>ptrsInUncalledFunctions
900
900
  : <a class="el" href="classSVF_1_1SVFModule.html#a816a7065cd2cf664626ee023f9dfbd1d">SVF::SVFModule</a>
901
901
  </li>
902
- <li>ptrToBVPtsMap
903
- : <a class="el" href="classSVF_1_1CondPTAImpl.html#a30b9ee7b1dcd04285f92cf7accd05b2e">SVF::CondPTAImpl&lt; Cond &gt;</a>
904
- </li>
905
902
  <li>PtrToBVPtsMap
906
903
  : <a class="el" href="classSVF_1_1CondPTAImpl.html#aba828ca8e2aa2bd71b78be8b45a48c9b">SVF::CondPTAImpl&lt; Cond &gt;</a>
907
904
  </li>
908
- <li>ptrToCPtsMap
909
- : <a class="el" href="classSVF_1_1CondPTAImpl.html#a61167fcdb2005090de1b38e53450431a">SVF::CondPTAImpl&lt; Cond &gt;</a>
905
+ <li>ptrToBVPtsMap
906
+ : <a class="el" href="classSVF_1_1CondPTAImpl.html#a30b9ee7b1dcd04285f92cf7accd05b2e">SVF::CondPTAImpl&lt; Cond &gt;</a>
910
907
  </li>
911
908
  <li>PtrToCPtsMap
912
909
  : <a class="el" href="classSVF_1_1CondPTAImpl.html#a5043e9d9255d31777d038c48c809bb09">SVF::CondPTAImpl&lt; Cond &gt;</a>
913
910
  </li>
911
+ <li>ptrToCPtsMap
912
+ : <a class="el" href="classSVF_1_1CondPTAImpl.html#a61167fcdb2005090de1b38e53450431a">SVF::CondPTAImpl&lt; Cond &gt;</a>
913
+ </li>
914
914
  <li>PtrToNSMap
915
915
  : <a class="el" href="classSVF_1_1CondPTAImpl.html#a838c3f2be39d278072f7a9df7c0bcb4d">SVF::CondPTAImpl&lt; Cond &gt;</a>
916
916
  </li>
@@ -800,12 +800,12 @@ $(function() {
800
800
  <li>StoresToMRsMap
801
801
  : <a class="el" href="classSVF_1_1MRGenerator.html#afacb458ca832ef459e873b7d90134a8c">SVF::MRGenerator</a>
802
802
  </li>
803
- <li>StoresToPointsToMap
804
- : <a class="el" href="classSVF_1_1MRGenerator.html#a357e1654e30b2f91f6ea30ea5a52e91d">SVF::MRGenerator</a>
805
- </li>
806
803
  <li>storesToPointsToMap
807
804
  : <a class="el" href="classSVF_1_1MRGenerator.html#a7d86f708743a59aa31c0a9fd6de45dac">SVF::MRGenerator</a>
808
805
  </li>
806
+ <li>StoresToPointsToMap
807
+ : <a class="el" href="classSVF_1_1MRGenerator.html#a357e1654e30b2f91f6ea30ea5a52e91d">SVF::MRGenerator</a>
808
+ </li>
809
809
  <li>storeTime
810
810
  : <a class="el" href="classSVF_1_1FlowSensitive.html#a82b76087363b26fbe749653935569de7">SVF::FlowSensitive</a>
811
811
  </li>
@@ -962,12 +962,12 @@ $(function() {
962
962
  : <a class="el" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVF::ProgSlice</a>
963
963
  , <a class="el" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVF::SrcSnkDDA</a>
964
964
  </li>
965
- <li>SVFGNodeToCondMap
966
- : <a class="el" href="classSVF_1_1ProgSlice.html#adaf0bb2e3104c9d86d997b2e7c93275e">SVF::ProgSlice</a>
967
- </li>
968
965
  <li>svfgNodeToCondMap
969
966
  : <a class="el" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">SVF::ProgSlice</a>
970
967
  </li>
968
+ <li>SVFGNodeToCondMap
969
+ : <a class="el" href="classSVF_1_1ProgSlice.html#adaf0bb2e3104c9d86d997b2e7c93275e">SVF::ProgSlice</a>
970
+ </li>
971
971
  <li>SVFGNodeToCSIDMap
972
972
  : <a class="el" href="classSVF_1_1LeakChecker.html#a90c7275babe222f006233d2f2d2b6700">SVF::LeakChecker</a>
973
973
  </li>
@@ -1086,7 +1086,7 @@ $(function() {
1086
1086
  , <a class="el" href="classSVF_1_1CFLGraphBuilder.html#a36c5b874527e7694f7fb2fd7291da0da">SVF::CFLGraphBuilder</a>
1087
1087
  , <a class="el" href="classSVF_1_1CFLSolver.html#a06e64c18559b4f311717203ac3fe1fcd">SVF::CFLSolver</a>
1088
1088
  , <a class="el" href="classSVF_1_1GrammarBase.html#ad4f53184d04d9f7a737b19f63d002550">SVF::GrammarBase</a>
1089
- , <a class="el" href="structSVF_1_1GrammarBase_1_1Symbol.html#aa37072e1a6c0875305260c7c2414d767">SVF::GrammarBase::Symbol</a>
1089
+ , <a class="el" href="structSVF_1_1GrammarBase_1_1Symbol.html#ad8268060892644d15b13f84124bc1eaf">SVF::GrammarBase::Symbol</a>
1090
1090
  </li>
1091
1091
  <li>SymbolInfo()
1092
1092
  : <a class="el" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo</a>
@@ -85,39 +85,39 @@ $(function() {
85
85
  <li>WordSize
86
86
  : <a class="el" href="classSVF_1_1CoreBitVector.html#a63f5e4a36359ae62401e5f8dfecb86a3">SVF::CoreBitVector</a>
87
87
  </li>
88
+ <li>WorkList
89
+ : <a class="el" href="classSVF_1_1CFLSolver.html#a194d2c4c801799b0ba9562e33ca5b695">SVF::CFLSolver</a>
90
+ </li>
88
91
  <li>worklist
89
92
  : <a class="el" href="classSVF_1_1CFLSolver.html#a211bb78846886aa9ccd4b160da81e02e">SVF::CFLSolver</a>
90
93
  </li>
91
94
  <li>WorkList
92
- : <a class="el" href="classSVF_1_1CFLSolver.html#a194d2c4c801799b0ba9562e33ca5b695">SVF::CFLSolver</a>
93
- , <a class="el" href="classSVF_1_1CHGBuilder.html#a727a1737e7290536b29b05e03d8b85ac">SVF::CHGBuilder</a>
95
+ : <a class="el" href="classSVF_1_1CHGBuilder.html#a727a1737e7290536b29b05e03d8b85ac">SVF::CHGBuilder</a>
94
96
  , <a class="el" href="classSVF_1_1CHGraph.html#af1b638faf888898cdf168c25e008ab12">SVF::CHGraph</a>
95
97
  , <a class="el" href="classSVF_1_1ConstraintGraph.html#ae80fc7e5d68e103d8f3a82bc9ffb0f00">SVF::ConstraintGraph</a>
98
+ , <a class="el" href="classSVF_1_1GraphReachSolver.html#a472784c3cb958b4347958f039d2fe054">SVF::GraphReachSolver&lt; GraphType, DPIm &gt;</a>
96
99
  </li>
97
100
  <li>worklist
98
101
  : <a class="el" href="classSVF_1_1GraphReachSolver.html#a5032d3988dbce5a29274c55dc4dbe6bc">SVF::GraphReachSolver&lt; GraphType, DPIm &gt;</a>
99
102
  </li>
100
103
  <li>WorkList
101
- : <a class="el" href="classSVF_1_1GraphReachSolver.html#a472784c3cb958b4347958f039d2fe054">SVF::GraphReachSolver&lt; GraphType, DPIm &gt;</a>
102
- , <a class="el" href="classSVF_1_1ICFGBuilder.html#a2dc4467008cdd6eb896e98b67457082a">SVF::ICFGBuilder</a>
104
+ : <a class="el" href="classSVF_1_1ICFGBuilder.html#a2dc4467008cdd6eb896e98b67457082a">SVF::ICFGBuilder</a>
103
105
  , <a class="el" href="classSVF_1_1LeakChecker.html#af1e1f0fd38f72dcdfb5daa3d8af9538b">SVF::LeakChecker</a>
104
106
  , <a class="el" href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">SVF::MRGenerator</a>
105
107
  , <a class="el" href="classSVF_1_1SaberSVFGBuilder.html#a8e07c6afc4ae6e2792431065c2948039">SVF::SaberSVFGBuilder</a>
106
108
  , <a class="el" href="classSVF_1_1SrcSnkDDA.html#a3c0d8850c4dae49a760ce5f80fb8822a">SVF::SrcSnkDDA</a>
109
+ , <a class="el" href="classSVF_1_1SrcSnkSolver.html#a19861635c58ef6db7347c22daabf80da">SVF::SrcSnkSolver&lt; GraphType, DPIm &gt;</a>
107
110
  </li>
108
111
  <li>worklist
109
112
  : <a class="el" href="classSVF_1_1SrcSnkSolver.html#aeecbd88066567b2f123e84072dd09941">SVF::SrcSnkSolver&lt; GraphType, DPIm &gt;</a>
113
+ , <a class="el" href="classSVF_1_1SVFGOPT.html#a925f39665e13b18dfe66c2dded44c194">SVF::SVFGOPT</a>
110
114
  </li>
111
115
  <li>WorkList
112
- : <a class="el" href="classSVF_1_1SrcSnkSolver.html#a19861635c58ef6db7347c22daabf80da">SVF::SrcSnkSolver&lt; GraphType, DPIm &gt;</a>
113
- , <a class="el" href="classSVF_1_1SVFGOPT.html#a3ee399dc45e90a512be7575642855f40">SVF::SVFGOPT</a>
116
+ : <a class="el" href="classSVF_1_1SVFGOPT.html#a3ee399dc45e90a512be7575642855f40">SVF::SVFGOPT</a>
117
+ , <a class="el" href="classSVF_1_1WPASolver.html#a624e9156b2d3a4f284548cbaaf650334">SVF::WPASolver&lt; GraphType &gt;</a>
114
118
  </li>
115
119
  <li>worklist
116
- : <a class="el" href="classSVF_1_1SVFGOPT.html#a925f39665e13b18dfe66c2dded44c194">SVF::SVFGOPT</a>
117
- , <a class="el" href="classSVF_1_1WPASolver.html#a1775717a8c8d5d125b7561bc1ae6abf5">SVF::WPASolver&lt; GraphType &gt;</a>
118
- </li>
119
- <li>WorkList
120
- : <a class="el" href="classSVF_1_1WPASolver.html#a624e9156b2d3a4f284548cbaaf650334">SVF::WPASolver&lt; GraphType &gt;</a>
120
+ : <a class="el" href="classSVF_1_1WPASolver.html#a1775717a8c8d5d125b7561bc1ae6abf5">SVF::WPASolver&lt; GraphType &gt;</a>
121
121
  </li>
122
122
  <li>WorkStack
123
123
  : <a class="el" href="classSVF_1_1CSC.html#a0490b9998987d245ee6e56bc68db4f1e">SVF::CSC</a>
@@ -75,7 +75,6 @@ $(function() {
75
75
  </li>
76
76
  <li>Addr
77
77
  : <a class="el" href="CFLGrammar_8txt.html#a017fa6c558fa1eff0a13180c8340aba8">CFLGrammar.txt</a>
78
- , <a class="el" href="PEGGrammar_8txt.html#aceb4ff2aa6371c1133bbcd5309b0bed1">PEGGrammar.txt</a>
79
78
  </li>
80
79
  <li>Addrbar
81
80
  : <a class="el" href="PEGGrammar_8txt.html#a43cf87c9fa668dbee3d5e626a136c8fe">PEGGrammar.txt</a>