svf-tools 1.0.324 → 1.0.328
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.
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/Conditions_8cpp_source.html +22 -20
- package/SVF-doxygen/html/html/Conditions_8h_source.html +12 -9
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +7 -6
- package/SVF-doxygen/html/html/ConsG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +4 -4
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +13 -12
- package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/IRGraph_8cpp.html +1 -0
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +18 -16
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +6 -6
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +21 -21
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +4 -4
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MHP_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +16 -16
- package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +15 -15
- package/SVF-doxygen/html/html/Options_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/Options_8h_source.html +2 -1
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +24 -22
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFG_8cpp.html +1 -0
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +46 -44
- package/SVF-doxygen/html/html/SVFG_8h_source.html +19 -19
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +26 -26
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +24 -24
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +15 -15
- package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +32 -31
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchCondManager.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CondManager-members.html +10 -7
- package/SVF-doxygen/html/html/classSVF_1_1CondManager.html +144 -43
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI-members.html +50 -49
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +62 -32
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1GepObjPN.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +49 -49
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +34 -34
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +21 -20
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +26 -0
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator-members.html +13 -12
- package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +102 -70
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +11 -10
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +49 -49
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +38 -38
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +45 -44
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI-members.html +63 -62
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +99 -69
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/html/functions_d.html +4 -0
- package/SVF-doxygen/html/html/functions_func_d.html +4 -0
- package/SVF-doxygen/html/html/functions_func_i.html +8 -4
- package/SVF-doxygen/html/html/functions_func_r.html +3 -3
- package/SVF-doxygen/html/html/functions_func_s.html +8 -5
- package/SVF-doxygen/html/html/functions_i.html +9 -5
- package/SVF-doxygen/html/html/functions_l.html +3 -3
- package/SVF-doxygen/html/html/functions_n.html +7 -4
- package/SVF-doxygen/html/html/functions_o.html +3 -3
- package/SVF-doxygen/html/html/functions_p.html +20 -18
- package/SVF-doxygen/html/html/functions_r.html +3 -3
- package/SVF-doxygen/html/html/functions_s.html +18 -10
- package/SVF-doxygen/html/html/functions_t.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_n.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
- package/SVF-doxygen/html/html/functions_w.html +9 -5
- package/SVF-doxygen/html/html/search/all_10.js +9 -9
- package/SVF-doxygen/html/html/search/all_12.js +1 -1
- package/SVF-doxygen/html/html/search/all_13.js +7 -5
- package/SVF-doxygen/html/html/search/all_14.js +3 -3
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_4.js +2 -1
- package/SVF-doxygen/html/html/search/all_9.js +2 -1
- package/SVF-doxygen/html/html/search/all_c.js +2 -2
- package/SVF-doxygen/html/html/search/all_e.js +4 -3
- package/SVF-doxygen/html/html/search/all_f.js +2 -2
- package/SVF-doxygen/html/html/search/functions_10.js +1 -0
- package/SVF-doxygen/html/html/search/functions_3.js +2 -1
- package/SVF-doxygen/html/html/search/functions_8.js +1 -0
- package/SVF-doxygen/html/html/search/functions_e.js +1 -1
- package/SVF-doxygen/html/html/search/functions_f.js +1 -1
- package/SVF-doxygen/html/html/search/variables_13.js +1 -0
- package/SVF-doxygen/html/html/search/variables_14.js +2 -2
- package/SVF-doxygen/html/html/search/variables_e.js +3 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +9 -9
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +17 -17
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +20 -20
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
- package/include/MemoryModel/SVFIR.h +1 -1
- package/include/SABER/PathCondAllocator.h +4 -0
- package/include/Util/Conditions.h +10 -0
- package/include/Util/ExtAPI.h +9 -0
- package/include/Util/Options.h +3 -1
- package/include/Util/SVFModule.h +2 -7
- package/include/Util/ThreadAPI.h +9 -0
- package/lib/Graphs/ConsG.cpp +3 -2
- package/lib/Graphs/IRGraph.cpp +6 -3
- package/lib/Graphs/SVFG.cpp +4 -2
- package/lib/MemoryModel/SymbolTableInfo.cpp +8 -2
- package/lib/SABER/ProgSlice.cpp +4 -1
- package/lib/Util/Conditions.cpp +5 -1
- package/lib/Util/NodeIDAllocator.cpp +1 -0
- package/lib/Util/Options.cpp +6 -0
- package/package.json +1 -1
- package/tools/Example/svf-ex.cpp +1 -2
|
@@ -246,8 +246,8 @@ Private Attributes</h2></td></tr>
|
|
|
246
246
|
<p>use Cudd_bddAndLimit interface to avoid bdds blow up </p>
|
|
247
247
|
<p>drop the rhs condition </p>
|
|
248
248
|
|
|
249
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#
|
|
250
|
-
<div class="fragment"><div class="line"><a name="
|
|
249
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00260">260</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
|
|
250
|
+
<div class="fragment"><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1BranchCondManager.html#a013eb66493beb2b1d004605c68894a95">getFalseCond</a>() || rhs == <a class="code" href="classSVF_1_1BranchCondManager.html#a013eb66493beb2b1d004605c68894a95">getFalseCond</a>())</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BranchCondManager.html#a013eb66493beb2b1d004605c68894a95">getFalseCond</a>();</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">getTrueCond</a>())</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">return</span> rhs;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhs == <a class="code" href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">getTrueCond</a>())</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keywordflow">return</span> lhs;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  {</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <a class="code" href="classSVF_1_1BranchCondManager.html#a37bec50768d5df6317a4ba6c790c569d">BranchCond</a>* tmp = <a class="code" href="cudd_8h.html#adfbb2fd5b9c884df0d684a86dc26a97d">Cudd_bddAndLimit</a>(<a class="code" href="classSVF_1_1BranchCondManager.html#a0c6278a5b4419e16c8fb5d3f8f8162a2">m_bdd_mgr</a>, lhs, rhs, <a class="code" href="classSVF_1_1Options.html#a344ca0e4b8d9159836e558aed44be1b4">Options::MaxBddSize</a>);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">if</span>(tmp==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVFUtil::writeWrnMsg</a>(<span class="stringliteral">"exceeds max bdd size \n"</span>);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  <span class="keywordflow">return</span> lhs;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <a class="code" href="cudd_8h.html#a3d0d9959640235fc073699c776914fca">Cudd_Ref</a>(tmp);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">return</span> tmp;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  }</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> }</div><div class="ttc" id="classSVF_1_1BranchCondManager_html_ac6fb7493ceb44406a4bd6a62a60a6363"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">SVF::BranchCondManager::getTrueCond</a></div><div class="ttdeci">BranchCond * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00134">Conditions.h:134</a></div></div>
|
|
251
251
|
<div class="ttc" id="classSVF_1_1BranchCondManager_html_a37bec50768d5df6317a4ba6c790c569d"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a37bec50768d5df6317a4ba6c790c569d">SVF::BranchCondManager::BranchCond</a></div><div class="ttdeci">BranchCondExpr::BranchCond BranchCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00117">Conditions.h:117</a></div></div>
|
|
252
252
|
<div class="ttc" id="cudd_8h_html_adfbb2fd5b9c884df0d684a86dc26a97d"><div class="ttname"><a href="cudd_8h.html#adfbb2fd5b9c884df0d684a86dc26a97d">Cudd_bddAndLimit</a></div><div class="ttdeci">DdNode * Cudd_bddAndLimit(DdManager *dd, DdNode *f, DdNode *g, unsigned int limit)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l03146">cuddInt.c:3146</a></div></div>
|
|
253
253
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a077caa1b10ab84d101d79fc7ea50db2d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVF::SVFUtil::writeWrnMsg</a></div><div class="ttdeci">void writeWrnMsg(std::string msg)</div><div class="ttdoc">Writes a message run through wrnMsg. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00069">SVFUtil.cpp:69</a></div></div>
|
|
@@ -313,13 +313,13 @@ Private Attributes</h2></td></tr>
|
|
|
313
313
|
</table>
|
|
314
314
|
</div><div class="memdoc">
|
|
315
315
|
|
|
316
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#
|
|
317
|
-
<div class="fragment"><div class="line"><a name="
|
|
316
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00341">341</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
|
|
317
|
+
<div class="fragment"><div class="line"><a name="l00342"></a><span class="lineno"> 342</span> {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordflow">if</span> (<a class="code" href="cuddInt_8h.html#aa5cad999b2a4a3dbbfe5c1da1d8bc028">cuddIsConstant</a>(f) || <a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(f->next))</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span> </div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  support.set(f->index);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <a class="code" href="classSVF_1_1BranchCondManager.html#a94f84201f91b7175907e72af2633f6f2">BddSupportStep</a>(<a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(f), support);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <a class="code" href="classSVF_1_1BranchCondManager.html#a94f84201f91b7175907e72af2633f6f2">BddSupportStep</a>(<a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(<a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(f)), support);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="comment">/* Mark as visited. */</span></div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  f->next = <a class="code" href="cudd_8h.html#ac4575f4314998362765264f64eccfe0c">Cudd_Complement</a>(f->next);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> }</div><div class="ttc" id="cudd_8h_html_afbbecf4f6f78f92518f4d0a477d870b6"><div class="ttname"><a href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a></div><div class="ttdeci">#define Cudd_Regular(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00373">cudd.h:373</a></div></div>
|
|
318
318
|
<div class="ttc" id="cudd_8h_html_a35322518c24f65f44eda9623083cb62c"><div class="ttname"><a href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a></div><div class="ttdeci">#define Cudd_IsComplement(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00401">cudd.h:401</a></div></div>
|
|
319
319
|
<div class="ttc" id="cuddInt_8h_html_aa5cad999b2a4a3dbbfe5c1da1d8bc028"><div class="ttname"><a href="cuddInt_8h.html#aa5cad999b2a4a3dbbfe5c1da1d8bc028">cuddIsConstant</a></div><div class="ttdeci">#define cuddIsConstant(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00593">cuddInt.h:593</a></div></div>
|
|
320
320
|
<div class="ttc" id="cudd_8h_html_ac4575f4314998362765264f64eccfe0c"><div class="ttname"><a href="cudd_8h.html#ac4575f4314998362765264f64eccfe0c">Cudd_Complement</a></div><div class="ttdeci">#define Cudd_Complement(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00387">cudd.h:387</a></div></div>
|
|
321
321
|
<div class="ttc" id="cuddInt_8h_html_a09834c697b92ac296b1e50c863f88262"><div class="ttname"><a href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a></div><div class="ttdeci">#define cuddT(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00609">cuddInt.h:609</a></div></div>
|
|
322
|
-
<div class="ttc" id="classSVF_1_1BranchCondManager_html_a94f84201f91b7175907e72af2633f6f2"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a94f84201f91b7175907e72af2633f6f2">SVF::BranchCondManager::BddSupportStep</a></div><div class="ttdeci">void BddSupportStep(BranchCond *f, NodeBS &support) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#
|
|
322
|
+
<div class="ttc" id="classSVF_1_1BranchCondManager_html_a94f84201f91b7175907e72af2633f6f2"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a94f84201f91b7175907e72af2633f6f2">SVF::BranchCondManager::BddSupportStep</a></div><div class="ttdeci">void BddSupportStep(BranchCond *f, NodeBS &support) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00341">Conditions.cpp:341</a></div></div>
|
|
323
323
|
<div class="ttc" id="cuddInt_8h_html_aaef03f10591d8e28bb5fecd2aa7c93ff"><div class="ttname"><a href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a></div><div class="ttdeci">#define cuddE(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00625">cuddInt.h:625</a></div></div>
|
|
324
324
|
</div><!-- fragment -->
|
|
325
325
|
</div>
|
|
@@ -400,13 +400,13 @@ Private Attributes</h2></td></tr>
|
|
|
400
400
|
</div><div class="memdoc">
|
|
401
401
|
<p>Utilities for dumping conditions. These methods use global functions from CUDD package and they can be removed outside this class scope to be used by others. </p>
|
|
402
402
|
|
|
403
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#
|
|
404
|
-
<div class="fragment"><div class="line"><a name="
|
|
403
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00328">328</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
|
|
404
|
+
<div class="fragment"><div class="line"><a name="l00329"></a><span class="lineno"> 329</span> {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keywordflow">if</span> (!<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(f->next))</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="comment">/* Clear visited flag. */</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  f->next = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(f->next);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">if</span> (<a class="code" href="cuddInt_8h.html#aa5cad999b2a4a3dbbfe5c1da1d8bc028">cuddIsConstant</a>(f))</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <a class="code" href="classSVF_1_1BranchCondManager.html#a513a9865b87af136edf1abb1932716dd">ddClearFlag</a>(<a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(f));</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <a class="code" href="classSVF_1_1BranchCondManager.html#a513a9865b87af136edf1abb1932716dd">ddClearFlag</a>(<a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(<a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(f)));</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordflow">return</span>;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> }</div><div class="ttc" id="cudd_8h_html_afbbecf4f6f78f92518f4d0a477d870b6"><div class="ttname"><a href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a></div><div class="ttdeci">#define Cudd_Regular(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00373">cudd.h:373</a></div></div>
|
|
405
405
|
<div class="ttc" id="cudd_8h_html_a35322518c24f65f44eda9623083cb62c"><div class="ttname"><a href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a></div><div class="ttdeci">#define Cudd_IsComplement(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00401">cudd.h:401</a></div></div>
|
|
406
406
|
<div class="ttc" id="cuddInt_8h_html_aa5cad999b2a4a3dbbfe5c1da1d8bc028"><div class="ttname"><a href="cuddInt_8h.html#aa5cad999b2a4a3dbbfe5c1da1d8bc028">cuddIsConstant</a></div><div class="ttdeci">#define cuddIsConstant(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00593">cuddInt.h:593</a></div></div>
|
|
407
407
|
<div class="ttc" id="cuddInt_8h_html_a09834c697b92ac296b1e50c863f88262"><div class="ttname"><a href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a></div><div class="ttdeci">#define cuddT(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00609">cuddInt.h:609</a></div></div>
|
|
408
408
|
<div class="ttc" id="cuddInt_8h_html_aaef03f10591d8e28bb5fecd2aa7c93ff"><div class="ttname"><a href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a></div><div class="ttdeci">#define cuddE(node)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00625">cuddInt.h:625</a></div></div>
|
|
409
|
-
<div class="ttc" id="classSVF_1_1BranchCondManager_html_a513a9865b87af136edf1abb1932716dd"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a513a9865b87af136edf1abb1932716dd">SVF::BranchCondManager::ddClearFlag</a></div><div class="ttdeci">void ddClearFlag(BranchCond *f) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#
|
|
409
|
+
<div class="ttc" id="classSVF_1_1BranchCondManager_html_a513a9865b87af136edf1abb1932716dd"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a513a9865b87af136edf1abb1932716dd">SVF::BranchCondManager::ddClearFlag</a></div><div class="ttdeci">void ddClearFlag(BranchCond *f) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00328">Conditions.cpp:328</a></div></div>
|
|
410
410
|
</div><!-- fragment -->
|
|
411
411
|
</div>
|
|
412
412
|
</div>
|
|
@@ -437,9 +437,9 @@ Private Attributes</h2></td></tr>
|
|
|
437
437
|
</div><div class="memdoc">
|
|
438
438
|
<p>Dump BDD </p>
|
|
439
439
|
|
|
440
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#
|
|
441
|
-
<div class="fragment"><div class="line"><a name="
|
|
442
|
-
<div class="ttc" id="classSVF_1_1BranchCondManager_html_aa241ee8c9d8ef17029dba67b737d8beb"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#aa241ee8c9d8ef17029dba67b737d8beb">SVF::BranchCondManager::extractSubConds</a></div><div class="ttdeci">void extractSubConds(BranchCond *f, NodeBS &support) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#
|
|
440
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00363">363</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
|
|
441
|
+
<div class="fragment"><div class="line"><a name="l00364"></a><span class="lineno"> 364</span> {</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">getTrueCond</a>())</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  O << <span class="stringliteral">"T"</span>;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  {</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> support;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <a class="code" href="classSVF_1_1BranchCondManager.html#aa241ee8c9d8ef17029dba67b737d8beb">extractSubConds</a>(lhs, support);</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordflow">for</span> (NodeBS::iterator iter = support.begin(); iter != support.end();</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  ++iter)</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  {</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordtype">unsigned</span> rid = *iter;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  O << rid << <span class="stringliteral">" "</span>;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  }</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span> }</div><div class="ttc" id="classSVF_1_1BranchCondManager_html_ac6fb7493ceb44406a4bd6a62a60a6363"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">SVF::BranchCondManager::getTrueCond</a></div><div class="ttdeci">BranchCond * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00134">Conditions.h:134</a></div></div>
|
|
442
|
+
<div class="ttc" id="classSVF_1_1BranchCondManager_html_aa241ee8c9d8ef17029dba67b737d8beb"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#aa241ee8c9d8ef17029dba67b737d8beb">SVF::BranchCondManager::extractSubConds</a></div><div class="ttdeci">void extractSubConds(BranchCond *f, NodeBS &support) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00354">Conditions.cpp:354</a></div></div>
|
|
443
443
|
<div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
|
|
444
444
|
</div><!-- fragment -->
|
|
445
445
|
</div>
|
|
@@ -461,9 +461,9 @@ Private Attributes</h2></td></tr>
|
|
|
461
461
|
</div><div class="memdoc">
|
|
462
462
|
<p>Dump BDD </p>
|
|
463
463
|
|
|
464
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#
|
|
465
|
-
<div class="fragment"><div class="line"><a name="
|
|
466
|
-
<div class="ttc" id="classSVF_1_1BranchCondManager_html_aa241ee8c9d8ef17029dba67b737d8beb"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#aa241ee8c9d8ef17029dba67b737d8beb">SVF::BranchCondManager::extractSubConds</a></div><div class="ttdeci">void extractSubConds(BranchCond *f, NodeBS &support) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#
|
|
464
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00383">383</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
|
|
465
|
+
<div class="fragment"><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  std::string str;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">getTrueCond</a>())</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  str += <span class="stringliteral">"T"</span>;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <a class="code" href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">NodeBS</a> support;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <a class="code" href="classSVF_1_1BranchCondManager.html#aa241ee8c9d8ef17029dba67b737d8beb">extractSubConds</a>(lhs, support);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keywordflow">for</span> (NodeBS::iterator iter = support.begin(); iter != support.end();</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  ++iter)</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  {</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keywordtype">unsigned</span> rid = *iter;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordtype">char</span> int2str[16];</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  sprintf(int2str, <span class="stringliteral">"%d"</span>, rid);</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  str += int2str;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  str += <span class="stringliteral">" "</span>;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  }</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordflow">return</span> str;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span> }</div><div class="ttc" id="classSVF_1_1BranchCondManager_html_ac6fb7493ceb44406a4bd6a62a60a6363"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">SVF::BranchCondManager::getTrueCond</a></div><div class="ttdeci">BranchCond * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00134">Conditions.h:134</a></div></div>
|
|
466
|
+
<div class="ttc" id="classSVF_1_1BranchCondManager_html_aa241ee8c9d8ef17029dba67b737d8beb"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#aa241ee8c9d8ef17029dba67b737d8beb">SVF::BranchCondManager::extractSubConds</a></div><div class="ttdeci">void extractSubConds(BranchCond *f, NodeBS &support) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00354">Conditions.cpp:354</a></div></div>
|
|
467
467
|
<div class="ttc" id="namespaceSVF_html_a740396763e377643790c8b803ab3e4ea"><div class="ttname"><a href="namespaceSVF.html#a740396763e377643790c8b803ab3e4ea">SVF::NodeBS</a></div><div class="ttdeci">llvm::SparseBitVector NodeBS</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00086">SVFBasicTypes.h:86</a></div></div>
|
|
468
468
|
</div><!-- fragment -->
|
|
469
469
|
</div>
|
|
@@ -494,10 +494,10 @@ Private Attributes</h2></td></tr>
|
|
|
494
494
|
</table>
|
|
495
495
|
</div><div class="memdoc">
|
|
496
496
|
|
|
497
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#
|
|
498
|
-
<div class="fragment"><div class="line"><a name="
|
|
499
|
-
<div class="ttc" id="classSVF_1_1BranchCondManager_html_a94f84201f91b7175907e72af2633f6f2"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a94f84201f91b7175907e72af2633f6f2">SVF::BranchCondManager::BddSupportStep</a></div><div class="ttdeci">void BddSupportStep(BranchCond *f, NodeBS &support) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#
|
|
500
|
-
<div class="ttc" id="classSVF_1_1BranchCondManager_html_a513a9865b87af136edf1abb1932716dd"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a513a9865b87af136edf1abb1932716dd">SVF::BranchCondManager::ddClearFlag</a></div><div class="ttdeci">void ddClearFlag(BranchCond *f) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#
|
|
497
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00354">354</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
|
|
498
|
+
<div class="fragment"><div class="line"><a name="l00355"></a><span class="lineno"> 355</span> {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <a class="code" href="classSVF_1_1BranchCondManager.html#a94f84201f91b7175907e72af2633f6f2">BddSupportStep</a>( <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(f), support);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="classSVF_1_1BranchCondManager.html#a513a9865b87af136edf1abb1932716dd">ddClearFlag</a>(<a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(f));</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> }</div><div class="ttc" id="cudd_8h_html_afbbecf4f6f78f92518f4d0a477d870b6"><div class="ttname"><a href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a></div><div class="ttdeci">#define Cudd_Regular(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00373">cudd.h:373</a></div></div>
|
|
499
|
+
<div class="ttc" id="classSVF_1_1BranchCondManager_html_a94f84201f91b7175907e72af2633f6f2"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a94f84201f91b7175907e72af2633f6f2">SVF::BranchCondManager::BddSupportStep</a></div><div class="ttdeci">void BddSupportStep(BranchCond *f, NodeBS &support) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00341">Conditions.cpp:341</a></div></div>
|
|
500
|
+
<div class="ttc" id="classSVF_1_1BranchCondManager_html_a513a9865b87af136edf1abb1932716dd"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a513a9865b87af136edf1abb1932716dd">SVF::BranchCondManager::ddClearFlag</a></div><div class="ttdeci">void ddClearFlag(BranchCond *f) const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8cpp_source.html#l00328">Conditions.cpp:328</a></div></div>
|
|
501
501
|
</div><!-- fragment -->
|
|
502
502
|
</div>
|
|
503
503
|
</div>
|
|
@@ -631,8 +631,8 @@ Private Attributes</h2></td></tr>
|
|
|
631
631
|
</table>
|
|
632
632
|
</div><div class="memdoc">
|
|
633
633
|
|
|
634
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#
|
|
635
|
-
<div class="fragment"><div class="line"><a name="
|
|
634
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00313">313</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
|
|
635
|
+
<div class="fragment"><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">getTrueCond</a>())</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BranchCondManager.html#a013eb66493beb2b1d004605c68894a95">getFalseCond</a>();</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1BranchCondManager.html#a013eb66493beb2b1d004605c68894a95">getFalseCond</a>())</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">getTrueCond</a>();</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">return</span> <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(lhs);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span> }</div><div class="ttc" id="classSVF_1_1BranchCondManager_html_ac6fb7493ceb44406a4bd6a62a60a6363"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">SVF::BranchCondManager::getTrueCond</a></div><div class="ttdeci">BranchCond * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00134">Conditions.h:134</a></div></div>
|
|
636
636
|
<div class="ttc" id="cudd_8h_html_a352ef8d39e760eaabae6d58d9a5ddbfc"><div class="ttname"><a href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a></div><div class="ttdeci">#define Cudd_Not(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00343">cudd.h:343</a></div></div>
|
|
637
637
|
<div class="ttc" id="classSVF_1_1BranchCondManager_html_a013eb66493beb2b1d004605c68894a95"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a013eb66493beb2b1d004605c68894a95">SVF::BranchCondManager::getFalseCond</a></div><div class="ttdeci">BranchCond * getFalseCond() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00138">Conditions.h:138</a></div></div>
|
|
638
638
|
</div><!-- fragment -->
|
|
@@ -666,8 +666,8 @@ Private Attributes</h2></td></tr>
|
|
|
666
666
|
<p>Use Cudd_bddOrLimit interface to avoid bdds blow up </p>
|
|
667
667
|
<p>drop the two conditions here </p>
|
|
668
668
|
|
|
669
|
-
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#
|
|
670
|
-
<div class="fragment"><div class="line"><a name="
|
|
669
|
+
<p class="definition">Definition at line <a class="el" href="Conditions_8cpp_source.html#l00288">288</a> of file <a class="el" href="Conditions_8cpp_source.html">Conditions.cpp</a>.</p>
|
|
670
|
+
<div class="fragment"><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> {</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">getTrueCond</a>() || rhs == <a class="code" href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">getTrueCond</a>())</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">getTrueCond</a>();</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs == <a class="code" href="classSVF_1_1BranchCondManager.html#a013eb66493beb2b1d004605c68894a95">getFalseCond</a>())</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keywordflow">return</span> rhs;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (rhs == <a class="code" href="classSVF_1_1BranchCondManager.html#a013eb66493beb2b1d004605c68894a95">getFalseCond</a>())</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordflow">return</span> lhs;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <a class="code" href="classSVF_1_1BranchCondManager.html#a37bec50768d5df6317a4ba6c790c569d">BranchCond</a>* tmp = <a class="code" href="cudd_8h.html#a6cbc77f8b658ac3c88a2549a84c58b38">Cudd_bddOrLimit</a>(<a class="code" href="classSVF_1_1BranchCondManager.html#a0c6278a5b4419e16c8fb5d3f8f8162a2">m_bdd_mgr</a>, lhs, rhs, <a class="code" href="classSVF_1_1Options.html#a344ca0e4b8d9159836e558aed44be1b4">Options::MaxBddSize</a>);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keywordflow">if</span>(tmp==<span class="keyword">nullptr</span>)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVFUtil::writeWrnMsg</a>(<span class="stringliteral">"exceeds max bdd size \n"</span>);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">getTrueCond</a>();</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <a class="code" href="cudd_8h.html#a3d0d9959640235fc073699c776914fca">Cudd_Ref</a>(tmp);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keywordflow">return</span> tmp;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span> }</div><div class="ttc" id="classSVF_1_1BranchCondManager_html_ac6fb7493ceb44406a4bd6a62a60a6363"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#ac6fb7493ceb44406a4bd6a62a60a6363">SVF::BranchCondManager::getTrueCond</a></div><div class="ttdeci">BranchCond * getTrueCond() const</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00134">Conditions.h:134</a></div></div>
|
|
671
671
|
<div class="ttc" id="classSVF_1_1BranchCondManager_html_a37bec50768d5df6317a4ba6c790c569d"><div class="ttname"><a href="classSVF_1_1BranchCondManager.html#a37bec50768d5df6317a4ba6c790c569d">SVF::BranchCondManager::BranchCond</a></div><div class="ttdeci">BranchCondExpr::BranchCond BranchCond</div><div class="ttdef"><b>Definition:</b> <a href="Conditions_8h_source.html#l00117">Conditions.h:117</a></div></div>
|
|
672
672
|
<div class="ttc" id="cudd_8h_html_a6cbc77f8b658ac3c88a2549a84c58b38"><div class="ttname"><a href="cudd_8h.html#a6cbc77f8b658ac3c88a2549a84c58b38">Cudd_bddOrLimit</a></div><div class="ttdeci">DdNode * Cudd_bddOrLimit(DdManager *dd, DdNode *f, DdNode *g, unsigned int limit)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l03214">cuddInt.c:3214</a></div></div>
|
|
673
673
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a077caa1b10ab84d101d79fc7ea50db2d"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a077caa1b10ab84d101d79fc7ea50db2d">SVF::SVFUtil::writeWrnMsg</a></div><div class="ttdeci">void writeWrnMsg(std::string msg)</div><div class="ttdoc">Writes a message run through wrnMsg. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00069">SVFUtil.cpp:69</a></div></div>
|
|
@@ -222,7 +222,7 @@ Private Attributes</h2></td></tr>
|
|
|
222
222
|
<div class="ttc" id="namespaceSVF_1_1cppUtil_html_ac9c6d4315e7a1a826add7ed9cf924553"><div class="ttname"><a href="namespaceSVF_1_1cppUtil.html#ac9c6d4315e7a1a826add7ed9cf924553">SVF::cppUtil::getThunkTarget</a></div><div class="ttdeci">const Function * getThunkTarget(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="CPPUtil_8cpp_source.html#l00294">CPPUtil.cpp:294</a></div></div>
|
|
223
223
|
<div class="ttc" id="classSVF_1_1CHGBuilder_html_ab3471cc9afba5976c7e5fbd07dfb22dc"><div class="ttname"><a href="classSVF_1_1CHGBuilder.html#ab3471cc9afba5976c7e5fbd07dfb22dc">SVF::CHGBuilder::chg</a></div><div class="ttdeci">CHGraph * chg</div><div class="ttdef"><b>Definition:</b> <a href="CHGBuilder_8h_source.html#l00037">CHGBuilder.h:37</a></div></div>
|
|
224
224
|
<div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00249">BasicTypes.h:249</a></div></div>
|
|
225
|
-
<div class="ttc" id="classSVF_1_1SVFModule_html_af969d7739f27c8242985656bafbabaeb"><div class="ttname"><a href="classSVF_1_1SVFModule.html#af969d7739f27c8242985656bafbabaeb">SVF::SVFModule::getSVFFunction</a></div><div class="ttdeci">const SVFFunction * getSVFFunction(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#
|
|
225
|
+
<div class="ttc" id="classSVF_1_1SVFModule_html_af969d7739f27c8242985656bafbabaeb"><div class="ttname"><a href="classSVF_1_1SVFModule.html#af969d7739f27c8242985656bafbabaeb">SVF::SVFModule::getSVFFunction</a></div><div class="ttdeci">const SVFFunction * getSVFFunction(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00121">SVFModule.h:121</a></div></div>
|
|
226
226
|
</div><!-- fragment -->
|
|
227
227
|
</div>
|
|
228
228
|
</div>
|
|
@@ -163,12 +163,12 @@ Protected Attributes</h2></td></tr>
|
|
|
163
163
|
<p>create edges </p>
|
|
164
164
|
|
|
165
165
|
<p class="definition">Definition at line <a class="el" href="CallGraphBuilder_8cpp_source.html#l00038">38</a> of file <a class="el" href="CallGraphBuilder_8cpp_source.html">CallGraphBuilder.cpp</a>.</p>
|
|
166
|
-
<div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#aa5a0780c5c69a1e9a0ba902b4ad49714">SVFModule::llvm_iterator</a> F = svfModule-><a class="code" href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">llvmFunBegin</a>(), E = svfModule-><a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>(); F != E; ++F)</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(*F);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classSVF_1_1CallGraphBuilder.html#a77ccca4e81eb1199c89d75e1b2d21af6">callgraph</a>-><a class="code" href="classSVF_1_1PTACallGraph.html#a8a1621038edeb847bfc5a4a7be7620a3">addCallGraphNode</a>(fun);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#aa5a0780c5c69a1e9a0ba902b4ad49714">SVFModule::llvm_iterator</a> F = svfModule-><a class="code" href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">llvmFunBegin</a>(), E = svfModule-><a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>(); F != E; ++F)</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fun = *F;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a255af6ff30782cb9a548feadb0fe7d6b">inst_iterator</a> I = inst_begin(*fun), J = inst_end(*fun); I != J; ++I)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = &*I;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVFUtil::isNonInstricCallSite</a>(inst))</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(inst))</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* callBlockNode = <a class="code" href="classSVF_1_1CallGraphBuilder.html#ab3e0b47be010e25c093953e54602d211">icfg</a>-><a class="code" href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">getCallBlockNode</a>(inst);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* caller = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(fun);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classSVF_1_1CallGraphBuilder.html#a77ccca4e81eb1199c89d75e1b2d21af6">callgraph</a>-><a class="code" href="classSVF_1_1PTACallGraph.html#ab0da49175c64d8e2fccd19680d79771e">addDirectCallGraphEdge</a>(callBlockNode,caller,callee);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CallGraphBuilder.html#a77ccca4e81eb1199c89d75e1b2d21af6">callgraph</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> }</div><div class="ttc" id="classSVF_1_1SVFModule_html_af38d0f831967d6d8391a4c84e58d6519"><div class="ttname"><a href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">SVF::SVFModule::llvmFunEnd</a></div><div class="ttdeci">llvm_iterator llvmFunEnd()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#
|
|
166
|
+
<div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#aa5a0780c5c69a1e9a0ba902b4ad49714">SVFModule::llvm_iterator</a> F = svfModule-><a class="code" href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">llvmFunBegin</a>(), E = svfModule-><a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>(); F != E; ++F)</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* fun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(*F);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classSVF_1_1CallGraphBuilder.html#a77ccca4e81eb1199c89d75e1b2d21af6">callgraph</a>-><a class="code" href="classSVF_1_1PTACallGraph.html#a8a1621038edeb847bfc5a4a7be7620a3">addCallGraphNode</a>(fun);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1SVFModule.html#aa5a0780c5c69a1e9a0ba902b4ad49714">SVFModule::llvm_iterator</a> F = svfModule-><a class="code" href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">llvmFunBegin</a>(), E = svfModule-><a class="code" href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">llvmFunEnd</a>(); F != E; ++F)</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *fun = *F;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a255af6ff30782cb9a548feadb0fe7d6b">inst_iterator</a> I = inst_begin(*fun), J = inst_end(*fun); I != J; ++I)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = &*I;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1SVFUtil.html#a8d8216a92140d982303f83ea424ddc91">SVFUtil::isNonInstricCallSite</a>(inst))</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">getCallee</a>(inst))</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallBlockNode.html">CallBlockNode</a>* callBlockNode = <a class="code" href="classSVF_1_1CallGraphBuilder.html#ab3e0b47be010e25c093953e54602d211">icfg</a>-><a class="code" href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">getCallBlockNode</a>(inst);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* caller = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">LLVMModuleSet::getLLVMModuleSet</a>()-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a547b3bc62de65b9dbfc6dee55c063dd7">getSVFFunction</a>(fun);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classSVF_1_1CallGraphBuilder.html#a77ccca4e81eb1199c89d75e1b2d21af6">callgraph</a>-><a class="code" href="classSVF_1_1PTACallGraph.html#ab0da49175c64d8e2fccd19680d79771e">addDirectCallGraphEdge</a>(callBlockNode,caller,callee);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CallGraphBuilder.html#a77ccca4e81eb1199c89d75e1b2d21af6">callgraph</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> }</div><div class="ttc" id="classSVF_1_1SVFModule_html_af38d0f831967d6d8391a4c84e58d6519"><div class="ttname"><a href="classSVF_1_1SVFModule.html#af38d0f831967d6d8391a4c84e58d6519">SVF::SVFModule::llvmFunEnd</a></div><div class="ttdeci">llvm_iterator llvmFunEnd()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00138">SVFModule.h:138</a></div></div>
|
|
167
167
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_ab0da49175c64d8e2fccd19680d79771e"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#ab0da49175c64d8e2fccd19680d79771e">SVF::PTACallGraph::addDirectCallGraphEdge</a></div><div class="ttdeci">void addDirectCallGraphEdge(const CallBlockNode *call, const SVFFunction *callerFun, const SVFFunction *calleeFun)</div><div class="ttdoc">Add direct/indirect call edges. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00165">PTACallGraph.cpp:165</a></div></div>
|
|
168
168
|
<div class="ttc" id="classSVF_1_1ICFG_html_a7d10e8a815c836a070d35850f817a18c"><div class="ttname"><a href="classSVF_1_1ICFG.html#a7d10e8a815c836a070d35850f817a18c">SVF::ICFG::getCallBlockNode</a></div><div class="ttdeci">CallBlockNode * getCallBlockNode(const Instruction *inst)</div><div class="ttdef"><b>Definition:</b> <a href="ICFG_8cpp_source.html#l00197">ICFG.cpp:197</a></div></div>
|
|
169
169
|
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00233">BasicTypes.h:233</a></div></div>
|
|
170
170
|
<div class="ttc" id="classSVF_1_1PTACallGraph_html_a8a1621038edeb847bfc5a4a7be7620a3"><div class="ttname"><a href="classSVF_1_1PTACallGraph.html#a8a1621038edeb847bfc5a4a7be7620a3">SVF::PTACallGraph::addCallGraphNode</a></div><div class="ttdeci">void addCallGraphNode(const SVFFunction *fun)</div><div class="ttdoc">Add callgraph Node. </div><div class="ttdef"><b>Definition:</b> <a href="PTACallGraph_8cpp_source.html#l00121">PTACallGraph.cpp:121</a></div></div>
|
|
171
|
-
<div class="ttc" id="classSVF_1_1SVFModule_html_a648542aa5c4b487ad5aa12a39d15e951"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">SVF::SVFModule::llvmFunBegin</a></div><div class="ttdeci">llvm_iterator llvmFunBegin()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#
|
|
171
|
+
<div class="ttc" id="classSVF_1_1SVFModule_html_a648542aa5c4b487ad5aa12a39d15e951"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a648542aa5c4b487ad5aa12a39d15e951">SVF::SVFModule::llvmFunBegin</a></div><div class="ttdeci">llvm_iterator llvmFunBegin()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00130">SVFModule.h:130</a></div></div>
|
|
172
172
|
<div class="ttc" id="classSVF_1_1SVFModule_html_aa5a0780c5c69a1e9a0ba902b4ad49714"><div class="ttname"><a href="classSVF_1_1SVFModule.html#aa5a0780c5c69a1e9a0ba902b4ad49714">SVF::SVFModule::llvm_iterator</a></div><div class="ttdeci">LLVMFunctionSetType::iterator llvm_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00053">SVFModule.h:53</a></div></div>
|
|
173
173
|
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
|
|
174
174
|
<div class="ttc" id="classSVF_1_1CallGraphBuilder_html_a77ccca4e81eb1199c89d75e1b2d21af6"><div class="ttname"><a href="classSVF_1_1CallGraphBuilder.html#a77ccca4e81eb1199c89d75e1b2d21af6">SVF::CallGraphBuilder::callgraph</a></div><div class="ttdeci">PTACallGraph * callgraph</div><div class="ttdef"><b>Definition:</b> <a href="CallGraphBuilder_8h_source.html#l00046">CallGraphBuilder.h:46</a></div></div>
|
|
@@ -447,8 +447,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
447
447
|
|
|
448
448
|
<p>Reimplemented from <a class="el" href="classSVF_1_1IndirectSVFGEdge.html#a33e6221e5005fda68903f4cdadf58ce8">SVF::IndirectSVFGEdge</a>.</p>
|
|
449
449
|
|
|
450
|
-
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#
|
|
451
|
-
<div class="fragment"><div class="line"><a name="
|
|
450
|
+
<p class="definition">Definition at line <a class="el" href="SVFG_8cpp_source.html#l00141">141</a> of file <a class="el" href="SVFG_8cpp_source.html">SVFG.cpp</a>.</p>
|
|
451
|
+
<div class="fragment"><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  std::string str;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  rawstr << <span class="stringliteral">"CallIndSVFGEdge CallSite ID: "</span> << <a class="code" href="classSVF_1_1CallIndSVFGEdge.html#a3742b87170e0b48edc71ffdd6e5350aa">getCallSiteId</a>() << <span class="stringliteral">" "</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  rawstr << <a class="code" href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">getDstID</a>() << <span class="stringliteral">"<--"</span> << <a class="code" href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">getSrcID</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> }</div><div class="ttc" id="classSVF_1_1GenericEdge_html_ad9edb45e74ae675d9da82f5acf02d56e"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ad9edb45e74ae675d9da82f5acf02d56e">SVF::GenericEdge::getDstID</a></div><div class="ttdeci">NodeID getDstID() const</div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00077">GenericGraph.h:77</a></div></div>
|
|
452
452
|
<div class="ttc" id="classSVF_1_1GenericEdge_html_ae6792506a0150a9400d635eceab7f9e7"><div class="ttname"><a href="classSVF_1_1GenericEdge.html#ae6792506a0150a9400d635eceab7f9e7">SVF::GenericEdge::getSrcID</a></div><div class="ttdeci">NodeID getSrcID() const</div><div class="ttdoc">get methods of the components </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00073">GenericGraph.h:73</a></div></div>
|
|
453
453
|
<div class="ttc" id="namespaceSVF_html_a726981481ac082dcda3e4921416b65a0"><div class="ttname"><a href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">SVF::raw_string_ostream</a></div><div class="ttdeci">llvm::raw_string_ostream raw_string_ostream</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00100">BasicTypes.h:100</a></div></div>
|
|
454
454
|
<div class="ttc" id="classSVF_1_1CallIndSVFGEdge_html_a3742b87170e0b48edc71ffdd6e5350aa"><div class="ttname"><a href="classSVF_1_1CallIndSVFGEdge.html#a3742b87170e0b48edc71ffdd6e5350aa">SVF::CallIndSVFGEdge::getCallSiteId</a></div><div class="ttdeci">CallSiteID getCallSiteId() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFGEdge_8h_source.html#l00148">SVFGEdge.h:148</a></div></div>
|
|
@@ -95,18 +95,21 @@ $(function() {
|
|
|
95
95
|
<tr><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#a1f6aceb4d48a37bcb0e2f1776116b760">IDToCondExprMap</a> typedef</td><td class="entry"><a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td><td class="entry"></td></tr>
|
|
96
96
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#a6151817a6f671fa1e7814e74f7ce2e51">isAllPathReachable</a>(const CondExpr *e)</td><td class="entry"><a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td><td class="entry"></td></tr>
|
|
97
97
|
<tr><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#adef2474c65a7f9d96b27ee670136a240">isEquivalentBranchCond</a>(const CondExpr *lhs, const CondExpr *rhs) const</td><td class="entry"><a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
|
98
|
-
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#
|
|
99
|
-
<tr><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#
|
|
98
|
+
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#ad1de136dbd62c3b9a7447222bd0890fa">isNegCond</a>(const CondExpr *cond) const</td><td class="entry"><a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
|
99
|
+
<tr><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#a725d9c0a3aad4ebea3f06edf433f04ea">isSatisfiable</a>(const CondExpr *cond)</td><td class="entry"><a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td><td class="entry"></td></tr>
|
|
100
|
+
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#a5751792e45c8abd5ffd3610d94e9f0b7">NEG</a>(CondExpr *lhs)</td><td class="entry"><a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td><td class="entry"></td></tr>
|
|
101
|
+
<tr><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#aa5e6dbdb4c88941996f7865a2d3ca314">negConds</a></td><td class="entry"><a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
|
100
102
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#a83824b36d6cd073a171df9919aa0c704">OR</a>(CondExpr *lhs, CondExpr *rhs)</td><td class="entry"><a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td><td class="entry"></td></tr>
|
|
101
103
|
<tr><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#a385339096b4322654b5b2c7a37e852fe">printDbg</a>(const CondExpr *e)</td><td class="entry"><a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
|
102
104
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#ab9772aa1a35e963ccc9ce1007ebc1310">printModel</a>()</td><td class="entry"><a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td><td class="entry"></td></tr>
|
|
103
105
|
<tr><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#a2748338b4a5b122b5bbf4a9cb1f54211">releaseCondMgr</a>()</td><td class="entry"><a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
|
|
104
106
|
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#a1fbf7dd446309e13671d838c91da26bf">setCondInst</a>(const CondExpr *cond, const Instruction *inst)</td><td class="entry"><a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
|
105
|
-
<tr><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#
|
|
106
|
-
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#
|
|
107
|
-
<tr><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#
|
|
108
|
-
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#
|
|
109
|
-
<tr><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#
|
|
107
|
+
<tr><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#a049541fec44cac3401a0dc68ff2f0ac1">setNegCondInst</a>(const CondExpr *cond, const Instruction *inst)</td><td class="entry"><a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
|
|
108
|
+
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#aeb4f9f4968f57602d12225757073f0f8">simplify</a>(const z3::expr &expr) const</td><td class="entry"><a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td><td class="entry"></td></tr>
|
|
109
|
+
<tr><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#a771bda4bb55dd8c95a03f1a74a215126">sol</a></td><td class="entry"><a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td><td class="entry"><span class="mlabel">private</span></td></tr>
|
|
110
|
+
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#a7efaeff7229fcfdc6c05d53ee3e1d916">totalCondNum</a></td><td class="entry"><a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
|
111
|
+
<tr><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#aed854ecc55a568597f7d7f1f78fb92f4">trueCond</a></td><td class="entry"><a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td><td class="entry"><span class="mlabel">private</span><span class="mlabel">static</span></td></tr>
|
|
112
|
+
<tr class="even"><td class="entry"><a class="el" href="classSVF_1_1CondManager.html#a5677513376a78707de664c1cc85805aa">~CondManager</a>()</td><td class="entry"><a class="el" href="classSVF_1_1CondManager.html">SVF::CondManager</a></td><td class="entry"></td></tr>
|
|
110
113
|
</table></div><!-- contents -->
|
|
111
114
|
<!-- start footer part -->
|
|
112
115
|
<hr class="footer"/><address class="footer"><small>
|