svf-tools 1.0.596 → 1.0.597
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/Andersen_8h_source.html +5 -5
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +5 -5
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +4 -4
- package/SVF-doxygen/html/html/CFLGraph_8cpp.html +3 -2
- package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +15 -16
- package/SVF-doxygen/html/html/CFLGraph_8h.html +4 -6
- package/SVF-doxygen/html/html/CFLGraph_8h_source.html +19 -20
- package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/CFLStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/CHG_8cpp.html +6 -5
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +26 -27
- package/SVF-doxygen/html/html/CHG_8h.html +4 -6
- package/SVF-doxygen/html/html/CHG_8h_source.html +13 -14
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +7 -7
- package/SVF-doxygen/html/html/ConsG_8cpp.html +3 -2
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +27 -28
- package/SVF-doxygen/html/html/ConsG_8h.html +4 -6
- package/SVF-doxygen/html/html/ConsG_8h_source.html +10 -11
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +4 -4
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +21 -21
- package/SVF-doxygen/html/html/DCHG_8h.html +4 -6
- package/SVF-doxygen/html/html/DCHG_8h_source.html +15 -16
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +8 -8
- package/SVF-doxygen/html/html/DOTGraphTraits_8h.html +4 -3
- package/SVF-doxygen/html/html/DOTGraphTraits_8h_source.html +24 -24
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/GenericGraph_8h.html +8 -9
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +125 -125
- package/SVF-doxygen/html/html/GraphPrinter_8h.html +3 -2
- package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +7 -7
- package/SVF-doxygen/html/html/GraphReachSolver_8h_source.html +4 -4
- package/SVF-doxygen/html/html/GraphTraits_8h.html +20 -19
- package/SVF-doxygen/html/html/GraphTraits_8h_source.html +13 -13
- package/SVF-doxygen/html/html/GraphWriter_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/GraphWriter_8h.html +23 -22
- package/SVF-doxygen/html/html/GraphWriter_8h_source.html +48 -48
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +7 -7
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +7 -7
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ICFG_8cpp.html +3 -2
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +27 -28
- package/SVF-doxygen/html/html/ICFG_8h.html +4 -6
- package/SVF-doxygen/html/html/ICFG_8h_source.html +14 -15
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/IRGraph_8cpp.html +3 -2
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +20 -21
- package/SVF-doxygen/html/html/IRGraph_8h.html +4 -6
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +9 -10
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +38 -39
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +19 -19
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +16 -9
- package/SVF-doxygen/html/html/LLVMUtil_8h.html +6 -0
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +6 -4
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +23 -23
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +23 -23
- package/SVF-doxygen/html/html/MHP_8h_source.html +4 -4
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +21 -21
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/PCG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PTACallGraph_8cpp.html +3 -2
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +27 -28
- package/SVF-doxygen/html/html/PTACallGraph_8h.html +4 -6
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +17 -18
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SCC_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +9 -9
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SVFG_8cpp.html +3 -2
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +23 -24
- package/SVF-doxygen/html/html/SVFG_8h.html +1 -3
- package/SVF-doxygen/html/html/SVFG_8h_source.html +13 -14
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +15 -14
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +12 -12
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +9 -9
- package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +16 -19
- package/SVF-doxygen/html/html/SVFValue_8h.html +3 -3
- package/SVF-doxygen/html/html/SVFValue_8h_source.html +210 -213
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +13 -14
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +3 -4
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +7 -10
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +3 -4
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +2 -2
- package/SVF-doxygen/html/html/TCT_8cpp.html +3 -2
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +38 -39
- package/SVF-doxygen/html/html/TCT_8h.html +4 -6
- package/SVF-doxygen/html/html/TCT_8h_source.html +27 -28
- package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +6 -6
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +7 -7
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/VFGEdge_8h_source.html +6 -6
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +8 -8
- package/SVF-doxygen/html/html/VFG_8cpp.html +3 -2
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +20 -21
- package/SVF-doxygen/html/html/VFG_8h.html +4 -6
- package/SVF-doxygen/html/html/VFG_8h_source.html +14 -15
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +3 -3
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WPASolver_8h_source.html +4 -4
- package/SVF-doxygen/html/html/annotated.html +291 -291
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AddrCGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1CFLEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CFLNode-members.html +45 -44
- package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CFLStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +56 -56
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +30 -30
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DCHEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +35 -35
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +31 -31
- package/SVF-doxygen/html/html/classSVF_1_1GenericGraph.html +44 -44
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +98 -97
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GraphPrinter-members.html +83 -0
- package/SVF-doxygen/html/html/classSVF_1_1GraphPrinter.html +236 -0
- package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1GraphWriter-members.html +100 -0
- package/SVF-doxygen/html/html/classSVF_1_1GraphWriter.html +882 -0
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +69 -69
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +50 -50
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +55 -55
- package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +37 -37
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +36 -36
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +28 -28
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +40 -40
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1RaceValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SCCDetection-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFArgument-members.html +7 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFArgument.html +16 -20
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +8 -10
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +56 -63
- package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue-members.html +6 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue.html +7 -11
- package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst-members.html +12 -14
- package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +34 -38
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstant-members.html +6 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstant.html +5 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData-members.html +6 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData.html +7 -11
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP-members.html +6 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP.html +10 -14
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt-members.html +6 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt.html +14 -18
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr-members.html +6 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr.html +7 -11
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +23 -25
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +115 -119
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +43 -43
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue-members.html +9 -11
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +14 -18
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +35 -35
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +48 -47
- package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction-members.html +11 -13
- package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +31 -35
- package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue-members.html +6 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue.html +7 -11
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue-members.html +6 -8
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue.html +5 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFType.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +25 -28
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +38 -128
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst-members.html +14 -16
- package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst.html +29 -33
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +46 -46
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver-members.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder-members.html +2 -3
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +21 -54
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +72 -72
- package/SVF-doxygen/html/html/classSVF_1_1TCTNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +3 -4
- package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +35 -35
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1WPASolver-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1iter__adaptor__base-members.html +112 -0
- package/SVF-doxygen/html/html/classSVF_1_1iter__adaptor__base.html +633 -0
- package/SVF-doxygen/html/html/classSVF_1_1iter__adaptor__base.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base-members.html +102 -0
- package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base.html +787 -0
- package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base_1_1ReferenceProxy-members.html +84 -0
- package/SVF-doxygen/html/html/classSVF_1_1iter__facade__base_1_1ReferenceProxy.html +229 -0
- package/SVF-doxygen/html/html/classSVF_1_1iter__range-members.html +87 -0
- package/SVF-doxygen/html/html/classSVF_1_1iter__range.html +342 -0
- package/SVF-doxygen/html/html/classSVF_1_1mapped__iter-members.html +112 -0
- package/SVF-doxygen/html/html/classSVF_1_1mapped__iter.html +322 -0
- package/SVF-doxygen/html/html/classSVF_1_1mapped__iter.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1pointer__iterator-members.html +113 -0
- package/SVF-doxygen/html/html/classSVF_1_1pointer__iterator.html +343 -0
- package/SVF-doxygen/html/html/classSVF_1_1pointer__iterator.png +0 -0
- package/SVF-doxygen/html/html/classes.html +59 -59
- package/SVF-doxygen/html/html/dda_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/fastcluster__R__dm_8cpp_8inc_source.html +2 -2
- package/SVF-doxygen/html/html/functions_a.html +1 -1
- package/SVF-doxygen/html/html/functions_b.html +4 -4
- package/SVF-doxygen/html/html/functions_c.html +20 -18
- package/SVF-doxygen/html/html/functions_d.html +20 -20
- package/SVF-doxygen/html/html/functions_e.html +14 -16
- package/SVF-doxygen/html/html/functions_eval_i.html +2 -2
- package/SVF-doxygen/html/html/functions_f.html +1 -1
- package/SVF-doxygen/html/html/functions_func.html +1 -1
- package/SVF-doxygen/html/html/functions_func_b.html +2 -2
- package/SVF-doxygen/html/html/functions_func_c.html +4 -4
- package/SVF-doxygen/html/html/functions_func_d.html +14 -14
- package/SVF-doxygen/html/html/functions_func_e.html +8 -8
- package/SVF-doxygen/html/html/functions_func_g.html +72 -72
- package/SVF-doxygen/html/html/functions_func_h.html +4 -7
- package/SVF-doxygen/html/html/functions_func_i.html +17 -20
- package/SVF-doxygen/html/html/functions_func_m.html +1 -1
- package/SVF-doxygen/html/html/functions_func_n.html +3 -3
- package/SVF-doxygen/html/html/functions_func_o.html +24 -24
- package/SVF-doxygen/html/html/functions_func_p.html +4 -4
- package/SVF-doxygen/html/html/functions_func_r.html +2 -2
- package/SVF-doxygen/html/html/functions_func_s.html +15 -18
- package/SVF-doxygen/html/html/functions_func_w.html +8 -8
- package/SVF-doxygen/html/html/functions_g.html +84 -82
- package/SVF-doxygen/html/html/functions_h.html +6 -12
- package/SVF-doxygen/html/html/functions_i.html +40 -43
- package/SVF-doxygen/html/html/functions_l.html +3 -3
- package/SVF-doxygen/html/html/functions_m.html +1 -1
- package/SVF-doxygen/html/html/functions_n.html +30 -30
- package/SVF-doxygen/html/html/functions_o.html +39 -43
- package/SVF-doxygen/html/html/functions_p.html +16 -16
- package/SVF-doxygen/html/html/functions_r.html +8 -6
- package/SVF-doxygen/html/html/functions_rela.html +3 -3
- package/SVF-doxygen/html/html/functions_s.html +22 -25
- package/SVF-doxygen/html/html/functions_t.html +3 -3
- package/SVF-doxygen/html/html/functions_type_b.html +1 -1
- package/SVF-doxygen/html/html/functions_type_c.html +7 -7
- package/SVF-doxygen/html/html/functions_type_d.html +4 -4
- package/SVF-doxygen/html/html/functions_type_e.html +4 -4
- package/SVF-doxygen/html/html/functions_type_g.html +6 -6
- package/SVF-doxygen/html/html/functions_type_i.html +4 -4
- package/SVF-doxygen/html/html/functions_type_n.html +27 -27
- package/SVF-doxygen/html/html/functions_type_p.html +3 -3
- package/SVF-doxygen/html/html/functions_type_r.html +2 -2
- package/SVF-doxygen/html/html/functions_type_v.html +2 -2
- package/SVF-doxygen/html/html/functions_v.html +5 -5
- package/SVF-doxygen/html/html/functions_vars_b.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_d.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_e.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_f.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_g.html +7 -5
- package/SVF-doxygen/html/html/functions_vars_h.html +0 -3
- package/SVF-doxygen/html/html/functions_vars_i.html +6 -6
- package/SVF-doxygen/html/html/functions_vars_o.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_p.html +1 -1
- package/SVF-doxygen/html/html/functions_w.html +17 -17
- package/SVF-doxygen/html/html/hierarchy.html +159 -159
- package/SVF-doxygen/html/html/include_2MTA_2MTAResultValidator_8h_source.html +4 -4
- package/SVF-doxygen/html/html/iterator_8h.html +16 -15
- package/SVF-doxygen/html/html/iterator_8h_source.html +53 -53
- package/SVF-doxygen/html/html/iterator__range_8h.html +9 -8
- package/SVF-doxygen/html/html/iterator__range_8h_source.html +11 -11
- package/SVF-doxygen/html/html/mta_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/namespaceSVF.html +575 -9
- package/SVF-doxygen/html/html/namespaceSVF_1_1DOT.html +107 -0
- package/SVF-doxygen/html/html/namespaceSVF_1_1GraphProgram.html +122 -0
- package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +65 -7
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +3 -3
- package/SVF-doxygen/html/html/namespacellvm.html +1 -572
- package/SVF-doxygen/html/html/namespacemembers_c.html +3 -3
- package/SVF-doxygen/html/html/namespacemembers_d.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_e.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_enum.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_eval.html +5 -5
- package/SVF-doxygen/html/html/namespacemembers_f.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_func_c.html +2 -2
- package/SVF-doxygen/html/html/namespacemembers_func_e.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_func_i.html +8 -5
- package/SVF-doxygen/html/html/namespacemembers_func_m.html +4 -4
- package/SVF-doxygen/html/html/namespacemembers_func_n.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_func_v.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_func_w.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_g.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_i.html +6 -3
- package/SVF-doxygen/html/html/namespacemembers_m.html +4 -4
- package/SVF-doxygen/html/html/namespacemembers_n.html +3 -3
- package/SVF-doxygen/html/html/namespacemembers_r.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_t.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_type_g.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_type_r.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_v.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_w.html +1 -1
- package/SVF-doxygen/html/html/namespaces.html +5 -5
- package/SVF-doxygen/html/html/saber_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/search/all_1.js +1 -1
- package/SVF-doxygen/html/html/search/all_10.js +12 -12
- package/SVF-doxygen/html/html/search/all_11.js +7 -7
- package/SVF-doxygen/html/html/search/all_12.js +7 -6
- package/SVF-doxygen/html/html/search/all_13.js +7 -7
- package/SVF-doxygen/html/html/search/all_15.js +4 -4
- package/SVF-doxygen/html/html/search/all_16.js +10 -10
- package/SVF-doxygen/html/html/search/all_2.js +3 -3
- package/SVF-doxygen/html/html/search/all_3.js +7 -7
- package/SVF-doxygen/html/html/search/all_4.js +20 -20
- package/SVF-doxygen/html/html/search/all_5.js +9 -9
- package/SVF-doxygen/html/html/search/all_6.js +2 -2
- package/SVF-doxygen/html/html/search/all_7.js +87 -87
- package/SVF-doxygen/html/html/search/all_8.js +1 -3
- package/SVF-doxygen/html/html/search/all_9.js +23 -23
- package/SVF-doxygen/html/html/search/all_c.js +2 -4
- package/SVF-doxygen/html/html/search/all_d.js +5 -5
- package/SVF-doxygen/html/html/search/all_e.js +11 -11
- package/SVF-doxygen/html/html/search/all_f.js +19 -19
- package/SVF-doxygen/html/html/search/classes_3.js +13 -13
- package/SVF-doxygen/html/html/search/classes_6.js +64 -64
- package/SVF-doxygen/html/html/search/classes_8.js +10 -10
- package/SVF-doxygen/html/html/search/classes_a.js +1 -1
- package/SVF-doxygen/html/html/search/classes_d.js +2 -2
- package/SVF-doxygen/html/html/search/classes_e.js +1 -1
- package/SVF-doxygen/html/html/search/enums_8.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_10.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_2.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_3.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_5.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_8.js +2 -2
- package/SVF-doxygen/html/html/search/enumvalues_b.js +1 -1
- package/SVF-doxygen/html/html/search/functions_0.js +1 -1
- package/SVF-doxygen/html/html/search/functions_1.js +1 -1
- package/SVF-doxygen/html/html/search/functions_10.js +2 -2
- package/SVF-doxygen/html/html/search/functions_11.js +1 -2
- package/SVF-doxygen/html/html/search/functions_14.js +1 -1
- package/SVF-doxygen/html/html/search/functions_15.js +8 -8
- package/SVF-doxygen/html/html/search/functions_2.js +4 -4
- package/SVF-doxygen/html/html/search/functions_3.js +5 -5
- package/SVF-doxygen/html/html/search/functions_4.js +7 -7
- package/SVF-doxygen/html/html/search/functions_6.js +21 -21
- package/SVF-doxygen/html/html/search/functions_7.js +1 -2
- package/SVF-doxygen/html/html/search/functions_8.js +8 -8
- package/SVF-doxygen/html/html/search/functions_c.js +5 -5
- package/SVF-doxygen/html/html/search/functions_d.js +4 -4
- package/SVF-doxygen/html/html/search/functions_e.js +14 -14
- package/SVF-doxygen/html/html/search/functions_f.js +4 -4
- package/SVF-doxygen/html/html/search/namespaces_0.js +0 -2
- package/SVF-doxygen/html/html/search/namespaces_1.js +2 -0
- package/SVF-doxygen/html/html/search/related_9.js +3 -3
- package/SVF-doxygen/html/html/search/typedefs_1.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_13.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_2.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_3.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_4.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_6.js +3 -3
- package/SVF-doxygen/html/html/search/typedefs_7.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_c.js +4 -4
- package/SVF-doxygen/html/html/search/typedefs_e.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_f.js +2 -2
- package/SVF-doxygen/html/html/search/variables_10.js +1 -1
- package/SVF-doxygen/html/html/search/variables_13.js +3 -3
- package/SVF-doxygen/html/html/search/variables_2.js +1 -1
- package/SVF-doxygen/html/html/search/variables_4.js +1 -1
- package/SVF-doxygen/html/html/search/variables_5.js +1 -1
- package/SVF-doxygen/html/html/search/variables_6.js +1 -1
- package/SVF-doxygen/html/html/search/variables_7.js +2 -2
- package/SVF-doxygen/html/html/search/variables_8.js +0 -1
- package/SVF-doxygen/html/html/search/variables_9.js +5 -5
- package/SVF-doxygen/html/html/search/variables_c.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +1 -1
- package/SVF-doxygen/html/html/search/variables_f.js +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits-members.html +99 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits.html +193 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4-members.html +105 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +443 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4-members.html +104 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.html +388 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01CHGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4-members.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +481 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4-members.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +475 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4-members.html +107 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +486 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4-members.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +457 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4-members.html +108 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +595 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01TCT_01_5_01_4-members.html +105 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01TCT_01_5_01_4.html +409 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01TCT_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01VFG_01_5_01_4-members.html +107 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +543 -0
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01VFG_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1DefaultDOTGraphTraits-members.html +99 -0
- package/SVF-doxygen/html/html/structSVF_1_1DefaultDOTGraphTraits.html +855 -0
- package/SVF-doxygen/html/html/structSVF_1_1DefaultDOTGraphTraits.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericEdge_1_1equalGEdge.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits.html +116 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01Inverse_3_01T_01_4_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.html +110 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CHNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CHNode_01_5_01_4_01_4.html +110 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1CHNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ConstraintNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ConstraintNode_01_5_01_4_01_4.html +110 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ConstraintNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4.html +110 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1DCHNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_4_01_4-members.html +88 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_4_01_4.html +324 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4.html +110 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1ICFGNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1PTACallGraphNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1PTACallGraphNode_01_5_01_4_01_4.html +110 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1PTACallGraphNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.html +110 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1SVFVar_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4.html +110 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1TCTNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4.html +110 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01Inverse_3_01SVF_1_1VFGNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CHGraph_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CHGraph_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CHGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CHNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CHNode_01_5_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1CHNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintGraph_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintGraph_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintNode_01_5_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ConstraintNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHNode_01_5_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1DCHNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1GenericGraph_3_01NodeTy_00_01EdgeTy_01_4_01_5_4-members.html +99 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1GenericGraph_3_01NodeTy_00_01EdgeTy_01_4_01_5_4.html +467 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1GenericGraph_3_01NodeTy_00_01EdgeTy_01_4_01_5_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_01_4-members.html +89 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_01_4.html +367 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1GenericNode_3_01NodeTy_00_01EdgeTy_01_4_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ICFGNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ICFG_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ICFG_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1ICFG_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1IRGraph_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1IRGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1PTACallGraphNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1PTACallGraphNode_01_5_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1PTACallGraphNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1PTACallGraph_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1PTACallGraph_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1PTACallGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFG_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFVar_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFVar_01_5_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1SVFVar_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1TCTNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1TCTNode_01_5_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1TCTNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1TCT_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1TCT_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1TCT_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1VFGNode_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1VFGNode_01_5_01_4.html +106 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1VFGNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1VFG_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1VFG_01_5_01_4.html +126 -0
- package/SVF-doxygen/html/html/structSVF_1_1GenericGraphTraits_3_01SVF_1_1VFG_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structSVF_1_1Inverse-members.html +82 -0
- package/SVF-doxygen/html/html/structSVF_1_1Inverse.html +154 -0
- package/SVF-doxygen/html/html/structSVF_1_1pointee__iter-members.html +111 -0
- package/SVF-doxygen/html/html/structSVF_1_1pointee__iter.html +279 -0
- package/SVF-doxygen/html/html/structSVF_1_1pointee__iter.png +0 -0
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +9 -9
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/tools_2MTA_2MTAResultValidator_8h_source.html +4 -4
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +1 -1
- package/include/Graphs/CFLGraph.h +6 -6
- package/include/Graphs/CHG.h +6 -6
- package/include/Graphs/ConsG.h +6 -6
- package/include/Graphs/DOTGraphTraits.h +3 -3
- package/include/Graphs/GenericGraph.h +10 -9
- package/include/Graphs/GraphPrinter.h +2 -2
- package/include/Graphs/GraphTraits.h +29 -29
- package/include/Graphs/GraphWriter.h +6 -6
- package/include/Graphs/ICFG.h +6 -6
- package/include/Graphs/IRGraph.h +6 -7
- package/include/Graphs/PTACallGraph.h +6 -6
- package/include/Graphs/SVFG.h +6 -6
- package/include/Graphs/VFG.h +6 -6
- package/include/MTA/TCT.h +6 -6
- package/include/SABER/SrcSnkSolver.h +2 -2
- package/include/SVF-LLVM/DCHG.h +6 -6
- package/include/SVF-LLVM/LLVMUtil.h +5 -0
- package/include/SVF-LLVM/SymbolTableBuilder.h +0 -3
- package/include/SVFIR/SVFValue.h +2 -11
- package/include/SVFIR/SVFVariables.h +5 -5
- package/include/Util/GraphReachSolver.h +2 -2
- package/include/Util/SCC.h +1 -1
- package/include/Util/iterator.h +32 -32
- package/include/Util/iterator_range.h +11 -11
- package/include/WPA/WPASolver.h +1 -1
- package/lib/Graphs/CFLGraph.cpp +2 -2
- package/lib/Graphs/CHG.cpp +2 -2
- package/lib/Graphs/ConsG.cpp +2 -2
- package/lib/Graphs/GraphWriter.cpp +1 -1
- package/lib/Graphs/ICFG.cpp +2 -2
- package/lib/Graphs/IRGraph.cpp +2 -2
- package/lib/Graphs/PTACallGraph.cpp +2 -2
- package/lib/Graphs/SVFG.cpp +1 -1
- package/lib/Graphs/VFG.cpp +2 -2
- package/lib/MTA/TCT.cpp +1 -1
- package/lib/SVF-LLVM/LLVMModule.cpp +0 -2
- package/lib/SVF-LLVM/LLVMUtil.cpp +40 -0
- package/lib/SVF-LLVM/SVFIRBuilder.cpp +1 -1
- package/lib/SVF-LLVM/SymbolTableBuilder.cpp +0 -34
- package/lib/SVFIR/SVFValue.cpp +0 -1
- package/package.json +1 -1
|
@@ -66,15 +66,13 @@ $(function() {
|
|
|
66
66
|
<div class="title">SCC.h</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="SCC_8h.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">//===- SCC.h -- SCC detection algorithm---------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <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="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * SCC.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * Esko Nuutila and Eljas Soisalon-Soininen, "On finding the</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * strongly connected components in a directed graph".</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> * Inf. Process. Letters, 49(1):9-14, 1994.</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> *</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> * The implementation is derived from the pseudo code in the following paper:</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> * Pereira and Berlin, "Wave Propagation and Deep Propagation for Pointer Analysis",</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> * CGO 2009, 126-135, 2009.</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"> *</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment"> * And influenced by implementation from Open64 compiler</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment"> *</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment"> * Created on: Jul 12, 2013</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment"> * Author: yusui</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"> */</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#ifndef SCC_H_</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#define SCC_H_</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "<a class="code" href="SVFValue_8h.html">SVFIR/SVFValue.h</a>"</span> <span class="comment">// for NodeBS</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include <limits.h></span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include <stack></span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include <map></span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">class </span>GNodeSCCInfo;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">template</span><<span class="keyword">class</span> GraphType></div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html"> 54</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SCCDetection.html">SCCDetection</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#aaee4b4afbfb6efa02c537529e3cebfef"> 59</a></span>  <span class="keyword">typedef</span> <a class="code" href="structllvm_1_1GraphTraits.html">llvm::GraphTraits<GraphType></a> <a class="code" href="classSVF_1_1SCCDetection.html#aaee4b4afbfb6efa02c537529e3cebfef">GTraits</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a7d7b354d8a7ce69b27dc775ccd192a62"> 60</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structllvm_1_1GraphTraits.html#a741f7d63af17a7bd0bcf63f68e8658bd">GTraits::NodeRef</a> <a class="code" href="classSVF_1_1SCCDetection.html#a7d7b354d8a7ce69b27dc775ccd192a62">GNODE</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#abaf75ef45e8f5349b902dab063999ad8"> 61</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GTraits::nodes_iterator <a class="code" href="classSVF_1_1SCCDetection.html#abaf75ef45e8f5349b902dab063999ad8">node_iterator</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#ac1274a90ddbea6f1f0b539710505d902"> 62</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GTraits::ChildIteratorType <a class="code" href="classSVF_1_1SCCDetection.html#ac1274a90ddbea6f1f0b539710505d902">child_iterator</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a4f954a92b432b96f63454b7db46b60e2"> 63</a></span>  <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <a class="code" href="classSVF_1_1SCCDetection.html#a4f954a92b432b96f63454b7db46b60e2">NodeID</a> ;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a84fc3aef6f950471a539b7d9fa3c1289"> 66</a></span>  <span class="keyword">typedef</span> std::stack<NodeID> <a class="code" href="classSVF_1_1SCCDetection.html#a84fc3aef6f950471a539b7d9fa3c1289">GNodeStack</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html"> 68</a></span>  <span class="keyword">class </span><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html">GNodeSCCInfo</a></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a4b8c555a11e9eae2065ec1549ce537de"> 71</a></span>  <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a4b8c555a11e9eae2065ec1549ce537de">GNodeSCCInfo</a>() : <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a721df427172da5cb0dc46d804c4f4485">_visited</a>(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#af3290b2321a70b3acd00927afe87911d">_inSCC</a>(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a99f3c75c72892cf364b808ff7e773a51">_rep</a>(UINT_MAX) {}</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a8038a801ba0fc31149847a49e074b210"> 73</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a8038a801ba0fc31149847a49e074b210">visited</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a721df427172da5cb0dc46d804c4f4485">_visited</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  }</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a48a7c2de3119762694cdc0a4db77213a"> 77</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a48a7c2de3119762694cdc0a4db77213a">visited</a>(<span class="keywordtype">bool</span> v)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a721df427172da5cb0dc46d804c4f4485">_visited</a> = v;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#af9ee3c8655cd3d5ac7cc3863e6af9af7"> 81</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#af9ee3c8655cd3d5ac7cc3863e6af9af7">inSCC</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#af3290b2321a70b3acd00927afe87911d">_inSCC</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#afece6206c79adc1c462cff5b9e05f0f2"> 85</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#afece6206c79adc1c462cff5b9e05f0f2">inSCC</a>(<span class="keywordtype">bool</span> v)</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="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#af3290b2321a70b3acd00927afe87911d">_inSCC</a> = v;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503"> 89</a></span>  <span class="keyword">inline</span> NodeID <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(<span class="keywordtype">void</span>)<span class="keyword">const</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a99f3c75c72892cf364b808ff7e773a51">_rep</a>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a22079b5877606f469c0f8a851e55215b"> 93</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a22079b5877606f469c0f8a851e55215b">rep</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a99f3c75c72892cf364b808ff7e773a51">_rep</a> = <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a39ff07eb2d4529802dead9d37a720fa9"> 97</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a39ff07eb2d4529802dead9d37a720fa9">addSubNodes</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a859c0fc55f0fad4f0dfbe5ed41bd7400">_subNodes</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(n);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a48981e6555ad221d08f16ed2df708027"> 101</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a48981e6555ad221d08f16ed2df708027">subNodes</a>()</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>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a859c0fc55f0fad4f0dfbe5ed41bd7400">_subNodes</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aa2b23b22bb0304ce07ab9b14f0fdc395"> 105</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aa2b23b22bb0304ce07ab9b14f0fdc395">subNodes</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a859c0fc55f0fad4f0dfbe5ed41bd7400">_subNodes</a>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a721df427172da5cb0dc46d804c4f4485"> 110</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a721df427172da5cb0dc46d804c4f4485">_visited</a>;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#af3290b2321a70b3acd00927afe87911d"> 111</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#af3290b2321a70b3acd00927afe87911d">_inSCC</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a99f3c75c72892cf364b808ff7e773a51"> 112</a></span>  NodeID <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a99f3c75c72892cf364b808ff7e773a51">_rep</a>;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a859c0fc55f0fad4f0dfbe5ed41bd7400"> 113</a></span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a859c0fc55f0fad4f0dfbe5ed41bd7400">_subNodes</a>; </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  };</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a56c28264d14062354e3272a4a993a1ec"> 116</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID,GNodeSCCInfo ></a> <a class="code" href="classSVF_1_1SCCDetection.html#a56c28264d14062354e3272a4a993a1ec">GNODESCCInfoMap</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a7e9a12e188a93ea8e571bac4e49e2a6b"> 117</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, NodeID></a> <a class="code" href="classSVF_1_1SCCDetection.html#a7e9a12e188a93ea8e571bac4e49e2a6b">NodeToNodeMap</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a1bd915ba4079ddd5dd6e57a88129ffee"> 119</a></span>  <a class="code" href="classSVF_1_1SCCDetection.html#a1bd915ba4079ddd5dd6e57a88129ffee">SCCDetection</a>(<span class="keyword">const</span> GraphType &GT)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  : <a class="code" href="classSVF_1_1SCCDetection.html#a2123596f26729d61b241cf468d8925d8">_graph</a>(GT),</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classSVF_1_1SCCDetection.html#a9105051438f60587df95a9dba618d008">_I</a>(0)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  {}</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="comment">// Return a handle to the stack of nodes in topological</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="comment">// order. This will be used to seed the initial solution</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="comment">// and improve efficiency.</span></div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a6502c0a765ac1653474ffee651949f93"> 128</a></span>  <span class="keyword">inline</span> GNodeStack &<a class="code" href="classSVF_1_1SCCDetection.html#a6502c0a765ac1653474ffee651949f93">topoNodeStack</a>()</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SCCDetection.html#a0373c80345ffb147ba9a5f57e96d7745">_T</a>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#ab3bdd1e73f95735a8f37566c3793bb36"> 133</a></span>  <span class="keyword">const</span> <span class="keyword">inline</span> GNODESCCInfoMap &<a class="code" href="classSVF_1_1SCCDetection.html#ab3bdd1e73f95735a8f37566c3793bb36">GNodeSCCInfo</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SCCDetection.html#a55e1ac9dff59ff78d02e8799d306215b">_NodeSCCAuxInfo</a>;</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> </div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d"> 139</a></span>  <span class="keyword">inline</span> NodeID <a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keyword">typename</span> GNODESCCInfoMap::const_iterator it = <a class="code" href="classSVF_1_1SCCDetection.html#a55e1ac9dff59ff78d02e8799d306215b">_NodeSCCAuxInfo</a>.find(n);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  assert(it!=<a class="code" href="classSVF_1_1SCCDetection.html#a55e1ac9dff59ff78d02e8799d306215b">_NodeSCCAuxInfo</a>.end() && <span class="stringliteral">"scc rep not found"</span>);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  NodeID <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a> = it->second.rep();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">return</span> rep!= UINT_MAX ? <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a> : <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a> ;</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> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15"> 149</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  NodeID <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a> = <a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(n);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="comment">// multi-node cycle</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a48981e6555ad221d08f16ed2df708027">subNodes</a>(rep).<a class="code" href="cJSON_8h.html#ad43c3812e6d13e0518d9f8b8f463ffcf">count</a>() > 1)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="comment">// self-cycle</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  child_iterator EI = GTraits::direct_child_begin(<a class="code" href="classSVF_1_1SCCDetection.html#a6458c27c625add944fcb8a3ef7b536a6">Node</a>(rep));</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  child_iterator EE = GTraits::direct_child_end(<a class="code" href="classSVF_1_1SCCDetection.html#a6458c27c625add944fcb8a3ef7b536a6">Node</a>(rep));</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">for</span> (; EI != EE; ++EI)</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>  NodeID w = <a class="code" href="classSVF_1_1SCCDetection.html#a5fa111bb849052b8a753194cd0cd5e0c">Node_Index</a>(*EI);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">if</span>(w==rep)</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d"> 173</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& <a class="code" href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">subNodes</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keyword">typename</span> GNODESCCInfoMap::const_iterator it = <a class="code" href="classSVF_1_1SCCDetection.html#a55e1ac9dff59ff78d02e8799d306215b">_NodeSCCAuxInfo</a>.find(n);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  assert(it!=<a class="code" href="classSVF_1_1SCCDetection.html#a55e1ac9dff59ff78d02e8799d306215b">_NodeSCCAuxInfo</a>.end() && <span class="stringliteral">"scc rep not found"</span>);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">return</span> it->second.subNodes();</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a457973fa38fad89bbd2dc41ba041703e"> 181</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> &<a class="code" href="classSVF_1_1SCCDetection.html#a457973fa38fad89bbd2dc41ba041703e">getRepNodes</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SCCDetection.html#a2b9605126ebb2abb1e16b3ccf99cf04b">repNodes</a>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  }</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a1b8b57a3ea3740f36a19afc8bd42033d"> 186</a></span>  <span class="keyword">const</span> <span class="keyword">inline</span> GraphType & <a class="code" href="classSVF_1_1SCCDetection.html#a1b8b57a3ea3740f36a19afc8bd42033d">graph</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>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SCCDetection.html#a2123596f26729d61b241cf468d8925d8">_graph</a>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a55e1ac9dff59ff78d02e8799d306215b"> 192</a></span>  GNODESCCInfoMap <a class="code" href="classSVF_1_1SCCDetection.html#a55e1ac9dff59ff78d02e8799d306215b">_NodeSCCAuxInfo</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a2123596f26729d61b241cf468d8925d8"> 194</a></span>  <span class="keyword">const</span> GraphType & <a class="code" href="classSVF_1_1SCCDetection.html#a2123596f26729d61b241cf468d8925d8">_graph</a>;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a9105051438f60587df95a9dba618d008"> 195</a></span>  NodeID <a class="code" href="classSVF_1_1SCCDetection.html#a9105051438f60587df95a9dba618d008">_I</a>;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a58b7ae8ed203311628dc5a84e1e79a5e"> 196</a></span>  NodeToNodeMap <a class="code" href="classSVF_1_1SCCDetection.html#a58b7ae8ed203311628dc5a84e1e79a5e">_D</a>;</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a0e9ca6d916963160fb4ae9acec1c1fe9"> 197</a></span>  GNodeStack <a class="code" href="classSVF_1_1SCCDetection.html#a0e9ca6d916963160fb4ae9acec1c1fe9">_SS</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a0373c80345ffb147ba9a5f57e96d7745"> 198</a></span>  GNodeStack <a class="code" href="classSVF_1_1SCCDetection.html#a0373c80345ffb147ba9a5f57e96d7745">_T</a>;</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a2b9605126ebb2abb1e16b3ccf99cf04b"> 199</a></span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1SCCDetection.html#a2b9605126ebb2abb1e16b3ccf99cf04b">repNodes</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#aa7f342aa9281749d16bb377acf14c0d7"> 201</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SCCDetection.html#aa7f342aa9281749d16bb377acf14c0d7">visited</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">return</span> _NodeSCCAuxInfo[<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>].visited();</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  }</div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a60b977d41c29aa6ea01b94be12792351"> 205</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SCCDetection.html#a60b977d41c29aa6ea01b94be12792351">inSCC</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">return</span> _NodeSCCAuxInfo[<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>].inSCC();</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#ad888a3dc94909823319384055896c84d"> 210</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection.html#ad888a3dc94909823319384055896c84d">setVisited</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>,<span class="keywordtype">bool</span> v)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  _NodeSCCAuxInfo[<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>].visited(v);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#aafe9ae9d158480e6a04803b25b61083e"> 214</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection.html#aafe9ae9d158480e6a04803b25b61083e">setInSCC</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>,<span class="keywordtype">bool</span> v)</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  _NodeSCCAuxInfo[<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>].inSCC(v);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a0495f912a9084b21327f678b47ef7e07"> 218</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection.html#a0495f912a9084b21327f678b47ef7e07">rep</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>, NodeID r)</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>  _NodeSCCAuxInfo[<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>].rep(r);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  _NodeSCCAuxInfo[r].addSubNodes(n);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">if</span> (n != r)</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>  _NodeSCCAuxInfo[<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>].subNodes().clear();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  repNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#ad5337b5aeed50f8b7ffd56b14ee25c9f">reset</a>(n);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  repNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(r);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  }</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#ac22aee5fdb22387b5bd0f612faef689c"> 230</a></span>  <span class="keyword">inline</span> NodeID <a class="code" href="classSVF_1_1SCCDetection.html#ac22aee5fdb22387b5bd0f612faef689c">rep</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">return</span> _NodeSCCAuxInfo[<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>].rep();</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  }</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#aff6c15443edca2559ae3f3d04ff45481"> 234</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SCCDetection.html#aff6c15443edca2559ae3f3d04ff45481">isInSCC</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">return</span> _NodeSCCAuxInfo[<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>].inSCC();</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a6458c27c625add944fcb8a3ef7b536a6"> 239</a></span>  <span class="keyword">inline</span> GNODE <a class="code" href="classSVF_1_1SCCDetection.html#a6458c27c625add944fcb8a3ef7b536a6">Node</a>(NodeID <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">return</span> GTraits::getNode(_graph, <span class="keywordtype">id</span>);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  }</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a5fa111bb849052b8a753194cd0cd5e0c"> 244</a></span>  <span class="keyword">inline</span> NodeID <a class="code" href="classSVF_1_1SCCDetection.html#a5fa111bb849052b8a753194cd0cd5e0c">Node_Index</a>(GNODE node)<span class="keyword"> const</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">return</span> GTraits::getNodeID(node);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  }</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#af799d7043e501e43e04e51fd4d6c6571"> 249</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection.html#af799d7043e501e43e04e51fd4d6c6571">visit</a>(NodeID v)</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>  <span class="comment">// SVFUtil::outs() << "visit GNODE: " << Node_Index(v)<< "\n";</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  _I += 1;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  _D[v] = <a class="code" href="classSVF_1_1SCCDetection.html#a9105051438f60587df95a9dba618d008">_I</a>;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(v,v);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  this-><a class="code" href="classSVF_1_1SCCDetection.html#ad888a3dc94909823319384055896c84d">setVisited</a>(v,<span class="keyword">true</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>  child_iterator EI = GTraits::direct_child_begin(<a class="code" href="classSVF_1_1SCCDetection.html#a6458c27c625add944fcb8a3ef7b536a6">Node</a>(v));</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  child_iterator EE = GTraits::direct_child_end(<a class="code" href="classSVF_1_1SCCDetection.html#a6458c27c625add944fcb8a3ef7b536a6">Node</a>(v));</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">for</span> (; EI != EE; ++EI)</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>  NodeID w = <a class="code" href="classSVF_1_1SCCDetection.html#a5fa111bb849052b8a753194cd0cd5e0c">Node_Index</a>(*EI);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">if</span> (!this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a8038a801ba0fc31149847a49e074b210">visited</a>(w))</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <a class="code" href="classSVF_1_1SCCDetection.html#af799d7043e501e43e04e51fd4d6c6571">visit</a>(w);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">if</span> (!this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#af9ee3c8655cd3d5ac7cc3863e6af9af7">inSCC</a>(w))</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  {</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  NodeID <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  rep = _D[this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(v)] < _D[this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(w)] ?</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(v) : this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(w);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(v,rep);</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>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(v) == v)</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  this-><a class="code" href="classSVF_1_1SCCDetection.html#aafe9ae9d158480e6a04803b25b61083e">setInSCC</a>(v,<span class="keyword">true</span>);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">while</span> (!_SS.empty())</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  NodeID w = _SS.top();</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">if</span> (_D[w] <= _D[v])</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  _SS.pop();</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  this-><a class="code" href="classSVF_1_1SCCDetection.html#aafe9ae9d158480e6a04803b25b61083e">setInSCC</a>(w,<span class="keyword">true</span>);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(w,v);</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>  }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  _T.push(v);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  }</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  _SS.push(v);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a3323ba77ae690533a0edcaebe82e20f5"> 295</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection.html#a3323ba77ae690533a0edcaebe82e20f5">clear</a>()</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  _NodeSCCAuxInfo.clear();</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  _I = 0;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  _D.clear();</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  repNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a5afe3e74412a1f3f728d7e0eaae70c13">clear</a>();</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">while</span>(!_SS.empty())</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  _SS.pop();</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">while</span>(!_T.empty())</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  _T.pop();</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div><div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3"> 308</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="comment">// Visit each unvisited root node. A root node is defined</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="comment">// to be a node that has no incoming copy/skew edges</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="classSVF_1_1SCCDetection.html#a3323ba77ae690533a0edcaebe82e20f5">clear</a>();</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  node_iterator I = GTraits::nodes_begin(_graph);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  node_iterator E = GTraits::nodes_end(_graph);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">for</span> (; I != E; ++I)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  NodeID node = <a class="code" href="classSVF_1_1SCCDetection.html#a5fa111bb849052b8a753194cd0cd5e0c">Node_Index</a>(*I);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">if</span> (!this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a8038a801ba0fc31149847a49e074b210">visited</a>(node))</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  {</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="comment">// We skip any nodes that have a representative other than</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="comment">// themselves. Such nodes occur as a result of merging</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="comment">// nodes either through unifying an ACC or other node</span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="comment">// merging optimizations. Any such node should have no</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="comment">// outgoing edges and therefore should no longer be a member</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="comment">// of an SCC.</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(node) == UINT_MAX || this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(node) == node)</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <a class="code" href="classSVF_1_1SCCDetection.html#af799d7043e501e43e04e51fd4d6c6571">visit</a>(node);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a8038a801ba0fc31149847a49e074b210">visited</a>(node);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  }</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  }</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a1d0d98fd1286e71cfae50180cd2b1313"> 334</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection.html#a1d0d98fd1286e71cfae50180cd2b1313">find</a>(<a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> &candidates)</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="comment">// This function is reloaded to only visit candidate NODES</span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <a class="code" href="classSVF_1_1SCCDetection.html#a3323ba77ae690533a0edcaebe82e20f5">clear</a>();</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordflow">for</span> (NodeID node : candidates)</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  {</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keywordflow">if</span> (!this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a8038a801ba0fc31149847a49e074b210">visited</a>(node))</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(node) == UINT_MAX || this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(node) == node)</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <a class="code" href="classSVF_1_1SCCDetection.html#af799d7043e501e43e04e51fd4d6c6571">visit</a>(node);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a8038a801ba0fc31149847a49e074b210">visited</a>(node);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  }</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span> };</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="preprocessor">#endif </span><span class="comment">/* SCC_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1SCCDetection_html_abaf75ef45e8f5349b902dab063999ad8"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#abaf75ef45e8f5349b902dab063999ad8">SVF::SCCDetection::node_iterator</a></div><div class="ttdeci">GTraits::nodes_iterator node_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00061">SCC.h:61</a></div></div>
|
|
69
|
+
<a href="SCC_8h.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">//===- SCC.h -- SCC detection algorithm---------------------------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <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="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * SCC.h</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * Esko Nuutila and Eljas Soisalon-Soininen, "On finding the</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * strongly connected components in a directed graph".</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> * Inf. Process. Letters, 49(1):9-14, 1994.</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> *</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> * The implementation is derived from the pseudo code in the following paper:</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> * Pereira and Berlin, "Wave Propagation and Deep Propagation for Pointer Analysis",</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> * CGO 2009, 126-135, 2009.</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"> *</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="comment"> * And influenced by implementation from Open64 compiler</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="comment"> *</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment"> * Created on: Jul 12, 2013</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="comment"> * Author: yusui</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="comment"> */</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#ifndef SCC_H_</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="preprocessor">#define SCC_H_</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include "<a class="code" href="SVFValue_8h.html">SVFIR/SVFValue.h</a>"</span> <span class="comment">// for NodeBS</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include <limits.h></span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include <stack></span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include <map></span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">class </span>GNodeSCCInfo;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> </div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">template</span><<span class="keyword">class</span> GraphType></div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html"> 54</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1SCCDetection.html">SCCDetection</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span> </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a862d30c661897fb8a5d60abcfa45da12"> 59</a></span>  <span class="keyword">typedef</span> <a class="code" href="structSVF_1_1GenericGraphTraits.html">SVF::GenericGraphTraits<GraphType></a> <a class="code" href="classSVF_1_1SCCDetection.html#a862d30c661897fb8a5d60abcfa45da12">GTraits</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a7d7b354d8a7ce69b27dc775ccd192a62"> 60</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="structSVF_1_1GenericGraphTraits.html#a05654ab9615d75bc8e5f8c5cf9297205">GTraits::NodeRef</a> <a class="code" href="classSVF_1_1SCCDetection.html#a7d7b354d8a7ce69b27dc775ccd192a62">GNODE</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#abaf75ef45e8f5349b902dab063999ad8"> 61</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GTraits::nodes_iterator <a class="code" href="classSVF_1_1SCCDetection.html#abaf75ef45e8f5349b902dab063999ad8">node_iterator</a>;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#ac1274a90ddbea6f1f0b539710505d902"> 62</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GTraits::ChildIteratorType <a class="code" href="classSVF_1_1SCCDetection.html#ac1274a90ddbea6f1f0b539710505d902">child_iterator</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a4f954a92b432b96f63454b7db46b60e2"> 63</a></span>  <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <a class="code" href="classSVF_1_1SCCDetection.html#a4f954a92b432b96f63454b7db46b60e2">NodeID</a> ;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a84fc3aef6f950471a539b7d9fa3c1289"> 66</a></span>  <span class="keyword">typedef</span> std::stack<NodeID> <a class="code" href="classSVF_1_1SCCDetection.html#a84fc3aef6f950471a539b7d9fa3c1289">GNodeStack</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html"> 68</a></span>  <span class="keyword">class </span><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html">GNodeSCCInfo</a></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a4b8c555a11e9eae2065ec1549ce537de"> 71</a></span>  <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a4b8c555a11e9eae2065ec1549ce537de">GNodeSCCInfo</a>() : <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a721df427172da5cb0dc46d804c4f4485">_visited</a>(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#af3290b2321a70b3acd00927afe87911d">_inSCC</a>(<a class="code" href="cJSON_8cpp.html#a65e9886d74aaee76545e83dd09011727">false</a>), <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a99f3c75c72892cf364b808ff7e773a51">_rep</a>(UINT_MAX) {}</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span> </div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a8038a801ba0fc31149847a49e074b210"> 73</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a8038a801ba0fc31149847a49e074b210">visited</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a721df427172da5cb0dc46d804c4f4485">_visited</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  }</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a48a7c2de3119762694cdc0a4db77213a"> 77</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a48a7c2de3119762694cdc0a4db77213a">visited</a>(<span class="keywordtype">bool</span> v)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a721df427172da5cb0dc46d804c4f4485">_visited</a> = v;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  }</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#af9ee3c8655cd3d5ac7cc3863e6af9af7"> 81</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#af9ee3c8655cd3d5ac7cc3863e6af9af7">inSCC</a>(<span class="keywordtype">void</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#af3290b2321a70b3acd00927afe87911d">_inSCC</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#afece6206c79adc1c462cff5b9e05f0f2"> 85</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#afece6206c79adc1c462cff5b9e05f0f2">inSCC</a>(<span class="keywordtype">bool</span> v)</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="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#af3290b2321a70b3acd00927afe87911d">_inSCC</a> = v;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  }</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503"> 89</a></span>  <span class="keyword">inline</span> NodeID <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(<span class="keywordtype">void</span>)<span class="keyword">const</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a99f3c75c72892cf364b808ff7e773a51">_rep</a>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  }</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a22079b5877606f469c0f8a851e55215b"> 93</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a22079b5877606f469c0f8a851e55215b">rep</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a99f3c75c72892cf364b808ff7e773a51">_rep</a> = <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a39ff07eb2d4529802dead9d37a720fa9"> 97</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a39ff07eb2d4529802dead9d37a720fa9">addSubNodes</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a859c0fc55f0fad4f0dfbe5ed41bd7400">_subNodes</a>.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(n);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a48981e6555ad221d08f16ed2df708027"> 101</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a48981e6555ad221d08f16ed2df708027">subNodes</a>()</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>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a859c0fc55f0fad4f0dfbe5ed41bd7400">_subNodes</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  }</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aa2b23b22bb0304ce07ab9b14f0fdc395"> 105</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aa2b23b22bb0304ce07ab9b14f0fdc395">subNodes</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a859c0fc55f0fad4f0dfbe5ed41bd7400">_subNodes</a>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a721df427172da5cb0dc46d804c4f4485"> 110</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a721df427172da5cb0dc46d804c4f4485">_visited</a>;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#af3290b2321a70b3acd00927afe87911d"> 111</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#af3290b2321a70b3acd00927afe87911d">_inSCC</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a99f3c75c72892cf364b808ff7e773a51"> 112</a></span>  NodeID <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a99f3c75c72892cf364b808ff7e773a51">_rep</a>;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a859c0fc55f0fad4f0dfbe5ed41bd7400"> 113</a></span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a859c0fc55f0fad4f0dfbe5ed41bd7400">_subNodes</a>; </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  };</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> </div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a56c28264d14062354e3272a4a993a1ec"> 116</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID,GNodeSCCInfo ></a> <a class="code" href="classSVF_1_1SCCDetection.html#a56c28264d14062354e3272a4a993a1ec">GNODESCCInfoMap</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a7e9a12e188a93ea8e571bac4e49e2a6b"> 117</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, NodeID></a> <a class="code" href="classSVF_1_1SCCDetection.html#a7e9a12e188a93ea8e571bac4e49e2a6b">NodeToNodeMap</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a1bd915ba4079ddd5dd6e57a88129ffee"> 119</a></span>  <a class="code" href="classSVF_1_1SCCDetection.html#a1bd915ba4079ddd5dd6e57a88129ffee">SCCDetection</a>(<span class="keyword">const</span> GraphType &GT)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  : <a class="code" href="classSVF_1_1SCCDetection.html#a2123596f26729d61b241cf468d8925d8">_graph</a>(GT),</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classSVF_1_1SCCDetection.html#a9105051438f60587df95a9dba618d008">_I</a>(0)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  {}</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="comment">// Return a handle to the stack of nodes in topological</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="comment">// order. This will be used to seed the initial solution</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="comment">// and improve efficiency.</span></div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a6502c0a765ac1653474ffee651949f93"> 128</a></span>  <span class="keyword">inline</span> GNodeStack &<a class="code" href="classSVF_1_1SCCDetection.html#a6502c0a765ac1653474ffee651949f93">topoNodeStack</a>()</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SCCDetection.html#a0373c80345ffb147ba9a5f57e96d7745">_T</a>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> </div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#ab3bdd1e73f95735a8f37566c3793bb36"> 133</a></span>  <span class="keyword">const</span> <span class="keyword">inline</span> GNODESCCInfoMap &<a class="code" href="classSVF_1_1SCCDetection.html#ab3bdd1e73f95735a8f37566c3793bb36">GNodeSCCInfo</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SCCDetection.html#a55e1ac9dff59ff78d02e8799d306215b">_NodeSCCAuxInfo</a>;</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> </div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d"> 139</a></span>  <span class="keyword">inline</span> NodeID <a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keyword">typename</span> GNODESCCInfoMap::const_iterator it = <a class="code" href="classSVF_1_1SCCDetection.html#a55e1ac9dff59ff78d02e8799d306215b">_NodeSCCAuxInfo</a>.find(n);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  assert(it!=<a class="code" href="classSVF_1_1SCCDetection.html#a55e1ac9dff59ff78d02e8799d306215b">_NodeSCCAuxInfo</a>.end() && <span class="stringliteral">"scc rep not found"</span>);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  NodeID <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a> = it->second.rep();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">return</span> rep!= UINT_MAX ? <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a> : <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a> ;</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> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span> </div><div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15"> 149</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">isInCycle</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  NodeID <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a> = <a class="code" href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">repNode</a>(n);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <span class="comment">// multi-node cycle</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a48981e6555ad221d08f16ed2df708027">subNodes</a>(rep).<a class="code" href="cJSON_8h.html#ad43c3812e6d13e0518d9f8b8f463ffcf">count</a>() > 1)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="comment">// self-cycle</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  child_iterator EI = GTraits::direct_child_begin(<a class="code" href="classSVF_1_1SCCDetection.html#a6458c27c625add944fcb8a3ef7b536a6">Node</a>(rep));</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  child_iterator EE = GTraits::direct_child_end(<a class="code" href="classSVF_1_1SCCDetection.html#a6458c27c625add944fcb8a3ef7b536a6">Node</a>(rep));</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keywordflow">for</span> (; EI != EE; ++EI)</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>  NodeID w = <a class="code" href="classSVF_1_1SCCDetection.html#a5fa111bb849052b8a753194cd0cd5e0c">Node_Index</a>(*EI);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">if</span>(w==rep)</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d"> 173</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& <a class="code" href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">subNodes</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <span class="keyword">typename</span> GNODESCCInfoMap::const_iterator it = <a class="code" href="classSVF_1_1SCCDetection.html#a55e1ac9dff59ff78d02e8799d306215b">_NodeSCCAuxInfo</a>.find(n);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  assert(it!=<a class="code" href="classSVF_1_1SCCDetection.html#a55e1ac9dff59ff78d02e8799d306215b">_NodeSCCAuxInfo</a>.end() && <span class="stringliteral">"scc rep not found"</span>);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">return</span> it->second.subNodes();</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a457973fa38fad89bbd2dc41ba041703e"> 181</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> &<a class="code" href="classSVF_1_1SCCDetection.html#a457973fa38fad89bbd2dc41ba041703e">getRepNodes</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SCCDetection.html#a2b9605126ebb2abb1e16b3ccf99cf04b">repNodes</a>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  }</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a1b8b57a3ea3740f36a19afc8bd42033d"> 186</a></span>  <span class="keyword">const</span> <span class="keyword">inline</span> GraphType & <a class="code" href="classSVF_1_1SCCDetection.html#a1b8b57a3ea3740f36a19afc8bd42033d">graph</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>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SCCDetection.html#a2123596f26729d61b241cf468d8925d8">_graph</a>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a55e1ac9dff59ff78d02e8799d306215b"> 192</a></span>  GNODESCCInfoMap <a class="code" href="classSVF_1_1SCCDetection.html#a55e1ac9dff59ff78d02e8799d306215b">_NodeSCCAuxInfo</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> </div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a2123596f26729d61b241cf468d8925d8"> 194</a></span>  <span class="keyword">const</span> GraphType & <a class="code" href="classSVF_1_1SCCDetection.html#a2123596f26729d61b241cf468d8925d8">_graph</a>;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a9105051438f60587df95a9dba618d008"> 195</a></span>  NodeID <a class="code" href="classSVF_1_1SCCDetection.html#a9105051438f60587df95a9dba618d008">_I</a>;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a58b7ae8ed203311628dc5a84e1e79a5e"> 196</a></span>  NodeToNodeMap <a class="code" href="classSVF_1_1SCCDetection.html#a58b7ae8ed203311628dc5a84e1e79a5e">_D</a>;</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a0e9ca6d916963160fb4ae9acec1c1fe9"> 197</a></span>  GNodeStack <a class="code" href="classSVF_1_1SCCDetection.html#a0e9ca6d916963160fb4ae9acec1c1fe9">_SS</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a0373c80345ffb147ba9a5f57e96d7745"> 198</a></span>  GNodeStack <a class="code" href="classSVF_1_1SCCDetection.html#a0373c80345ffb147ba9a5f57e96d7745">_T</a>;</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a2b9605126ebb2abb1e16b3ccf99cf04b"> 199</a></span>  <a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a> <a class="code" href="classSVF_1_1SCCDetection.html#a2b9605126ebb2abb1e16b3ccf99cf04b">repNodes</a>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span> </div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#aa7f342aa9281749d16bb377acf14c0d7"> 201</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SCCDetection.html#aa7f342aa9281749d16bb377acf14c0d7">visited</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">return</span> _NodeSCCAuxInfo[<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>].visited();</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  }</div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a60b977d41c29aa6ea01b94be12792351"> 205</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SCCDetection.html#a60b977d41c29aa6ea01b94be12792351">inSCC</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordflow">return</span> _NodeSCCAuxInfo[<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>].inSCC();</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#ad888a3dc94909823319384055896c84d"> 210</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection.html#ad888a3dc94909823319384055896c84d">setVisited</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>,<span class="keywordtype">bool</span> v)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  _NodeSCCAuxInfo[<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>].visited(v);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div><div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#aafe9ae9d158480e6a04803b25b61083e"> 214</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection.html#aafe9ae9d158480e6a04803b25b61083e">setInSCC</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>,<span class="keywordtype">bool</span> v)</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  _NodeSCCAuxInfo[<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>].inSCC(v);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a0495f912a9084b21327f678b47ef7e07"> 218</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection.html#a0495f912a9084b21327f678b47ef7e07">rep</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>, NodeID r)</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>  _NodeSCCAuxInfo[<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>].rep(r);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  _NodeSCCAuxInfo[r].addSubNodes(n);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">if</span> (n != r)</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>  _NodeSCCAuxInfo[<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>].subNodes().clear();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  repNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#ad5337b5aeed50f8b7ffd56b14ee25c9f">reset</a>(n);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  repNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a61bd86909a141f9de873d92c0f904832">set</a>(r);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  }</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span> </div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#ac22aee5fdb22387b5bd0f612faef689c"> 230</a></span>  <span class="keyword">inline</span> NodeID <a class="code" href="classSVF_1_1SCCDetection.html#ac22aee5fdb22387b5bd0f612faef689c">rep</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">return</span> _NodeSCCAuxInfo[<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>].rep();</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  }</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#aff6c15443edca2559ae3f3d04ff45481"> 234</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1SCCDetection.html#aff6c15443edca2559ae3f3d04ff45481">isInSCC</a>(NodeID <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">return</span> _NodeSCCAuxInfo[<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>].inSCC();</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a6458c27c625add944fcb8a3ef7b536a6"> 239</a></span>  <span class="keyword">inline</span> GNODE <a class="code" href="classSVF_1_1SCCDetection.html#a6458c27c625add944fcb8a3ef7b536a6">Node</a>(NodeID <span class="keywordtype">id</span>)<span class="keyword"> const</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">return</span> GTraits::getNode(_graph, <span class="keywordtype">id</span>);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  }</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a5fa111bb849052b8a753194cd0cd5e0c"> 244</a></span>  <span class="keyword">inline</span> NodeID <a class="code" href="classSVF_1_1SCCDetection.html#a5fa111bb849052b8a753194cd0cd5e0c">Node_Index</a>(GNODE node)<span class="keyword"> const</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">return</span> GTraits::getNodeID(node);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  }</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#af799d7043e501e43e04e51fd4d6c6571"> 249</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection.html#af799d7043e501e43e04e51fd4d6c6571">visit</a>(NodeID v)</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>  <span class="comment">// SVFUtil::outs() << "visit GNODE: " << Node_Index(v)<< "\n";</span></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  _I += 1;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  _D[v] = <a class="code" href="classSVF_1_1SCCDetection.html#a9105051438f60587df95a9dba618d008">_I</a>;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(v,v);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  this-><a class="code" href="classSVF_1_1SCCDetection.html#ad888a3dc94909823319384055896c84d">setVisited</a>(v,<span class="keyword">true</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>  child_iterator EI = GTraits::direct_child_begin(<a class="code" href="classSVF_1_1SCCDetection.html#a6458c27c625add944fcb8a3ef7b536a6">Node</a>(v));</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  child_iterator EE = GTraits::direct_child_end(<a class="code" href="classSVF_1_1SCCDetection.html#a6458c27c625add944fcb8a3ef7b536a6">Node</a>(v));</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">for</span> (; EI != EE; ++EI)</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>  NodeID w = <a class="code" href="classSVF_1_1SCCDetection.html#a5fa111bb849052b8a753194cd0cd5e0c">Node_Index</a>(*EI);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keywordflow">if</span> (!this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a8038a801ba0fc31149847a49e074b210">visited</a>(w))</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <a class="code" href="classSVF_1_1SCCDetection.html#af799d7043e501e43e04e51fd4d6c6571">visit</a>(w);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keywordflow">if</span> (!this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#af9ee3c8655cd3d5ac7cc3863e6af9af7">inSCC</a>(w))</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  {</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  NodeID <a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  rep = _D[this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(v)] < _D[this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(w)] ?</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(v) : this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(w);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(v,rep);</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>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(v) == v)</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  this-><a class="code" href="classSVF_1_1SCCDetection.html#aafe9ae9d158480e6a04803b25b61083e">setInSCC</a>(v,<span class="keyword">true</span>);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <span class="keywordflow">while</span> (!_SS.empty())</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  NodeID w = _SS.top();</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  <span class="keywordflow">if</span> (_D[w] <= _D[v])</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  _SS.pop();</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  this-><a class="code" href="classSVF_1_1SCCDetection.html#aafe9ae9d158480e6a04803b25b61083e">setInSCC</a>(w,<span class="keyword">true</span>);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(w,v);</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>  }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  _T.push(v);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  }</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  _SS.push(v);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> </div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a3323ba77ae690533a0edcaebe82e20f5"> 295</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection.html#a3323ba77ae690533a0edcaebe82e20f5">clear</a>()</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  _NodeSCCAuxInfo.clear();</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  _I = 0;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  _D.clear();</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  repNodes.<a class="code" href="classSVF_1_1SparseBitVector.html#a5afe3e74412a1f3f728d7e0eaae70c13">clear</a>();</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">while</span>(!_SS.empty())</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  _SS.pop();</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">while</span>(!_T.empty())</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  _T.pop();</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div><div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3"> 308</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="comment">// Visit each unvisited root node. A root node is defined</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="comment">// to be a node that has no incoming copy/skew edges</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <a class="code" href="classSVF_1_1SCCDetection.html#a3323ba77ae690533a0edcaebe82e20f5">clear</a>();</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  node_iterator I = GTraits::nodes_begin(_graph);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  node_iterator E = GTraits::nodes_end(_graph);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">for</span> (; I != E; ++I)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  NodeID node = <a class="code" href="classSVF_1_1SCCDetection.html#a5fa111bb849052b8a753194cd0cd5e0c">Node_Index</a>(*I);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">if</span> (!this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a8038a801ba0fc31149847a49e074b210">visited</a>(node))</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  {</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="comment">// We skip any nodes that have a representative other than</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="comment">// themselves. Such nodes occur as a result of merging</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="comment">// nodes either through unifying an ACC or other node</span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="comment">// merging optimizations. Any such node should have no</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="comment">// outgoing edges and therefore should no longer be a member</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="comment">// of an SCC.</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(node) == UINT_MAX || this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(node) == node)</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <a class="code" href="classSVF_1_1SCCDetection.html#af799d7043e501e43e04e51fd4d6c6571">visit</a>(node);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a8038a801ba0fc31149847a49e074b210">visited</a>(node);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  }</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  }</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> </div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="classSVF_1_1SCCDetection.html#a1d0d98fd1286e71cfae50180cd2b1313"> 334</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1SCCDetection.html#a1d0d98fd1286e71cfae50180cd2b1313">find</a>(<a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> &candidates)</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="comment">// This function is reloaded to only visit candidate NODES</span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <a class="code" href="classSVF_1_1SCCDetection.html#a3323ba77ae690533a0edcaebe82e20f5">clear</a>();</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordflow">for</span> (NodeID node : candidates)</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  {</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keywordflow">if</span> (!this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a8038a801ba0fc31149847a49e074b210">visited</a>(node))</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">if</span> (this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(node) == UINT_MAX || this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aae671732173cc6f958612ac934a6b503">rep</a>(node) == node)</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <a class="code" href="classSVF_1_1SCCDetection.html#af799d7043e501e43e04e51fd4d6c6571">visit</a>(node);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  this-><a class="code" href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a8038a801ba0fc31149847a49e074b210">visited</a>(node);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  }</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span> };</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span> </div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span> } <span class="comment">// End namespace SVF</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <span class="preprocessor">#endif </span><span class="comment">/* SCC_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1SCCDetection_html_abaf75ef45e8f5349b902dab063999ad8"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#abaf75ef45e8f5349b902dab063999ad8">SVF::SCCDetection::node_iterator</a></div><div class="ttdeci">GTraits::nodes_iterator node_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00061">SCC.h:61</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_1_1SCCDetection_1_1GNodeSCCInfo_html_afece6206c79adc1c462cff5b9e05f0f2"><div class="ttname"><a href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#afece6206c79adc1c462cff5b9e05f0f2">SVF::SCCDetection::GNodeSCCInfo::inSCC</a></div><div class="ttdeci">void inSCC(bool v)</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00085">SCC.h:85</a></div></div>
|
|
71
|
-
<div class="ttc" id="classSVF_1_1SCCDetection_html_aaee4b4afbfb6efa02c537529e3cebfef"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#aaee4b4afbfb6efa02c537529e3cebfef">SVF::SCCDetection::GTraits</a></div><div class="ttdeci">llvm::GraphTraits< GraphType > GTraits</div><div class="ttdoc">Define the GTraits and node iterator for printing. </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00059">SCC.h:59</a></div></div>
|
|
72
71
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_aafe9ae9d158480e6a04803b25b61083e"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#aafe9ae9d158480e6a04803b25b61083e">SVF::SCCDetection::setInSCC</a></div><div class="ttdeci">void setInSCC(NodeID n, bool v)</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00214">SCC.h:214</a></div></div>
|
|
73
72
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_aa7f342aa9281749d16bb377acf14c0d7"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#aa7f342aa9281749d16bb377acf14c0d7">SVF::SCCDetection::visited</a></div><div class="ttdeci">bool visited(NodeID n)</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00201">SCC.h:201</a></div></div>
|
|
74
73
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a6ab5eff6a576e6d8703c1ea29b7f425d"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a6ab5eff6a576e6d8703c1ea29b7f425d">SVF::SCCDetection::subNodes</a></div><div class="ttdeci">const NodeBS & subNodes(NodeID n) const</div><div class="ttdoc">get all subnodes in one scc, if size is empty insert itself into the set </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00173">SCC.h:173</a></div></div>
|
|
75
74
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a6502c0a765ac1653474ffee651949f93"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a6502c0a765ac1653474ffee651949f93">SVF::SCCDetection::topoNodeStack</a></div><div class="ttdeci">GNodeStack & topoNodeStack()</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00128">SCC.h:128</a></div></div>
|
|
76
75
|
<div class="ttc" id="namespaceSVF_html_a212231734fa43d5c7414137deaac7df3"><div class="ttname"><a href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">SVF::NodeSet</a></div><div class="ttdeci">Set< NodeID > NodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00110">SVFType.h:110</a></div></div>
|
|
77
|
-
<div class="ttc" id="structllvm_1_1GraphTraits_html"><div class="ttname"><a href="structllvm_1_1GraphTraits.html">llvm::GraphTraits</a></div><div class="ttdef"><b>Definition:</b> <a href="GraphTraits_8h_source.html#l00036">GraphTraits.h:36</a></div></div>
|
|
78
76
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a55e1ac9dff59ff78d02e8799d306215b"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a55e1ac9dff59ff78d02e8799d306215b">SVF::SCCDetection::_NodeSCCAuxInfo</a></div><div class="ttdeci">GNODESCCInfoMap _NodeSCCAuxInfo</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00192">SCC.h:192</a></div></div>
|
|
79
77
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a2b9605126ebb2abb1e16b3ccf99cf04b"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a2b9605126ebb2abb1e16b3ccf99cf04b">SVF::SCCDetection::repNodes</a></div><div class="ttdeci">NodeBS repNodes</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00199">SCC.h:199</a></div></div>
|
|
80
78
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a2123596f26729d61b241cf468d8925d8"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a2123596f26729d61b241cf468d8925d8">SVF::SCCDetection::_graph</a></div><div class="ttdeci">const GraphType & _graph</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00194">SCC.h:194</a></div></div>
|
|
@@ -97,7 +95,7 @@ $(function() {
|
|
|
97
95
|
<div class="ttc" id="classSVF_1_1SCCDetection_1_1GNodeSCCInfo_html_a22079b5877606f469c0f8a851e55215b"><div class="ttname"><a href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a22079b5877606f469c0f8a851e55215b">SVF::SCCDetection::GNodeSCCInfo::rep</a></div><div class="ttdeci">void rep(NodeID n)</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00093">SCC.h:93</a></div></div>
|
|
98
96
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a3a5fdc9330a657240f77199f5aee602d"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a3a5fdc9330a657240f77199f5aee602d">SVF::SCCDetection::repNode</a></div><div class="ttdeci">NodeID repNode(NodeID n) const</div><div class="ttdoc">get the rep node if not found return itself </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00139">SCC.h:139</a></div></div>
|
|
99
97
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a60b977d41c29aa6ea01b94be12792351"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a60b977d41c29aa6ea01b94be12792351">SVF::SCCDetection::inSCC</a></div><div class="ttdeci">bool inSCC(NodeID n)</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00205">SCC.h:205</a></div></div>
|
|
100
|
-
<div class="ttc" id="
|
|
98
|
+
<div class="ttc" id="structSVF_1_1GenericGraphTraits_html_a05654ab9615d75bc8e5f8c5cf9297205"><div class="ttname"><a href="structSVF_1_1GenericGraphTraits.html#a05654ab9615d75bc8e5f8c5cf9297205">SVF::GenericGraphTraits::NodeRef</a></div><div class="ttdeci">typename GraphType::UnknownGraphTypeError NodeRef</div><div class="ttdef"><b>Definition:</b> <a href="GraphTraits_8h_source.html#l00080">GraphTraits.h:80</a></div></div>
|
|
101
99
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a58b7ae8ed203311628dc5a84e1e79a5e"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a58b7ae8ed203311628dc5a84e1e79a5e">SVF::SCCDetection::_D</a></div><div class="ttdeci">NodeToNodeMap _D</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00196">SCC.h:196</a></div></div>
|
|
102
100
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a56c28264d14062354e3272a4a993a1ec"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a56c28264d14062354e3272a4a993a1ec">SVF::SCCDetection::GNODESCCInfoMap</a></div><div class="ttdeci">Map< NodeID, GNodeSCCInfo > GNODESCCInfoMap</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00116">SCC.h:116</a></div></div>
|
|
103
101
|
<div class="ttc" id="classSVF_1_1SCCDetection_1_1GNodeSCCInfo_html_a99f3c75c72892cf364b808ff7e773a51"><div class="ttname"><a href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a99f3c75c72892cf364b808ff7e773a51">SVF::SCCDetection::GNodeSCCInfo::_rep</a></div><div class="ttdeci">NodeID _rep</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00112">SCC.h:112</a></div></div>
|
|
@@ -128,8 +126,10 @@ $(function() {
|
|
|
128
126
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a5d699af73b1e7ad4e3a5f6d26b8b6d15"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a5d699af73b1e7ad4e3a5f6d26b8b6d15">SVF::SCCDetection::isInCycle</a></div><div class="ttdeci">bool isInCycle(NodeID n) const</div><div class="ttdoc">whether the node is in a cycle </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00149">SCC.h:149</a></div></div>
|
|
129
127
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_aff6c15443edca2559ae3f3d04ff45481"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#aff6c15443edca2559ae3f3d04ff45481">SVF::SCCDetection::isInSCC</a></div><div class="ttdeci">bool isInSCC(NodeID n)</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00234">SCC.h:234</a></div></div>
|
|
130
128
|
<div class="ttc" id="classSVF_1_1SCCDetection_1_1GNodeSCCInfo_html_a48a7c2de3119762694cdc0a4db77213a"><div class="ttname"><a href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#a48a7c2de3119762694cdc0a4db77213a">SVF::SCCDetection::GNodeSCCInfo::visited</a></div><div class="ttdeci">void visited(bool v)</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00077">SCC.h:77</a></div></div>
|
|
129
|
+
<div class="ttc" id="structSVF_1_1GenericGraphTraits_html"><div class="ttname"><a href="structSVF_1_1GenericGraphTraits.html">SVF::GenericGraphTraits</a></div><div class="ttdef"><b>Definition:</b> <a href="GraphTraits_8h_source.html#l00036">GraphTraits.h:36</a></div></div>
|
|
131
130
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a7d7b354d8a7ce69b27dc775ccd192a62"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a7d7b354d8a7ce69b27dc775ccd192a62">SVF::SCCDetection::GNODE</a></div><div class="ttdeci">GTraits::NodeRef GNODE</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00060">SCC.h:60</a></div></div>
|
|
132
131
|
<div class="ttc" id="classSVF_1_1SCCDetection_1_1GNodeSCCInfo_html_aa2b23b22bb0304ce07ab9b14f0fdc395"><div class="ttname"><a href="classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html#aa2b23b22bb0304ce07ab9b14f0fdc395">SVF::SCCDetection::GNodeSCCInfo::subNodes</a></div><div class="ttdeci">const NodeBS & subNodes() const</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00105">SCC.h:105</a></div></div>
|
|
132
|
+
<div class="ttc" id="classSVF_1_1SCCDetection_html_a862d30c661897fb8a5d60abcfa45da12"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a862d30c661897fb8a5d60abcfa45da12">SVF::SCCDetection::GTraits</a></div><div class="ttdeci">SVF::GenericGraphTraits< GraphType > GTraits</div><div class="ttdoc">Define the GTraits and node iterator for printing. </div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00059">SCC.h:59</a></div></div>
|
|
133
133
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a1d0d98fd1286e71cfae50180cd2b1313"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a1d0d98fd1286e71cfae50180cd2b1313">SVF::SCCDetection::find</a></div><div class="ttdeci">void find(NodeSet &candidates)</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00334">SCC.h:334</a></div></div>
|
|
134
134
|
</div><!-- fragment --></div><!-- contents -->
|
|
135
135
|
<!-- start footer part -->
|
|
@@ -77,7 +77,7 @@ $(function() {
|
|
|
77
77
|
<div class="ttc" id="classSVF_1_1SVFGBuilder_html_a54a713e3989597b11cee70864d0197bd"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a54a713e3989597b11cee70864d0197bd">SVF::SVFGBuilder::buildFullSVFG</a></div><div class="ttdeci">SVFG * buildFullSVFG(BVDataPTAImpl *pta)</div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00052">SVFGBuilder.cpp:52</a></div></div>
|
|
78
78
|
<div class="ttc" id="classSVF_1_1VFG_html_ac2e2f555975063da3fa1932ac35802c6ada8562b20e8d888a4b421c200957294d"><div class="ttname"><a href="classSVF_1_1VFG.html#ac2e2f555975063da3fa1932ac35802c6ada8562b20e8d888a4b421c200957294d">SVF::VFG::PTRONLYSVFG</a></div><div class="ttdef"><b>Definition:</b> <a href="VFG_8h_source.html#l00057">VFG.h:57</a></div></div>
|
|
79
79
|
<div class="ttc" id="classSVF_1_1SVFGBuilder_html_a6e08e6a99f7e743abf35e603e35e54f5"><div class="ttname"><a href="classSVF_1_1SVFGBuilder.html#a6e08e6a99f7e743abf35e603e35e54f5">SVF::SVFGBuilder::releaseMemory</a></div><div class="ttdeci">virtual void releaseMemory()</div><div class="ttdoc">Release global SVFG. </div><div class="ttdef"><b>Definition:</b> <a href="SVFGBuilder_8cpp_source.html#l00110">SVFGBuilder.cpp:110</a></div></div>
|
|
80
|
-
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
80
|
+
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00257">SVFValue.h:257</a></div></div>
|
|
81
81
|
<div class="ttc" id="SVFGBuilder_8h_html"><div class="ttname"><a href="SVFGBuilder_8h.html">SVFGBuilder.h</a></div></div>
|
|
82
82
|
<div class="ttc" id="SVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdoc">General debug flag is for each phase of a pass, it is often in a colorful output format. </div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00424">SVFType.h:424</a></div></div>
|
|
83
83
|
<div class="ttc" id="classSVF_1_1PointerAnalysis_html_a4880571f57542afc50da506dfe273183"><div class="ttname"><a href="classSVF_1_1PointerAnalysis.html#a4880571f57542afc50da506dfe273183">SVF::PointerAnalysis::printStat</a></div><div class="ttdeci">bool printStat()</div><div class="ttdoc">Whether print statistics. </div><div class="ttdef"><b>Definition:</b> <a href="PointerAnalysis_8h_source.html#l00362">PointerAnalysis.h:362</a></div></div>
|