svf-tools 1.0.338 → 1.0.342
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/BasicTypes_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +38 -36
- package/SVF-doxygen/html/html/ICFG_8h_source.html +18 -18
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Options_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Options_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFG_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +12 -12
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +91 -87
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +20 -19
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +30 -28
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +48 -46
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VFG_8h_source.html +4 -4
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +15 -12
- package/SVF-doxygen/html/html/classSVF_1_1CallBlockNode.html +5 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CloneDummyObjVar.html +13 -11
- package/SVF-doxygen/html/html/classSVF_1_1CloneFIObjVar.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1CloneGepObjVar.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +46 -14
- package/SVF-doxygen/html/html/classSVF_1_1DummyValVar-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +45 -14
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryBlockNode.html +4 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunExitBlockNode.html +4 -2
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +1 -3
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +35 -35
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1GlobalBlockNode.html +3 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +46 -46
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraBlockNode.html +7 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MemObj-members.html +23 -22
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +70 -47
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1NormalGepStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo-members.html +17 -15
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +141 -106
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +27 -27
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1RetBlockNode.html +5 -3
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1RetPN-members.html +75 -73
- package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +60 -16
- package/SVF-doxygen/html/html/classSVF_1_1RetPN.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +22 -21
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +34 -34
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeBasedHeapCloning.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +10 -9
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +20 -14
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1VarArgPN-members.html +74 -72
- package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +60 -16
- package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1VariantGepStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +3 -3
- package/SVF-doxygen/html/html/functions_c.html +18 -13
- package/SVF-doxygen/html/html/functions_eval_c.html +5 -2
- package/SVF-doxygen/html/html/functions_func_c.html +19 -19
- package/SVF-doxygen/html/html/functions_func_i.html +19 -17
- package/SVF-doxygen/html/html/functions_i.html +19 -17
- package/SVF-doxygen/html/html/functions_m.html +1 -1
- package/SVF-doxygen/html/html/functions_n.html +3 -3
- package/SVF-doxygen/html/html/functions_o.html +10 -10
- package/SVF-doxygen/html/html/functions_p.html +19 -28
- package/SVF-doxygen/html/html/functions_s.html +13 -12
- package/SVF-doxygen/html/html/functions_t.html +4 -4
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_p.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_s.html +3 -0
- package/SVF-doxygen/html/html/functions_w.html +5 -9
- package/SVF-doxygen/html/html/hierarchy.html +5 -5
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +11 -11
- package/SVF-doxygen/html/html/search/all_10.js +11 -12
- package/SVF-doxygen/html/html/search/all_12.js +1 -1
- package/SVF-doxygen/html/html/search/all_13.js +6 -5
- package/SVF-doxygen/html/html/search/all_14.js +5 -5
- package/SVF-doxygen/html/html/search/all_16.js +1 -1
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_3.js +3 -2
- package/SVF-doxygen/html/html/search/all_9.js +4 -4
- package/SVF-doxygen/html/html/search/all_c.js +1 -1
- package/SVF-doxygen/html/html/search/all_d.js +1 -1
- package/SVF-doxygen/html/html/search/all_e.js +1 -1
- package/SVF-doxygen/html/html/search/all_f.js +2 -2
- package/SVF-doxygen/html/html/search/enumvalues_2.js +2 -1
- package/SVF-doxygen/html/html/search/functions_2.js +1 -1
- package/SVF-doxygen/html/html/search/functions_8.js +4 -4
- package/SVF-doxygen/html/html/search/functions_e.js +1 -1
- package/SVF-doxygen/html/html/search/variables_10.js +0 -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/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +17 -17
- 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/MemoryModel/SVFVariables.h +25 -4
- package/include/MemoryModel/SymbolTableInfo.h +17 -11
- package/include/Util/Options.h +1 -1
- package/lib/Graphs/ICFG.cpp +39 -27
- package/lib/MSSA/MemSSA.cpp +1 -1
- package/lib/MemoryModel/SVFStatements.cpp +53 -49
- package/lib/MemoryModel/SVFVariables.cpp +10 -10
- package/lib/MemoryModel/SymbolTableInfo.cpp +12 -7
- package/lib/SVF-FE/SymbolTableBuilder.cpp +10 -10
- package/lib/Util/Options.cpp +3 -3
- package/lib/Util/PTAStat.cpp +3 -3
- package/lib/Util/SVFUtil.cpp +2 -0
- package/package.json +1 -1
|
@@ -112,13 +112,11 @@ $(function() {
|
|
|
112
112
|
</li>
|
|
113
113
|
<li>SCC
|
|
114
114
|
: <a class="el" href="classSVF_1_1MRGenerator.html#af8d52e6c9884c6e1abc6dbcbc5e32629">SVF::MRGenerator</a>
|
|
115
|
+
, <a class="el" href="classSVF_1_1WPASolver.html#a1352953966be14b2a1d6244f35e74a33">SVF::WPASolver< GraphType ></a>
|
|
115
116
|
</li>
|
|
116
117
|
<li>scc
|
|
117
118
|
: <a class="el" href="classSVF_1_1WPASolver.html#a21709a0f33b6238afe735cc9fe49ff70">SVF::WPASolver< GraphType ></a>
|
|
118
119
|
</li>
|
|
119
|
-
<li>SCC
|
|
120
|
-
: <a class="el" href="classSVF_1_1WPASolver.html#a1352953966be14b2a1d6244f35e74a33">SVF::WPASolver< GraphType ></a>
|
|
121
|
-
</li>
|
|
122
120
|
<li>sccCandidates
|
|
123
121
|
: <a class="el" href="classSVF_1_1AndersenSCD.html#aeb0b3644c3bfbfa5768b92c99aeeef40">SVF::AndersenSCD</a>
|
|
124
122
|
</li>
|
|
@@ -504,6 +502,9 @@ $(function() {
|
|
|
504
502
|
<li>ShowHiddenNode
|
|
505
503
|
: <a class="el" href="classSVF_1_1Options.html#adec2012e10130f664fe0ea3acf39f78b">SVF::Options</a>
|
|
506
504
|
</li>
|
|
505
|
+
<li>ShowSVFIRValue
|
|
506
|
+
: <a class="el" href="classSVF_1_1Options.html#a63c2ff1420867ea4ef0a94d28b3f0558">SVF::Options</a>
|
|
507
|
+
</li>
|
|
507
508
|
<li>siftMaxSwap
|
|
508
509
|
: <a class="el" href="structDdManager.html#a6521157f9436fb77fcc6327b2035e422">DdManager</a>
|
|
509
510
|
</li>
|
|
@@ -635,7 +636,7 @@ $(function() {
|
|
|
635
636
|
: <a class="el" href="classSVF_1_1PCG.html#a8dcd94e8f996fdb2197159ea95226817">SVF::PCG</a>
|
|
636
637
|
</li>
|
|
637
638
|
<li>split()
|
|
638
|
-
: <a class="el" href="classSVF_1_1LockResultValidator.html#
|
|
639
|
+
: <a class="el" href="classSVF_1_1LockResultValidator.html#ab8a6935e1ea6f99d60ead862a7b1782f">SVF::LockResultValidator</a>
|
|
639
640
|
, <a class="el" href="classSVF_1_1MTAResultValidator.html#a73db9ad234b263b6e644e4b38be14fe6">SVF::MTAResultValidator</a>
|
|
640
641
|
</li>
|
|
641
642
|
<li>src
|
|
@@ -660,7 +661,7 @@ $(function() {
|
|
|
660
661
|
: <a class="el" href="classSVF_1_1MemSSA.html#a271c20725d49dd65b95c062938ffde4c">SVF::MemSSA</a>
|
|
661
662
|
</li>
|
|
662
663
|
<li>stack
|
|
663
|
-
: <a class="el" href="structDdGen.html#
|
|
664
|
+
: <a class="el" href="structDdGen.html#af405420fc6648aa758b180a7a1b5f557">DdGen</a>
|
|
664
665
|
, <a class="el" href="structDdManager.html#af99ce33d5dcd3dcf67f10bd7da6a5aa5">DdManager</a>
|
|
665
666
|
</li>
|
|
666
667
|
<li>STACK_OBJ
|
|
@@ -758,7 +759,7 @@ $(function() {
|
|
|
758
759
|
: <a class="el" href="classSVF_1_1MemSSA.html#a73d7465cf166d9ffa9d234d15edb375a">SVF::MemSSA</a>
|
|
759
760
|
</li>
|
|
760
761
|
<li>StoreCGEdge()
|
|
761
|
-
: <a class="el" href="classSVF_1_1StoreCGEdge.html#
|
|
762
|
+
: <a class="el" href="classSVF_1_1StoreCGEdge.html#a0f873b0be0ac726e412171119c5b3a50">SVF::StoreCGEdge</a>
|
|
762
763
|
</li>
|
|
763
764
|
<li>StoreCGEdgeSet
|
|
764
765
|
: <a class="el" href="classSVF_1_1ConstraintGraph.html#a0f9d5eef25827ac1d380e5d8bd225025">SVF::ConstraintGraph</a>
|
|
@@ -800,7 +801,7 @@ $(function() {
|
|
|
800
801
|
: <a class="el" href="classSVF_1_1MTAAnnotator.html#a37df9f2416685c535be2faa01e162f3a">SVF::MTAAnnotator</a>
|
|
801
802
|
</li>
|
|
802
803
|
<li>StoreStmt()
|
|
803
|
-
: <a class="el" href="classSVF_1_1StoreStmt.html#
|
|
804
|
+
: <a class="el" href="classSVF_1_1StoreStmt.html#aa817396dc47f1f03015c1c95a43cf8eb">SVF::StoreStmt</a>
|
|
804
805
|
</li>
|
|
805
806
|
<li>StoresToMRsMap
|
|
806
807
|
: <a class="el" href="classSVF_1_1MRGenerator.html#afacb458ca832ef459e873b7d90134a8c">SVF::MRGenerator</a>
|
|
@@ -827,7 +828,7 @@ $(function() {
|
|
|
827
828
|
: <a class="el" href="classSVF_1_1DDAVFSolver.html#accaacd2dd680f92ff83cfe75eef6ffab">SVF::DDAVFSolver< CVar, CPtSet, DPIm ></a>
|
|
828
829
|
</li>
|
|
829
830
|
<li>StoreVFGNode()
|
|
830
|
-
: <a class="el" href="classSVF_1_1StoreVFGNode.html#
|
|
831
|
+
: <a class="el" href="classSVF_1_1StoreVFGNode.html#a496607cda1cc26a8753d6a7af620e95a">SVF::StoreVFGNode</a>
|
|
831
832
|
</li>
|
|
832
833
|
<li>Strategy
|
|
833
834
|
: <a class="el" href="classSVF_1_1NodeIDAllocator.html#a8cf553cd07768aad3f3b91bf3d7c6228">SVF::NodeIDAllocator</a>
|
|
@@ -882,7 +883,7 @@ $(function() {
|
|
|
882
883
|
: <a class="el" href="classSVF_1_1SVFValue.html#afb50ea5aeea7a0608a3c9335aea6860ea4582a3728eda9f58c4e7d069e4fec577">SVF::SVFValue</a>
|
|
883
884
|
</li>
|
|
884
885
|
<li>SVFFunction()
|
|
885
|
-
: <a class="el" href="classSVF_1_1SVFFunction.html#
|
|
886
|
+
: <a class="el" href="classSVF_1_1SVFFunction.html#ae7a55d86a87088f7d70254980e4325b3">SVF::SVFFunction</a>
|
|
886
887
|
</li>
|
|
887
888
|
<li>svfg
|
|
888
889
|
: <a class="el" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive</a>
|
|
@@ -955,12 +956,12 @@ $(function() {
|
|
|
955
956
|
: <a class="el" href="classSVF_1_1ProgSlice.html#af41c438baa739406a35bcb2e9ba431dd">SVF::ProgSlice</a>
|
|
956
957
|
, <a class="el" href="classSVF_1_1SrcSnkDDA.html#ad6935e27bbd95d26a01b22b879efed58">SVF::SrcSnkDDA</a>
|
|
957
958
|
</li>
|
|
958
|
-
<li>SVFGNodeToCondMap
|
|
959
|
-
: <a class="el" href="classSVF_1_1ProgSlice.html#ae16157bd0b66dfb3cc18b778a745ed00">SVF::ProgSlice</a>
|
|
960
|
-
</li>
|
|
961
959
|
<li>svfgNodeToCondMap
|
|
962
960
|
: <a class="el" href="classSVF_1_1ProgSlice.html#aeda61b2786b128e8c45089de60dcafce">SVF::ProgSlice</a>
|
|
963
961
|
</li>
|
|
962
|
+
<li>SVFGNodeToCondMap
|
|
963
|
+
: <a class="el" href="classSVF_1_1ProgSlice.html#ae16157bd0b66dfb3cc18b778a745ed00">SVF::ProgSlice</a>
|
|
964
|
+
</li>
|
|
964
965
|
<li>SVFGNodeToCSIDMap
|
|
965
966
|
: <a class="el" href="classSVF_1_1LeakChecker.html#a47a79514e1fdc402453b864407aacd6a">SVF::LeakChecker</a>
|
|
966
967
|
</li>
|
|
@@ -196,18 +196,18 @@ $(function() {
|
|
|
196
196
|
, <a class="el" href="classSVF_1_1ThreadAPI.html#a2faebd2e481362b11ccce4256f81c32d">SVF::ThreadAPI</a>
|
|
197
197
|
, <a class="el" href="classSVF_1_1ThreadCallGraph.html#af1146c3d8e8b8885a1c48701e5b5a27f">SVF::ThreadCallGraph</a>
|
|
198
198
|
</li>
|
|
199
|
-
<li>TDAPIMap
|
|
200
|
-
: <a class="el" href="classSVF_1_1SaberCheckerAPI.html#a3115116dc595c4b157f2cfc0a6ea89fc">SVF::SaberCheckerAPI</a>
|
|
201
|
-
</li>
|
|
202
199
|
<li>tdAPIMap
|
|
203
200
|
: <a class="el" href="classSVF_1_1SaberCheckerAPI.html#a62471599cba4bde20d2696a91fa064ec">SVF::SaberCheckerAPI</a>
|
|
204
201
|
</li>
|
|
205
202
|
<li>TDAPIMap
|
|
206
|
-
: <a class="el" href="
|
|
203
|
+
: <a class="el" href="classSVF_1_1SaberCheckerAPI.html#a3115116dc595c4b157f2cfc0a6ea89fc">SVF::SaberCheckerAPI</a>
|
|
207
204
|
</li>
|
|
208
205
|
<li>tdAPIMap
|
|
209
206
|
: <a class="el" href="classSVF_1_1ThreadAPI.html#a4277abaae24b43d83470054c247f479c">SVF::ThreadAPI</a>
|
|
210
207
|
</li>
|
|
208
|
+
<li>TDAPIMap
|
|
209
|
+
: <a class="el" href="classSVF_1_1ThreadAPI.html#ae9721b91bd60d27ae3dd48cb058301b2">SVF::ThreadAPI</a>
|
|
210
|
+
</li>
|
|
211
211
|
<li>TDDead
|
|
212
212
|
: <a class="el" href="classSVF_1_1ForkJoinAnalysis.html#a8d40e687caf8999369621ed385dfc631ad5af2a561c196e33d88fc63363d0d8f4">SVF::ForkJoinAnalysis</a>
|
|
213
213
|
</li>
|
|
@@ -141,12 +141,12 @@ $(function() {
|
|
|
141
141
|
<li>ValVar()
|
|
142
142
|
: <a class="el" href="classSVF_1_1ValVar.html#ae5dc21b3327a100ffe3e0e2c876ba1bb">SVF::ValVar</a>
|
|
143
143
|
</li>
|
|
144
|
-
<li>Var2LabelMap
|
|
145
|
-
: <a class="el" href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb">SVF::SVFStmt</a>
|
|
146
|
-
</li>
|
|
147
144
|
<li>var2LabelMap
|
|
148
145
|
: <a class="el" href="classSVF_1_1SVFStmt.html#a24c64109d27ef7549d1c7a07c391e007">SVF::SVFStmt</a>
|
|
149
146
|
</li>
|
|
147
|
+
<li>Var2LabelMap
|
|
148
|
+
: <a class="el" href="classSVF_1_1SVFStmt.html#ad178ccbc7800527c3dc406ad5fa069bb">SVF::SVFStmt</a>
|
|
149
|
+
</li>
|
|
150
150
|
<li>VAR_ARRAY_OBJ
|
|
151
151
|
: <a class="el" href="classSVF_1_1ObjTypeInfo.html#a91b41b7ade5871362b77a2ef566b2830adedc43e0fcaebf433120869aa9307b1c">SVF::ObjTypeInfo</a>
|
|
152
152
|
</li>
|
|
@@ -73,9 +73,6 @@ $(function() {
|
|
|
73
73
|
<li>PAGDotGraph
|
|
74
74
|
: <a class="el" href="classSVF_1_1Options.html#a3a20311c732fb391332ae0ee1cb450a0">SVF::Options</a>
|
|
75
75
|
</li>
|
|
76
|
-
<li>PAGDotGraphShorter
|
|
77
|
-
: <a class="el" href="classSVF_1_1Options.html#a8eba08052f7af57b762155a58844480c">SVF::Options</a>
|
|
78
|
-
</li>
|
|
79
76
|
<li>pagEdge
|
|
80
77
|
: <a class="el" href="classSVF_1_1StmtVFGNode.html#ab5f48de8258f92bb7b9d411e178beb49">SVF::StmtVFGNode</a>
|
|
81
78
|
</li>
|
|
@@ -130,6 +130,9 @@ $(function() {
|
|
|
130
130
|
<li>ShowHiddenNode
|
|
131
131
|
: <a class="el" href="classSVF_1_1Options.html#adec2012e10130f664fe0ea3acf39f78b">SVF::Options</a>
|
|
132
132
|
</li>
|
|
133
|
+
<li>ShowSVFIRValue
|
|
134
|
+
: <a class="el" href="classSVF_1_1Options.html#a63c2ff1420867ea4ef0a94d28b3f0558">SVF::Options</a>
|
|
135
|
+
</li>
|
|
133
136
|
<li>siftMaxSwap
|
|
134
137
|
: <a class="el" href="structDdManager.html#a6521157f9436fb77fcc6327b2035e422">DdManager</a>
|
|
135
138
|
</li>
|
|
@@ -79,14 +79,12 @@ $(function() {
|
|
|
79
79
|
<li>WordSize
|
|
80
80
|
: <a class="el" href="classSVF_1_1CoreBitVector.html#a63f5e4a36359ae62401e5f8dfecb86a3">SVF::CoreBitVector</a>
|
|
81
81
|
</li>
|
|
82
|
-
<li>WorkList
|
|
83
|
-
: <a class="el" href="classSVF_1_1CFLSolver.html#a802e04eafce9adfd60506c44951c3d53">SVF::CFLSolver< GraphType, DPIm ></a>
|
|
84
|
-
</li>
|
|
85
82
|
<li>worklist
|
|
86
83
|
: <a class="el" href="classSVF_1_1CFLSolver.html#a9d3cbcb9db049e3069b6553ab17ccf5b">SVF::CFLSolver< GraphType, DPIm ></a>
|
|
87
84
|
</li>
|
|
88
85
|
<li>WorkList
|
|
89
|
-
: <a class="el" href="
|
|
86
|
+
: <a class="el" href="classSVF_1_1CFLSolver.html#a802e04eafce9adfd60506c44951c3d53">SVF::CFLSolver< GraphType, DPIm ></a>
|
|
87
|
+
, <a class="el" href="classSVF_1_1CHGBuilder.html#a727a1737e7290536b29b05e03d8b85ac">SVF::CHGBuilder</a>
|
|
90
88
|
, <a class="el" href="classSVF_1_1CHGraph.html#af1b638faf888898cdf168c25e008ab12">SVF::CHGraph</a>
|
|
91
89
|
, <a class="el" href="classSVF_1_1ConstraintGraph.html#ae80fc7e5d68e103d8f3a82bc9ffb0f00">SVF::ConstraintGraph</a>
|
|
92
90
|
, <a class="el" href="classSVF_1_1ICFGBuilder.html#a2dc4467008cdd6eb896e98b67457082a">SVF::ICFGBuilder</a>
|
|
@@ -94,16 +92,14 @@ $(function() {
|
|
|
94
92
|
, <a class="el" href="classSVF_1_1MRGenerator.html#a68d50c752252bd40c402c7b99b95f0fc">SVF::MRGenerator</a>
|
|
95
93
|
, <a class="el" href="classSVF_1_1SaberSVFGBuilder.html#a8e07c6afc4ae6e2792431065c2948039">SVF::SaberSVFGBuilder</a>
|
|
96
94
|
, <a class="el" href="classSVF_1_1SrcSnkDDA.html#a3c0d8850c4dae49a760ce5f80fb8822a">SVF::SrcSnkDDA</a>
|
|
95
|
+
, <a class="el" href="classSVF_1_1SVFGOPT.html#a3ee399dc45e90a512be7575642855f40">SVF::SVFGOPT</a>
|
|
97
96
|
</li>
|
|
98
97
|
<li>worklist
|
|
99
98
|
: <a class="el" href="classSVF_1_1SVFGOPT.html#a925f39665e13b18dfe66c2dded44c194">SVF::SVFGOPT</a>
|
|
99
|
+
, <a class="el" href="classSVF_1_1WPASolver.html#a1775717a8c8d5d125b7561bc1ae6abf5">SVF::WPASolver< GraphType ></a>
|
|
100
100
|
</li>
|
|
101
101
|
<li>WorkList
|
|
102
|
-
: <a class="el" href="
|
|
103
|
-
, <a class="el" href="classSVF_1_1WPASolver.html#a624e9156b2d3a4f284548cbaaf650334">SVF::WPASolver< GraphType ></a>
|
|
104
|
-
</li>
|
|
105
|
-
<li>worklist
|
|
106
|
-
: <a class="el" href="classSVF_1_1WPASolver.html#a1775717a8c8d5d125b7561bc1ae6abf5">SVF::WPASolver< GraphType ></a>
|
|
102
|
+
: <a class="el" href="classSVF_1_1WPASolver.html#a624e9156b2d3a4f284548cbaaf650334">SVF::WPASolver< GraphType ></a>
|
|
107
103
|
</li>
|
|
108
104
|
<li>WorkStack
|
|
109
105
|
: <a class="el" href="classSVF_1_1CSC.html#a0490b9998987d245ee6e56bc68db4f1e">SVF::CSC</a>
|
|
@@ -259,11 +259,11 @@ $(function() {
|
|
|
259
259
|
<tr id="row_81_3_0_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1CloneFIObjVar.html" target="_self">SVF::CloneFIObjVar</a></td><td class="desc"></td></tr>
|
|
260
260
|
<tr id="row_81_3_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;"> </span><span id="arr_81_3_0_2_" class="arrow" onclick="toggleFolder('81_3_0_2_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1GepObjVar.html" target="_self">SVF::GepObjVar</a></td><td class="desc"></td></tr>
|
|
261
261
|
<tr id="row_81_3_0_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1CloneGepObjVar.html" target="_self">SVF::CloneGepObjVar</a></td><td class="desc"></td></tr>
|
|
262
|
-
<tr id="row_81_3_1_" class="even" style="display:none;"><td class="entry"><span style="width:
|
|
263
|
-
<tr id="
|
|
264
|
-
<tr id="
|
|
265
|
-
<tr id="
|
|
266
|
-
<tr id="
|
|
262
|
+
<tr id="row_81_3_1_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_81_3_1_" class="arrow" onclick="toggleFolder('81_3_1_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1ValVar.html" target="_self">SVF::ValVar</a></td><td class="desc"></td></tr>
|
|
263
|
+
<tr id="row_81_3_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1DummyValVar.html" target="_self">SVF::DummyValVar</a></td><td class="desc"></td></tr>
|
|
264
|
+
<tr id="row_81_3_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1GepValVar.html" target="_self">SVF::GepValVar</a></td><td class="desc"></td></tr>
|
|
265
|
+
<tr id="row_81_3_1_2_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1RetPN.html" target="_self">SVF::RetPN</a></td><td class="desc"></td></tr>
|
|
266
|
+
<tr id="row_81_3_1_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1VarArgPN.html" target="_self">SVF::VarArgPN</a></td><td class="desc"></td></tr>
|
|
267
267
|
<tr id="row_81_4_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1TCTNode.html" target="_self">SVF::TCTNode</a></td><td class="desc"></td></tr>
|
|
268
268
|
<tr id="row_81_5_" class="even" style="display:none;"><td class="entry"><span style="width:16px;display:inline-block;"> </span><span id="arr_81_5_" class="arrow" onclick="toggleFolder('81_5_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1VFGNode.html" target="_self">SVF::VFGNode</a></td><td class="desc"></td></tr>
|
|
269
269
|
<tr id="row_81_5_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;"> </span><span id="arr_81_5_0_" class="arrow" onclick="toggleFolder('81_5_0_')">►</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classSVF_1_1ArgumentVFGNode.html" target="_self">SVF::ArgumentVFGNode</a></td><td class="desc"></td></tr>
|
|
@@ -2215,7 +2215,7 @@ template<class X , class Y > </div>
|
|
|
2215
2215
|
<p>Get the meta data (line number and file name) info of a LLVM value </p>
|
|
2216
2216
|
|
|
2217
2217
|
<p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00269">269</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
|
|
2218
|
-
<div class="fragment"><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">if</span>(val==<span class="keyword">nullptr</span>) <span class="keywordflow">return</span> <span class="stringliteral">"{ empty val }"</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>  std::string str;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  rawstr << <span class="stringliteral">"{ "</span>;</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">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = SVFUtil::dyn_cast<Instruction>(val))</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>  <span class="keywordflow">if</span> (SVFUtil::isa<AllocaInst>(inst))</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">for</span> (llvm::DbgInfoIntrinsic *DII : FindDbgAddrUses(const_cast<Instruction*>(inst)))</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>  <span class="keywordflow">if</span> (llvm::DbgDeclareInst *DDI = SVFUtil::dyn_cast<llvm::DbgDeclareInst>(DII))</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  llvm::DIVariable *DIVar = SVFUtil::cast<llvm::DIVariable>(DDI->getVariable());</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  rawstr << <span class="stringliteral">"ln: "</span> << DIVar->getLine() << <span class="stringliteral">" fl: "</span> << DIVar->getFilename();</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  }</div><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>  }</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">MDNode</a> *N = inst->getMetadata(<span class="stringliteral">"dbg"</span>)) <span class="comment">// Here I is an LLVM instruction</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  llvm::DILocation* Loc = SVFUtil::cast<llvm::DILocation>(N); <span class="comment">// DILocation is in DebugInfo.h</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordtype">unsigned</span> Line = Loc->getLine();</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordtype">unsigned</span> Column = Loc->getColumn();</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <a class="code" href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">StringRef</a> File = Loc->getFilename();</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="comment">//StringRef Dir = Loc.getDirectory();</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">if</span>(File.str().empty() || Line == 0) {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keyword">auto</span> inlineLoc = Loc->getInlinedAt();</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">if</span>(inlineLoc) {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  Line = inlineLoc->getLine();</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  Column = inlineLoc->getColumn();</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  File = inlineLoc->getFilename();</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>  }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  rawstr << <span class="stringliteral">"ln: "</span> << Line << <span class="stringliteral">" cl: "</span> << Column << <span class="stringliteral">" fl: "</span> << File;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  }</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* argument = SVFUtil::dyn_cast<Argument>(val))</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>  <span class="keywordflow">if</span> (argument->getArgNo()%10 == 1)</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  rawstr << argument->getArgNo() << <span class="stringliteral">"st"</span>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (argument->getArgNo()%10 == 2)</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  rawstr << argument->getArgNo() << <span class="stringliteral">"nd"</span>;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (argument->getArgNo()%10 == 3)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  rawstr << argument->getArgNo() << <span class="stringliteral">"rd"</span>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  rawstr << argument->getArgNo() << <span class="stringliteral">"th"</span>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  rawstr << <span class="stringliteral">" arg "</span> << argument->getParent()->getName() << <span class="stringliteral">" "</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a86c1c8bdfc1075c07c631525555194d2">getSourceLocOfFunction</a>(argument->getParent());</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  }</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* gvar = SVFUtil::dyn_cast<GlobalVariable>(val))</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  {</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  rawstr << <span class="stringliteral">"Glob "</span>;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <a class="code" href="namespaceSVF.html#a3011dbac9102f044ad5f36a4ad3d4a71">NamedMDNode</a>* CU_Nodes = gvar->getParent()->getNamedMetadata(<span class="stringliteral">"llvm.dbg.cu"</span>);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keywordflow">if</span>(CU_Nodes)</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  {</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = CU_Nodes->getNumOperands(); i != e; ++i)</div><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>  llvm::DICompileUnit *CUNode = SVFUtil::cast<llvm::DICompileUnit>(CU_Nodes->getOperand(i));</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keywordflow">for</span> (llvm::DIGlobalVariableExpression *GV : CUNode->getGlobalVariables())</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  llvm::DIGlobalVariable * DGV = GV->getVariable();</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keywordflow">if</span>(DGV->getName() == gvar->getName())</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  {</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  rawstr << <span class="stringliteral">"ln: "</span> << DGV->getLine() << <span class="stringliteral">" fl: "</span> << DGV->getFilename();</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  }</div><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>  }</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = SVFUtil::dyn_cast<Function>(val))</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>  rawstr << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a86c1c8bdfc1075c07c631525555194d2">getSourceLocOfFunction</a>(func);</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>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = SVFUtil::dyn_cast<BasicBlock>(val))</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  {</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  rawstr << <span class="stringliteral">"basic block: "</span> << bb->getName() << <span class="stringliteral">" "</span> << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(bb->getFirstNonPHI());</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  }</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9e85d445e8b7b205134acd3874bba388">SVFUtil::isConstantData</a>(val))</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  {</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  rawstr << <span class="stringliteral">"constant data"</span>;</div><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>  <span class="keywordflow">else</span></div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  {</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  rawstr << <span class="stringliteral">"Can only get source location for instruction, argument, global var, function or constant data."</span>;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  rawstr << <span class="stringliteral">" }"</span>;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> }</div><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="BasicTypes_8h_source.html#l00077">BasicTypes.h:77</a></div></div>
|
|
2218
|
+
<div class="fragment"><div class="line"><a name="l00270"></a><span class="lineno"> 270</span> {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="keywordflow">if</span>(val==<span class="keyword">nullptr</span>) <span class="keywordflow">return</span> <span class="stringliteral">"{ empty val }"</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>  std::string str;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  rawstr << <span class="stringliteral">"{ "</span>;</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">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *inst = SVFUtil::dyn_cast<Instruction>(val))</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>  <span class="keywordflow">if</span> (SVFUtil::isa<AllocaInst>(inst))</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">for</span> (llvm::DbgInfoIntrinsic *DII : FindDbgAddrUses(const_cast<Instruction*>(inst)))</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>  <span class="keywordflow">if</span> (llvm::DbgDeclareInst *DDI = SVFUtil::dyn_cast<llvm::DbgDeclareInst>(DII))</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  llvm::DIVariable *DIVar = SVFUtil::cast<llvm::DIVariable>(DDI->getVariable());</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  rawstr << <span class="stringliteral">"ln: "</span> << DIVar->getLine() << <span class="stringliteral">" fl: "</span> << DIVar->getFilename();</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  }</div><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>  }</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#ad3d3cec1813411f039211c86236f7adb">MDNode</a> *N = inst->getMetadata(<span class="stringliteral">"dbg"</span>)) <span class="comment">// Here I is an LLVM instruction</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  llvm::DILocation* Loc = SVFUtil::cast<llvm::DILocation>(N); <span class="comment">// DILocation is in DebugInfo.h</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordtype">unsigned</span> Line = Loc->getLine();</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keywordtype">unsigned</span> Column = Loc->getColumn();</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  <a class="code" href="namespaceSVF.html#a88fd7387fcf16caf70abe265cdcf90b9">StringRef</a> File = Loc->getFilename();</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="comment">//StringRef Dir = Loc.getDirectory();</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">if</span>(File.str().empty() || Line == 0) {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <span class="keyword">auto</span> inlineLoc = Loc->getInlinedAt();</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">if</span>(inlineLoc) {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  Line = inlineLoc->getLine();</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  Column = inlineLoc->getColumn();</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  File = inlineLoc->getFilename();</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>  }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  rawstr << <span class="stringliteral">"ln: "</span> << Line << <span class="stringliteral">" cl: "</span> << Column << <span class="stringliteral">" fl: "</span> << File;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  }</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* argument = SVFUtil::dyn_cast<Argument>(val))</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>  <span class="keywordflow">if</span> (argument->getArgNo()%10 == 1)</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  rawstr << argument->getArgNo() << <span class="stringliteral">"st"</span>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (argument->getArgNo()%10 == 2)</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  rawstr << argument->getArgNo() << <span class="stringliteral">"nd"</span>;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (argument->getArgNo()%10 == 3)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  rawstr << argument->getArgNo() << <span class="stringliteral">"rd"</span>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  rawstr << argument->getArgNo() << <span class="stringliteral">"th"</span>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  rawstr << <span class="stringliteral">" arg "</span> << argument->getParent()->getName() << <span class="stringliteral">" "</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a86c1c8bdfc1075c07c631525555194d2">getSourceLocOfFunction</a>(argument->getParent());</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  }</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* gvar = SVFUtil::dyn_cast<GlobalVariable>(val))</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  {</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  rawstr << <span class="stringliteral">"Glob "</span>;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <a class="code" href="namespaceSVF.html#a3011dbac9102f044ad5f36a4ad3d4a71">NamedMDNode</a>* CU_Nodes = gvar->getParent()->getNamedMetadata(<span class="stringliteral">"llvm.dbg.cu"</span>);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keywordflow">if</span>(CU_Nodes)</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  {</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> i = 0, e = CU_Nodes->getNumOperands(); i != e; ++i)</div><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>  llvm::DICompileUnit *CUNode = SVFUtil::cast<llvm::DICompileUnit>(CU_Nodes->getOperand(i));</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keywordflow">for</span> (llvm::DIGlobalVariableExpression *GV : CUNode->getGlobalVariables())</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  llvm::DIGlobalVariable * DGV = GV->getVariable();</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keywordflow">if</span>(DGV->getName() == gvar->getName())</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  {</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  rawstr << <span class="stringliteral">"ln: "</span> << DGV->getLine() << <span class="stringliteral">" fl: "</span> << DGV->getFilename();</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span> </div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  }</div><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>  }</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = SVFUtil::dyn_cast<Function>(val))</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>  rawstr << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a86c1c8bdfc1075c07c631525555194d2">getSourceLocOfFunction</a>(func);</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>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = SVFUtil::dyn_cast<BasicBlock>(val))</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  {</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  rawstr << <span class="stringliteral">"basic block: "</span> << bb->getName() << <span class="stringliteral">" "</span> << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(bb->getFirstNonPHI());</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  }</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a9e85d445e8b7b205134acd3874bba388">SVFUtil::isConstantData</a>(val))</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  {</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  rawstr << <span class="stringliteral">"constant data"</span>;</div><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>  <span class="keywordflow">else</span></div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  {</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  rawstr << <span class="stringliteral">"Can only get source location for instruction, argument, global var, function or constant data."</span>;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  rawstr << <span class="stringliteral">" }"</span>;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span> </div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="keywordflow">if</span>(rawstr.str()==<span class="stringliteral">"{ }"</span>)</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordflow">return</span> <span class="stringliteral">""</span>;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span> }</div><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="BasicTypes_8h_source.html#l00077">BasicTypes.h:77</a></div></div>
|
|
2219
2219
|
<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="BasicTypes_8h_source.html#l00083">BasicTypes.h:83</a></div></div>
|
|
2220
2220
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00269">SVFUtil.cpp:269</a></div></div>
|
|
2221
2221
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a86c1c8bdfc1075c07c631525555194d2"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a86c1c8bdfc1075c07c631525555194d2">SVF::SVFUtil::getSourceLocOfFunction</a></div><div class="ttdeci">std::string getSourceLocOfFunction(const Function *F)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00250">SVFUtil.cpp:250</a></div></div>
|
|
@@ -2422,8 +2422,8 @@ template<class X , class Y > </div>
|
|
|
2422
2422
|
|
|
2423
2423
|
<p>Returns a string representation of a hclust method. </p>
|
|
2424
2424
|
|
|
2425
|
-
<p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#
|
|
2426
|
-
<div class="fragment"><div class="line"><a name="
|
|
2425
|
+
<p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00367">367</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
|
|
2426
|
+
<div class="fragment"><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>  <span class="keywordflow">switch</span> (method)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordflow">case</span> <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913ddad16cc6362447cc32292c4af4c6fe8024">HCLUST_METHOD_SINGLE</a>:</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">return</span> <span class="stringliteral">"single"</span>;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">case</span> <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda44ce22fdfc560f27242e9b8f8e7009f4">HCLUST_METHOD_COMPLETE</a>:</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordflow">return</span> <span class="stringliteral">"complete"</span>;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordflow">case</span> <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda3ab72664fc61704a1ba46bddbc347115">HCLUST_METHOD_AVERAGE</a>:</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">return</span> <span class="stringliteral">"average"</span>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keywordflow">case</span> <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913ddaa453b79910d9c6f7f57a179bcdf63474">HCLUST_METHOD_MEDIAN</a>:</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">return</span> <span class="stringliteral">"median"</span>;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordflow">case</span> <a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda66ab3fde95842ef6da0dae1f702a9618">HCLUST_METHOD_SVF_BEST</a>:</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordflow">return</span> <span class="stringliteral">"svf-best"</span>;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(<span class="keyword">false</span> && <span class="stringliteral">"SVFUtil::hclustMethodToString: unknown method"</span>);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <a class="code" href="util_8h.html#a23c00958edf66c39625a0d535dee57b7">abort</a>();</div><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> }</div><div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
2427
2427
|
<div class="ttc" id="fastcluster_8h_html_a4205a14ad66b3320d2e94c61d74913dda44ce22fdfc560f27242e9b8f8e7009f4"><div class="ttname"><a href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda44ce22fdfc560f27242e9b8f8e7009f4">HCLUST_METHOD_COMPLETE</a></div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8h_source.html#l00069">fastcluster.h:69</a></div></div>
|
|
2428
2428
|
<div class="ttc" id="fastcluster_8h_html_a4205a14ad66b3320d2e94c61d74913ddaa453b79910d9c6f7f57a179bcdf63474"><div class="ttname"><a href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913ddaa453b79910d9c6f7f57a179bcdf63474">HCLUST_METHOD_MEDIAN</a></div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8h_source.html#l00073">fastcluster.h:73</a></div></div>
|
|
2429
2429
|
<div class="ttc" id="fastcluster_8h_html_a4205a14ad66b3320d2e94c61d74913dda66ab3fde95842ef6da0dae1f702a9618"><div class="ttname"><a href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dda66ab3fde95842ef6da0dae1f702a9618">HCLUST_METHOD_SVF_BEST</a></div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8h_source.html#l00075">fastcluster.h:75</a></div></div>
|
|
@@ -4731,8 +4731,8 @@ template<typename Key , typename KeySet > </div>
|
|
|
4731
4731
|
</div><div class="memdoc">
|
|
4732
4732
|
<p>Starts an analysis timer. If timeLimit is 0, sets no timer. If an alarm has already been set, does not set another. Returns whether we set a timer or not. </p>
|
|
4733
4733
|
|
|
4734
|
-
<p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#
|
|
4735
|
-
<div class="fragment"><div class="line"><a name="
|
|
4734
|
+
<p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00425">425</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
|
|
4735
|
+
<div class="fragment"><div class="line"><a name="l00426"></a><span class="lineno"> 426</span> {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keywordflow">if</span> (timeLimit == 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span> </div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="comment">// If an alarm is already set, don't set another. That means this analysis</span></div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="comment">// is part of another which has a time limit.</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordtype">unsigned</span> remainingSeconds = alarm(0);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="keywordflow">if</span> (remainingSeconds != 0)</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  <span class="comment">// Continue the previous alarm and move on.</span></div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  alarm(remainingSeconds);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  }</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> </div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  signal(SIGALRM, &<a class="code" href="namespaceSVF_1_1SVFUtil.html#add4cd21115988f9f5eec12e268ddf1d9">timeLimitReached</a>);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  alarm(timeLimit);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> }</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_add4cd21115988f9f5eec12e268ddf1d9"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#add4cd21115988f9f5eec12e268ddf1d9">SVF::SVFUtil::timeLimitReached</a></div><div class="ttdeci">void timeLimitReached(int signum)</div><div class="ttdoc">Function to call when alarm for time limit hits. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00415">SVFUtil.cpp:415</a></div></div>
|
|
4736
4736
|
</div><!-- fragment -->
|
|
4737
4737
|
</div>
|
|
4738
4738
|
</div>
|
|
@@ -4753,8 +4753,8 @@ template<typename Key , typename KeySet > </div>
|
|
|
4753
4753
|
</div><div class="memdoc">
|
|
4754
4754
|
<p>Stops an analysis timer. limitTimerSet indicates whether the caller set the timer or not (return value of startLimitTimer). </p>
|
|
4755
4755
|
|
|
4756
|
-
<p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#
|
|
4757
|
-
<div class="fragment"><div class="line"><a name="
|
|
4756
|
+
<p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00446">446</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
|
|
4757
|
+
<div class="fragment"><div class="line"><a name="l00447"></a><span class="lineno"> 447</span> {</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  <span class="keywordflow">if</span> (limitTimerSet) alarm(0);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span> }</div></div><!-- fragment -->
|
|
4758
4758
|
</div>
|
|
4759
4759
|
</div>
|
|
4760
4760
|
<a id="a862eaa4f3d172bc7ffa56406f2d5af92"></a>
|
|
@@ -4851,8 +4851,8 @@ template<typename Key , typename KeySet > </div>
|
|
|
4851
4851
|
|
|
4852
4852
|
<p>Function to call when alarm for time limit hits. </p>
|
|
4853
4853
|
|
|
4854
|
-
<p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#
|
|
4855
|
-
<div class="fragment"><div class="line"><a name="
|
|
4854
|
+
<p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00415">415</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
|
|
4855
|
+
<div class="fragment"><div class="line"><a name="l00416"></a><span class="lineno"> 416</span> {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  std::cout.flush();</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>().flush();</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="comment">// TODO: output does not indicate which time limit is reached.</span></div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="comment">// This can be better in the future.</span></div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVFUtil::outs</a>() << <span class="stringliteral">"WPA: time limit reached\n"</span>;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <a class="code" href="util_8h.html#a43b6ea6be735bb828bc062c70cadeff8">exit</a>(101);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span> }</div><div class="ttc" id="util_8h_html_a43b6ea6be735bb828bc062c70cadeff8"><div class="ttname"><a href="util_8h.html#a43b6ea6be735bb828bc062c70cadeff8">exit</a></div><div class="ttdeci">VOID_OR_INT exit()</div></div>
|
|
4856
4856
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a85ab6b592fefc45a0674d3295e01638f"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a85ab6b592fefc45a0674d3295e01638f">SVF::SVFUtil::outs</a></div><div class="ttdeci">raw_ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
4857
4857
|
</div><!-- fragment -->
|
|
4858
4858
|
</div>
|
|
@@ -4874,8 +4874,8 @@ template<typename Key , typename KeySet > </div>
|
|
|
4874
4874
|
</div><div class="memdoc">
|
|
4875
4875
|
<p>return string of an LLVM Value </p>
|
|
4876
4876
|
|
|
4877
|
-
<p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#
|
|
4878
|
-
<div class="fragment"><div class="line"><a name="
|
|
4877
|
+
<p class="definition">Definition at line <a class="el" href="SVFUtil_8cpp_source.html#l00390">390</a> of file <a class="el" href="SVFUtil_8cpp_source.html">SVFUtil.cpp</a>.</p>
|
|
4878
|
+
<div class="fragment"><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  {</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  std::string str;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <a class="code" href="namespaceSVF.html#a726981481ac082dcda3e4921416b65a0">raw_string_ostream</a> rawstr(str);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordflow">if</span>(value){</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a>* fun = SVFUtil::dyn_cast<Function>(value))</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  rawstr << <span class="stringliteral">" "</span> << fun->getName() << <span class="stringliteral">" "</span>;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  rawstr << <span class="stringliteral">" "</span> << *value << <span class="stringliteral">" "</span>;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  rawstr << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">getSourceLoc</a>(value);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  }</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span> }</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a28c0ede7e4765d2a686fc8ae0f5641a4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVF::SVFUtil::getSourceLoc</a></div><div class="ttdeci">std::string getSourceLoc(const Value *val)</div><div class="ttdoc">Return source code including line number and file name from debug information. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00269">SVFUtil.cpp:269</a></div></div>
|
|
4879
4879
|
<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>
|
|
4880
4880
|
<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>
|
|
4881
4881
|
</div><!-- fragment -->
|