svf-tools 1.0.618 → 1.0.620
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/AndersenSCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/Andersen_8h_source.html +4 -3
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CFLVF_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CommandLine_8h.html +129 -0
- package/SVF-doxygen/html/html/CommandLine_8h_source.html +132 -0
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +20 -19
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +9 -9
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +21 -20
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +17 -17
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/Options_8cpp.html +1 -0
- package/SVF-doxygen/html/html/Options_8cpp_source.html +123 -119
- package/SVF-doxygen/html/html/Options_8h.html +1 -1
- package/SVF-doxygen/html/html/Options_8h_source.html +124 -120
- package/SVF-doxygen/html/html/PCG_8cpp.html +2 -1
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +13 -12
- package/SVF-doxygen/html/html/PCG_8h_source.html +12 -12
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +4 -3
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +5 -4
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFType_8h.html +2 -2
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +10 -9
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +4 -4
- package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/annotated.html +6 -2
- package/SVF-doxygen/html/html/cfl_8cpp.html +3 -85
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +3 -5
- package/SVF-doxygen/html/html/classOption-members.html +99 -0
- package/SVF-doxygen/html/html/classOption.html +567 -0
- package/SVF-doxygen/html/html/classOption.png +0 -0
- package/SVF-doxygen/html/html/classOptionBase-members.html +95 -0
- package/SVF-doxygen/html/html/classOptionBase.html +823 -0
- package/SVF-doxygen/html/html/classOptionBase.png +0 -0
- package/SVF-doxygen/html/html/classOptionMap-members.html +97 -0
- package/SVF-doxygen/html/html/classOptionMap.html +428 -0
- package/SVF-doxygen/html/html/classOptionMap.png +0 -0
- package/SVF-doxygen/html/html/classOptionMultiple-members.html +97 -0
- package/SVF-doxygen/html/html/classOptionMultiple.html +460 -0
- package/SVF-doxygen/html/html/classOptionMultiple.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +16 -15
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +72 -72
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +36 -35
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +22 -8
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntervalExeState.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +73 -72
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +120 -120
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +613 -613
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +9 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +27 -26
- package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +6 -6
- package/SVF-doxygen/html/html/classes.html +113 -112
- package/SVF-doxygen/html/html/dda_8cpp.html +51 -248
- package/SVF-doxygen/html/html/dda_8cpp_source.html +9 -10
- package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
- package/SVF-doxygen/html/html/files.html +18 -17
- package/SVF-doxygen/html/html/functions_a.html +7 -7
- package/SVF-doxygen/html/html/functions_b.html +9 -6
- package/SVF-doxygen/html/html/functions_c.html +48 -46
- package/SVF-doxygen/html/html/functions_d.html +20 -17
- package/SVF-doxygen/html/html/functions_e.html +6 -3
- package/SVF-doxygen/html/html/functions_f.html +19 -16
- package/SVF-doxygen/html/html/functions_func_b.html +5 -2
- package/SVF-doxygen/html/html/functions_func_c.html +36 -30
- package/SVF-doxygen/html/html/functions_func_e.html +5 -2
- package/SVF-doxygen/html/html/functions_func_f.html +4 -1
- package/SVF-doxygen/html/html/functions_func_g.html +12 -6
- package/SVF-doxygen/html/html/functions_func_i.html +18 -7
- package/SVF-doxygen/html/html/functions_func_n.html +4 -1
- package/SVF-doxygen/html/html/functions_func_o.html +28 -13
- package/SVF-doxygen/html/html/functions_func_p.html +13 -4
- package/SVF-doxygen/html/html/functions_func_s.html +20 -19
- package/SVF-doxygen/html/html/functions_func_u.html +3 -0
- package/SVF-doxygen/html/html/functions_g.html +16 -10
- package/SVF-doxygen/html/html/functions_h.html +1 -1
- package/SVF-doxygen/html/html/functions_i.html +38 -23
- package/SVF-doxygen/html/html/functions_k.html +1 -1
- package/SVF-doxygen/html/html/functions_l.html +7 -7
- package/SVF-doxygen/html/html/functions_m.html +12 -12
- package/SVF-doxygen/html/html/functions_n.html +6 -2
- package/SVF-doxygen/html/html/functions_o.html +46 -25
- package/SVF-doxygen/html/html/functions_p.html +55 -33
- package/SVF-doxygen/html/html/functions_r.html +6 -6
- package/SVF-doxygen/html/html/functions_s.html +30 -29
- package/SVF-doxygen/html/html/functions_t.html +4 -4
- package/SVF-doxygen/html/html/functions_type_o.html +7 -0
- package/SVF-doxygen/html/html/functions_type_p.html +6 -0
- package/SVF-doxygen/html/html/functions_u.html +6 -3
- package/SVF-doxygen/html/html/functions_v.html +10 -8
- package/SVF-doxygen/html/html/functions_vars_a.html +7 -7
- package/SVF-doxygen/html/html/functions_vars_b.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_c.html +12 -12
- package/SVF-doxygen/html/html/functions_vars_d.html +18 -15
- package/SVF-doxygen/html/html/functions_vars_e.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_f.html +6 -6
- package/SVF-doxygen/html/html/functions_vars_g.html +2 -2
- package/SVF-doxygen/html/html/functions_vars_h.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_i.html +10 -6
- package/SVF-doxygen/html/html/functions_vars_k.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_l.html +4 -4
- package/SVF-doxygen/html/html/functions_vars_m.html +11 -11
- package/SVF-doxygen/html/html/functions_vars_n.html +3 -2
- package/SVF-doxygen/html/html/functions_vars_o.html +5 -2
- package/SVF-doxygen/html/html/functions_vars_p.html +28 -21
- package/SVF-doxygen/html/html/functions_vars_r.html +5 -5
- package/SVF-doxygen/html/html/functions_vars_s.html +10 -10
- package/SVF-doxygen/html/html/functions_vars_t.html +4 -4
- package/SVF-doxygen/html/html/functions_vars_u.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_v.html +6 -4
- package/SVF-doxygen/html/html/functions_vars_w.html +3 -3
- package/SVF-doxygen/html/html/functions_w.html +11 -7
- package/SVF-doxygen/html/html/globals_d.html +4 -4
- package/SVF-doxygen/html/html/globals_e.html +6 -6
- package/SVF-doxygen/html/html/globals_f.html +2 -2
- package/SVF-doxygen/html/html/globals_func.html +6 -58
- package/SVF-doxygen/html/html/globals_i.html +4 -12
- package/SVF-doxygen/html/html/globals_l.html +2 -2
- package/SVF-doxygen/html/html/globals_r.html +4 -4
- package/SVF-doxygen/html/html/globals_s.html +0 -4
- package/SVF-doxygen/html/html/globals_type.html +3 -0
- package/SVF-doxygen/html/html/globals_u.html +3 -0
- package/SVF-doxygen/html/html/globals_vars.html +43 -12
- package/SVF-doxygen/html/html/hierarchy.html +197 -182
- package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/menudata.js +1 -2
- package/SVF-doxygen/html/html/mta_8cpp.html +4 -47
- package/SVF-doxygen/html/html/mta_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +1 -1
- package/SVF-doxygen/html/html/saber_8cpp.html +38 -136
- package/SVF-doxygen/html/html/saber_8cpp_source.html +8 -7
- package/SVF-doxygen/html/html/search/all_1.js +7 -7
- package/SVF-doxygen/html/html/search/all_10.js +31 -26
- package/SVF-doxygen/html/html/search/all_11.js +8 -8
- package/SVF-doxygen/html/html/search/all_12.js +19 -20
- package/SVF-doxygen/html/html/search/all_13.js +7 -7
- package/SVF-doxygen/html/html/search/all_14.js +5 -4
- package/SVF-doxygen/html/html/search/all_15.js +6 -6
- package/SVF-doxygen/html/html/search/all_16.js +4 -4
- package/SVF-doxygen/html/html/search/all_2.js +2 -1
- package/SVF-doxygen/html/html/search/all_3.js +16 -14
- package/SVF-doxygen/html/html/search/all_4.js +18 -17
- package/SVF-doxygen/html/html/search/all_5.js +6 -5
- package/SVF-doxygen/html/html/search/all_6.js +9 -8
- package/SVF-doxygen/html/html/search/all_7.js +4 -2
- package/SVF-doxygen/html/html/search/all_8.js +1 -1
- package/SVF-doxygen/html/html/search/all_9.js +12 -9
- package/SVF-doxygen/html/html/search/all_b.js +2 -2
- package/SVF-doxygen/html/html/search/all_c.js +7 -7
- package/SVF-doxygen/html/html/search/all_d.js +12 -12
- package/SVF-doxygen/html/html/search/all_e.js +4 -3
- package/SVF-doxygen/html/html/search/all_f.js +24 -6
- package/SVF-doxygen/html/html/search/classes_c.js +15 -0
- package/SVF-doxygen/html/html/search/files_2.js +1 -0
- package/SVF-doxygen/html/html/search/functions_1.js +1 -0
- package/SVF-doxygen/html/html/search/functions_10.js +0 -2
- package/SVF-doxygen/html/html/search/functions_11.js +1 -2
- package/SVF-doxygen/html/html/search/functions_13.js +1 -0
- package/SVF-doxygen/html/html/search/functions_2.js +1 -0
- package/SVF-doxygen/html/html/search/functions_3.js +0 -2
- package/SVF-doxygen/html/html/search/functions_4.js +1 -3
- package/SVF-doxygen/html/html/search/functions_5.js +2 -1
- package/SVF-doxygen/html/html/search/functions_6.js +2 -0
- package/SVF-doxygen/html/html/search/functions_8.js +3 -1
- package/SVF-doxygen/html/html/search/functions_b.js +1 -1
- package/SVF-doxygen/html/html/search/functions_d.js +1 -0
- package/SVF-doxygen/html/html/search/functions_e.js +5 -1
- package/SVF-doxygen/html/html/search/functions_f.js +2 -0
- package/SVF-doxygen/html/html/search/typedefs_12.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_7.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_d.js +2 -0
- package/SVF-doxygen/html/html/search/typedefs_e.js +2 -0
- package/SVF-doxygen/html/html/search/variables_1.js +7 -7
- package/SVF-doxygen/html/html/search/variables_10.js +23 -21
- package/SVF-doxygen/html/html/search/variables_11.js +7 -5
- package/SVF-doxygen/html/html/search/variables_12.js +10 -10
- package/SVF-doxygen/html/html/search/variables_13.js +7 -7
- package/SVF-doxygen/html/html/search/variables_14.js +3 -3
- package/SVF-doxygen/html/html/search/variables_15.js +4 -4
- package/SVF-doxygen/html/html/search/variables_16.js +3 -3
- package/SVF-doxygen/html/html/search/variables_2.js +1 -1
- package/SVF-doxygen/html/html/search/variables_3.js +12 -12
- package/SVF-doxygen/html/html/search/variables_4.js +18 -15
- package/SVF-doxygen/html/html/search/variables_5.js +5 -2
- package/SVF-doxygen/html/html/search/variables_6.js +7 -6
- package/SVF-doxygen/html/html/search/variables_7.js +2 -2
- package/SVF-doxygen/html/html/search/variables_8.js +1 -1
- package/SVF-doxygen/html/html/search/variables_9.js +7 -6
- package/SVF-doxygen/html/html/search/variables_b.js +1 -1
- package/SVF-doxygen/html/html/search/variables_c.js +5 -4
- package/SVF-doxygen/html/html/search/variables_d.js +11 -11
- package/SVF-doxygen/html/html/search/variables_e.js +3 -3
- package/SVF-doxygen/html/html/search/variables_f.js +3 -2
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +4 -4
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +4 -4
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +12 -55
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/wpa_8cpp.html +4 -47
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +4 -4
- package/include/Util/CommandLine.h +527 -0
- package/include/Util/Options.h +124 -124
- package/include/WPA/Andersen.h +5 -5
- package/lib/AbstractExecution/SVFIR2ItvExeState.cpp +2 -2
- package/lib/CFL/CFLAlias.cpp +5 -5
- package/lib/CFL/CFLBase.cpp +4 -4
- package/lib/CFL/CFLGraphBuilder.cpp +2 -2
- package/lib/CFL/CFLVF.cpp +5 -5
- package/lib/CMakeLists.txt +8 -4
- package/lib/DDA/ContextDDA.cpp +1 -1
- package/lib/DDA/DDAPass.cpp +14 -13
- package/lib/DDA/FlowDDA.cpp +1 -1
- package/lib/Graphs/ConsG.cpp +10 -10
- package/lib/Graphs/ICFG.cpp +1 -1
- package/lib/Graphs/IRGraph.cpp +2 -2
- package/lib/Graphs/SVFG.cpp +5 -5
- package/lib/Graphs/SVFGOPT.cpp +5 -5
- package/lib/Graphs/VFG.cpp +1 -1
- package/lib/MSSA/MemRegion.cpp +2 -2
- package/lib/MSSA/MemSSA.cpp +4 -4
- package/lib/MSSA/SVFGBuilder.cpp +4 -4
- package/lib/MTA/FSMPTA.cpp +13 -13
- package/lib/MTA/MHP.cpp +1 -1
- package/lib/MTA/MTA.cpp +2 -2
- package/lib/MTA/MTAStat.cpp +1 -1
- package/lib/MTA/PCG.cpp +8 -2
- package/lib/MTA/TCT.cpp +2 -2
- package/lib/MemoryModel/PointerAnalysis.cpp +13 -13
- package/lib/MemoryModel/PointerAnalysisImpl.cpp +13 -13
- package/lib/MemoryModel/PointsTo.cpp +1 -1
- package/lib/SABER/DoubleFreeChecker.cpp +1 -1
- package/lib/SABER/LeakChecker.cpp +1 -1
- package/lib/SABER/SaberCondAllocator.cpp +1 -1
- package/lib/SABER/SrcSnkDDA.cpp +5 -5
- package/lib/SVF-LLVM/CHGBuilder.cpp +1 -1
- package/lib/SVF-LLVM/DCHG.cpp +1 -1
- package/lib/SVF-LLVM/LLVMLoopAnalysis.cpp +2 -2
- package/lib/SVF-LLVM/LLVMModule.cpp +10 -4
- package/lib/SVF-LLVM/SVFIRBuilder.cpp +8 -8
- package/lib/SVF-LLVM/SymbolTableBuilder.cpp +5 -5
- package/lib/SVFIR/SVFIR.cpp +4 -4
- package/lib/SVFIR/SVFStatements.cpp +16 -16
- package/lib/SVFIR/SVFVariables.cpp +5 -5
- package/lib/SVFIR/SymbolTableInfo.cpp +6 -6
- package/lib/Util/NodeIDAllocator.cpp +9 -9
- package/lib/Util/Options.cpp +426 -412
- package/lib/Util/SVFStat.cpp +5 -5
- package/lib/Util/SVFUtil.cpp +1 -1
- package/lib/Util/Z3Expr.cpp +2 -2
- package/lib/WPA/Andersen.cpp +13 -13
- package/lib/WPA/AndersenSCD.cpp +3 -3
- package/lib/WPA/FlowSensitive.cpp +8 -8
- package/lib/WPA/TypeAnalysis.cpp +1 -1
- package/lib/WPA/VersionedFlowSensitive.cpp +4 -4
- package/lib/WPA/WPAPass.cpp +10 -9
- package/package.json +1 -1
- package/tools/CFL/cfl.cpp +6 -14
- package/tools/DDA/dda.cpp +39 -29
- package/tools/Example/svf-ex.cpp +5 -8
- package/tools/MTA/LockResultValidator.cpp +2 -2
- package/tools/MTA/MTAAnnotator.cpp +5 -5
- package/tools/MTA/MTAResultValidator.cpp +8 -8
- package/tools/MTA/mta.cpp +5 -8
- package/tools/SABER/saber.cpp +23 -17
- package/tools/WPA/wpa.cpp +6 -9
|
@@ -448,14 +448,14 @@ Additional Inherited Members</h2></td></tr>
|
|
|
448
448
|
<p>Reimplemented from <a class="el" href="classSVF_1_1LeakChecker.html#aa8bd31ae91ed1e9890203f865982a065">SVF::LeakChecker</a>.</p>
|
|
449
449
|
|
|
450
450
|
<p class="definition">Definition at line <a class="el" href="DoubleFreeChecker_8cpp_source.html#l00037">37</a> of file <a class="el" href="DoubleFreeChecker_8cpp_source.html">DoubleFreeChecker.cpp</a>.</p>
|
|
451
|
-
<div class="fragment"><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordflow">if</span>(slice-><a class="code" href="classSVF_1_1ProgSlice.html#a45fb7711498bcba60e931c9c2a9ccec4">isSatisfiableForPairs</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* src = slice-><a class="code" href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">getSource</a>();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = <a class="code" href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">getSrcCSID</a>(src);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a054c3e668ce8b265bbc5d923f6243ce7">bugMsg2</a>(<span class="stringliteral">"\t Double Free :"</span>) << <span class="stringliteral">" memory allocation at : ("</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  << cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <span class="stringliteral">"\t\t double free path: \n"</span> << slice-><a class="code" href="classSVF_1_1ProgSlice.html#afac06b0be2b04cb8a65af21fd697b756">evalFinalCond</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#
|
|
451
|
+
<div class="fragment"><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <span class="keywordflow">if</span>(slice-><a class="code" href="classSVF_1_1ProgSlice.html#a45fb7711498bcba60e931c9c2a9ccec4">isSatisfiableForPairs</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1VFGNode.html">SVFGNode</a>* src = slice-><a class="code" href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">getSource</a>();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CallICFGNode.html">CallICFGNode</a>* cs = <a class="code" href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">getSrcCSID</a>(src);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a054c3e668ce8b265bbc5d923f6243ce7">bugMsg2</a>(<span class="stringliteral">"\t Double Free :"</span>) << <span class="stringliteral">" memory allocation at : ("</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  << cs-><a class="code" href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">getCallSite</a>()-><a class="code" href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">getSourceLoc</a>() << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <span class="stringliteral">"\t\t double free path: \n"</span> << slice-><a class="code" href="classSVF_1_1ProgSlice.html#afac06b0be2b04cb8a65af21fd697b756">evalFinalCond</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#aceaa5cc22c7f362e4c4d66531ec27bf1">Options::ValidateTests</a>())</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="classSVF_1_1DoubleFreeChecker.html#a06cf937c92c88627796f09b0a87a5263">testsValidation</a>(slice);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> }</div><div class="ttc" id="classSVF_1_1ProgSlice_html_ac1dc48ea64a89ce37394a22e609a0cd0"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#ac1dc48ea64a89ce37394a22e609a0cd0">SVF::ProgSlice::getSource</a></div><div class="ttdeci">const SVFGNode * getSource() const</div><div class="ttdoc">root and sink operations </div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8h_source.html#l00119">ProgSlice.h:119</a></div></div>
|
|
452
452
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_afac06b0be2b04cb8a65af21fd697b756"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#afac06b0be2b04cb8a65af21fd697b756">SVF::ProgSlice::evalFinalCond</a></div><div class="ttdeci">std::string evalFinalCond() const</div><div class="ttdoc">Evaluate final condition. </div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00159">ProgSlice.cpp:159</a></div></div>
|
|
453
|
+
<div class="ttc" id="classSVF_1_1Options_html_aceaa5cc22c7f362e4c4d66531ec27bf1"><div class="ttname"><a href="classSVF_1_1Options.html#aceaa5cc22c7f362e4c4d66531ec27bf1">SVF::Options::ValidateTests</a></div><div class="ttdeci">static const Option< bool > ValidateTests</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00198">Options.h:198</a></div></div>
|
|
453
454
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a054c3e668ce8b265bbc5d923f6243ce7"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a054c3e668ce8b265bbc5d923f6243ce7">SVF::SVFUtil::bugMsg2</a></div><div class="ttdeci">std::string bugMsg2(std::string msg)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00085">SVFUtil.cpp:85</a></div></div>
|
|
454
455
|
<div class="ttc" id="classSVF_1_1CallICFGNode_html_a90fd0b8e44fba1a7eb76d15bce085d66"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html#a90fd0b8e44fba1a7eb76d15bce085d66">SVF::CallICFGNode::getCallSite</a></div><div class="ttdeci">const SVFInstruction * getCallSite() const</div><div class="ttdoc">Return callsite. </div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00380">ICFGNode.h:380</a></div></div>
|
|
455
456
|
<div class="ttc" id="classSVF_1_1ProgSlice_html_a45fb7711498bcba60e931c9c2a9ccec4"><div class="ttname"><a href="classSVF_1_1ProgSlice.html#a45fb7711498bcba60e931c9c2a9ccec4">SVF::ProgSlice::isSatisfiableForPairs</a></div><div class="ttdeci">bool isSatisfiableForPairs()</div><div class="ttdef"><b>Definition:</b> <a href="ProgSlice_8cpp_source.html#l00111">ProgSlice.cpp:111</a></div></div>
|
|
456
457
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_ab65033f068bfbeb0a1c52dcec3beb6bc"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVF::SVFUtil::errs</a></div><div class="ttdeci">std::ostream & errs()</div><div class="ttdoc">Overwrite llvm::errs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00055">SVFUtil.h:55</a></div></div>
|
|
457
458
|
<div class="ttc" id="classSVF_1_1LeakChecker_html_a8cc561fddf3435b3b40ff4aace23b846"><div class="ttname"><a href="classSVF_1_1LeakChecker.html#a8cc561fddf3435b3b40ff4aace23b846">SVF::LeakChecker::getSrcCSID</a></div><div class="ttdeci">const CallICFGNode * getSrcCSID(const SVFGNode *src)</div><div class="ttdef"><b>Definition:</b> <a href="LeakChecker_8h_source.html#l00111">LeakChecker.h:111</a></div></div>
|
|
458
|
-
<div class="ttc" id="classSVF_1_1Options_html_aec491143ded97649da1ed61b8fda796c"><div class="ttname"><a href="classSVF_1_1Options.html#aec491143ded97649da1ed61b8fda796c">SVF::Options::ValidateTests</a></div><div class="ttdeci">static const llvm::cl::opt< bool > ValidateTests</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00198">Options.h:198</a></div></div>
|
|
459
459
|
<div class="ttc" id="classSVF_1_1SVFValue_html_a7effb0f37f486745e0cdc3ae5e9c732b"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a7effb0f37f486745e0cdc3ae5e9c732b">SVF::SVFValue::getSourceLoc</a></div><div class="ttdeci">virtual const std::string getSourceLoc() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00239">SVFValue.h:239</a></div></div>
|
|
460
460
|
<div class="ttc" id="classSVF_1_1CallICFGNode_html"><div class="ttname"><a href="classSVF_1_1CallICFGNode.html">SVF::CallICFGNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ICFGNode_8h_source.html#l00363">ICFGNode.h:363</a></div></div>
|
|
461
461
|
<div class="ttc" id="classSVF_1_1DoubleFreeChecker_html_a06cf937c92c88627796f09b0a87a5263"><div class="ttname"><a href="classSVF_1_1DoubleFreeChecker.html#a06cf937c92c88627796f09b0a87a5263">SVF::DoubleFreeChecker::testsValidation</a></div><div class="ttdeci">void testsValidation(ProgSlice *slice)</div><div class="ttdoc">Validate test cases for regression test purpose. </div><div class="ttdef"><b>Definition:</b> <a href="DoubleFreeChecker_8cpp_source.html#l00054">DoubleFreeChecker.cpp:54</a></div></div>
|
|
@@ -843,10 +843,10 @@ Friends</h2></td></tr>
|
|
|
843
843
|
<p>Reimplemented in <a class="el" href="classSVF_1_1IntervalExeState.html#aa9bf42bd6ea06a7e61171244461eb066">SVF::IntervalExeState</a>.</p>
|
|
844
844
|
|
|
845
845
|
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00159">159</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
846
|
-
<div class="fragment"><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  assert(<a class="code" href="classSVF_1_1ExeState.html#abfaad70395d9f4416f297887c84f7df4">isVirtualMemAddress</a>(addr) && <span class="stringliteral">"not virtual address?"</span>);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="
|
|
847
|
-
<div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
|
|
846
|
+
<div class="fragment"><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  assert(<a class="code" href="classSVF_1_1ExeState.html#abfaad70395d9f4416f297887c84f7df4">isVirtualMemAddress</a>(addr) && <span class="stringliteral">"not virtual address?"</span>);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> objId = <a class="code" href="classSVF_1_1ExeState.html#ab72f3bc855feeda75e11768ab03ad84e">getInternalID</a>(addr);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">_locToVAddrs</a>[objId];</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  }</div><div class="ttc" id="classSVF_1_1ExeState_html_abfaad70395d9f4416f297887c84f7df4"><div class="ttname"><a href="classSVF_1_1ExeState.html#abfaad70395d9f4416f297887c84f7df4">SVF::ExeState::isVirtualMemAddress</a></div><div class="ttdeci">static bool isVirtualMemAddress(u32_t val)</div><div class="ttdoc">Check bit value of val start with 0x7F000000, filter by 0xFF000000. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00206">ExeState.h:206</a></div></div>
|
|
848
847
|
<div class="ttc" id="classSVF_1_1ExeState_html_ab72f3bc855feeda75e11768ab03ad84e"><div class="ttname"><a href="classSVF_1_1ExeState.html#ab72f3bc855feeda75e11768ab03ad84e">SVF::ExeState::getInternalID</a></div><div class="ttdeci">static u32_t getInternalID(u32_t idx)</div><div class="ttdoc">Return the internal index if idx is an address otherwise return the value of idx. ...</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00212">ExeState.h:212</a></div></div>
|
|
849
848
|
<div class="ttc" id="classSVF_1_1ExeState_html_adb724bd1c3154368c629f4972c503d72"><div class="ttname"><a href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">SVF::ExeState::_locToVAddrs</a></div><div class="ttdeci">VarToVAddrs _locToVAddrs</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00173">ExeState.h:173</a></div></div>
|
|
849
|
+
<div class="ttc" id="CommandLine_8h_html_a2429346d37bd4c40889bd7c6d319d9da"><div class="ttname"><a href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00018">CommandLine.h:18</a></div></div>
|
|
850
850
|
</div><!-- fragment -->
|
|
851
851
|
</div>
|
|
852
852
|
</div>
|
|
@@ -1053,11 +1053,11 @@ Friends</h2></td></tr>
|
|
|
1053
1053
|
</div><div class="memdoc">
|
|
1054
1054
|
|
|
1055
1055
|
<p class="definition">Definition at line <a class="el" href="ExeState_8h_source.html#l00151">151</a> of file <a class="el" href="ExeState_8h_source.html">ExeState.h</a>.</p>
|
|
1056
|
-
<div class="fragment"><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  assert(<a class="code" href="classSVF_1_1ExeState.html#abfaad70395d9f4416f297887c84f7df4">isVirtualMemAddress</a>(addr) && <span class="stringliteral">"not virtual address?"</span>);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ExeState.html#a8edd5f30ab971ce893ffdb39d8b6a265">isNullPtr</a>(addr)) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="
|
|
1057
|
-
<div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00050">SVFType.h:50</a></div></div>
|
|
1056
|
+
<div class="fragment"><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  assert(<a class="code" href="classSVF_1_1ExeState.html#abfaad70395d9f4416f297887c84f7df4">isVirtualMemAddress</a>(addr) && <span class="stringliteral">"not virtual address?"</span>);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1ExeState.html#a8edd5f30ab971ce893ffdb39d8b6a265">isNullPtr</a>(addr)) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a> objId = <a class="code" href="classSVF_1_1ExeState.html#ab72f3bc855feeda75e11768ab03ad84e">getInternalID</a>(addr);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">_locToVAddrs</a>[objId] = vaddrs;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  }</div><div class="ttc" id="classSVF_1_1ExeState_html_abfaad70395d9f4416f297887c84f7df4"><div class="ttname"><a href="classSVF_1_1ExeState.html#abfaad70395d9f4416f297887c84f7df4">SVF::ExeState::isVirtualMemAddress</a></div><div class="ttdeci">static bool isVirtualMemAddress(u32_t val)</div><div class="ttdoc">Check bit value of val start with 0x7F000000, filter by 0xFF000000. </div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00206">ExeState.h:206</a></div></div>
|
|
1058
1057
|
<div class="ttc" id="classSVF_1_1ExeState_html_a8edd5f30ab971ce893ffdb39d8b6a265"><div class="ttname"><a href="classSVF_1_1ExeState.html#a8edd5f30ab971ce893ffdb39d8b6a265">SVF::ExeState::isNullPtr</a></div><div class="ttdeci">bool isNullPtr(u32_t addr)</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00166">ExeState.h:166</a></div></div>
|
|
1059
1058
|
<div class="ttc" id="classSVF_1_1ExeState_html_ab72f3bc855feeda75e11768ab03ad84e"><div class="ttname"><a href="classSVF_1_1ExeState.html#ab72f3bc855feeda75e11768ab03ad84e">SVF::ExeState::getInternalID</a></div><div class="ttdeci">static u32_t getInternalID(u32_t idx)</div><div class="ttdoc">Return the internal index if idx is an address otherwise return the value of idx. ...</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00212">ExeState.h:212</a></div></div>
|
|
1060
1059
|
<div class="ttc" id="classSVF_1_1ExeState_html_adb724bd1c3154368c629f4972c503d72"><div class="ttname"><a href="classSVF_1_1ExeState.html#adb724bd1c3154368c629f4972c503d72">SVF::ExeState::_locToVAddrs</a></div><div class="ttdeci">VarToVAddrs _locToVAddrs</div><div class="ttdef"><b>Definition:</b> <a href="ExeState_8h_source.html#l00173">ExeState.h:173</a></div></div>
|
|
1060
|
+
<div class="ttc" id="CommandLine_8h_html_a2429346d37bd4c40889bd7c6d319d9da"><div class="ttname"><a href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00018">CommandLine.h:18</a></div></div>
|
|
1061
1061
|
</div><!-- fragment -->
|
|
1062
1062
|
</div>
|
|
1063
1063
|
</div>
|
|
@@ -527,11 +527,11 @@ Additional Inherited Members</h2></td></tr>
|
|
|
527
527
|
<p>Reimplemented from <a class="el" href="classSVF_1_1ObjVar.html#a14da09447f9f0495a42a61bdd92688a3">SVF::ObjVar</a>.</p>
|
|
528
528
|
|
|
529
529
|
<p class="definition">Definition at line <a class="el" href="SVFVariables_8cpp_source.html#l00157">157</a> of file <a class="el" href="SVFVariables_8cpp_source.html">SVFVariables.cpp</a>.</p>
|
|
530
|
-
<div class="fragment"><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  std::stringstream rawstr(str);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  rawstr << <span class="stringliteral">"FIObjVar ID: "</span> << <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() << <span class="stringliteral">" (base object)"</span>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#
|
|
530
|
+
<div class="fragment"><div class="line"><a name="l00158"></a><span class="lineno"> 158</span> {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  std::stringstream rawstr(str);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  rawstr << <span class="stringliteral">"FIObjVar ID: "</span> << <a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>() << <span class="stringliteral">" (base object)"</span>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a424a44f39a43b22434dbdce26007a353">Options::ShowSVFIRValue</a>())</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  rawstr << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  rawstr << <a class="code" href="classSVF_1_1SVFVar.html#aa72b0f34a0b646751a7b2003d6b9f11e">value</a>-><a class="code" href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">toString</a>();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <span class="keywordflow">return</span> rawstr.str();</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span> }</div><div class="ttc" id="classSVF_1_1SVFVar_html_aa72b0f34a0b646751a7b2003d6b9f11e"><div class="ttname"><a href="classSVF_1_1SVFVar.html#aa72b0f34a0b646751a7b2003d6b9f11e">SVF::SVFVar::value</a></div><div class="ttdeci">const SVFValue * value</div><div class="ttdoc">value of this SVFIR node </div><div class="ttdef"><b>Definition:</b> <a href="SVFVariables_8h_source.html#l00076">SVFVariables.h:76</a></div></div>
|
|
531
531
|
<div class="ttc" id="classSVF_1_1SVFValue_html_aa678ca4616a3e69b53726b33d0b9c5a2"><div class="ttname"><a href="classSVF_1_1SVFValue.html#aa678ca4616a3e69b53726b33d0b9c5a2">SVF::SVFValue::toString</a></div><div class="ttdeci">virtual const std::string toString() const</div><div class="ttdoc">Needs to be implemented by a specific SVF front end (e.g., the implementation in LLVMUtil) ...</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00680">LLVMUtil.cpp:680</a></div></div>
|
|
532
532
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00171">GenericGraph.h:171</a></div></div>
|
|
533
|
-
<div class="ttc" id="classSVF_1_1Options_html_a63c2ff1420867ea4ef0a94d28b3f0558"><div class="ttname"><a href="classSVF_1_1Options.html#a63c2ff1420867ea4ef0a94d28b3f0558">SVF::Options::ShowSVFIRValue</a></div><div class="ttdeci">static const llvm::cl::opt< bool > ShowSVFIRValue</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00135">Options.h:135</a></div></div>
|
|
534
533
|
<div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
534
|
+
<div class="ttc" id="classSVF_1_1Options_html_a424a44f39a43b22434dbdce26007a353"><div class="ttname"><a href="classSVF_1_1Options.html#a424a44f39a43b22434dbdce26007a353">SVF::Options::ShowSVFIRValue</a></div><div class="ttdeci">static const Option< bool > ShowSVFIRValue</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00135">Options.h:135</a></div></div>
|
|
535
535
|
</div><!-- fragment -->
|
|
536
536
|
</div>
|
|
537
537
|
</div>
|
|
@@ -970,11 +970,12 @@ Additional Inherited Members</h2></td></tr>
|
|
|
970
970
|
<p>Reimplemented from <a class="el" href="classSVF_1_1PointerAnalysis.html#a0bb90b398ef85504bcd816ae57bee01d">SVF::PointerAnalysis</a>.</p>
|
|
971
971
|
|
|
972
972
|
<p class="definition">Definition at line <a class="el" href="FlowDDA_8cpp_source.html#l00043">43</a> of file <a class="el" href="FlowDDA_8cpp_source.html">FlowDDA.cpp</a>.</p>
|
|
973
|
-
<div class="fragment"><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#afe518d3d7f8051de5b9860f2460aa1b7">resetQuery</a>();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="classSVF_1_1DPItem.html#a687ef8944ccb55b826508c47ea5b9240">LocDPItem::setMaxBudget</a>(<a class="code" href="classSVF_1_1Options.html#
|
|
973
|
+
<div class="fragment"><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#afe518d3d7f8051de5b9860f2460aa1b7">resetQuery</a>();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="classSVF_1_1DPItem.html#a687ef8944ccb55b826508c47ea5b9240">LocDPItem::setMaxBudget</a>(<a class="code" href="classSVF_1_1Options.html#a8c02af98e908c48cef1de0085ed10ce4">Options::FlowBudget</a>());</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* node = <a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>()-><a class="code" href="classSVF_1_1GenericGraph.html#a43c9c773bfa17abf481c33073e30d01b">getGNode</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="classSVF_1_1StmtDPItem.html">LocDPItem</a> dpm = <a class="code" href="classSVF_1_1DDAVFSolver.html#ad7d92fad8606d5512786a7b7a08930e2">getDPIm</a>(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),<a class="code" href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">getDefSVFGNode</a>(node));</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="SVFType_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>(<span class="keyword">true</span>));</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts = <a class="code" href="classSVF_1_1DDAVFSolver.html#a52737dd41c63404ef91691154aa250ce">findPT</a>(dpm);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="SVFType_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#a2b788792447d4bccceff2426b45a21b2">_AnaTimePerQuery</a> = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">DDAStat::getClk</a>(<span class="keyword">true</span>) - start);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="SVFType_8h.html#ab6f41e9db3675dc689c5492418885041">DOTIMESTAT</a>(<a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#ac3189db5d8e17f64fdfcc9b040cf6100">_TotalTimeOfQueries</a> += <a class="code" href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">ddaStat</a>-><a class="code" href="classSVF_1_1DDAStat.html#a2b788792447d4bccceff2426b45a21b2">_AnaTimePerQuery</a>);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAVFSolver.html#a7994236bff84ba8244592fdf5e546734">isOutOfBudgetQuery</a>() == <span class="keyword">false</span>)</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae7073c07bfd7912f888d54d4652c7cc2">unionPts</a>(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),pts);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classSVF_1_1FlowDDA.html#a8930c3b8f3b58dca8da6017310bb74ae">handleOutOfBudgetDpm</a>(dpm);</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>  <span class="keywordflow">if</span>(this-><a class="code" href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">printStat</a>())</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="SVFType_8h.html#a6c9e2209a2c38607a9e3b7fab242886a">DOSTAT</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ab03780f736bed7861c9be14637e37ba3">performStatPerQuery</a>(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>()));</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>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>,<a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#a2dd8ce8bb1970344533babb9fc8ddd02">printStatPerQuery</a>(<span class="keywordtype">id</span>,<a class="code" href="classSVF_1_1BVDataPTAImpl.html#ac9897a09cad8a99169f2da2116807b1b">getPts</a>(<span class="keywordtype">id</span>)));</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> }</div><div class="ttc" id="classSVF_1_1SVFStat_html_a2dd8ce8bb1970344533babb9fc8ddd02"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a2dd8ce8bb1970344533babb9fc8ddd02">SVF::SVFStat::printStatPerQuery</a></div><div class="ttdeci">virtual void printStatPerQuery(NodeID, const PointsTo &)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00086">SVFStat.h:86</a></div></div>
|
|
974
974
|
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_ae40c7bad663e0fa07dee4be3d1794ff2"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#ae40c7bad663e0fa07dee4be3d1794ff2">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::ddaStat</a></div><div class="ttdeci">DDAStat * ddaStat</div><div class="ttdoc">DDA stat. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00785">DDAVFSolver.h:785</a></div></div>
|
|
975
975
|
<div class="ttc" id="classSVF_1_1DDAStat_html_ac3189db5d8e17f64fdfcc9b040cf6100"><div class="ttname"><a href="classSVF_1_1DDAStat.html#ac3189db5d8e17f64fdfcc9b040cf6100">SVF::DDAStat::_TotalTimeOfQueries</a></div><div class="ttdeci">double _TotalTimeOfQueries</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00063">DDAStat.h:63</a></div></div>
|
|
976
976
|
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a55803a2d30137b5ad15c5afeec7c6b28"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a55803a2d30137b5ad15c5afeec7c6b28">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::getDefSVFGNode</a></div><div class="ttdeci">const SVFGNode * getDefSVFGNode(const PAGNode *pagNode) const</div><div class="ttdoc">GetDefinition SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00341">DDAVFSolver.h:341</a></div></div>
|
|
977
977
|
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_afe518d3d7f8051de5b9860f2460aa1b7"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#afe518d3d7f8051de5b9860f2460aa1b7">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::resetQuery</a></div><div class="ttdeci">virtual void resetQuery()</div><div class="ttdoc">Reset visited map for next points-to query. </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00318">DDAVFSolver.h:318</a></div></div>
|
|
978
|
+
<div class="ttc" id="classSVF_1_1Options_html_a8c02af98e908c48cef1de0085ed10ce4"><div class="ttname"><a href="classSVF_1_1Options.html#a8c02af98e908c48cef1de0085ed10ce4">SVF::Options::FlowBudget</a></div><div class="ttdeci">static const Option< u32_t > FlowBudget</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00107">Options.h:107</a></div></div>
|
|
978
979
|
<div class="ttc" id="SVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdoc">General debug flag is for each phase of a pass, it is often in a colorful output format. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00422">SVFType.h:422</a></div></div>
|
|
979
980
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a4880571f57542afc50da506dfe273183"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">SVF::PointerAnalysis::printStat</a></div><div class="ttdeci">bool printStat()</div><div class="ttdoc">Whether print statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00362">PointerAnalysis.h:362</a></div></div>
|
|
980
981
|
<div class="ttc" id="classSVF_1_1FlowDDA_html_a8930c3b8f3b58dca8da6017310bb74ae"><div class="ttname"><a href="classSVF_1_1FlowDDA.html#a8930c3b8f3b58dca8da6017310bb74ae">SVF::FlowDDA::handleOutOfBudgetDpm</a></div><div class="ttdeci">void handleOutOfBudgetDpm(const LocDPItem &dpm)</div><div class="ttdoc">Handle out-of-budget dpm. </div><div class="ttdef"><b>Definition:</b> <a href="FlowDDA_8cpp_source.html#l00072">FlowDDA.cpp:72</a></div></div>
|
|
@@ -988,7 +989,6 @@ Additional Inherited Members</h2></td></tr>
|
|
|
988
989
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
|
|
989
990
|
<div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
|
|
990
991
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
|
|
991
|
-
<div class="ttc" id="classSVF_1_1Options_html_a53b1a1ec4e5bbd9696ed9b680aa0c3c7"><div class="ttname"><a href="classSVF_1_1Options.html#a53b1a1ec4e5bbd9696ed9b680aa0c3c7">SVF::Options::FlowBudget</a></div><div class="ttdeci">static const llvm::cl::opt< unsigned long long > FlowBudget</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00107">Options.h:107</a></div></div>
|
|
992
992
|
<div class="ttc" id="classSVF_1_1StmtDPItem_html"><div class="ttname"><a href="classSVF_1_1StmtDPItem.html">SVF::StmtDPItem</a></div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00131">DPItem.h:131</a></div></div>
|
|
993
993
|
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_a7994236bff84ba8244592fdf5e546734"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#a7994236bff84ba8244592fdf5e546734">SVF::DDAVFSolver< NodeID, PointsTo, LocDPItem >::isOutOfBudgetQuery</a></div><div class="ttdeci">bool isOutOfBudgetQuery() const</div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00728">DDAVFSolver.h:728</a></div></div>
|
|
994
994
|
<div class="ttc" id="classSVF_1_1DDAStat_html_a2b788792447d4bccceff2426b45a21b2"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a2b788792447d4bccceff2426b45a21b2">SVF::DDAStat::_AnaTimePerQuery</a></div><div class="ttdeci">double _AnaTimePerQuery</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00061">DDAStat.h:61</a></div></div>
|
|
@@ -1033,8 +1033,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1033
1033
|
<p>Implements <a class="el" href="classSVF_1_1PointerAnalysis.html#ae1e217dc18be0ce70bee5ad930cb54c6">SVF::PointerAnalysis</a>.</p>
|
|
1034
1034
|
|
|
1035
1035
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00081">81</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
1036
|
-
<div class="fragment"><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordtype">bool</span> limitTimerSet = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a757815a2c758695176120509ceb0ce70">SVFUtil::startAnalysisLimitTimer</a>(<a class="code" href="classSVF_1_1Options.html#
|
|
1037
|
-
<div class="ttc" id="classSVF_1_1Options_html_ad03c4697dd4da2b6adde112e3ee1884b"><div class="ttname"><a href="classSVF_1_1Options.html#ad03c4697dd4da2b6adde112e3ee1884b">SVF::Options::FsTimeLimit</a></div><div class="ttdeci">static const llvm::cl::opt< unsigned > FsTimeLimit</div><div class="ttdoc">Time limit for the main phase (i.e., the actual solving) of FS analyses. </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00072">Options.h:72</a></div></div>
|
|
1036
|
+
<div class="fragment"><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordtype">bool</span> limitTimerSet = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a757815a2c758695176120509ceb0ce70">SVFUtil::startAnalysisLimitTimer</a>(<a class="code" href="classSVF_1_1Options.html#a6ebad0decdd6e93c661b72d80f5dbcef">Options::FsTimeLimit</a>());</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span> </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#ad3566c57f8456e98542f5a0b765e3cc6">initialize</a>();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordtype">double</span> start = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVFUtil::pasMsg</a>(<span class="stringliteral">"Start Solving Constraints\n"</span>));</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> </div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">do</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <a class="code" href="classSVF_1_1WPASolver.html#ab3369caa278da03e6e6697a839985cd6">numOfIteration</a>++;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">if</span>(0 == <a class="code" href="classSVF_1_1WPASolver.html#ab3369caa278da03e6e6697a839985cd6">numOfIteration</a> % <a class="code" href="classSVF_1_1PointerAnalysis.html#afc320fbf269404fe128e69c98e6f9cac">OnTheFlyIterBudgetForStat</a>)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#ab83b827ea42d3a61aad20b1a1485d866">dumpStat</a>();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#ae3b651799345d9d92b6d736dafb03f63">callGraphSCC</a>-><a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <a class="code" href="classSVF_1_1WPASolver.html#a7195381c3aab04890139b4fe2c561909">initWorklist</a>();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="classSVF_1_1WPASolver.html#af1bb670efde7006e3e99b3735e4fc4cc">solveWorklist</a>();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">while</span> (<a class="code" href="classSVF_1_1FlowSensitive.html#aad0bf334d3c749240ca27b4bcfd6eeab">updateCallGraph</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a9d3e7753643166465b0d647a75bc145a">getIndirectCallsites</a>()));</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVFUtil::pasMsg</a>(<span class="stringliteral">"Finish Solving Constraints\n"</span>));</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">// Reset the time-up alarm; analysis is done.</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a168f7f7a3a8c70dbf2b5b4269cd4c7c5">SVFUtil::stopAnalysisLimitTimer</a>(limitTimerSet);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordtype">double</span> end = <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a>-><a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">getClk</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a4202f837e863a48712765cc346d8b514">solveTime</a> += (end - start) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a911aa7dd8d696b96a85d85af852e1e58">finalize</a>();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> }</div><div class="ttc" id="classSVF_1_1PointerAnalysis_html_a9d3e7753643166465b0d647a75bc145a"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a9d3e7753643166465b0d647a75bc145a">SVF::PointerAnalysis::getIndirectCallsites</a></div><div class="ttdeci">const CallSiteToFunPtrMap & getIndirectCallsites() const</div><div class="ttdoc">Return all indirect callsites. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00267">PointerAnalysis.h:267</a></div></div>
|
|
1038
1037
|
<div class="ttc" id="classSVF_1_1WPASolver_html_ab3369caa278da03e6e6697a839985cd6"><div class="ttname"><a href="classSVF_1_1WPASolver.html#ab3369caa278da03e6e6697a839985cd6">SVF::WPASolver::numOfIteration</a></div><div class="ttdeci">u32_t numOfIteration</div><div class="ttdoc">num of iterations during constaint solving </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00200">WPASolver.h:200</a></div></div>
|
|
1039
1038
|
<div class="ttc" id="classSVF_1_1WPASolver_html_af1bb670efde7006e3e99b3735e4fc4cc"><div class="ttname"><a href="classSVF_1_1WPASolver.html#af1bb670efde7006e3e99b3735e4fc4cc">SVF::WPASolver::solveWorklist</a></div><div class="ttdeci">virtual void solveWorklist()</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00108">WPASolver.h:108</a></div></div>
|
|
1040
1039
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_ab83b827ea42d3a61aad20b1a1485d866"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#ab83b827ea42d3a61aad20b1a1485d866">SVF::PointerAnalysis::dumpStat</a></div><div class="ttdeci">void dumpStat()</div><div class="ttdoc">Dump the statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00166">PointerAnalysis.cpp:166</a></div></div>
|
|
@@ -1050,6 +1049,7 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1050
1049
|
<div class="ttc" id="classSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
|
|
1051
1050
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
|
|
1052
1051
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a4202f837e863a48712765cc346d8b514"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a4202f837e863a48712765cc346d8b514">SVF::FlowSensitive::solveTime</a></div><div class="ttdeci">double solveTime</div><div class="ttdoc">time of solve. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00294">FlowSensitive.h:294</a></div></div>
|
|
1052
|
+
<div class="ttc" id="classSVF_1_1Options_html_a6ebad0decdd6e93c661b72d80f5dbcef"><div class="ttname"><a href="classSVF_1_1Options.html#a6ebad0decdd6e93c661b72d80f5dbcef">SVF::Options::FsTimeLimit</a></div><div class="ttdeci">static const Option< u32_t > FsTimeLimit</div><div class="ttdoc">Time limit for the main phase (i.e., the actual solving) of FS analyses. </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00072">Options.h:72</a></div></div>
|
|
1053
1053
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a911aa7dd8d696b96a85d85af852e1e58"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a911aa7dd8d696b96a85d85af852e1e58">SVF::FlowSensitive::finalize</a></div><div class="ttdeci">void finalize() override</div><div class="ttdoc">Finalize analysis. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00121">FlowSensitive.cpp:121</a></div></div>
|
|
1054
1054
|
<div class="ttc" id="classSVF_1_1WPASolver_html_a7195381c3aab04890139b4fe2c561909"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a7195381c3aab04890139b4fe2c561909">SVF::WPASolver::initWorklist</a></div><div class="ttdeci">virtual void initWorklist()</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00097">WPASolver.h:97</a></div></div>
|
|
1055
1055
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a168f7f7a3a8c70dbf2b5b4269cd4c7c5"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a168f7f7a3a8c70dbf2b5b4269cd4c7c5">SVF::SVFUtil::stopAnalysisLimitTimer</a></div><div class="ttdeci">void stopAnalysisLimitTimer(bool limitTimerSet)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00309">SVFUtil.cpp:309</a></div></div>
|
|
@@ -1345,16 +1345,16 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1345
1345
|
<p>Reimplemented in <a class="el" href="classSVF_1_1VersionedFlowSensitive.html#ad955fda89f4f749151a1bd14562b03f6">SVF::VersionedFlowSensitive</a>.</p>
|
|
1346
1346
|
|
|
1347
1347
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00121">121</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
1348
|
-
<div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#
|
|
1348
|
+
<div class="fragment"><div class="line"><a name="l00122"></a><span class="lineno"> 122</span> {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#ae3ad3003a8d3df2f1e3463248bb5ad51">Options::DumpVFG</a>())</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>-><a class="code" href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">dump</a>(<span class="stringliteral">"fs_solved"</span>, <span class="keyword">true</span>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span> </div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <a class="code" href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">NodeStack</a>& <a class="code" href="classSVF_1_1WPAFSSolver.html#a2cb80102611c663c4daddd68b4f4b75f">nodeStack</a> = <a class="code" href="classSVF_1_1WPASolver.html#aaa932894d00b69cfa741f9987a9cc6b8">WPASolver<SVFG*>::SCCDetect</a>();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">while</span> (nodeStack.empty() == <span class="keyword">false</span>)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> rep = nodeStack.top();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  nodeStack.pop();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& subNodes = <a class="code" href="classSVF_1_1WPASolver.html#a37ca8a99b8f83fba796293e6e13b0953">getSCCDetector</a>()-><a class="code" href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">subNodes</a>(rep);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">if</span> (subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>() > <a class="code" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">maxSCCSize</a>)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">maxSCCSize</a> = subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">if</span> (subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>() > 1)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">numOfNodesInSCC</a> += subNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">count</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">numOfSCC</a>++;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="comment">// TODO: check -stat too.</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a853caba808dc7d17cba4ad4214b56b6f">Options::ClusterFs</a>())</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<std::string, std::string></a> stats;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1BVDataPTAImpl.html#acfdb43f20bbcababc928cc4df93a8483">PTDataTy</a> *ptd = <a class="code" href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">getPTDataTy</a>();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="comment">// TODO: should we use liveOnly?</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<PointsTo, unsigned></a> allPts = ptd->getAllPts(<span class="keyword">true</span>);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <span class="comment">// TODO: parameterise final arg.</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#acbbc5c04c79846fe1cc46a3bd5a65aba">NodeIDAllocator::Clusterer::evaluate</a>(*<a class="code" href="classSVF_1_1PointsTo.html#ae349a9ce6a8739925baffd83d1878b0e">PointsTo::getCurrentBestNodeMapping</a>(), allPts, stats, <span class="keyword">true</span>);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#ac10cbda6a84ce890c9946a5ff35800b7">NodeIDAllocator::Clusterer::printStats</a>(<span class="stringliteral">"post-main: best"</span>, stats);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span> </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="comment">// Do the same for the candidates. TODO: probably temporary for eval. purposes.</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">for</span> (std::pair<<a class="code" href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dd">hclust_fast_methods</a>, std::vector<NodeID>> &candidate : <a class="code" href="classSVF_1_1FlowSensitive.html#adba7ffe68ae7edce9b3aa896f978da6b">candidateMappings</a>)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="comment">// Can reuse stats, since we're always filling it with `evaluate`, it will always be overwritten.</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#acbbc5c04c79846fe1cc46a3bd5a65aba">NodeIDAllocator::Clusterer::evaluate</a>(candidate.second, allPts, stats, <span class="keyword">true</span>);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#ac10cbda6a84ce890c9946a5ff35800b7">NodeIDAllocator::Clusterer::printStats</a>(<span class="stringliteral">"post-main: candidate "</span> + <a class="code" href="namespaceSVF_1_1SVFUtil.html#a14a4c5124f2fd03ca3d898e2acd54160">SVFUtil::hclustMethodToString</a>(candidate.first), stats);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span> </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#a638f58c3bf6efdb3787fafaa4e6f19ca">BVDataPTAImpl::finalize</a>();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span> }</div><div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_a638f58c3bf6efdb3787fafaa4e6f19ca"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#a638f58c3bf6efdb3787fafaa4e6f19ca">SVF::BVDataPTAImpl::finalize</a></div><div class="ttdeci">void finalize() override</div><div class="ttdoc">Finalization of pointer analysis, and normalize points-to information to Bit Vector representation...</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8cpp_source.html#l00092">PointerAnalysisImpl.cpp:92</a></div></div>
|
|
1349
1349
|
<div class="ttc" id="classSVF_1_1SVFG_html_a5fdaddc52e7342b834d76d64c1a1e498"><div class="ttname"><a href="classSVF_1_1SVFG.html#a5fdaddc52e7342b834d76d64c1a1e498">SVF::SVFG::dump</a></div><div class="ttdeci">void dump(const std::string &file, bool simple=false)</div><div class="ttdoc">Dump graph into dot file. </div><div class="ttdef"><b>Definition:</b> <a href="SVFG_8cpp_source.html#l00574">SVFG.cpp:574</a></div></div>
|
|
1350
1350
|
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_ae94cea78b71fb75837ee2a17b5ed0e81"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#ae94cea78b71fb75837ee2a17b5ed0e81">SVF::BVDataPTAImpl::getPTDataTy</a></div><div class="ttdeci">PTDataTy * getPTDataTy() const</div><div class="ttdoc">Get points-to data structure. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00150">PointerAnalysisImpl.h:150</a></div></div>
|
|
1351
1351
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aae032e5f5d53b131d0112dc8faa464a9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00239">FlowSensitive.h:239</a></div></div>
|
|
1352
1352
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a6ab5eff6a576e6d8703c1ea29b7f425d"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">SVF::SCCDetection::subNodes</a></div><div class="ttdeci">const NodeBS & subNodes(NodeID n) const</div><div class="ttdoc">get all subnodes in one scc, if size is empty insert itself into the set </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00173">SCC.h:173</a></div></div>
|
|
1353
|
-
<div class="ttc" id="classSVF_1_1Options_html_a9dc372635fc6f5ea2d902fc5c49fca8a"><div class="ttname"><a href="classSVF_1_1Options.html#a9dc372635fc6f5ea2d902fc5c49fca8a">SVF::Options::ClusterFs</a></div><div class="ttdeci">static const llvm::cl::opt< bool > ClusterFs</div><div class="ttdoc">Whether to cluster FS or VFS with the auxiliary Andersen&#39;s. </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00044">Options.h:44</a></div></div>
|
|
1354
1353
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_aa3d4703756a6297ab5c0756172024fe4"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aa3d4703756a6297ab5c0756172024fe4">SVF::FlowSensitive::maxSCCSize</a></div><div class="ttdeci">u32_t maxSCCSize</div><div class="ttdoc">Number of processed mssa node. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00290">FlowSensitive.h:290</a></div></div>
|
|
1355
1354
|
<div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
1356
1355
|
<div class="ttc" id="namespaceSVF_html_a1811127aebdb9c926e39d155e20b3dc0"><div class="ttname"><a href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">SVF::NodeStack</a></div><div class="ttdeci">std::stack< NodeID > NodeStack</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00115">SVFType.h:115</a></div></div>
|
|
1357
1356
|
<div class="ttc" id="classSVF_1_1NodeIDAllocator_1_1Clusterer_html_acbbc5c04c79846fe1cc46a3bd5a65aba"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#acbbc5c04c79846fe1cc46a3bd5a65aba">SVF::NodeIDAllocator::Clusterer::evaluate</a></div><div class="ttdeci">static void evaluate(const std::vector< NodeID > &nodeMap, const Map< PointsTo, unsigned > pointsToSets, Map< std::string, std::string > &stats, bool accountForOcc)</div><div class="ttdoc">Fills in *NumWords statistics in stats.. </div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00573">NodeIDAllocator.cpp:573</a></div></div>
|
|
1357
|
+
<div class="ttc" id="classSVF_1_1Options_html_a853caba808dc7d17cba4ad4214b56b6f"><div class="ttname"><a href="classSVF_1_1Options.html#a853caba808dc7d17cba4ad4214b56b6f">SVF::Options::ClusterFs</a></div><div class="ttdeci">static const Option< bool > ClusterFs</div><div class="ttdoc">Whether to cluster FS or VFS with the auxiliary Andersen&#39;s. </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00044">Options.h:44</a></div></div>
|
|
1358
1358
|
<div class="ttc" id="classSVF_1_1WPASolver_html_aaa932894d00b69cfa741f9987a9cc6b8"><div class="ttname"><a href="classSVF_1_1WPASolver.html#aaa932894d00b69cfa741f9987a9cc6b8">SVF::WPASolver::SCCDetect</a></div><div class="ttdeci">virtual NodeStack & SCCDetect()</div><div class="ttdoc">SCC detection. </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00086">WPASolver.h:86</a></div></div>
|
|
1359
1359
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a9f3fe97202db8170fa9f47c5684bce75"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a9f3fe97202db8170fa9f47c5684bce75">SVF::FlowSensitive::numOfNodesInSCC</a></div><div class="ttdeci">u32_t numOfNodesInSCC</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00292">FlowSensitive.h:292</a></div></div>
|
|
1360
1360
|
<div class="ttc" id="classSVF_1_1SparseBitVector_html_a9f96e6a886fa69e07cda5dbfaed8b7c9"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html#a9f96e6a886fa69e07cda5dbfaed8b7c9">SVF::SparseBitVector::count</a></div><div class="ttdeci">unsigned count() const</div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l01096">SparseBitVector.h:1096</a></div></div>
|
|
@@ -1363,8 +1363,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1363
1363
|
<div class="ttc" id="classSVF_1_1NodeIDAllocator_1_1Clusterer_html_ac10cbda6a84ce890c9946a5ff35800b7"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator_1_1Clusterer.html#ac10cbda6a84ce890c9946a5ff35800b7">SVF::NodeIDAllocator::Clusterer::printStats</a></div><div class="ttdeci">static void printStats(std::string title, Map< std::string, std::string > &stats)</div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00691">NodeIDAllocator.cpp:691</a></div></div>
|
|
1364
1364
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a0ac955bf06261eec1c6bb78ec99652e3"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a0ac955bf06261eec1c6bb78ec99652e3">SVF::FlowSensitive::numOfSCC</a></div><div class="ttdeci">u32_t numOfSCC</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00291">FlowSensitive.h:291</a></div></div>
|
|
1365
1365
|
<div class="ttc" id="fastcluster_8h_html_a4205a14ad66b3320d2e94c61d74913dd"><div class="ttname"><a href="fastcluster_8h.html#a4205a14ad66b3320d2e94c61d74913dd">hclust_fast_methods</a></div><div class="ttdeci">hclust_fast_methods</div><div class="ttdef"><b>Definition:</b> <a href="fastcluster_8h_source.html#l00065">fastcluster.h:65</a></div></div>
|
|
1366
|
-
<div class="ttc" id="classSVF_1_1Options_html_a3061c75f7491dd737222b1b877721070"><div class="ttname"><a href="classSVF_1_1Options.html#a3061c75f7491dd737222b1b877721070">SVF::Options::DumpVFG</a></div><div class="ttdeci">static const llvm::cl::opt< bool > DumpVFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00122">Options.h:122</a></div></div>
|
|
1367
1366
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a14a4c5124f2fd03ca3d898e2acd54160"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a14a4c5124f2fd03ca3d898e2acd54160">SVF::SVFUtil::hclustMethodToString</a></div><div class="ttdeci">std::string hclustMethodToString(hclust_fast_methods method)</div><div class="ttdoc">Returns a string representation of a hclust method. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00259">SVFUtil.cpp:259</a></div></div>
|
|
1367
|
+
<div class="ttc" id="classSVF_1_1Options_html_ae3ad3003a8d3df2f1e3463248bb5ad51"><div class="ttname"><a href="classSVF_1_1Options.html#ae3ad3003a8d3df2f1e3463248bb5ad51">SVF::Options::DumpVFG</a></div><div class="ttdeci">static const Option< bool > DumpVFG</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00122">Options.h:122</a></div></div>
|
|
1368
1368
|
<div class="ttc" id="classSVF_1_1WPASolver_html_a37ca8a99b8f83fba796293e6e13b0953"><div class="ttname"><a href="classSVF_1_1WPASolver.html#a37ca8a99b8f83fba796293e6e13b0953">SVF::WPASolver::getSCCDetector</a></div><div class="ttdeci">SCC * getSCCDetector() const</div><div class="ttdoc">Get SCC detector. </div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00067">WPASolver.h:67</a></div></div>
|
|
1369
1369
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_adba7ffe68ae7edce9b3aa896f978da6b"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#adba7ffe68ae7edce9b3aa896f978da6b">SVF::FlowSensitive::candidateMappings</a></div><div class="ttdeci">std::vector< std::pair< hclust_fast_methods, std::vector< NodeID > > > candidateMappings</div><div class="ttdoc">Save candidate mappings for evaluation&#39;s sake. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00276">FlowSensitive.h:276</a></div></div>
|
|
1370
1370
|
<div class="ttc" id="classSVF_1_1SparseBitVector_html"><div class="ttname"><a href="classSVF_1_1SparseBitVector.html">SVF::SparseBitVector</a></div><div class="ttdef"><b>Definition:</b> <a href="SparseBitVector_8h_source.html#l00454">SparseBitVector.h:454</a></div></div>
|
|
@@ -1575,19 +1575,19 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1575
1575
|
<p>Reimplemented in <a class="el" href="classSVF_1_1VersionedFlowSensitive.html#a81d3528fd082018e4345f0b026bf3584">SVF::VersionedFlowSensitive</a>.</p>
|
|
1576
1576
|
|
|
1577
1577
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00045">45</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
1578
|
-
<div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">PointerAnalysis::initialize</a>();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a88f9752372eabb71f47f13a89e4d6d9c">FlowSensitiveStat</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="comment">// TODO: support clustered aux. Andersen's.</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  assert(!<a class="code" href="classSVF_1_1Options.html#
|
|
1578
|
+
<div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">PointerAnalysis::initialize</a>();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">stat</a> = <span class="keyword">new</span> <a class="code" href="classSVF_1_1FlowSensitive.html#a88f9752372eabb71f47f13a89e4d6d9c">FlowSensitiveStat</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="comment">// TODO: support clustered aux. Andersen's.</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  assert(!<a class="code" href="classSVF_1_1Options.html#a46743284466ff803f52a82b094186d16">Options::ClusterAnder</a>() && <span class="stringliteral">"FlowSensitive::initialize: clustering auxiliary Andersen's unsupported."</span>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">ander</a> = <a class="code" href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">AndersenWaveDiff::createAndersenWaveDiff</a>(<a class="code" href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">getPAG</a>());</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="comment">// If cluster option is not set, it will give us a no-mapping points-to set.</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  assert(!(<a class="code" href="classSVF_1_1Options.html#a853caba808dc7d17cba4ad4214b56b6f">Options::ClusterFs</a>() && <a class="code" href="classSVF_1_1Options.html#a0123986b466dae50b2f12c71295c54f9">Options::PlainMappingFs</a>())</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  && <span class="stringliteral">"FS::init: plain-mapping and cluster-fs are mutually exclusive."</span>);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a853caba808dc7d17cba4ad4214b56b6f">Options::ClusterFs</a>())</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a89d3b97b8077027514135c9201c4d02c">cluster</a>();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="comment">// Reset the points-to cache although empty so the new mapping could</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="comment">// be applied to the inserted empty set.</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#afaeae813ff38e010bbe8fe61befb345c">getPtCache</a>().reset();</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>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a0123986b466dae50b2f12c71295c54f9">Options::PlainMappingFs</a>())</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#a5a8688102f3675cf414b01dc2ae51c6b">plainMap</a>();</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="comment">// As above.</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <a class="code" href="classSVF_1_1BVDataPTAImpl.html#afaeae813ff38e010bbe8fe61befb345c">getPtCache</a>().reset();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a> = <a class="code" href="classSVF_1_1FlowSensitive.html#a76f6f19ac2b58ab4a10a2d7e6e24e42a">memSSA</a>.<a class="code" href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">buildPTROnlySVFG</a>(<a class="code" href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">ander</a>);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="classSVF_1_1WPASolver.html#aa04deb39cd024c051f30ac43d1d62b34">setGraph</a>(<a class="code" href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">svfg</a>);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="comment">//AndersenWaveDiff::releaseAndersenWaveDiff();</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> }</div><div class="ttc" id="classSVF_1_1FlowSensitive_html_aae032e5f5d53b131d0112dc8faa464a9"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#aae032e5f5d53b131d0112dc8faa464a9">SVF::FlowSensitive::svfg</a></div><div class="ttdeci">SVFG * svfg</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00239">FlowSensitive.h:239</a></div></div>
|
|
1579
1579
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a89d3b97b8077027514135c9201c4d02c"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a89d3b97b8077027514135c9201c4d02c">SVF::FlowSensitive::cluster</a></div><div class="ttdeci">virtual void cluster(void)</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00778">FlowSensitive.cpp:778</a></div></div>
|
|
1580
|
-
<div class="ttc" id="
|
|
1580
|
+
<div class="ttc" id="classSVF_1_1Options_html_a853caba808dc7d17cba4ad4214b56b6f"><div class="ttname"><a href="classSVF_1_1Options.html#a853caba808dc7d17cba4ad4214b56b6f">SVF::Options::ClusterFs</a></div><div class="ttdeci">static const Option< bool > ClusterFs</div><div class="ttdoc">Whether to cluster FS or VFS with the auxiliary Andersen&#39;s. </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00044">Options.h:44</a></div></div>
|
|
1581
|
+
<div class="ttc" id="classSVF_1_1Options_html_a46743284466ff803f52a82b094186d16"><div class="ttname"><a href="classSVF_1_1Options.html#a46743284466ff803f52a82b094186d16">SVF::Options::ClusterAnder</a></div><div class="ttdeci">static const Option< bool > ClusterAnder</div><div class="ttdoc">Whether to stage Andersen&#39;s with Steensgaard and cluster based on that data. </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00041">Options.h:41</a></div></div>
|
|
1581
1582
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a88f9752372eabb71f47f13a89e4d6d9c"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a88f9752372eabb71f47f13a89e4d6d9c">SVF::FlowSensitive::FlowSensitiveStat</a></div><div class="ttdeci">friend class FlowSensitiveStat</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00051">FlowSensitive.h:51</a></div></div>
|
|
1582
1583
|
<div class="ttc" id="classSVF_1_1SVFGBuilder_html_ab7353191edd06568e2598177d253c1d9"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#ab7353191edd06568e2598177d253c1d9">SVF::SVFGBuilder::buildPTROnlySVFG</a></div><div class="ttdeci">SVFG * buildPTROnlySVFG(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00041">SVFGBuilder.cpp:41</a></div></div>
|
|
1583
1584
|
<div class="ttc" id="classSVF_1_1WPASolver_html_aa04deb39cd024c051f30ac43d1d62b34"><div class="ttname"><a href="classSVF_1_1WPASolver.html#aa04deb39cd024c051f30ac43d1d62b34">SVF::WPASolver::setGraph</a></div><div class="ttdeci">void setGraph(GraphType g)</div><div class="ttdef"><b>Definition:</b> <a href="WPASolver_8h_source.html#l00078">WPASolver.h:78</a></div></div>
|
|
1585
|
+
<div class="ttc" id="classSVF_1_1Options_html_a0123986b466dae50b2f12c71295c54f9"><div class="ttname"><a href="classSVF_1_1Options.html#a0123986b466dae50b2f12c71295c54f9">SVF::Options::PlainMappingFs</a></div><div class="ttdeci">static const Option< bool > PlainMappingFs</div><div class="ttdoc">Use an explicitly plain mapping with flow-sensitive (not null). </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00047">Options.h:47</a></div></div>
|
|
1584
1586
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a240219c2dc4f5cc5f85445e18c79b83b"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a240219c2dc4f5cc5f85445e18c79b83b">SVF::PointerAnalysis::getPAG</a></div><div class="ttdeci">SVFIR * getPAG() const</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00201">PointerAnalysis.h:201</a></div></div>
|
|
1585
1587
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a5a8688102f3675cf414b01dc2ae51c6b"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a5a8688102f3675cf414b01dc2ae51c6b">SVF::FlowSensitive::plainMap</a></div><div class="ttdeci">virtual void plainMap(void) const</div><div class="ttdoc">Sets the global best mapping as a plain mapping, i.e. n -> n. </div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8cpp_source.html#l00792">FlowSensitive.cpp:792</a></div></div>
|
|
1586
1588
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a5ec3d9bf1fc81346c9df29638daedc0f"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a5ec3d9bf1fc81346c9df29638daedc0f">SVF::PointerAnalysis::stat</a></div><div class="ttdeci">PTAStat * stat</div><div class="ttdoc">Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00150">PointerAnalysis.h:150</a></div></div>
|
|
1587
|
-
<div class="ttc" id="classSVF_1_1Options_html_a75a38fff97f7f18f3945c953cabc168b"><div class="ttname"><a href="classSVF_1_1Options.html#a75a38fff97f7f18f3945c953cabc168b">SVF::Options::PlainMappingFs</a></div><div class="ttdeci">static const llvm::cl::opt< bool > PlainMappingFs</div><div class="ttdoc">Use an explicitly plain mapping with flow-sensitive (not null). </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00047">Options.h:47</a></div></div>
|
|
1588
1589
|
<div class="ttc" id="classSVF_1_1BVDataPTAImpl_html_afaeae813ff38e010bbe8fe61befb345c"><div class="ttname"><a href="classSVF_1_1BVDataPTAImpl.html#afaeae813ff38e010bbe8fe61befb345c">SVF::BVDataPTAImpl::getPtCache</a></div><div class="ttdeci">PersistentPointsToCache< PointsTo > & getPtCache()</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysisImpl_8h_source.html#l00076">PointerAnalysisImpl.h:76</a></div></div>
|
|
1589
1590
|
<div class="ttc" id="classSVF_1_1AndersenWaveDiff_html_a48ff6fc4badc79ad3204ae9bd95cc540"><div class="ttname"><a href="classSVF_1_1AndersenWaveDiff.html#a48ff6fc4badc79ad3204ae9bd95cc540">SVF::AndersenWaveDiff::createAndersenWaveDiff</a></div><div class="ttdeci">static AndersenWaveDiff * createAndersenWaveDiff(SVFIR *_pag)</div><div class="ttdoc">Create an singleton instance directly instead of invoking llvm pass manager. </div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00389">Andersen.h:389</a></div></div>
|
|
1590
|
-
<div class="ttc" id="classSVF_1_1Options_html_a8459d43a21bcf8a50fc55d14fcf5a81e"><div class="ttname"><a href="classSVF_1_1Options.html#a8459d43a21bcf8a50fc55d14fcf5a81e">SVF::Options::ClusterAnder</a></div><div class="ttdeci">static const llvm::cl::opt< bool > ClusterAnder</div><div class="ttdoc">Whether to stage Andersen&#39;s with Steensgaard and cluster based on that data. </div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00041">Options.h:41</a></div></div>
|
|
1591
1591
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a5cfee013a1a5821ef0c449842dd8690d"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a5cfee013a1a5821ef0c449842dd8690d">SVF::FlowSensitive::ander</a></div><div class="ttdeci">AndersenWaveDiff * ander</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00273">FlowSensitive.h:273</a></div></div>
|
|
1592
1592
|
<div class="ttc" id="classSVF_1_1FlowSensitive_html_a76f6f19ac2b58ab4a10a2d7e6e24e42a"><div class="ttname"><a href="classSVF_1_1FlowSensitive.html#a76f6f19ac2b58ab4a10a2d7e6e24e42a">SVF::FlowSensitive::memSSA</a></div><div class="ttdeci">SVFGBuilder memSSA</div><div class="ttdef"><b>Definition:</b> <a href="FlowSensitive_8h_source.html#l00272">FlowSensitive.h:272</a></div></div>
|
|
1593
1593
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a431ec4f85eb0f029e5740b92fd9ceb32"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a431ec4f85eb0f029e5740b92fd9ceb32">SVF::PointerAnalysis::initialize</a></div><div class="ttdeci">virtual void initialize()</div><div class="ttdoc">Initialization of a pointer analysis, including building symbol table and SVFIR etc. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00105">PointerAnalysis.cpp:105</a></div></div>
|
|
@@ -1675,8 +1675,8 @@ Additional Inherited Members</h2></td></tr>
|
|
|
1675
1675
|
<p>Sets the global best mapping as a plain mapping, i.e. n -> n. </p>
|
|
1676
1676
|
|
|
1677
1677
|
<p class="definition">Definition at line <a class="el" href="FlowSensitive_8cpp_source.html#l00792">792</a> of file <a class="el" href="FlowSensitive_8cpp_source.html">FlowSensitive.cpp</a>.</p>
|
|
1678
|
-
<div class="fragment"><div class="line"><a name="l00793"></a><span class="lineno"> 793</span> {</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  assert(<a class="code" href="classSVF_1_1Options.html#
|
|
1679
|
-
<div class="ttc" id="
|
|
1678
|
+
<div class="fragment"><div class="line"><a name="l00793"></a><span class="lineno"> 793</span> {</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  assert(<a class="code" href="classSVF_1_1Options.html#a38107576f4f242191cdbfb1ca51f93cd">Options::NodeAllocStrat</a>() == NodeIDAllocator::Strategy::DENSE</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  && <span class="stringliteral">"FS::cluster: plain mapping requires dense allocation strategy."</span>);</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span> </div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> numObjects = <a class="code" href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">NodeIDAllocator::get</a>()-><a class="code" href="classSVF_1_1NodeIDAllocator.html#ad63e43c65cb7d7cac7824f5cede5ec89">getNumObjects</a>();</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <a class="code" href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">PointsTo::MappingPtr</a> plainMapping = std::make_shared<std::vector<NodeID>>(numObjects);</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <a class="code" href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">PointsTo::MappingPtr</a> reversePlainMapping = std::make_shared<std::vector<NodeID>>(numObjects);</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">NodeID</a> i = 0; i < plainMapping->size(); ++i)</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  {</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  plainMapping->at(i) = i;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  reversePlainMapping->at(i) = i;</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  }</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span> </div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  <a class="code" href="classSVF_1_1PointsTo.html#a84eca4c7fc833f8ca4d119cd4da08ca8">PointsTo::setCurrentBestNodeMapping</a>(plainMapping, reversePlainMapping);</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span> }</div><div class="ttc" id="classSVF_1_1Options_html_a38107576f4f242191cdbfb1ca51f93cd"><div class="ttname"><a href="classSVF_1_1Options.html#a38107576f4f242191cdbfb1ca51f93cd">SVF::Options::NodeAllocStrat</a></div><div class="ttdeci">static const OptionMap< SVF::NodeIDAllocator::Strategy > NodeAllocStrat</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00035">Options.h:35</a></div></div>
|
|
1679
|
+
<div class="ttc" id="namespaceSVF_html_a350ae9bf8606bdfe23c8679681b969dc"><div class="ttname"><a href="namespaceSVF.html#a350ae9bf8606bdfe23c8679681b969dc">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="include_2MTA_2MTAResultValidator_8h_source.html#l00020">MTAResultValidator.h:20</a></div></div>
|
|
1680
1680
|
<div class="ttc" id="classSVF_1_1PointsTo_html_a849f670b38cb6f65fc23707a212591c7"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a849f670b38cb6f65fc23707a212591c7">SVF::PointsTo::MappingPtr</a></div><div class="ttdeci">std::shared_ptr< std::vector< NodeID > > MappingPtr</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00042">PointsTo.h:42</a></div></div>
|
|
1681
1681
|
<div class="ttc" id="classSVF_1_1NodeIDAllocator_html_ad63e43c65cb7d7cac7824f5cede5ec89"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#ad63e43c65cb7d7cac7824f5cede5ec89">SVF::NodeIDAllocator::getNumObjects</a></div><div class="ttdeci">NodeID getNumObjects(void) const</div><div class="ttdoc">Returns the total number of memory objects. </div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8h_source.html#l00077">NodeIDAllocator.h:77</a></div></div>
|
|
1682
1682
|
<div class="ttc" id="classSVF_1_1NodeIDAllocator_html_a2bd3ca30fc9669d9a0327544bdb4557b"><div class="ttname"><a href="classSVF_1_1NodeIDAllocator.html#a2bd3ca30fc9669d9a0327544bdb4557b">SVF::NodeIDAllocator::get</a></div><div class="ttdeci">static NodeIDAllocator * get(void)</div><div class="ttdoc">Return (singleton) allocator. </div><div class="ttdef"><b>Definition:</b> <a href="NodeIDAllocator_8cpp_source.html#l00025">NodeIDAllocator.cpp:25</a></div></div>
|