svf-tools 1.0.482 → 1.0.485
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/AndersenHCD_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/AndersenHLCD_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
- package/SVF-doxygen/html/html/BDDExpr_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +32 -32
- package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +11 -11
- package/SVF-doxygen/html/html/CFLAlias_8cpp.html +1 -0
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +46 -13
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +36 -13
- package/SVF-doxygen/html/html/CFLGramGraphChecker_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +74 -77
- package/SVF-doxygen/html/html/CFLGrammar_8txt.html +165 -39
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CFLGraph_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +16 -16
- package/SVF-doxygen/html/html/CFLSolver_8h_source.html +10 -10
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/CHG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CPPUtil_8h.html +4 -4
- package/SVF-doxygen/html/html/CSC_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/Casting_8h_source.html +2 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +4 -3
- package/SVF-doxygen/html/html/ConsG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DCHG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/ExeState_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +2 -2
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GrammarBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +6 -4
- package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/ICFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/MTA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Options_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/Options_8h_source.html +4 -4
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +6 -5
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +15 -13
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +12 -12
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFUtil_8h.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +3 -2
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/TCT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +1 -1
- package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +2 -1
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +3 -2
- package/SVF-doxygen/html/html/VFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +2 -1
- package/SVF-doxygen/html/html/cfl_8cpp.html +1 -1
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +54 -53
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +70 -63
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +415 -95
- package/SVF-doxygen/html/html/classSVF_1_1CFLFIFOWorkList.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver-members.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +39 -39
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +58 -58
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase_1_1SymbolHash.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +38 -38
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +40 -36
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SaberCheckerAPI.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +2 -2
- package/SVF-doxygen/html/html/classllvm_1_1GraphPrinter.html +1 -1
- package/SVF-doxygen/html/html/cuddInt_8c.html +30 -30
- package/SVF-doxygen/html/html/cuddInt_8c_source.html +3 -3
- package/SVF-doxygen/html/html/cuddInt_8h.html +10 -10
- package/SVF-doxygen/html/html/cudd_8h.html +14 -14
- package/SVF-doxygen/html/html/cudd_8h_source.html +2 -2
- package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/functions_a.html +11 -10
- package/SVF-doxygen/html/html/functions_c.html +30 -23
- package/SVF-doxygen/html/html/functions_func.html +12 -11
- package/SVF-doxygen/html/html/functions_func_c.html +11 -10
- package/SVF-doxygen/html/html/functions_func_h.html +3 -2
- package/SVF-doxygen/html/html/functions_func_n.html +1 -1
- package/SVF-doxygen/html/html/functions_func_o.html +4 -9
- package/SVF-doxygen/html/html/functions_func_s.html +1 -1
- package/SVF-doxygen/html/html/functions_func_u.html +1 -0
- package/SVF-doxygen/html/html/functions_g.html +5 -8
- package/SVF-doxygen/html/html/functions_h.html +2 -1
- package/SVF-doxygen/html/html/functions_i.html +6 -6
- package/SVF-doxygen/html/html/functions_l.html +5 -5
- package/SVF-doxygen/html/html/functions_n.html +1 -1
- package/SVF-doxygen/html/html/functions_o.html +14 -21
- package/SVF-doxygen/html/html/functions_p.html +12 -9
- package/SVF-doxygen/html/html/functions_r.html +4 -4
- package/SVF-doxygen/html/html/functions_s.html +10 -8
- package/SVF-doxygen/html/html/functions_t.html +3 -3
- package/SVF-doxygen/html/html/functions_type_c.html +1 -0
- package/SVF-doxygen/html/html/functions_u.html +1 -0
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_c.html +1 -0
- package/SVF-doxygen/html/html/functions_vars_g.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_p.html +3 -0
- package/SVF-doxygen/html/html/functions_w.html +6 -10
- package/SVF-doxygen/html/html/globals_a.html +3 -0
- package/SVF-doxygen/html/html/globals_f.html +2 -2
- package/SVF-doxygen/html/html/globals_g.html +10 -4
- package/SVF-doxygen/html/html/globals_l.html +4 -1
- package/SVF-doxygen/html/html/globals_m.html +15 -12
- package/SVF-doxygen/html/html/globals_s.html +17 -13
- package/SVF-doxygen/html/html/globals_vars.html +26 -5
- package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/namespaceSVF.html +2 -2
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +3 -3
- package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +12 -12
- package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/search/all_1.js +2 -1
- package/SVF-doxygen/html/html/search/all_10.js +8 -7
- package/SVF-doxygen/html/html/search/all_12.js +2 -2
- package/SVF-doxygen/html/html/search/all_13.js +12 -11
- package/SVF-doxygen/html/html/search/all_14.js +6 -6
- package/SVF-doxygen/html/html/search/all_15.js +2 -2
- package/SVF-doxygen/html/html/search/all_16.js +2 -2
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_3.js +2 -2
- package/SVF-doxygen/html/html/search/all_5.js +1 -1
- package/SVF-doxygen/html/html/search/all_6.js +2 -2
- package/SVF-doxygen/html/html/search/all_7.js +4 -3
- package/SVF-doxygen/html/html/search/all_8.js +1 -1
- package/SVF-doxygen/html/html/search/all_9.js +2 -2
- package/SVF-doxygen/html/html/search/all_c.js +6 -5
- package/SVF-doxygen/html/html/search/all_d.js +3 -2
- package/SVF-doxygen/html/html/search/all_e.js +3 -3
- package/SVF-doxygen/html/html/search/all_f.js +7 -9
- package/SVF-doxygen/html/html/search/functions_0.js +1 -1
- package/SVF-doxygen/html/html/search/functions_11.js +1 -1
- package/SVF-doxygen/html/html/search/functions_13.js +1 -1
- package/SVF-doxygen/html/html/search/functions_2.js +1 -1
- package/SVF-doxygen/html/html/search/functions_7.js +1 -1
- package/SVF-doxygen/html/html/search/functions_d.js +1 -1
- package/SVF-doxygen/html/html/search/functions_e.js +4 -6
- package/SVF-doxygen/html/html/search/typedefs_2.js +1 -1
- package/SVF-doxygen/html/html/search/variables_1.js +1 -0
- package/SVF-doxygen/html/html/search/variables_10.js +1 -0
- package/SVF-doxygen/html/html/search/variables_13.js +2 -0
- package/SVF-doxygen/html/html/search/variables_14.js +4 -4
- package/SVF-doxygen/html/html/search/variables_15.js +1 -1
- package/SVF-doxygen/html/html/search/variables_3.js +1 -1
- package/SVF-doxygen/html/html/search/variables_6.js +2 -2
- package/SVF-doxygen/html/html/search/variables_7.js +4 -3
- package/SVF-doxygen/html/html/search/variables_c.js +3 -2
- package/SVF-doxygen/html/html/search/variables_d.js +1 -0
- package/SVF-doxygen/html/html/search/variables_e.js +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol-members.html +10 -13
- package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +44 -145
- package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1SymbolVectorHash.html +3 -3
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +6 -5
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +4 -3
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01OfflineConsG_01_5_01_4.html +4 -3
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
- package/include/CFL/CFLAlias.h +50 -4
- package/include/CFL/CFLGrammar.h +9 -28
- package/include/CFL/CFLGrammar.txt +22 -1
- package/include/CFL/CFLSolver.h +10 -8
- package/include/Graphs/CFLGraph.h +0 -1
- package/include/Graphs/GraphPrinter.h +3 -3
- package/include/Util/Options.h +2 -2
- package/lib/CFL/CFGNormalizer.cpp +8 -14
- package/lib/CFL/CFLAlias.cpp +175 -6
- package/lib/CFL/CFLSolver.cpp +1 -0
- package/lib/Graphs/CFLGraph.cpp +0 -4
- package/lib/MemoryModel/PointerAnalysis.cpp +3 -0
- package/lib/Util/Options.cpp +8 -8
- package/package.json +1 -1
|
@@ -66,7 +66,7 @@ $(function() {
|
|
|
66
66
|
<div class="title">DDAStat.cpp</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="DDAStat_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * DDAStat.cpp</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Created on: Sep 15, 2014</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> */</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "<a class="code" href="DDAStat_8h.html">DDA/DDAStat.h</a>"</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="FlowDDA_8h.html">DDA/FlowDDA.h</a>"</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include "<a class="code" href="ContextDDA_8h.html">DDA/ContextDDA.h</a>"</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include "<a class="code" href="SVFGStat_8h.html">Graphs/SVFGStat.h</a>"</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "<a class="code" href="PointsTo_8h.html">MemoryModel/PointsTo.h</a>"</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <iomanip></span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">using namespace </span>SVFUtil;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#aef8db234efc3a5ae58a6d43de97ca361"> 19</a></span> <a class="code" href="classSVF_1_1DDAStat.html#aef8db234efc3a5ae58a6d43de97ca361">DDAStat::DDAStat</a>(<a class="code" href="classSVF_1_1FlowDDA.html">FlowDDA</a>* pta) : <a class="code" href="classSVF_1_1PTAStat.html">PTAStat</a>(pta), flowDDA(pta), contextDDA(nullptr)</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  <a class="code" href="classSVF_1_1DDAStat.html#ac7275c99ddd118696853188154ad6fbd">initDefault</a>();</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> }</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#ae7670e6458c62473b0be78004466b9d7"> 23</a></span> <a class="code" href="classSVF_1_1DDAStat.html#aef8db234efc3a5ae58a6d43de97ca361">DDAStat::DDAStat</a>(<a class="code" href="classSVF_1_1ContextDDA.html">ContextDDA</a>* <a class="code" href="classSVF_1_1PTAStat.html#a608441b95be0861d8c1b0a035281f4d5">pta</a>) : <a class="code" href="classSVF_1_1PTAStat.html">PTAStat</a>(pta), <a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>(nullptr), <a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>(pta)</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  <a class="code" href="classSVF_1_1DDAStat.html#ac7275c99ddd118696853188154ad6fbd">initDefault</a>();</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> }</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#ac7275c99ddd118696853188154ad6fbd"> 28</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAStat.html#ac7275c99ddd118696853188154ad6fbd">DDAStat::initDefault</a>()</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <a class="code" href="classSVF_1_1DDAStat.html#a89a4b18ce34e6899637ea183e4331ccd">_TotalNumOfQuery</a> = 0;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="classSVF_1_1DDAStat.html#a1f72d0026a7ab26aa8ac857e658c1015">_TotalNumOfOutOfBudgetQuery</a> = 0;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <a class="code" href="classSVF_1_1DDAStat.html#a5106639ea8a0d8ca38c2b1e11de9f183">_TotalNumOfDPM</a> = 0;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <a class="code" href="classSVF_1_1DDAStat.html#a65008c43bee55d59fd3975d4ad7f44a1">_TotalNumOfStrongUpdates</a> = 0;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <a class="code" href="classSVF_1_1DDAStat.html#a4f8bf2dd8409398ddf5659d0f52bb5e1">_TotalNumOfMustAliases</a> = 0;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="classSVF_1_1DDAStat.html#a1388b2d218d5c28eaf3f487950c99730">_TotalNumOfInfeasiblePath</a> = 0;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="classSVF_1_1DDAStat.html#a0a5f8453f5347087d0f208101119a172">_TotalNumOfStep</a> = 0;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="classSVF_1_1DDAStat.html#acca22153ac81b5e37734c9786856e605">_TotalNumOfStepInCycle</a> = 0;</div><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>  <a class="code" href="classSVF_1_1DDAStat.html#adfe649818cc19a9cd432ae25aa80018d">_NumOfIndCallEdgeSolved</a> = 0;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="classSVF_1_1DDAStat.html#ad07ab73cc0bc650c692de9983b126348">_MaxCPtsSize</a> = <a class="code" href="classSVF_1_1DDAStat.html#a2197491d64e5cf18f8cfa7bbd19edf86">_MaxPtsSize</a> = 0;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="classSVF_1_1DDAStat.html#a54ac2369d36af7fc5b91e0a07cc3619c">_TotalCPtsSize</a> = <a class="code" href="classSVF_1_1DDAStat.html#a1afb47b898f646f71d00c666373281e0">_TotalPtsSize</a> = 0;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="classSVF_1_1DDAStat.html#aaa9a3e110cb291530154e733428cd904">_NumOfNullPtr</a> = 0;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="classSVF_1_1DDAStat.html#a967b0def2602a596538973703ffaad5d">_NumOfConstantPtr</a> = 0;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classSVF_1_1DDAStat.html#af3f359ca7c620695b124573377bda407">_NumOfBlackholePtr</a> = 0;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="classSVF_1_1DDAStat.html#a36eafce8cdbb6492f6dd550606cfbd81">_AvgNumOfDPMAtSVFGNode</a> = 0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7b83dd2c2719ed3b308c65aa037d446b">_MaxNumOfDPMAtSVFGNode</a> = 0;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="classSVF_1_1DDAStat.html#ac3189db5d8e17f64fdfcc9b040cf6100">_TotalTimeOfQueries</a> = 0;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="classSVF_1_1DDAStat.html#a2b788792447d4bccceff2426b45a21b2">_AnaTimePerQuery</a> = 0;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="classSVF_1_1DDAStat.html#aae8366a4876154fa66298c7bf0fc47c4">_AnaTimeCyclePerQuery</a> = 0;</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> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">_NumOfDPM</a> = 0;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">_NumOfStrongUpdates</a> = 0;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="classSVF_1_1DDAStat.html#a0aec64ca944ea4f914a6fa799b7a8b38">_NumOfMustAliases</a> = 0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="classSVF_1_1DDAStat.html#a5ebc592d6bd7ef40aff848fb63e9e166">_NumOfInfeasiblePath</a> = 0;</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>  <a class="code" href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">_NumOfStep</a> = 0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">_NumOfStepInCycle</a> = 0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="classSVF_1_1DDAStat.html#a2b788792447d4bccceff2426b45a21b2">_AnaTimePerQuery</a> = 0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classSVF_1_1DDAStat.html#aae8366a4876154fa66298c7bf0fc47c4">_AnaTimeCyclePerQuery</a> = 0;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="classSVF_1_1DDAStat.html#ac3189db5d8e17f64fdfcc9b040cf6100">_TotalTimeOfQueries</a> = 0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classSVF_1_1DDAStat.html#a057c651a89d1dba04102bfc08ce7d372">_vmrssUsageBefore</a> = <a class="code" href="classSVF_1_1DDAStat.html#ae9ab20769220af396b72de5ae873f865">_vmrssUsageAfter</a> = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classSVF_1_1DDAStat.html#acab872c897c747157bb81f324bbab323">_vmsizeUsageBefore</a> = <a class="code" href="classSVF_1_1DDAStat.html#a4410e9704211836a96936a7c400562a3">_vmsizeUsageAfter</a> = 0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#a519cde27934fec9bbe28b4110948a418"> 67</a></span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1DDAStat.html#a519cde27934fec9bbe28b4110948a418">DDAStat::getSVFG</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword"></span>{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>-><a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>-><a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</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> }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#a55fa3ce574d128a89c1aa5f6a7dc17c6"> 76</a></span> <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* <a class="code" href="classSVF_1_1DDAStat.html#a55fa3ce574d128a89c1aa5f6a7dc17c6">DDAStat::getPTA</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword"></span>{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>;</div><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> </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#a11dd60d124a8d3433312589ede4e7b11"> 84</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAStat.html#a11dd60d124a8d3433312589ede4e7b11">DDAStat::performStatPerQuery</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptr)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> NumOfDPM = 0;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> NumOfLoc = 0;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> maxNumOfDPMPerLoc = 0;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> cptsSize = 0;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> pts;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>)</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>  <span class="keywordflow">for</span>(FlowDDA::LocToDPMVecMap::const_iterator it = <a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>->getLocToDPMVecMap().begin(),</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  eit = <a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>->getLocToDPMVecMap().end(); it!=eit; ++it)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  NumOfLoc++;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = it->second.size();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  NumOfDPM += num;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">if</span>(num > maxNumOfDPMPerLoc)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  maxNumOfDPMPerLoc = num;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  cptsSize = <a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(ptr).<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>();</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  pts = <a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(ptr);</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>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>)</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="keywordflow">for</span>(ContextDDA::LocToDPMVecMap::const_iterator it = <a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>->getLocToDPMVecMap().begin(),</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  eit = <a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>->getLocToDPMVecMap().end(); it!=eit; ++it)</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>  NumOfLoc++;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = it->second.size();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  NumOfDPM += num;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">if</span>(num > maxNumOfDPMPerLoc)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  maxNumOfDPMPerLoc = num;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a> var(cxt,ptr);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  cptsSize = <a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>-><a class="code" href="classSVF_1_1CondPTAImpl.html#a63fa2b3a96696ffc67a119c1ba5ce748">getPts</a>(var).<a class="code" href="classSVF_1_1CondStdSet.html#aa19e82905537f3ae41f64fce070ee555">count</a>();</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  pts = <a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>-><a class="code" href="classSVF_1_1CondPTAImpl.html#a94f3e4d073b8c5bab3c46058ddba3f43">getBVPointsTo</a>(<a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>-><a class="code" href="classSVF_1_1CondPTAImpl.html#a63fa2b3a96696ffc67a119c1ba5ce748">getPts</a>(var));</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> ptsSize = pts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordtype">double</span> avgDPMAtLoc = NumOfLoc!=0 ? (double)NumOfDPM/NumOfLoc : 0;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classSVF_1_1DDAStat.html#a36eafce8cdbb6492f6dd550606cfbd81">_AvgNumOfDPMAtSVFGNode</a> += avgDPMAtLoc;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">if</span>(maxNumOfDPMPerLoc > <a class="code" href="classSVF_1_1DDAStat.html#a7b83dd2c2719ed3b308c65aa037d446b">_MaxNumOfDPMAtSVFGNode</a>)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7b83dd2c2719ed3b308c65aa037d446b">_MaxNumOfDPMAtSVFGNode</a> = maxNumOfDPMPerLoc;</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="classSVF_1_1DDAStat.html#a54ac2369d36af7fc5b91e0a07cc3619c">_TotalCPtsSize</a> += cptsSize;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAStat.html#ad07ab73cc0bc650c692de9983b126348">_MaxCPtsSize</a> < cptsSize)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="classSVF_1_1DDAStat.html#ad07ab73cc0bc650c692de9983b126348">_MaxCPtsSize</a> = cptsSize;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="classSVF_1_1DDAStat.html#a1afb47b898f646f71d00c666373281e0">_TotalPtsSize</a> += ptsSize;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#a2197491d64e5cf18f8cfa7bbd19edf86">_MaxPtsSize</a> < ptsSize)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="classSVF_1_1DDAStat.html#a2197491d64e5cf18f8cfa7bbd19edf86">_MaxPtsSize</a> = ptsSize;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">if</span>(cptsSize == 0)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="classSVF_1_1DDAStat.html#aaa9a3e110cb291530154e733428cd904">_NumOfNullPtr</a>++;</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>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#a55fa3ce574d128a89c1aa5f6a7dc17c6">getPTA</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#a56368369bc37e37b13f19e5eb1890063">containBlackHoleNode</a>(pts))</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="classSVF_1_1DDAStat.html#a967b0def2602a596538973703ffaad5d">_NumOfConstantPtr</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>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#a55fa3ce574d128a89c1aa5f6a7dc17c6">getPTA</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#afa7d9f6209904acd7893ae583e28dafd">containConstantNode</a>(pts))</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="classSVF_1_1DDAStat.html#af3f359ca7c620695b124573377bda407">_NumOfBlackholePtr</a>++;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="classSVF_1_1DDAStat.html#a89a4b18ce34e6899637ea183e4331ccd">_TotalNumOfQuery</a>++;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="classSVF_1_1DDAStat.html#a5106639ea8a0d8ca38c2b1e11de9f183">_TotalNumOfDPM</a> += <a class="code" href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">_NumOfDPM</a>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="classSVF_1_1DDAStat.html#a65008c43bee55d59fd3975d4ad7f44a1">_TotalNumOfStrongUpdates</a> += <a class="code" href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">_NumOfStrongUpdates</a>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="classSVF_1_1DDAStat.html#a4f8bf2dd8409398ddf5659d0f52bb5e1">_TotalNumOfMustAliases</a> += <a class="code" href="classSVF_1_1DDAStat.html#a0aec64ca944ea4f914a6fa799b7a8b38">_NumOfMustAliases</a>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="classSVF_1_1DDAStat.html#a1388b2d218d5c28eaf3f487950c99730">_TotalNumOfInfeasiblePath</a> += <a class="code" href="classSVF_1_1DDAStat.html#a5ebc592d6bd7ef40aff848fb63e9e166">_NumOfInfeasiblePath</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>  <a class="code" href="classSVF_1_1DDAStat.html#a0a5f8453f5347087d0f208101119a172">_TotalNumOfStep</a> += <a class="code" href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">_NumOfStep</a>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1DDAStat.html#acca22153ac81b5e37734c9786856e605">_TotalNumOfStepInCycle</a> += <a class="code" href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">_NumOfStepInCycle</a>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.clear();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>.clear();</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_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"TimePerQuery"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a2b788792447d4bccceff2426b45a21b2">_AnaTimePerQuery</a>/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"CyleTimePerQuery"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#aae8366a4876154fa66298c7bf0fc47c4">_AnaTimeCyclePerQuery</a>/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</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>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"CPtsSize"</span>] = cptsSize;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"PtsSize"</span>] = ptsSize;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"NumOfStep"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">_NumOfStep</a>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"NumOfStepInCycle"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">_NumOfStepInCycle</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"NumOfDPM"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">_NumOfDPM</a>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"NumOfSU"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">_NumOfStrongUpdates</a>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"IndEdgeResolved"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a55fa3ce574d128a89c1aa5f6a7dc17c6">getPTA</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">getNumOfResolvedIndCallEdge</a>() - <a class="code" href="classSVF_1_1DDAStat.html#adfe649818cc19a9cd432ae25aa80018d">_NumOfIndCallEdgeSolved</a>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"AvgDPMAtLoc"</span>] = avgDPMAtLoc;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"MaxDPMAtLoc"</span>] = maxNumOfDPMPerLoc;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"MaxPathPerQuery"</span>] = <a class="code" href="classSVF_1_1ContextCond.html#a7d89351906ef4dff9adb1196f45bc9be">ContextCond::maximumPath</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"MaxCxtPerQuery"</span>] = <a class="code" href="classSVF_1_1ContextCond.html#a151b9f21eedd4fdd8f46b78bb456582d">ContextCond::maximumCxt</a>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"NumOfMustAA"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a0aec64ca944ea4f914a6fa799b7a8b38">_NumOfMustAliases</a>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"NumOfInfePath"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a5ebc592d6bd7ef40aff848fb63e9e166">_NumOfInfeasiblePath</a>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">_NumOfStep</a> = 0;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">_NumOfStepInCycle</a> = 0;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">_NumOfDPM</a> = 0;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">_NumOfStrongUpdates</a> = 0;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="classSVF_1_1DDAStat.html#a0aec64ca944ea4f914a6fa799b7a8b38">_NumOfMustAliases</a> = 0;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="classSVF_1_1DDAStat.html#a5ebc592d6bd7ef40aff848fb63e9e166">_NumOfInfeasiblePath</a> = 0;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="classSVF_1_1DDAStat.html#aae8366a4876154fa66298c7bf0fc47c4">_AnaTimeCyclePerQuery</a> = 0;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="classSVF_1_1DDAStat.html#adfe649818cc19a9cd432ae25aa80018d">_NumOfIndCallEdgeSolved</a> = <a class="code" href="classSVF_1_1DDAStat.html#a55fa3ce574d128a89c1aa5f6a7dc17c6">getPTA</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">getNumOfResolvedIndCallEdge</a>();</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#ab508281a78749ec5d7b5dc8231a4be11"> 189</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAStat.html#ab508281a78749ec5d7b5dc8231a4be11">DDAStat::getNumOfOOBQuery</a>()</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>)</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <a class="code" href="classSVF_1_1DDAStat.html#a1f72d0026a7ab26aa8ac857e658c1015">_TotalNumOfOutOfBudgetQuery</a> = <a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>-><a class="code" href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">outOfBudgetDpms</a>.size();</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>)</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="classSVF_1_1DDAStat.html#a1f72d0026a7ab26aa8ac857e658c1015">_TotalNumOfOutOfBudgetQuery</a> = <a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>-><a class="code" href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">outOfBudgetDpms</a>.size();</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#a6055573ae1844cfc559ff81b3b9c325c"> 197</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAStat.html#a6055573ae1844cfc559ff81b3b9c325c">DDAStat::performStat</a>()</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>.clear();</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>.clear();</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.clear();</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="classSVF_1_1PTAStat.html#a1772bc87370b5625f71edd4476277064">callgraphStat</a>();</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="classSVF_1_1DDAStat.html#ab508281a78749ec5d7b5dc8231a4be11">getNumOfOOBQuery</a>();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">SVFIR::const_iterator</a> nodeIt = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>()->begin(), nodeEit = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>()->end(); nodeIt != nodeEit; nodeIt++)</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = nodeIt->second;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">if</span>(SVFUtil::isa<ObjVar>(pagNode))</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#a55fa3ce574d128a89c1aa5f6a7dc17c6">getPTA</a>()->isLocalVarInRecursiveFun(nodeIt->first))</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="classSVF_1_1PTAStat.html#a5b4095f427c9c7b9ec0db497ba33baea">localVarInRecursion</a>.set(nodeIt->first);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"TotalQueryTime"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#ac3189db5d8e17f64fdfcc9b040cf6100">_TotalTimeOfQueries</a>/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgTimePerQuery"</span>] = (<a class="code" href="classSVF_1_1DDAStat.html#ac3189db5d8e17f64fdfcc9b040cf6100">_TotalTimeOfQueries</a>/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>)/<a class="code" href="classSVF_1_1DDAStat.html#a89a4b18ce34e6899637ea183e4331ccd">_TotalNumOfQuery</a>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"TotalBKCondTime"</span>] = (<a class="code" href="classSVF_1_1DDAStat.html#a9625c4623acc4f6ccaca1ec8f04f5a54">_TotalTimeOfBKCondition</a>/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfQuery"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a89a4b18ce34e6899637ea183e4331ccd">_TotalNumOfQuery</a>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfOOBQuery"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a1f72d0026a7ab26aa8ac857e658c1015">_TotalNumOfOutOfBudgetQuery</a>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfDPM"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a5106639ea8a0d8ca38c2b1e11de9f183">_TotalNumOfDPM</a>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfSU"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a65008c43bee55d59fd3975d4ad7f44a1">_TotalNumOfStrongUpdates</a>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfStoreSU"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#ad53ad7a958c05b45624d2859a6a9e647">_StrongUpdateStores</a>.count();</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfStep"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a0a5f8453f5347087d0f208101119a172">_TotalNumOfStep</a>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfStepInCycle"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#acca22153ac81b5e37734c9786856e605">_TotalNumOfStepInCycle</a>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgDPMAtLoc"</span>] = (double)<a class="code" href="classSVF_1_1DDAStat.html#a36eafce8cdbb6492f6dd550606cfbd81">_AvgNumOfDPMAtSVFGNode</a>/<a class="code" href="classSVF_1_1DDAStat.html#a89a4b18ce34e6899637ea183e4331ccd">_TotalNumOfQuery</a>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxDPMAtLoc"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a7b83dd2c2719ed3b308c65aa037d446b">_MaxNumOfDPMAtSVFGNode</a>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxPathPerQuery"</span>] = <a class="code" href="classSVF_1_1ContextCond.html#a7d89351906ef4dff9adb1196f45bc9be">ContextCond::maximumPath</a>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxCxtPerQuery"</span>] = <a class="code" href="classSVF_1_1ContextCond.html#a151b9f21eedd4fdd8f46b78bb456582d">ContextCond::maximumCxt</a>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxCPtsSize"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#ad07ab73cc0bc650c692de9983b126348">_MaxCPtsSize</a>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxPtsSize"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a2197491d64e5cf18f8cfa7bbd19edf86">_MaxPtsSize</a>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgCPtsSize"</span>] = (double)<a class="code" href="classSVF_1_1DDAStat.html#a54ac2369d36af7fc5b91e0a07cc3619c">_TotalCPtsSize</a>/<a class="code" href="classSVF_1_1DDAStat.html#a89a4b18ce34e6899637ea183e4331ccd">_TotalNumOfQuery</a>;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgPtsSize"</span>] = (double)<a class="code" href="classSVF_1_1DDAStat.html#a1afb47b898f646f71d00c666373281e0">_TotalPtsSize</a>/<a class="code" href="classSVF_1_1DDAStat.html#a89a4b18ce34e6899637ea183e4331ccd">_TotalNumOfQuery</a>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"IndEdgeSolved"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a55fa3ce574d128a89c1aa5f6a7dc17c6">getPTA</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">getNumOfResolvedIndCallEdge</a>();</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfNullPtr"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#aaa9a3e110cb291530154e733428cd904">_NumOfNullPtr</a>;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PointsToConstPtr"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a967b0def2602a596538973703ffaad5d">_NumOfConstantPtr</a>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PointsToBlkPtr"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#af3f359ca7c620695b124573377bda407">_NumOfBlackholePtr</a>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfMustAA"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a4f8bf2dd8409398ddf5659d0f52bb5e1">_TotalNumOfMustAliases</a>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfInfePath"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a1388b2d218d5c28eaf3f487950c99730">_TotalNumOfInfeasiblePath</a>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfStore"</span>] = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>()-><a class="code" href="classSVF_1_1SVFIR.html#a65a4af3d6f0bfc11e31f020bb2966576">getPTASVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>).size();</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MemoryUsageVmrss"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#ae9ab20769220af396b72de5ae873f865">_vmrssUsageAfter</a> - <a class="code" href="classSVF_1_1DDAStat.html#a057c651a89d1dba04102bfc08ce7d372">_vmrssUsageBefore</a>;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MemoryUsageVmsize"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a4410e9704211836a96936a7c400562a3">_vmsizeUsageAfter</a> - <a class="code" href="classSVF_1_1DDAStat.html#acab872c897c747157bb81f324bbab323">_vmsizeUsageBefore</a>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <a class="code" href="classSVF_1_1DDAStat.html#ae6fd32471e0b9bf51233a36676658b49">printStat</a>();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#ae695696e5cd06eb27635887f0de30eff"> 252</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAStat.html#ae695696e5cd06eb27635887f0de30eff">DDAStat::printStatPerQuery</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptr, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts)</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.empty() == <span class="keyword">false</span> && <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>.empty() == <span class="keyword">false</span>)</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>().flags(std::ios::left);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordtype">unsigned</span> field_width = 20;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"---------------------Stat Per Query--------------------------------\n"</span>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">for</span> (TIMEStatMap::iterator it = <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.begin(), eit = <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.end(); it != eit; ++it)</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="comment">// format out put with width 20 space</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << std::setw(field_width) << it->first << it->second << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">for</span> (NUMStatMap::iterator it = <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>.begin(), eit = <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>.end(); it != eit; ++it)</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="comment">// format out put with width 20 space</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << std::setw(field_width) << it->first << it->second << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <a class="code" href="classSVF_1_1DDAStat.html#a55fa3ce574d128a89c1aa5f6a7dc17c6">getPTA</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#a1a6cee7e690ccb3e53cdc4c3e67b386d">dumpPts</a>(ptr, pts);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div><div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#ae6fd32471e0b9bf51233a36676658b49"> 275</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAStat.html#ae6fd32471e0b9bf51233a36676658b49">DDAStat::printStat</a>(<span class="keywordtype">string</span> str)</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>)</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#aef98e8e9144a69bb7481fef5d2dcb303">FlowDDA::ConstSVFGEdgeSet</a> edgeSet;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>-><a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-><a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-><a class="code" href="classSVF_1_1SVFGStat.html#a87d5e8ec0e13416cff36a18644a5b94f">performSCCStat</a>(edgeSet);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>)</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>-><a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-><a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-><a class="code" href="classSVF_1_1SVFGStat.html#a87d5e8ec0e13416cff36a18644a5b94f">performSCCStat</a>(<a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>-><a class="code" href="classSVF_1_1ContextDDA.html#a0d407903c4b0d976da30538ff0c5fc41">getInsensitiveEdgeSet</a>());</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\n****Demand-Driven Pointer Analysis Statistics****\n"</span>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <a class="code" href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">PTAStat::printStat</a>(str);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> }</div><div class="ttc" id="classSVF_1_1DDAStat_html_a4410e9704211836a96936a7c400562a3"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a4410e9704211836a96936a7c400562a3">SVF::DDAStat::_vmsizeUsageAfter</a></div><div class="ttdeci">u32_t _vmsizeUsageAfter</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00094">DDAStat.h:94</a></div></div>
|
|
69
|
+
<a href="DDAStat_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * DDAStat.cpp</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Created on: Sep 15, 2014</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Author: Yulei Sui</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> */</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#include "<a class="code" href="DDAStat_8h.html">DDA/DDAStat.h</a>"</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="FlowDDA_8h.html">DDA/FlowDDA.h</a>"</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include "<a class="code" href="ContextDDA_8h.html">DDA/ContextDDA.h</a>"</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include "<a class="code" href="SVFGStat_8h.html">Graphs/SVFGStat.h</a>"</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="preprocessor">#include "<a class="code" href="PointsTo_8h.html">MemoryModel/PointsTo.h</a>"</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#include <iomanip></span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVFUtil.html">SVFUtil</a>;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#aef8db234efc3a5ae58a6d43de97ca361"> 19</a></span> <a class="code" href="classSVF_1_1DDAStat.html#aef8db234efc3a5ae58a6d43de97ca361">DDAStat::DDAStat</a>(<a class="code" href="classSVF_1_1FlowDDA.html">FlowDDA</a>* pta) : <a class="code" href="classSVF_1_1PTAStat.html">PTAStat</a>(pta), flowDDA(pta), contextDDA(nullptr)</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  <a class="code" href="classSVF_1_1DDAStat.html#ac7275c99ddd118696853188154ad6fbd">initDefault</a>();</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> }</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#ae7670e6458c62473b0be78004466b9d7"> 23</a></span> <a class="code" href="classSVF_1_1DDAStat.html#aef8db234efc3a5ae58a6d43de97ca361">DDAStat::DDAStat</a>(<a class="code" href="classSVF_1_1ContextDDA.html">ContextDDA</a>* <a class="code" href="classSVF_1_1PTAStat.html#a608441b95be0861d8c1b0a035281f4d5">pta</a>) : <a class="code" href="classSVF_1_1PTAStat.html">PTAStat</a>(pta), <a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>(nullptr), <a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>(pta)</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  <a class="code" href="classSVF_1_1DDAStat.html#ac7275c99ddd118696853188154ad6fbd">initDefault</a>();</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> }</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#ac7275c99ddd118696853188154ad6fbd"> 28</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAStat.html#ac7275c99ddd118696853188154ad6fbd">DDAStat::initDefault</a>()</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <a class="code" href="classSVF_1_1DDAStat.html#a89a4b18ce34e6899637ea183e4331ccd">_TotalNumOfQuery</a> = 0;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="classSVF_1_1DDAStat.html#a1f72d0026a7ab26aa8ac857e658c1015">_TotalNumOfOutOfBudgetQuery</a> = 0;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  <a class="code" href="classSVF_1_1DDAStat.html#a5106639ea8a0d8ca38c2b1e11de9f183">_TotalNumOfDPM</a> = 0;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  <a class="code" href="classSVF_1_1DDAStat.html#a65008c43bee55d59fd3975d4ad7f44a1">_TotalNumOfStrongUpdates</a> = 0;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>  <a class="code" href="classSVF_1_1DDAStat.html#a4f8bf2dd8409398ddf5659d0f52bb5e1">_TotalNumOfMustAliases</a> = 0;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>  <a class="code" href="classSVF_1_1DDAStat.html#a1388b2d218d5c28eaf3f487950c99730">_TotalNumOfInfeasiblePath</a> = 0;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  <a class="code" href="classSVF_1_1DDAStat.html#a0a5f8453f5347087d0f208101119a172">_TotalNumOfStep</a> = 0;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>  <a class="code" href="classSVF_1_1DDAStat.html#acca22153ac81b5e37734c9786856e605">_TotalNumOfStepInCycle</a> = 0;</div><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>  <a class="code" href="classSVF_1_1DDAStat.html#adfe649818cc19a9cd432ae25aa80018d">_NumOfIndCallEdgeSolved</a> = 0;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>  <a class="code" href="classSVF_1_1DDAStat.html#ad07ab73cc0bc650c692de9983b126348">_MaxCPtsSize</a> = <a class="code" href="classSVF_1_1DDAStat.html#a2197491d64e5cf18f8cfa7bbd19edf86">_MaxPtsSize</a> = 0;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="classSVF_1_1DDAStat.html#a54ac2369d36af7fc5b91e0a07cc3619c">_TotalCPtsSize</a> = <a class="code" href="classSVF_1_1DDAStat.html#a1afb47b898f646f71d00c666373281e0">_TotalPtsSize</a> = 0;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <a class="code" href="classSVF_1_1DDAStat.html#aaa9a3e110cb291530154e733428cd904">_NumOfNullPtr</a> = 0;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <a class="code" href="classSVF_1_1DDAStat.html#a967b0def2602a596538973703ffaad5d">_NumOfConstantPtr</a> = 0;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <a class="code" href="classSVF_1_1DDAStat.html#af3f359ca7c620695b124573377bda407">_NumOfBlackholePtr</a> = 0;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <a class="code" href="classSVF_1_1DDAStat.html#a36eafce8cdbb6492f6dd550606cfbd81">_AvgNumOfDPMAtSVFGNode</a> = 0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7b83dd2c2719ed3b308c65aa037d446b">_MaxNumOfDPMAtSVFGNode</a> = 0;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="classSVF_1_1DDAStat.html#ac3189db5d8e17f64fdfcc9b040cf6100">_TotalTimeOfQueries</a> = 0;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <a class="code" href="classSVF_1_1DDAStat.html#a2b788792447d4bccceff2426b45a21b2">_AnaTimePerQuery</a> = 0;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <a class="code" href="classSVF_1_1DDAStat.html#aae8366a4876154fa66298c7bf0fc47c4">_AnaTimeCyclePerQuery</a> = 0;</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> </div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <a class="code" href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">_NumOfDPM</a> = 0;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <a class="code" href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">_NumOfStrongUpdates</a> = 0;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <a class="code" href="classSVF_1_1DDAStat.html#a0aec64ca944ea4f914a6fa799b7a8b38">_NumOfMustAliases</a> = 0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <a class="code" href="classSVF_1_1DDAStat.html#a5ebc592d6bd7ef40aff848fb63e9e166">_NumOfInfeasiblePath</a> = 0;</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>  <a class="code" href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">_NumOfStep</a> = 0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>  <a class="code" href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">_NumOfStepInCycle</a> = 0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="classSVF_1_1DDAStat.html#a2b788792447d4bccceff2426b45a21b2">_AnaTimePerQuery</a> = 0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  <a class="code" href="classSVF_1_1DDAStat.html#aae8366a4876154fa66298c7bf0fc47c4">_AnaTimeCyclePerQuery</a> = 0;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="classSVF_1_1DDAStat.html#ac3189db5d8e17f64fdfcc9b040cf6100">_TotalTimeOfQueries</a> = 0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="classSVF_1_1DDAStat.html#a057c651a89d1dba04102bfc08ce7d372">_vmrssUsageBefore</a> = <a class="code" href="classSVF_1_1DDAStat.html#ae9ab20769220af396b72de5ae873f865">_vmrssUsageAfter</a> = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <a class="code" href="classSVF_1_1DDAStat.html#acab872c897c747157bb81f324bbab323">_vmsizeUsageBefore</a> = <a class="code" href="classSVF_1_1DDAStat.html#a4410e9704211836a96936a7c400562a3">_vmsizeUsageAfter</a> = 0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#a519cde27934fec9bbe28b4110948a418"> 67</a></span> <a class="code" href="classSVF_1_1SVFG.html">SVFG</a>* <a class="code" href="classSVF_1_1DDAStat.html#a519cde27934fec9bbe28b4110948a418">DDAStat::getSVFG</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> <span class="keyword"></span>{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>-><a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>-><a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</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> }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span> </div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#a55fa3ce574d128a89c1aa5f6a7dc17c6"> 76</a></span> <a class="code" href="classSVF_1_1PointerAnalysis.html">PointerAnalysis</a>* <a class="code" href="classSVF_1_1DDAStat.html#a55fa3ce574d128a89c1aa5f6a7dc17c6">DDAStat::getPTA</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword"></span>{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>;</div><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> </div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#a11dd60d124a8d3433312589ede4e7b11"> 84</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAStat.html#a11dd60d124a8d3433312589ede4e7b11">DDAStat::performStatPerQuery</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptr)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> NumOfDPM = 0;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> NumOfLoc = 0;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> maxNumOfDPMPerLoc = 0;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> cptsSize = 0;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> pts;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>)</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>  <span class="keywordflow">for</span>(FlowDDA::LocToDPMVecMap::const_iterator it = <a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>->getLocToDPMVecMap().begin(),</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  eit = <a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>->getLocToDPMVecMap().end(); it!=eit; ++it)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  NumOfLoc++;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = it->second.size();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  NumOfDPM += num;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordflow">if</span>(num > maxNumOfDPMPerLoc)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  maxNumOfDPMPerLoc = num;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  cptsSize = <a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(ptr).<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>();</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  pts = <a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>-><a class="code" href="classSVF_1_1BVDataPTAImpl.html#aee289e298e421448caaa604b7eb34fcb">getPts</a>(ptr);</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>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>)</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="keywordflow">for</span>(ContextDDA::LocToDPMVecMap::const_iterator it = <a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>->getLocToDPMVecMap().begin(),</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  eit = <a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>->getLocToDPMVecMap().end(); it!=eit; ++it)</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>  NumOfLoc++;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> num = it->second.size();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  NumOfDPM += num;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">if</span>(num > maxNumOfDPMPerLoc)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  maxNumOfDPMPerLoc = num;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  <a class="code" href="classSVF_1_1ContextCond.html">ContextCond</a> cxt;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="classSVF_1_1CondVar.html">CxtVar</a> var(cxt,ptr);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  cptsSize = <a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>-><a class="code" href="classSVF_1_1CondPTAImpl.html#a63fa2b3a96696ffc67a119c1ba5ce748">getPts</a>(var).<a class="code" href="classSVF_1_1CondStdSet.html#aa19e82905537f3ae41f64fce070ee555">count</a>();</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  pts = <a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>-><a class="code" href="classSVF_1_1CondPTAImpl.html#a94f3e4d073b8c5bab3c46058ddba3f43">getBVPointsTo</a>(<a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>-><a class="code" href="classSVF_1_1CondPTAImpl.html#a63fa2b3a96696ffc67a119c1ba5ce748">getPts</a>(var));</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> ptsSize = pts.<a class="code" href="classSVF_1_1PointsTo.html#a879783ba6629e500af9aa7dfcda2563d">count</a>();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordtype">double</span> avgDPMAtLoc = NumOfLoc!=0 ? (double)NumOfDPM/NumOfLoc : 0;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <a class="code" href="classSVF_1_1DDAStat.html#a36eafce8cdbb6492f6dd550606cfbd81">_AvgNumOfDPMAtSVFGNode</a> += avgDPMAtLoc;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">if</span>(maxNumOfDPMPerLoc > <a class="code" href="classSVF_1_1DDAStat.html#a7b83dd2c2719ed3b308c65aa037d446b">_MaxNumOfDPMAtSVFGNode</a>)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7b83dd2c2719ed3b308c65aa037d446b">_MaxNumOfDPMAtSVFGNode</a> = maxNumOfDPMPerLoc;</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="classSVF_1_1DDAStat.html#a54ac2369d36af7fc5b91e0a07cc3619c">_TotalCPtsSize</a> += cptsSize;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAStat.html#ad07ab73cc0bc650c692de9983b126348">_MaxCPtsSize</a> < cptsSize)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <a class="code" href="classSVF_1_1DDAStat.html#ad07ab73cc0bc650c692de9983b126348">_MaxCPtsSize</a> = cptsSize;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="classSVF_1_1DDAStat.html#a1afb47b898f646f71d00c666373281e0">_TotalPtsSize</a> += ptsSize;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#a2197491d64e5cf18f8cfa7bbd19edf86">_MaxPtsSize</a> < ptsSize)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <a class="code" href="classSVF_1_1DDAStat.html#a2197491d64e5cf18f8cfa7bbd19edf86">_MaxPtsSize</a> = ptsSize;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">if</span>(cptsSize == 0)</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="classSVF_1_1DDAStat.html#aaa9a3e110cb291530154e733428cd904">_NumOfNullPtr</a>++;</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>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#a55fa3ce574d128a89c1aa5f6a7dc17c6">getPTA</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#a56368369bc37e37b13f19e5eb1890063">containBlackHoleNode</a>(pts))</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="classSVF_1_1DDAStat.html#a967b0def2602a596538973703ffaad5d">_NumOfConstantPtr</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>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#a55fa3ce574d128a89c1aa5f6a7dc17c6">getPTA</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#afa7d9f6209904acd7893ae583e28dafd">containConstantNode</a>(pts))</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <a class="code" href="classSVF_1_1DDAStat.html#af3f359ca7c620695b124573377bda407">_NumOfBlackholePtr</a>++;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="classSVF_1_1DDAStat.html#a89a4b18ce34e6899637ea183e4331ccd">_TotalNumOfQuery</a>++;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="classSVF_1_1DDAStat.html#a5106639ea8a0d8ca38c2b1e11de9f183">_TotalNumOfDPM</a> += <a class="code" href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">_NumOfDPM</a>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <a class="code" href="classSVF_1_1DDAStat.html#a65008c43bee55d59fd3975d4ad7f44a1">_TotalNumOfStrongUpdates</a> += <a class="code" href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">_NumOfStrongUpdates</a>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="classSVF_1_1DDAStat.html#a4f8bf2dd8409398ddf5659d0f52bb5e1">_TotalNumOfMustAliases</a> += <a class="code" href="classSVF_1_1DDAStat.html#a0aec64ca944ea4f914a6fa799b7a8b38">_NumOfMustAliases</a>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <a class="code" href="classSVF_1_1DDAStat.html#a1388b2d218d5c28eaf3f487950c99730">_TotalNumOfInfeasiblePath</a> += <a class="code" href="classSVF_1_1DDAStat.html#a5ebc592d6bd7ef40aff848fb63e9e166">_NumOfInfeasiblePath</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>  <a class="code" href="classSVF_1_1DDAStat.html#a0a5f8453f5347087d0f208101119a172">_TotalNumOfStep</a> += <a class="code" href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">_NumOfStep</a>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1DDAStat.html#acca22153ac81b5e37734c9786856e605">_TotalNumOfStepInCycle</a> += <a class="code" href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">_NumOfStepInCycle</a>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span> </div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.clear();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>.clear();</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_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"TimePerQuery"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a2b788792447d4bccceff2426b45a21b2">_AnaTimePerQuery</a>/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"CyleTimePerQuery"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#aae8366a4876154fa66298c7bf0fc47c4">_AnaTimeCyclePerQuery</a>/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</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>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"CPtsSize"</span>] = cptsSize;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"PtsSize"</span>] = ptsSize;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"NumOfStep"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">_NumOfStep</a>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"NumOfStepInCycle"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">_NumOfStepInCycle</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"NumOfDPM"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">_NumOfDPM</a>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"NumOfSU"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">_NumOfStrongUpdates</a>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"IndEdgeResolved"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a55fa3ce574d128a89c1aa5f6a7dc17c6">getPTA</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">getNumOfResolvedIndCallEdge</a>() - <a class="code" href="classSVF_1_1DDAStat.html#adfe649818cc19a9cd432ae25aa80018d">_NumOfIndCallEdgeSolved</a>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"AvgDPMAtLoc"</span>] = avgDPMAtLoc;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"MaxDPMAtLoc"</span>] = maxNumOfDPMPerLoc;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"MaxPathPerQuery"</span>] = <a class="code" href="classSVF_1_1ContextCond.html#a7d89351906ef4dff9adb1196f45bc9be">ContextCond::maximumPath</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"MaxCxtPerQuery"</span>] = <a class="code" href="classSVF_1_1ContextCond.html#a151b9f21eedd4fdd8f46b78bb456582d">ContextCond::maximumCxt</a>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"NumOfMustAA"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a0aec64ca944ea4f914a6fa799b7a8b38">_NumOfMustAliases</a>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>[<span class="stringliteral">"NumOfInfePath"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a5ebc592d6bd7ef40aff848fb63e9e166">_NumOfInfeasiblePath</a>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <a class="code" href="classSVF_1_1DDAStat.html#a674248754300d58fcef8eaf09436249e">_NumOfStep</a> = 0;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <a class="code" href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">_NumOfStepInCycle</a> = 0;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <a class="code" href="classSVF_1_1DDAStat.html#a5ad94d2109b293d306f67741effc73aa">_NumOfDPM</a> = 0;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <a class="code" href="classSVF_1_1DDAStat.html#a5c007645d73bfc5cfefef672f3c1dcf1">_NumOfStrongUpdates</a> = 0;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <a class="code" href="classSVF_1_1DDAStat.html#a0aec64ca944ea4f914a6fa799b7a8b38">_NumOfMustAliases</a> = 0;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <a class="code" href="classSVF_1_1DDAStat.html#a5ebc592d6bd7ef40aff848fb63e9e166">_NumOfInfeasiblePath</a> = 0;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <a class="code" href="classSVF_1_1DDAStat.html#aae8366a4876154fa66298c7bf0fc47c4">_AnaTimeCyclePerQuery</a> = 0;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <a class="code" href="classSVF_1_1DDAStat.html#adfe649818cc19a9cd432ae25aa80018d">_NumOfIndCallEdgeSolved</a> = <a class="code" href="classSVF_1_1DDAStat.html#a55fa3ce574d128a89c1aa5f6a7dc17c6">getPTA</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">getNumOfResolvedIndCallEdge</a>();</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span> </div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#ab508281a78749ec5d7b5dc8231a4be11"> 189</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAStat.html#ab508281a78749ec5d7b5dc8231a4be11">DDAStat::getNumOfOOBQuery</a>()</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>)</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <a class="code" href="classSVF_1_1DDAStat.html#a1f72d0026a7ab26aa8ac857e658c1015">_TotalNumOfOutOfBudgetQuery</a> = <a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>-><a class="code" href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">outOfBudgetDpms</a>.size();</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>)</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="classSVF_1_1DDAStat.html#a1f72d0026a7ab26aa8ac857e658c1015">_TotalNumOfOutOfBudgetQuery</a> = <a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>-><a class="code" href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">outOfBudgetDpms</a>.size();</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span> }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span> </div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#a6055573ae1844cfc559ff81b3b9c325c"> 197</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAStat.html#a6055573ae1844cfc559ff81b3b9c325c">DDAStat::performStat</a>()</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span> {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <a class="code" href="classSVF_1_1PTAStat.html#afa718535839a939e51afc0f8c1fbdac6">generalNumMap</a>.clear();</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>.clear();</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.clear();</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span> </div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <a class="code" href="classSVF_1_1PTAStat.html#a1772bc87370b5625f71edd4476277064">callgraphStat</a>();</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span> </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="classSVF_1_1DDAStat.html#ab508281a78749ec5d7b5dc8231a4be11">getNumOfOOBQuery</a>();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1GenericGraph.html#a5dfa3f178d4abf37177d0d74ff4c6a97">SVFIR::const_iterator</a> nodeIt = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>()->begin(), nodeEit = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>()->end(); nodeIt != nodeEit; nodeIt++)</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <a class="code" href="classSVF_1_1SVFVar.html">PAGNode</a>* pagNode = nodeIt->second;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">if</span>(SVFUtil::isa<ObjVar>(pagNode))</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#a55fa3ce574d128a89c1aa5f6a7dc17c6">getPTA</a>()->isLocalVarInRecursiveFun(nodeIt->first))</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <a class="code" href="classSVF_1_1PTAStat.html#a5b4095f427c9c7b9ec0db497ba33baea">localVarInRecursion</a>.set(nodeIt->first);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"TotalQueryTime"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#ac3189db5d8e17f64fdfcc9b040cf6100">_TotalTimeOfQueries</a>/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgTimePerQuery"</span>] = (<a class="code" href="classSVF_1_1DDAStat.html#ac3189db5d8e17f64fdfcc9b040cf6100">_TotalTimeOfQueries</a>/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>)/<a class="code" href="classSVF_1_1DDAStat.html#a89a4b18ce34e6899637ea183e4331ccd">_TotalNumOfQuery</a>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"TotalBKCondTime"</span>] = (<a class="code" href="classSVF_1_1DDAStat.html#a9625c4623acc4f6ccaca1ec8f04f5a54">_TotalTimeOfBKCondition</a>/<a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfQuery"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a89a4b18ce34e6899637ea183e4331ccd">_TotalNumOfQuery</a>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfOOBQuery"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a1f72d0026a7ab26aa8ac857e658c1015">_TotalNumOfOutOfBudgetQuery</a>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfDPM"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a5106639ea8a0d8ca38c2b1e11de9f183">_TotalNumOfDPM</a>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfSU"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a65008c43bee55d59fd3975d4ad7f44a1">_TotalNumOfStrongUpdates</a>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfStoreSU"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#ad53ad7a958c05b45624d2859a6a9e647">_StrongUpdateStores</a>.count();</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfStep"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a0a5f8453f5347087d0f208101119a172">_TotalNumOfStep</a>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfStepInCycle"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#acca22153ac81b5e37734c9786856e605">_TotalNumOfStepInCycle</a>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgDPMAtLoc"</span>] = (double)<a class="code" href="classSVF_1_1DDAStat.html#a36eafce8cdbb6492f6dd550606cfbd81">_AvgNumOfDPMAtSVFGNode</a>/<a class="code" href="classSVF_1_1DDAStat.html#a89a4b18ce34e6899637ea183e4331ccd">_TotalNumOfQuery</a>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxDPMAtLoc"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a7b83dd2c2719ed3b308c65aa037d446b">_MaxNumOfDPMAtSVFGNode</a>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxPathPerQuery"</span>] = <a class="code" href="classSVF_1_1ContextCond.html#a7d89351906ef4dff9adb1196f45bc9be">ContextCond::maximumPath</a>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxCxtPerQuery"</span>] = <a class="code" href="classSVF_1_1ContextCond.html#a151b9f21eedd4fdd8f46b78bb456582d">ContextCond::maximumCxt</a>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxCPtsSize"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#ad07ab73cc0bc650c692de9983b126348">_MaxCPtsSize</a>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MaxPtsSize"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a2197491d64e5cf18f8cfa7bbd19edf86">_MaxPtsSize</a>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgCPtsSize"</span>] = (double)<a class="code" href="classSVF_1_1DDAStat.html#a54ac2369d36af7fc5b91e0a07cc3619c">_TotalCPtsSize</a>/<a class="code" href="classSVF_1_1DDAStat.html#a89a4b18ce34e6899637ea183e4331ccd">_TotalNumOfQuery</a>;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>[<span class="stringliteral">"AvgPtsSize"</span>] = (double)<a class="code" href="classSVF_1_1DDAStat.html#a1afb47b898f646f71d00c666373281e0">_TotalPtsSize</a>/<a class="code" href="classSVF_1_1DDAStat.html#a89a4b18ce34e6899637ea183e4331ccd">_TotalNumOfQuery</a>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"IndEdgeSolved"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a55fa3ce574d128a89c1aa5f6a7dc17c6">getPTA</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#ad2c8654a6672472f9bf17681aa9b60bb">getNumOfResolvedIndCallEdge</a>();</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfNullPtr"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#aaa9a3e110cb291530154e733428cd904">_NumOfNullPtr</a>;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PointsToConstPtr"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a967b0def2602a596538973703ffaad5d">_NumOfConstantPtr</a>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"PointsToBlkPtr"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#af3f359ca7c620695b124573377bda407">_NumOfBlackholePtr</a>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfMustAA"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a4f8bf2dd8409398ddf5659d0f52bb5e1">_TotalNumOfMustAliases</a>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfInfePath"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a1388b2d218d5c28eaf3f487950c99730">_TotalNumOfInfeasiblePath</a>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"NumOfStore"</span>] = <a class="code" href="classSVF_1_1SVFIR.html#a37cfa2aa4e7b98ef9dc8179f581a2362">SVFIR::getPAG</a>()-><a class="code" href="classSVF_1_1SVFIR.html#a65a4af3d6f0bfc11e31f020bb2966576">getPTASVFStmtSet</a>(<a class="code" href="classSVF_1_1SVFStmt.html#a0ab8621e75e75f03425c323b3ed62ce9aa0f700b514c431ec5329aec49df56dcc">SVFStmt::Store</a>).size();</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MemoryUsageVmrss"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#ae9ab20769220af396b72de5ae873f865">_vmrssUsageAfter</a> - <a class="code" href="classSVF_1_1DDAStat.html#a057c651a89d1dba04102bfc08ce7d372">_vmrssUsageBefore</a>;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <a class="code" href="classSVF_1_1PTAStat.html#afdb975520329be0c33cc7bdd51ba7031">PTNumStatMap</a>[<span class="stringliteral">"MemoryUsageVmsize"</span>] = <a class="code" href="classSVF_1_1DDAStat.html#a4410e9704211836a96936a7c400562a3">_vmsizeUsageAfter</a> - <a class="code" href="classSVF_1_1DDAStat.html#acab872c897c747157bb81f324bbab323">_vmsizeUsageBefore</a>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <a class="code" href="classSVF_1_1DDAStat.html#ae6fd32471e0b9bf51233a36676658b49">printStat</a>();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span> </div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#ae695696e5cd06eb27635887f0de30eff"> 252</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAStat.html#ae695696e5cd06eb27635887f0de30eff">DDAStat::printStatPerQuery</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> ptr, <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& pts)</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.empty() == <span class="keyword">false</span> && <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>.empty() == <span class="keyword">false</span>)</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>().flags(std::ios::left);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordtype">unsigned</span> field_width = 20;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"---------------------Stat Per Query--------------------------------\n"</span>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">for</span> (TIMEStatMap::iterator it = <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.begin(), eit = <a class="code" href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">timeStatMap</a>.end(); it != eit; ++it)</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="comment">// format out put with width 20 space</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << std::setw(field_width) << it->first << it->second << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">for</span> (NUMStatMap::iterator it = <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>.begin(), eit = <a class="code" href="classSVF_1_1DDAStat.html#a7dabcdacf00844415bd23ca241d885e9">NumPerQueryStatMap</a>.end(); it != eit; ++it)</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="comment">// format out put with width 20 space</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << std::setw(field_width) << it->first << it->second << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <a class="code" href="classSVF_1_1DDAStat.html#a55fa3ce574d128a89c1aa5f6a7dc17c6">getPTA</a>()-><a class="code" href="classSVF_1_1PointerAnalysis.html#a1a6cee7e690ccb3e53cdc4c3e67b386d">dumpPts</a>(ptr, pts);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span> }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span> </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span> </div><div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classSVF_1_1DDAStat.html#ae6fd32471e0b9bf51233a36676658b49"> 275</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1DDAStat.html#ae6fd32471e0b9bf51233a36676658b49">DDAStat::printStat</a>(<span class="keywordtype">string</span> str)</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>)</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <a class="code" href="classSVF_1_1DDAVFSolver.html#aef98e8e9144a69bb7481fef5d2dcb303">FlowDDA::ConstSVFGEdgeSet</a> edgeSet;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="classSVF_1_1DDAStat.html#a86e03ef25f150b98bc1f8c89bfd7fc77">flowDDA</a>-><a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-><a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-><a class="code" href="classSVF_1_1SVFGStat.html#a87d5e8ec0e13416cff36a18644a5b94f">performSCCStat</a>(edgeSet);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>)</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>-><a class="code" href="classSVF_1_1DDAVFSolver.html#acb7980c7e0d1d8ad6abab0b80831d2a9">getSVFG</a>()-><a class="code" href="classSVF_1_1SVFG.html#a8ba934714a7f2caf2e041002fdb66137">getStat</a>()-><a class="code" href="classSVF_1_1SVFGStat.html#a87d5e8ec0e13416cff36a18644a5b94f">performSCCStat</a>(<a class="code" href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">contextDDA</a>-><a class="code" href="classSVF_1_1ContextDDA.html#a0d407903c4b0d976da30538ff0c5fc41">getInsensitiveEdgeSet</a>());</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span> </div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\n****Demand-Driven Pointer Analysis Statistics****\n"</span>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <a class="code" href="classSVF_1_1PTAStat.html#aa5f455bfa79743b8e263431593d29bbf">PTAStat::printStat</a>(str);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span> }</div><div class="ttc" id="classSVF_1_1DDAStat_html_a4410e9704211836a96936a7c400562a3"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a4410e9704211836a96936a7c400562a3">SVF::DDAStat::_vmsizeUsageAfter</a></div><div class="ttdeci">u32_t _vmsizeUsageAfter</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00094">DDAStat.h:94</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_1_1DDAStat_html_a89a4b18ce34e6899637ea183e4331ccd"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a89a4b18ce34e6899637ea183e4331ccd">SVF::DDAStat::_TotalNumOfQuery</a></div><div class="ttdeci">u32_t _TotalNumOfQuery</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00072">DDAStat.h:72</a></div></div>
|
|
71
71
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a56368369bc37e37b13f19e5eb1890063"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a56368369bc37e37b13f19e5eb1890063">SVF::PointerAnalysis::containBlackHoleNode</a></div><div class="ttdeci">bool containBlackHoleNode(const PointsTo &pts)</div><div class="ttdoc">Determine whether a points-to contains a black hole or constant node. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00296">PointerAnalysis.h:296</a></div></div>
|
|
72
72
|
<div class="ttc" id="classSVF_1_1CondStdSet_html_aa19e82905537f3ae41f64fce070ee555"><div class="ttname"><a href="classSVF_1_1CondStdSet.html#aa19e82905537f3ae41f64fce070ee555">SVF::CondStdSet::count</a></div><div class="ttdeci">unsigned count() const</div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00177">ConditionalPT.h:177</a></div></div>
|
|
@@ -103,7 +103,7 @@ $(function() {
|
|
|
103
103
|
<div class="ttc" id="ContextDDA_8h_html"><div class="ttname"><a href="ContextDDA_8h.html">ContextDDA.h</a></div></div>
|
|
104
104
|
<div class="ttc" id="classSVF_1_1DDAVFSolver_html_aad57a954473f3099188cf8c8fba87880"><div class="ttname"><a href="classSVF_1_1DDAVFSolver.html#aad57a954473f3099188cf8c8fba87880">SVF::DDAVFSolver::outOfBudgetDpms</a></div><div class="ttdeci">DPTItemSet outOfBudgetDpms</div><div class="ttdoc">out of budget dpm set </div><div class="ttdef"><b>Definition:</b> <a href="DDAVFSolver_8h_source.html#l00766">DDAVFSolver.h:766</a></div></div>
|
|
105
105
|
<div class="ttc" id="classSVF_1_1CondVar_html"><div class="ttname"><a href="classSVF_1_1CondVar.html">SVF::CondVar</a></div><div class="ttdef"><b>Definition:</b> <a href="ConditionalPT_8h_source.html#l00045">ConditionalPT.h:45</a></div></div>
|
|
106
|
-
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a1a6cee7e690ccb3e53cdc4c3e67b386d"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a1a6cee7e690ccb3e53cdc4c3e67b386d">SVF::PointerAnalysis::dumpPts</a></div><div class="ttdeci">virtual void dumpPts(NodeID ptr, const PointsTo &pts)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#
|
|
106
|
+
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a1a6cee7e690ccb3e53cdc4c3e67b386d"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a1a6cee7e690ccb3e53cdc4c3e67b386d">SVF::PointerAnalysis::dumpPts</a></div><div class="ttdeci">virtual void dumpPts(NodeID ptr, const PointsTo &pts)</div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8cpp_source.html#l00274">PointerAnalysis.cpp:274</a></div></div>
|
|
107
107
|
<div class="ttc" id="SVFGStat_8h_html"><div class="ttname"><a href="SVFGStat_8h.html">SVFGStat.h</a></div></div>
|
|
108
108
|
<div class="ttc" id="classSVF_1_1ContextCond_html_a151b9f21eedd4fdd8f46b78bb456582d"><div class="ttname"><a href="classSVF_1_1ContextCond.html#a151b9f21eedd4fdd8f46b78bb456582d">SVF::ContextCond::maximumCxt</a></div><div class="ttdeci">static u32_t maximumCxt</div><div class="ttdef"><b>Definition:</b> <a href="DPItem_8h_source.html#l00353">DPItem.h:353</a></div></div>
|
|
109
109
|
<div class="ttc" id="classSVF_1_1DDAStat_html_ac3fb8b15c5308c926209a941c7cf62e1"><div class="ttname"><a href="classSVF_1_1DDAStat.html#ac3fb8b15c5308c926209a941c7cf62e1">SVF::DDAStat::contextDDA</a></div><div class="ttdeci">ContextDDA * contextDDA</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00070">DDAStat.h:70</a></div></div>
|
|
@@ -117,6 +117,7 @@ $(function() {
|
|
|
117
117
|
<div class="ttc" id="classSVF_1_1DDAStat_html_ad07ab73cc0bc650c692de9983b126348"><div class="ttname"><a href="classSVF_1_1DDAStat.html#ad07ab73cc0bc650c692de9983b126348">SVF::DDAStat::_MaxCPtsSize</a></div><div class="ttdeci">u32_t _MaxCPtsSize</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00083">DDAStat.h:83</a></div></div>
|
|
118
118
|
<div class="ttc" id="classSVF_1_1ContextDDA_html_a0d407903c4b0d976da30538ff0c5fc41"><div class="ttname"><a href="classSVF_1_1ContextDDA.html#a0d407903c4b0d976da30538ff0c5fc41">SVF::ContextDDA::getInsensitiveEdgeSet</a></div><div class="ttdeci">ConstSVFGEdgeSet & getInsensitiveEdgeSet()</div><div class="ttdoc">Return insensitive edge set. </div><div class="ttdef"><b>Definition:</b> <a href="ContextDDA_8h_source.html#l00178">ContextDDA.h:178</a></div></div>
|
|
119
119
|
<div class="ttc" id="classSVF_1_1PTAStat_html_a3724756ac0527ba3d199be32e38c6337"><div class="ttname"><a href="classSVF_1_1PTAStat.html#a3724756ac0527ba3d199be32e38c6337">SVF::PTAStat::timeStatMap</a></div><div class="ttdeci">TIMEStatMap timeStatMap</div><div class="ttdef"><b>Definition:</b> <a href="PTAStat_8h_source.html#l00149">PTAStat.h:149</a></div></div>
|
|
120
|
+
<div class="ttc" id="namespaceSVFUtil_html"><div class="ttname"><a href="namespaceSVFUtil.html">SVFUtil</a></div></div>
|
|
120
121
|
<div class="ttc" id="classSVF_1_1DDAStat_html_a65008c43bee55d59fd3975d4ad7f44a1"><div class="ttname"><a href="classSVF_1_1DDAStat.html#a65008c43bee55d59fd3975d4ad7f44a1">SVF::DDAStat::_TotalNumOfStrongUpdates</a></div><div class="ttdeci">u32_t _TotalNumOfStrongUpdates</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00075">DDAStat.h:75</a></div></div>
|
|
121
122
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs() </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00049">SVFUtil.h:49</a></div></div>
|
|
122
123
|
<div class="ttc" id="classSVF_1_1DDAStat_html_aa9daed44e9d2ca2722ea9ab9d4517a21"><div class="ttname"><a href="classSVF_1_1DDAStat.html#aa9daed44e9d2ca2722ea9ab9d4517a21">SVF::DDAStat::_NumOfStepInCycle</a></div><div class="ttdeci">u64_t _NumOfStepInCycle</div><div class="ttdef"><b>Definition:</b> <a href="DDAStat_8h_source.html#l00038">DDAStat.h:38</a></div></div>
|