svf-tools 1.0.855 → 1.0.857
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/AndersenPWC_8h_source.html +4 -4
- package/SVF-doxygen/html/AndersenSCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/AndersenStat_8cpp_source.html +154 -163
- package/SVF-doxygen/html/Andersen_8cpp_source.html +2 -2
- package/SVF-doxygen/html/Andersen_8h_source.html +13 -13
- package/SVF-doxygen/html/CFBasicBlockGWTO_8h.html +109 -0
- package/SVF-doxygen/html/CFBasicBlockGWTO_8h_source.html +185 -0
- package/SVF-doxygen/html/CFLAlias_8cpp_source.html +2 -2
- package/SVF-doxygen/html/CFLAlias_8h_source.html +4 -4
- package/SVF-doxygen/html/CFLBase_8cpp_source.html +1 -1
- package/SVF-doxygen/html/CFLBase_8h_source.html +1 -1
- package/SVF-doxygen/html/CFLSVFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/CFLStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/CFLVF_8h_source.html +2 -2
- package/SVF-doxygen/html/CSC_8h.html +3 -3
- package/SVF-doxygen/html/CSC_8h_source.html +5 -5
- package/SVF-doxygen/html/ConsGNode_8h_source.html +4 -4
- package/SVF-doxygen/html/ContextDDA_8cpp_source.html +14 -14
- package/SVF-doxygen/html/ContextDDA_8h_source.html +6 -6
- package/SVF-doxygen/html/DDAClient_8cpp_source.html +5 -5
- package/SVF-doxygen/html/DDAClient_8h_source.html +1 -1
- package/SVF-doxygen/html/DDAPass_8cpp_source.html +7 -7
- package/SVF-doxygen/html/DDAPass_8h.html +3 -3
- package/SVF-doxygen/html/DDAPass_8h_source.html +4 -4
- package/SVF-doxygen/html/DDAStat_8cpp_source.html +10 -10
- package/SVF-doxygen/html/DDAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/DDAVFSolver_8h.html +2 -2
- package/SVF-doxygen/html/DDAVFSolver_8h_source.html +5 -5
- package/SVF-doxygen/html/FSMPTA_8cpp_source.html +2 -2
- package/SVF-doxygen/html/FSMPTA_8h_source.html +5 -5
- package/SVF-doxygen/html/FlowDDA_8h_source.html +11 -11
- package/SVF-doxygen/html/FlowSensitiveStat_8cpp_source.html +236 -238
- package/SVF-doxygen/html/FlowSensitive_8cpp_source.html +3 -3
- package/SVF-doxygen/html/FlowSensitive_8h_source.html +7 -7
- package/SVF-doxygen/html/ICFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/ICFGWTO_8h.html +109 -0
- package/SVF-doxygen/html/ICFGWTO_8h_source.html +177 -0
- package/SVF-doxygen/html/LLVMModule_8cpp_source.html +2 -2
- package/SVF-doxygen/html/MTAAnnotator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/MTAAnnotator_8h_source.html +1 -1
- package/SVF-doxygen/html/MTAStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/MTA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/MemRegion_8cpp_source.html +3 -3
- package/SVF-doxygen/html/MemRegion_8h.html +3 -3
- package/SVF-doxygen/html/MemRegion_8h_source.html +4 -4
- package/SVF-doxygen/html/MemSSA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Options_8cpp_source.html +10 -10
- package/SVF-doxygen/html/PCG_8h_source.html +4 -4
- package/SVF-doxygen/html/PTAStat_8cpp_source.html +99 -87
- package/SVF-doxygen/html/PTAStat_8h_source.html +2 -2
- package/SVF-doxygen/html/PointerAnalysisImpl_8cpp_source.html +30 -30
- package/SVF-doxygen/html/PointerAnalysisImpl_8h_source.html +15 -15
- package/SVF-doxygen/html/PointerAnalysis_8cpp_source.html +42 -42
- package/SVF-doxygen/html/PointerAnalysis_8h.html +5 -5
- package/SVF-doxygen/html/PointerAnalysis_8h_source.html +409 -418
- package/SVF-doxygen/html/SCC_8h.html +2 -2
- package/SVF-doxygen/html/SCC_8h_source.html +2 -2
- package/SVF-doxygen/html/SVFGBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/SVFGStat_8cpp_source.html +16 -19
- package/SVF-doxygen/html/SVFGStat_8h.html +1 -1
- package/SVF-doxygen/html/SVFGStat_8h_source.html +3 -3
- package/SVF-doxygen/html/SVFG_8h_source.html +1 -1
- package/SVF-doxygen/html/SVFStat_8cpp_source.html +196 -186
- package/SVF-doxygen/html/SVFStat_8h_source.html +44 -41
- package/SVF-doxygen/html/SaberSVFGBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/SrcSnkDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/Steensgaard_8cpp_source.html +2 -2
- package/SVF-doxygen/html/Steensgaard_8h_source.html +4 -4
- package/SVF-doxygen/html/TCT_8h.html +2 -2
- package/SVF-doxygen/html/TCT_8h_source.html +9 -9
- package/SVF-doxygen/html/ThreadCallGraph_8cpp_source.html +3 -3
- package/SVF-doxygen/html/ThreadCallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/TypeAnalysis_8cpp_source.html +3 -3
- package/SVF-doxygen/html/TypeAnalysis_8h_source.html +6 -6
- package/SVF-doxygen/html/VFG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/VFG_8h_source.html +1 -1
- package/SVF-doxygen/html/VersionedFlowSensitiveStat_8cpp_source.html +77 -79
- package/SVF-doxygen/html/VersionedFlowSensitive_8cpp_source.html +6 -6
- package/SVF-doxygen/html/VersionedFlowSensitive_8h_source.html +4 -4
- package/SVF-doxygen/html/WPAPass_8cpp_source.html +12 -12
- package/SVF-doxygen/html/WPAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/WPAStat_8h_source.html +9 -9
- package/SVF-doxygen/html/WTO_8h.html +25 -13
- package/SVF-doxygen/html/WTO_8h_source.html +794 -853
- package/SVF-doxygen/html/annotated.html +402 -397
- package/SVF-doxygen/html/classSVF_1_1Andersen-members.html +121 -123
- package/SVF-doxygen/html/classSVF_1_1Andersen.html +11 -17
- package/SVF-doxygen/html/classSVF_1_1AndersenBase-members.html +100 -102
- package/SVF-doxygen/html/classSVF_1_1AndersenBase.html +11 -17
- package/SVF-doxygen/html/classSVF_1_1AndersenSCD-members.html +124 -126
- package/SVF-doxygen/html/classSVF_1_1AndersenSCD.html +2 -8
- package/SVF-doxygen/html/classSVF_1_1AndersenSFR-members.html +129 -131
- package/SVF-doxygen/html/classSVF_1_1AndersenSFR.html +1 -7
- package/SVF-doxygen/html/classSVF_1_1AndersenStat-members.html +21 -20
- package/SVF-doxygen/html/classSVF_1_1AndersenStat.html +155 -161
- package/SVF-doxygen/html/classSVF_1_1AndersenWaveDiff-members.html +122 -124
- package/SVF-doxygen/html/classSVF_1_1AndersenWaveDiff.html +2 -8
- package/SVF-doxygen/html/classSVF_1_1BVDataPTAImpl-members.html +58 -60
- package/SVF-doxygen/html/classSVF_1_1BVDataPTAImpl.html +26 -32
- package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO-members.html +57 -50
- package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO.html +203 -1663
- package/SVF-doxygen/html/classSVF_1_1CFBasicBlockGWTO.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1CFLAlias-members.html +78 -80
- package/SVF-doxygen/html/classSVF_1_1CFLAlias.html +4 -10
- package/SVF-doxygen/html/classSVF_1_1CFLBase-members.html +75 -77
- package/SVF-doxygen/html/classSVF_1_1CFLBase.html +1 -7
- package/SVF-doxygen/html/classSVF_1_1CFLSVFGBuilder.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1CFLStat-members.html +19 -18
- package/SVF-doxygen/html/classSVF_1_1CFLStat.html +5 -2
- package/SVF-doxygen/html/classSVF_1_1CFLVF-members.html +77 -79
- package/SVF-doxygen/html/classSVF_1_1CFLVF.html +2 -8
- package/SVF-doxygen/html/classSVF_1_1CondPTAImpl-members.html +50 -52
- package/SVF-doxygen/html/classSVF_1_1CondPTAImpl.html +9 -15
- package/SVF-doxygen/html/classSVF_1_1ConstraintNode-members.html +34 -34
- package/SVF-doxygen/html/classSVF_1_1ConstraintNode.html +25 -65
- package/SVF-doxygen/html/classSVF_1_1ContextDDA-members.html +97 -99
- package/SVF-doxygen/html/classSVF_1_1ContextDDA.html +18 -24
- package/SVF-doxygen/html/classSVF_1_1DDAClient.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1DDAPass.html +6 -6
- package/SVF-doxygen/html/classSVF_1_1DDAStat-members.html +18 -17
- package/SVF-doxygen/html/classSVF_1_1DDAStat.html +12 -9
- package/SVF-doxygen/html/classSVF_1_1DDAVFSolver.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1FSMPTA-members.html +140 -142
- package/SVF-doxygen/html/classSVF_1_1FSMPTA.html +2 -8
- package/SVF-doxygen/html/classSVF_1_1FlowDDA-members.html +102 -104
- package/SVF-doxygen/html/classSVF_1_1FlowDDA.html +15 -21
- package/SVF-doxygen/html/classSVF_1_1FlowSensitive-members.html +133 -135
- package/SVF-doxygen/html/classSVF_1_1FlowSensitive.html +18 -24
- package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat-members.html +24 -23
- package/SVF-doxygen/html/classSVF_1_1FlowSensitiveStat.html +241 -240
- package/SVF-doxygen/html/classSVF_1_1FunptrDDAClient.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1GenericNode.html +9 -10
- package/SVF-doxygen/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1ICFGStat-members.html +19 -18
- package/SVF-doxygen/html/classSVF_1_1ICFGStat.html +4 -1
- package/SVF-doxygen/html/classSVF_1_1ICFGWTO-members.html +140 -0
- package/SVF-doxygen/html/classSVF_1_1ICFGWTO.html +379 -0
- package/SVF-doxygen/html/classSVF_1_1ICFGWTO.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1LLVMModuleSet.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1MRGenerator.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1MTA.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1MTAAnnotator.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1MTASVFGBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1MTAStat-members.html +20 -19
- package/SVF-doxygen/html/classSVF_1_1MTAStat.html +6 -3
- package/SVF-doxygen/html/classSVF_1_1MemSSA.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1MemSSAStat-members.html +24 -23
- package/SVF-doxygen/html/classSVF_1_1MemSSAStat.html +7 -4
- package/SVF-doxygen/html/classSVF_1_1PCG.html +3 -3
- package/SVF-doxygen/html/classSVF_1_1POCRAlias-members.html +78 -80
- package/SVF-doxygen/html/classSVF_1_1POCRAlias.html +0 -6
- package/SVF-doxygen/html/classSVF_1_1POCRHybrid-members.html +78 -80
- package/SVF-doxygen/html/classSVF_1_1POCRHybrid.html +0 -6
- package/SVF-doxygen/html/classSVF_1_1PTAStat-members.html +19 -18
- package/SVF-doxygen/html/classSVF_1_1PTAStat.html +100 -85
- package/SVF-doxygen/html/classSVF_1_1PointerAnalysis-members.html +34 -36
- package/SVF-doxygen/html/classSVF_1_1PointerAnalysis.html +291 -356
- package/SVF-doxygen/html/classSVF_1_1SCCDetection.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFGStat-members.html +41 -40
- package/SVF-doxygen/html/classSVF_1_1SVFGStat.html +18 -18
- package/SVF-doxygen/html/classSVF_1_1SVFIRBuilder.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1SVFStat-members.html +13 -12
- package/SVF-doxygen/html/classSVF_1_1SVFStat.html +208 -168
- package/SVF-doxygen/html/classSVF_1_1SaberSVFGBuilder.html +5 -5
- package/SVF-doxygen/html/classSVF_1_1SrcSnkDDA.html +1 -1
- package/SVF-doxygen/html/classSVF_1_1Steensgaard-members.html +109 -111
- package/SVF-doxygen/html/classSVF_1_1Steensgaard.html +4 -10
- package/SVF-doxygen/html/classSVF_1_1TCT.html +4 -4
- package/SVF-doxygen/html/classSVF_1_1ThreadCallGraph.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1TypeAnalysis-members.html +103 -105
- package/SVF-doxygen/html/classSVF_1_1TypeAnalysis.html +9 -15
- package/SVF-doxygen/html/classSVF_1_1VFG.html +2 -2
- package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitive-members.html +158 -160
- package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitive.html +6 -12
- package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitiveStat-members.html +24 -23
- package/SVF-doxygen/html/classSVF_1_1VersionedFlowSensitiveStat.html +84 -83
- package/SVF-doxygen/html/classSVF_1_1WPAPass.html +12 -12
- package/SVF-doxygen/html/classSVF_1_1WTO-members.html +137 -0
- package/SVF-doxygen/html/classSVF_1_1WTO.html +1998 -0
- package/SVF-doxygen/html/classSVF_1_1WTOComponent-members.html +97 -0
- package/SVF-doxygen/html/classSVF_1_1WTOComponent.html +515 -0
- package/SVF-doxygen/html/classSVF_1_1WTOComponentVisitor-members.html +93 -0
- package/SVF-doxygen/html/classSVF_1_1WTOComponentVisitor.html +421 -0
- package/SVF-doxygen/html/classSVF_1_1WTOComponentVisitor.png +0 -0
- package/SVF-doxygen/html/classSVF_1_1WTOCycle-members.html +98 -0
- package/SVF-doxygen/html/classSVF_1_1WTOCycle.html +630 -0
- package/SVF-doxygen/html/classSVF_1_1WTOCycleDepth-members.html +24 -23
- package/SVF-doxygen/html/classSVF_1_1WTOCycleDepth.html +338 -317
- package/SVF-doxygen/html/classSVF_1_1WTONode-members.html +91 -0
- package/SVF-doxygen/html/classSVF_1_1WTONode.html +390 -0
- package/SVF-doxygen/html/classSVF_1_1WTO_1_1WTOCycleDepthBuilder-members.html +96 -0
- package/SVF-doxygen/html/classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html +332 -0
- package/SVF-doxygen/html/classSVF_1_1WTO_1_1WTOCycleDepthBuilder.png +0 -0
- package/SVF-doxygen/html/classes.html +383 -377
- package/SVF-doxygen/html/dir_445b24f35a8ddd2effd3d23ee1278e0a.html +0 -2
- package/SVF-doxygen/html/dir_f63327fc9cf9e35b7653a5e341daceab.html +4 -2
- package/SVF-doxygen/html/dir_fc0329f850c815763e0c5b05933e8d55.html +4 -0
- package/SVF-doxygen/html/files.html +31 -29
- package/SVF-doxygen/html/functions.html +18 -30
- package/SVF-doxygen/html/functions_a.html +17 -14
- package/SVF-doxygen/html/functions_b.html +25 -25
- package/SVF-doxygen/html/functions_c.html +37 -51
- package/SVF-doxygen/html/functions_e.html +7 -4
- package/SVF-doxygen/html/functions_enum.html +2 -2
- package/SVF-doxygen/html/functions_eval_c.html +1 -1
- package/SVF-doxygen/html/functions_eval_n.html +1 -1
- package/SVF-doxygen/html/functions_f.html +26 -21
- package/SVF-doxygen/html/functions_func.html +14 -11
- package/SVF-doxygen/html/functions_func_b.html +6 -10
- package/SVF-doxygen/html/functions_func_c.html +30 -36
- package/SVF-doxygen/html/functions_func_e.html +5 -5
- package/SVF-doxygen/html/functions_func_f.html +8 -3
- package/SVF-doxygen/html/functions_func_g.html +15 -25
- package/SVF-doxygen/html/functions_func_h.html +3 -3
- package/SVF-doxygen/html/functions_func_i.html +18 -14
- package/SVF-doxygen/html/functions_func_n.html +6 -6
- package/SVF-doxygen/html/functions_func_o.html +16 -16
- package/SVF-doxygen/html/functions_func_p.html +4 -7
- package/SVF-doxygen/html/functions_func_s.html +1 -1
- package/SVF-doxygen/html/functions_func_t.html +7 -10
- package/SVF-doxygen/html/functions_func_v.html +4 -5
- package/SVF-doxygen/html/functions_func_w.html +16 -4
- package/SVF-doxygen/html/functions_func_~.html +10 -10
- package/SVF-doxygen/html/functions_g.html +14 -21
- package/SVF-doxygen/html/functions_h.html +9 -6
- package/SVF-doxygen/html/functions_i.html +32 -29
- package/SVF-doxygen/html/functions_l.html +3 -3
- package/SVF-doxygen/html/functions_n.html +25 -23
- package/SVF-doxygen/html/functions_o.html +31 -29
- package/SVF-doxygen/html/functions_p.html +21 -15
- package/SVF-doxygen/html/functions_r.html +1 -1
- package/SVF-doxygen/html/functions_rela_o.html +3 -3
- package/SVF-doxygen/html/functions_s.html +26 -23
- package/SVF-doxygen/html/functions_t.html +14 -20
- package/SVF-doxygen/html/functions_type_b.html +4 -0
- package/SVF-doxygen/html/functions_type_c.html +3 -9
- package/SVF-doxygen/html/functions_type_e.html +3 -0
- package/SVF-doxygen/html/functions_type_g.html +3 -0
- package/SVF-doxygen/html/functions_type_i.html +7 -8
- package/SVF-doxygen/html/functions_type_n.html +13 -9
- package/SVF-doxygen/html/functions_type_s.html +3 -0
- package/SVF-doxygen/html/functions_type_w.html +19 -6
- package/SVF-doxygen/html/functions_v.html +8 -9
- package/SVF-doxygen/html/functions_vars.html +18 -30
- package/SVF-doxygen/html/functions_vars_h.html +3 -0
- package/SVF-doxygen/html/functions_vars_p.html +3 -0
- package/SVF-doxygen/html/functions_vars_t.html +0 -3
- package/SVF-doxygen/html/functions_vars_w.html +4 -0
- package/SVF-doxygen/html/functions_w.html +47 -20
- package/SVF-doxygen/html/functions_~.html +10 -10
- package/SVF-doxygen/html/hierarchy.html +621 -614
- package/SVF-doxygen/html/namespaceSVF.html +127 -7
- package/SVF-doxygen/html/namespacemembers_c.html +9 -0
- package/SVF-doxygen/html/namespacemembers_i.html +14 -5
- package/SVF-doxygen/html/namespacemembers_type_c.html +9 -0
- package/SVF-doxygen/html/namespacemembers_type_i.html +9 -0
- package/SVF-doxygen/html/search/all_0.js +124 -127
- package/SVF-doxygen/html/search/all_1.js +495 -495
- package/SVF-doxygen/html/search/all_10.js +325 -325
- package/SVF-doxygen/html/search/all_11.js +225 -225
- package/SVF-doxygen/html/search/all_12.js +555 -554
- package/SVF-doxygen/html/search/all_13.js +201 -203
- package/SVF-doxygen/html/search/all_14.js +67 -67
- package/SVF-doxygen/html/search/all_15.js +168 -168
- package/SVF-doxygen/html/search/all_16.js +73 -63
- package/SVF-doxygen/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/search/all_19.js +11 -11
- package/SVF-doxygen/html/search/all_1a.js +175 -175
- package/SVF-doxygen/html/search/all_2.js +172 -173
- package/SVF-doxygen/html/search/all_3.js +648 -649
- package/SVF-doxygen/html/search/all_4.js +230 -230
- package/SVF-doxygen/html/search/all_5.js +120 -119
- package/SVF-doxygen/html/search/all_6.js +227 -226
- package/SVF-doxygen/html/search/all_7.js +1046 -1048
- package/SVF-doxygen/html/search/all_8.js +196 -191
- package/SVF-doxygen/html/search/all_9.js +579 -574
- package/SVF-doxygen/html/search/all_a.js +46 -46
- package/SVF-doxygen/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/search/all_c.js +115 -115
- package/SVF-doxygen/html/search/all_d.js +197 -197
- package/SVF-doxygen/html/search/all_e.js +207 -207
- package/SVF-doxygen/html/search/all_f.js +116 -116
- package/SVF-doxygen/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/search/classes_10.js +74 -74
- package/SVF-doxygen/html/search/classes_11.js +14 -15
- package/SVF-doxygen/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/search/classes_14.js +20 -14
- package/SVF-doxygen/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/search/classes_2.js +78 -81
- package/SVF-doxygen/html/search/classes_3.js +37 -37
- package/SVF-doxygen/html/search/classes_4.js +9 -9
- package/SVF-doxygen/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/search/classes_6.js +104 -104
- package/SVF-doxygen/html/search/classes_7.js +38 -34
- package/SVF-doxygen/html/search/classes_8.js +58 -57
- package/SVF-doxygen/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/search/classes_d.js +18 -18
- package/SVF-doxygen/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/search/defines_4.js +2 -2
- package/SVF-doxygen/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/search/defines_8.js +11 -11
- package/SVF-doxygen/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/search/defines_b.js +1 -1
- package/SVF-doxygen/html/search/defines_c.js +3 -3
- package/SVF-doxygen/html/search/defines_d.js +2 -2
- package/SVF-doxygen/html/search/defines_e.js +7 -7
- package/SVF-doxygen/html/search/defines_f.js +3 -3
- package/SVF-doxygen/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/search/enums_1.js +2 -2
- package/SVF-doxygen/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/search/enums_4.js +3 -3
- package/SVF-doxygen/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/search/enums_a.js +1 -1
- package/SVF-doxygen/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_1.js +14 -14
- package/SVF-doxygen/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/search/enumvalues_2.js +36 -36
- package/SVF-doxygen/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/search/enumvalues_4.js +2 -2
- package/SVF-doxygen/html/search/enumvalues_5.js +47 -47
- package/SVF-doxygen/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_7.js +8 -8
- package/SVF-doxygen/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/search/enumvalues_a.js +15 -15
- package/SVF-doxygen/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/search/enumvalues_c.js +5 -5
- package/SVF-doxygen/html/search/enumvalues_d.js +18 -18
- package/SVF-doxygen/html/search/enumvalues_e.js +9 -9
- package/SVF-doxygen/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/search/files_0.js +14 -14
- package/SVF-doxygen/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/search/files_2.js +58 -57
- package/SVF-doxygen/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/search/files_4.js +5 -5
- package/SVF-doxygen/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/search/files_7.js +15 -14
- package/SVF-doxygen/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/search/files_c.js +20 -20
- package/SVF-doxygen/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/search/functions_0.js +13 -13
- package/SVF-doxygen/html/search/functions_1.js +365 -364
- package/SVF-doxygen/html/search/functions_10.js +139 -140
- package/SVF-doxygen/html/search/functions_11.js +140 -140
- package/SVF-doxygen/html/search/functions_12.js +289 -289
- package/SVF-doxygen/html/search/functions_13.js +71 -72
- package/SVF-doxygen/html/search/functions_14.js +39 -39
- package/SVF-doxygen/html/search/functions_15.js +71 -71
- package/SVF-doxygen/html/search/functions_16.js +36 -32
- package/SVF-doxygen/html/search/functions_17.js +3 -3
- package/SVF-doxygen/html/search/functions_18.js +175 -175
- package/SVF-doxygen/html/search/functions_2.js +90 -91
- package/SVF-doxygen/html/search/functions_3.js +260 -262
- package/SVF-doxygen/html/search/functions_4.js +78 -78
- package/SVF-doxygen/html/search/functions_5.js +53 -53
- package/SVF-doxygen/html/search/functions_6.js +61 -60
- package/SVF-doxygen/html/search/functions_7.js +854 -857
- package/SVF-doxygen/html/search/functions_8.js +148 -148
- package/SVF-doxygen/html/search/functions_9.js +422 -421
- package/SVF-doxygen/html/search/functions_a.js +30 -30
- package/SVF-doxygen/html/search/functions_b.js +2 -2
- package/SVF-doxygen/html/search/functions_c.js +25 -25
- package/SVF-doxygen/html/search/functions_d.js +79 -79
- package/SVF-doxygen/html/search/functions_e.js +35 -35
- package/SVF-doxygen/html/search/functions_f.js +56 -56
- package/SVF-doxygen/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/search/related_1.js +2 -2
- package/SVF-doxygen/html/search/related_2.js +3 -3
- package/SVF-doxygen/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/search/related_c.js +2 -2
- package/SVF-doxygen/html/search/related_d.js +12 -12
- package/SVF-doxygen/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/search/typedefs_0.js +19 -19
- package/SVF-doxygen/html/search/typedefs_1.js +27 -26
- package/SVF-doxygen/html/search/typedefs_10.js +63 -62
- package/SVF-doxygen/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/search/typedefs_13.js +33 -33
- package/SVF-doxygen/html/search/typedefs_14.js +11 -8
- package/SVF-doxygen/html/search/typedefs_2.js +129 -129
- package/SVF-doxygen/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/search/typedefs_4.js +18 -17
- package/SVF-doxygen/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/search/typedefs_6.js +57 -56
- package/SVF-doxygen/html/search/typedefs_7.js +47 -44
- package/SVF-doxygen/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/search/typedefs_c.js +41 -41
- package/SVF-doxygen/html/search/typedefs_d.js +14 -14
- package/SVF-doxygen/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/search/variables_0.js +148 -151
- package/SVF-doxygen/html/search/variables_1.js +76 -76
- package/SVF-doxygen/html/search/variables_10.js +99 -98
- package/SVF-doxygen/html/search/variables_11.js +45 -45
- package/SVF-doxygen/html/search/variables_12.js +91 -91
- package/SVF-doxygen/html/search/variables_13.js +73 -74
- package/SVF-doxygen/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/search/variables_15.js +49 -49
- package/SVF-doxygen/html/search/variables_16.js +10 -9
- package/SVF-doxygen/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/search/variables_2.js +38 -38
- package/SVF-doxygen/html/search/variables_3.js +142 -142
- package/SVF-doxygen/html/search/variables_4.js +50 -50
- package/SVF-doxygen/html/search/variables_5.js +37 -37
- package/SVF-doxygen/html/search/variables_6.js +66 -66
- package/SVF-doxygen/html/search/variables_7.js +34 -34
- package/SVF-doxygen/html/search/variables_8.js +8 -7
- package/SVF-doxygen/html/search/variables_9.js +78 -78
- package/SVF-doxygen/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/search/variables_d.js +55 -55
- package/SVF-doxygen/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/search/variables_f.js +30 -30
- package/SVF-doxygen/html/structSVF_1_1has__edgetype.html +97 -0
- package/SVF-doxygen/html/structSVF_1_1has__edgetype.png +0 -0
- package/SVF-doxygen/html/structSVF_1_1has__edgetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1EdgeType_01_4_01_4.html +97 -0
- package/SVF-doxygen/html/structSVF_1_1has__edgetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1EdgeType_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/structSVF_1_1has__nodetype.html +97 -0
- package/SVF-doxygen/html/structSVF_1_1has__nodetype.png +0 -0
- package/SVF-doxygen/html/structSVF_1_1has__nodetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1NodeType_01_4_01_4.html +97 -0
- package/SVF-doxygen/html/structSVF_1_1has__nodetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1NodeType_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/svf-ex_8cpp.html +2 -2
- package/SVF-doxygen/html/svf-ex_8cpp_source.html +3 -3
- package/package.json +1 -1
- package/svf/include/AbstractExecution/CFBasicBlockGWTO.h +83 -0
- package/svf/include/AbstractExecution/ICFGWTO.h +78 -0
- package/svf/include/DDA/DDAPass.h +2 -2
- package/svf/include/DDA/DDAVFSolver.h +2 -2
- package/svf/include/Graphs/SVFGStat.h +1 -1
- package/svf/include/Graphs/WTO.h +859 -0
- package/svf/include/MSSA/MemRegion.h +3 -3
- package/svf/include/MTA/TCT.h +2 -2
- package/svf/include/MemoryModel/PointerAnalysis.h +5 -14
- package/svf/include/Util/SVFStat.h +3 -0
- package/svf/include/WPA/CSC.h +3 -3
- package/svf/lib/DDA/DDAStat.cpp +2 -2
- package/svf/lib/Graphs/SVFGStat.cpp +2 -4
- package/svf/lib/MemoryModel/PointerAnalysis.cpp +1 -1
- package/svf/lib/Util/PTAStat.cpp +14 -4
- package/svf/lib/Util/SVFStat.cpp +13 -3
- package/svf/lib/WPA/AndersenStat.cpp +3 -8
- package/svf/lib/WPA/FlowSensitiveStat.cpp +1 -2
- package/svf/lib/WPA/VersionedFlowSensitiveStat.cpp +1 -2
- package/svf/include/AbstractExecution/WTO.h +0 -897
- /package/svf/include/{Util → Graphs}/SCC.h +0 -0
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
|
6
6
|
<meta name="generator" content="Doxygen 1.8.17"/>
|
|
7
7
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
8
|
-
<title>Static Value-Flow Analysis: /home/runner/work/SVF/SVF/svf/include/
|
|
8
|
+
<title>Static Value-Flow Analysis: /home/runner/work/SVF/SVF/svf/include/Graphs/WTO.h Source File</title>
|
|
9
9
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
10
10
|
<script type="text/javascript" src="jquery.js"></script>
|
|
11
11
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
@@ -61,7 +61,7 @@ $(function() {
|
|
|
61
61
|
|
|
62
62
|
<div id="nav-path" class="navpath">
|
|
63
63
|
<ul>
|
|
64
|
-
<li class="navelem"><a class="el" href="dir_f984cfbe93434e3daf67f2a9bd6d521f.html">svf</a></li><li class="navelem"><a class="el" href="dir_390f2a6be5eff59a6919ecbd9cc9f31d.html">include</a></li><li class="navelem"><a class="el" href="
|
|
64
|
+
<li class="navelem"><a class="el" href="dir_f984cfbe93434e3daf67f2a9bd6d521f.html">svf</a></li><li class="navelem"><a class="el" href="dir_390f2a6be5eff59a6919ecbd9cc9f31d.html">include</a></li><li class="navelem"><a class="el" href="dir_fc0329f850c815763e0c5b05933e8d55.html">Graphs</a></li> </ul>
|
|
65
65
|
</div>
|
|
66
66
|
</div><!-- top -->
|
|
67
67
|
<div class="header">
|
|
@@ -98,904 +98,845 @@ $(function() {
|
|
|
98
98
|
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * "Efficient chaotic iteration strategies with widenings", Formal</span></div>
|
|
99
99
|
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> * Methods in Programming and Their Applications, 1993, pages 128-141.</span></div>
|
|
100
100
|
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="comment"> *</span></div>
|
|
101
|
-
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> * Created on:
|
|
101
|
+
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment"> * Created on: Jan 22, 2024</span></div>
|
|
102
102
|
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment"> * Author: Xiao Cheng, Jiawei Wang</span></div>
|
|
103
103
|
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment"> *</span></div>
|
|
104
104
|
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="comment"> */</span></div>
|
|
105
|
-
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> 
|
|
106
|
-
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#
|
|
107
|
-
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span> 
|
|
108
|
-
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> 
|
|
109
|
-
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="
|
|
110
|
-
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span> 
|
|
111
|
-
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="
|
|
112
|
-
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> 
|
|
105
|
+
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#ifndef WTO_H_</span></div>
|
|
106
|
+
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#define WTO_H_</span></div>
|
|
107
|
+
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  </div>
|
|
108
|
+
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "<a class="code" href="SVFType_8h.html">SVFIR/SVFType.h</a>"</span></div>
|
|
109
|
+
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="SVFValue_8h.html">SVFIR/SVFValue.h</a>"</span></div>
|
|
110
|
+
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  </div>
|
|
111
|
+
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div>
|
|
112
|
+
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div>
|
|
113
113
|
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div>
|
|
114
|
-
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">
|
|
115
|
-
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span> 
|
|
116
|
-
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </div>
|
|
117
|
-
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span> 
|
|
118
|
-
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  </div>
|
|
119
|
-
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span> 
|
|
120
|
-
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  </div>
|
|
121
|
-
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span> 
|
|
122
|
-
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> 
|
|
123
|
-
<div class="line"><a name="
|
|
124
|
-
<div class="line"><a name="
|
|
125
|
-
<div class="line"><a name="
|
|
126
|
-
<div class="line"><a name="
|
|
127
|
-
<div class="line"><a name="
|
|
128
|
-
<div class="line"><a name="
|
|
129
|
-
<div class="line"><a name="
|
|
130
|
-
<div class="line"><a name="
|
|
131
|
-
<div class="line"><a name="
|
|
132
|
-
<div class="line"><a name="
|
|
133
|
-
<div class="line"><a name="
|
|
134
|
-
<div class="line"><a name="
|
|
135
|
-
<div class="line"><a name="
|
|
136
|
-
<div class="line"><a name="
|
|
137
|
-
<div class="line"><a name="
|
|
138
|
-
<div class="line"><a name="
|
|
139
|
-
<div class="line"><a name="
|
|
140
|
-
<div class="line"><a name="
|
|
141
|
-
<div class="line"><a name="
|
|
142
|
-
<div class="line"><a name="
|
|
143
|
-
<div class="line"><a name="
|
|
144
|
-
<div class="line"><a name="
|
|
145
|
-
<div class="line"><a name="
|
|
146
|
-
<div class="line"><a name="
|
|
147
|
-
<div class="line"><a name="
|
|
148
|
-
<div class="line"><a name="
|
|
149
|
-
<div class="line"><a name="
|
|
150
|
-
<div class="line"><a name="
|
|
151
|
-
<div class="line"><a name="
|
|
152
|
-
<div class="line"><a name="
|
|
153
|
-
<div class="line"><a name="
|
|
154
|
-
<div class="line"><a name="
|
|
155
|
-
<div class="line"><a name="
|
|
156
|
-
<div class="line"><a name="
|
|
157
|
-
<div class="line"><a name="
|
|
158
|
-
<div class="line"><a name="
|
|
159
|
-
<div class="line"><a name="
|
|
160
|
-
<div class="line"><a name="
|
|
161
|
-
<div class="line"><a name="
|
|
162
|
-
<div class="line"><a name="
|
|
163
|
-
<div class="line"><a name="
|
|
164
|
-
<div class="line"><a name="
|
|
165
|
-
<div class="line"><a name="
|
|
166
|
-
<div class="line"><a name="
|
|
167
|
-
<div class="line"><a name="
|
|
168
|
-
<div class="line"><a name="
|
|
169
|
-
<div class="line"><a name="
|
|
170
|
-
<div class="line"><a name="
|
|
171
|
-
<div class="line"><a name="
|
|
172
|
-
<div class="line"><a name="
|
|
173
|
-
<div class="line"><a name="
|
|
174
|
-
<div class="line"><a name="
|
|
175
|
-
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span> 
|
|
176
|
-
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> 
|
|
177
|
-
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span> 
|
|
178
|
-
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span> 
|
|
179
|
-
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span> 
|
|
180
|
-
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#
|
|
114
|
+
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html"> 43</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> GraphT> <span class="keyword">class </span><a class="code" href="classSVF_1_1WTO.html">WTO</a>;</div>
|
|
115
|
+
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </div>
|
|
116
|
+
<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html"> 45</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> GraphT> <span class="keyword">class </span><a class="code" href="classSVF_1_1WTONode.html">WTONode</a>;</div>
|
|
117
|
+
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  </div>
|
|
118
|
+
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html"> 47</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> GraphT> <span class="keyword">class </span><a class="code" href="classSVF_1_1WTOCycle.html">WTOCycle</a>;</div>
|
|
119
|
+
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div>
|
|
120
|
+
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponentVisitor.html"> 49</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> GraphT> <span class="keyword">class </span><a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>;</div>
|
|
121
|
+
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
|
|
122
|
+
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <span class="comment">// Helper to test for the existence of a sub type</span></div>
|
|
123
|
+
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structSVF_1_1has__nodetype.html"> 52</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keywordtype">void</span>> <span class="keyword">struct </span><a class="code" href="structSVF_1_1has__nodetype.html">has_nodetype</a> : std::false_type</div>
|
|
124
|
+
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span> {</div>
|
|
125
|
+
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span> };</div>
|
|
126
|
+
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  </div>
|
|
127
|
+
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
128
|
+
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="structSVF_1_1has__nodetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1NodeType_01_4_01_4.html"> 57</a></span> <span class="keyword">struct </span><a class="code" href="structSVF_1_1has__nodetype.html">has_nodetype</a><T, std::<a class="code" href="namespaceSVF_1_1SVFUtil.html#ad37880353cffc950d5b9417bc41c0b06">void_t</a><typename T::NodeType>> : std::true_type</div>
|
|
129
|
+
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> {</div>
|
|
130
|
+
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span> };</div>
|
|
131
|
+
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  </div>
|
|
132
|
+
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="structSVF_1_1has__edgetype.html"> 61</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> T, <span class="keyword">typename</span> = <span class="keywordtype">void</span>> <span class="keyword">struct </span><a class="code" href="structSVF_1_1has__edgetype.html">has_edgetype</a> : std::false_type</div>
|
|
133
|
+
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span> {</div>
|
|
134
|
+
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span> };</div>
|
|
135
|
+
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  </div>
|
|
136
|
+
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
|
|
137
|
+
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="structSVF_1_1has__edgetype_3_01T_00_01std_1_1void__t_3_01typename_01T_1_1EdgeType_01_4_01_4.html"> 66</a></span> <span class="keyword">struct </span><a class="code" href="structSVF_1_1has__edgetype.html">has_edgetype</a><T, std::<a class="code" href="namespaceSVF_1_1SVFUtil.html#ad37880353cffc950d5b9417bc41c0b06">void_t</a><typename T::EdgeType>> : std::true_type</div>
|
|
138
|
+
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span> {</div>
|
|
139
|
+
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span> };</div>
|
|
140
|
+
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </div>
|
|
141
|
+
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html"> 100</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> GraphT> <span class="keyword">class </span><a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a></div>
|
|
142
|
+
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span> {</div>
|
|
143
|
+
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keyword">public</span>:</div>
|
|
144
|
+
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  static_assert(<a class="code" href="structSVF_1_1has__nodetype.html">has_nodetype<GraphT>::value</a>,</div>
|
|
145
|
+
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#ac1a815006184b8a54a1390832f929630"> 104</a></span>  <span class="stringliteral">"GraphT must have a nested type named 'NodeType'"</span>);</div>
|
|
146
|
+
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GraphT::NodeType <a class="code" href="classSVF_1_1WTOCycleDepth.html#ac1a815006184b8a54a1390832f929630">NodeT</a>;</div>
|
|
147
|
+
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
|
|
148
|
+
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">private</span>:</div>
|
|
149
|
+
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#af4c6d0f992a1844aa21a6d26be66b34c"> 108</a></span>  <span class="keyword">typedef</span> std::vector<const NodeT*> <a class="code" href="classSVF_1_1WTOCycleDepth.html#af4c6d0f992a1844aa21a6d26be66b34c">NodeRefList</a>;</div>
|
|
150
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div>
|
|
151
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">public</span>:</div>
|
|
152
|
+
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a375803014eebb65532a843eee6d9a690"> 111</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> NodeRefList::const_iterator <a class="code" href="classSVF_1_1WTOCycleDepth.html#a375803014eebb65532a843eee6d9a690">Iterator</a>;</div>
|
|
153
|
+
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div>
|
|
154
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> <span class="keyword">private</span>:</div>
|
|
155
|
+
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a6d7bd6b0da1527da8c85aab87462fba8"> 114</a></span>  <a class="code" href="classSVF_1_1WTOCycleDepth.html#af4c6d0f992a1844aa21a6d26be66b34c">NodeRefList</a> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a6d7bd6b0da1527da8c85aab87462fba8">_heads</a>;</div>
|
|
156
|
+
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  </div>
|
|
157
|
+
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> <span class="keyword">public</span>:</div>
|
|
158
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  <a class="code" href="classSVF_1_1WTOCycleDepth.html#a949e2ee782c346339a1ddaa868c8abaf">WTOCycleDepth</a>() = <span class="keywordflow">default</span>;</div>
|
|
159
|
+
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div>
|
|
160
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <a class="code" href="classSVF_1_1WTOCycleDepth.html#a949e2ee782c346339a1ddaa868c8abaf">WTOCycleDepth</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&) = <span class="keywordflow">default</span>;</div>
|
|
161
|
+
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  </div>
|
|
162
|
+
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <a class="code" href="classSVF_1_1WTOCycleDepth.html#a949e2ee782c346339a1ddaa868c8abaf">WTOCycleDepth</a>(<a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&&) = <span class="keywordflow">default</span>;</div>
|
|
163
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  </div>
|
|
164
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>& <a class="code" href="classSVF_1_1WTOCycleDepth.html#aeca7ef6c7cca3533d72fc8d6a5d9337c">operator=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&) = <span class="keywordflow">default</span>;</div>
|
|
165
|
+
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </div>
|
|
166
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>& <a class="code" href="classSVF_1_1WTOCycleDepth.html#aeca7ef6c7cca3533d72fc8d6a5d9337c">operator=</a>(<a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>&&) = <span class="keywordflow">default</span>;</div>
|
|
167
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  </div>
|
|
168
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <a class="code" href="classSVF_1_1WTOCycleDepth.html#a1208cd4c5a880905df4031bf610bd0bb">~WTOCycleDepth</a>() = <span class="keywordflow">default</span>;</div>
|
|
169
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  </div>
|
|
170
|
+
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a8df436e4ff4cc9df4900c1262cc89b1c"> 136</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a8df436e4ff4cc9df4900c1262cc89b1c">add</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#ac1a815006184b8a54a1390832f929630">NodeT</a>* head)</div>
|
|
171
|
+
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  {</div>
|
|
172
|
+
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="classSVF_1_1WTOCycleDepth.html#a6d7bd6b0da1527da8c85aab87462fba8">_heads</a>.push_back(head);</div>
|
|
173
|
+
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  }</div>
|
|
174
|
+
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div>
|
|
175
|
+
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a"> 142</a></span>  <a class="code" href="classSVF_1_1WTOCycleDepth.html#a375803014eebb65532a843eee6d9a690">Iterator</a> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">begin</a>()<span class="keyword"> const</span></div>
|
|
176
|
+
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span> <span class="keyword"> </span>{</div>
|
|
177
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a6d7bd6b0da1527da8c85aab87462fba8">_heads</a>.cbegin();</div>
|
|
178
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div>
|
|
179
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div>
|
|
180
|
+
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade"> 148</a></span>  <a class="code" href="classSVF_1_1WTOCycleDepth.html#a375803014eebb65532a843eee6d9a690">Iterator</a> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>()<span class="keyword"> const</span></div>
|
|
181
181
|
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span> <span class="keyword"> </span>{</div>
|
|
182
|
-
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">
|
|
183
|
-
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> 
|
|
184
|
-
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> 
|
|
185
|
-
<div class="line"><a name="
|
|
186
|
-
<div class="line"><a name="
|
|
187
|
-
<div class="line"><a name="
|
|
188
|
-
<div class="line"><a name="
|
|
189
|
-
<div class="line"><a name="
|
|
190
|
-
<div class="line"><a name="
|
|
191
|
-
<div class="line"><a name="
|
|
192
|
-
<div class="line"><a name="
|
|
193
|
-
<div class="line"><a name="
|
|
194
|
-
<div class="line"><a name="
|
|
195
|
-
<div class="line"><a name="
|
|
196
|
-
<div class="line"><a name="
|
|
197
|
-
<div class="line"><a name="
|
|
198
|
-
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  ++other_it;</div>
|
|
182
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a6d7bd6b0da1527da8c85aab87462fba8">_heads</a>.cend();</div>
|
|
183
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  }</div>
|
|
184
|
+
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  </div>
|
|
185
|
+
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#ad4171d23b56c5402687bac3febb4b233"> 154</a></span>  <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a> <a class="code" href="classSVF_1_1WTOCycleDepth.html#ad4171d23b56c5402687bac3febb4b233">operator^</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>& other)<span class="keyword"> const</span></div>
|
|
186
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span> <span class="keyword"> </span>{</div>
|
|
187
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a> res;</div>
|
|
188
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> this_it = <a class="code" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">begin</a>(), other_it = other.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">begin</a>();</div>
|
|
189
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  this_it != <a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>() && other_it != other.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>(); ++this_it, ++other_it)</div>
|
|
190
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  {</div>
|
|
191
|
+
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keywordflow">if</span> (*this_it == *other_it)</div>
|
|
192
|
+
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  {</div>
|
|
193
|
+
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  res.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a8df436e4ff4cc9df4900c1262cc89b1c">add</a>(*this_it);</div>
|
|
194
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div>
|
|
195
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">else</span></div>
|
|
196
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  {</div>
|
|
197
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">break</span>;</div>
|
|
199
198
|
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</div>
|
|
200
|
-
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span> 
|
|
201
|
-
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span> 
|
|
202
|
-
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span> 
|
|
203
|
-
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span> 
|
|
204
|
-
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> 
|
|
205
|
-
<div class="line"><a name="
|
|
206
|
-
<div class="line"><a name="
|
|
207
|
-
<div class="line"><a name="
|
|
208
|
-
<div class="line"><a name="
|
|
209
|
-
<div class="line"><a name="
|
|
210
|
-
<div class="line"><a name="
|
|
211
|
-
<div class="line"><a name="
|
|
212
|
-
<div class="line"><a name="
|
|
213
|
-
<div class="line"><a name="
|
|
214
|
-
<div class="line"><a name="
|
|
215
|
-
<div class="line"><a name="
|
|
216
|
-
<div class="line"><a name="
|
|
217
|
-
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span> 
|
|
218
|
-
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span> 
|
|
219
|
-
<div class="line"><a name="
|
|
220
|
-
<div class="line"><a name="
|
|
221
|
-
<div class="line"><a name="
|
|
222
|
-
<div class="line"><a name="
|
|
223
|
-
<div class="line"><a name="
|
|
224
|
-
<div class="line"><a name="
|
|
225
|
-
<div class="line"><a name="
|
|
226
|
-
<div class="line"><a name="
|
|
227
|
-
<div class="line"><a name="
|
|
228
|
-
<div class="line"><a name="
|
|
229
|
-
<div class="line"><a name="
|
|
230
|
-
<div class="line"><a name="
|
|
231
|
-
<div class="line"><a name="
|
|
232
|
-
<div class="line"><a name="
|
|
233
|
-
<div class="line"><a name="
|
|
234
|
-
<div class="line"><a name="
|
|
235
|
-
<div class="line"><a name="
|
|
236
|
-
<div class="line"><a name="
|
|
237
|
-
<div class="line"><a name="
|
|
238
|
-
<div class="line"><a name="
|
|
239
|
-
<div class="line"><a name="
|
|
240
|
-
<div class="line"><a name="
|
|
241
|
-
<div class="line"><a name="
|
|
242
|
-
<div class="line"><a name="
|
|
243
|
-
<div class="line"><a name="
|
|
244
|
-
<div class="line"><a name="
|
|
245
|
-
<div class="line"><a name="
|
|
246
|
-
<div class="line"><a name="
|
|
247
|
-
<div class="line"><a name="
|
|
199
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  }</div>
|
|
200
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keywordflow">return</span> res;</div>
|
|
201
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  }</div>
|
|
202
|
+
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  </div>
|
|
203
|
+
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">private</span>:</div>
|
|
204
|
+
<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d"> 174</a></span>  <span class="keywordtype">int</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d">compare</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>& other)<span class="keyword"> const</span></div>
|
|
205
|
+
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> <span class="keyword"> </span>{</div>
|
|
206
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordflow">if</span> (<span class="keyword">this</span> == &other)</div>
|
|
207
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  {</div>
|
|
208
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">return</span> 0; <span class="comment">// equals</span></div>
|
|
209
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  }</div>
|
|
210
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  </div>
|
|
211
|
+
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keyword">auto</span> this_it = <a class="code" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">begin</a>();</div>
|
|
212
|
+
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <span class="keyword">auto</span> other_it = other.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">begin</a>();</div>
|
|
213
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">while</span> (this_it != <a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>())</div>
|
|
214
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  {</div>
|
|
215
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keywordflow">if</span> (other_it == other.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>())</div>
|
|
216
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  {</div>
|
|
217
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">return</span> 1; <span class="comment">// `this` is nested within `other`</span></div>
|
|
218
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  }</div>
|
|
219
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (*this_it == *other_it)</div>
|
|
220
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  {</div>
|
|
221
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  ++this_it;</div>
|
|
222
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  ++other_it;</div>
|
|
223
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  }</div>
|
|
224
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">else</span></div>
|
|
225
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  {</div>
|
|
226
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">return</span> 2; <span class="comment">// not comparable</span></div>
|
|
227
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  }</div>
|
|
228
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  }</div>
|
|
229
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="keywordflow">if</span> (other_it == other.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>())</div>
|
|
230
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  {</div>
|
|
231
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">return</span> 0; <span class="comment">// equals</span></div>
|
|
232
|
+
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  }</div>
|
|
233
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">else</span></div>
|
|
234
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  {</div>
|
|
235
|
+
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keywordflow">return</span> -1; <span class="comment">// `other` is nested within `this`</span></div>
|
|
236
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  }</div>
|
|
237
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  }</div>
|
|
238
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  </div>
|
|
239
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span> <span class="keyword">public</span>:</div>
|
|
240
|
+
<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a44cce3ef52a02cfe8d650e9ce079c210"> 210</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a44cce3ef52a02cfe8d650e9ce079c210">operator<</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>& other)<span class="keyword"> const</span></div>
|
|
241
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span> <span class="keyword"> </span>{</div>
|
|
242
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d">compare</a>(other) == -1;</div>
|
|
243
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div>
|
|
244
|
+
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  </div>
|
|
245
|
+
<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a2e3c5007c3348083b51b0a4fa3e843b9"> 215</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a2e3c5007c3348083b51b0a4fa3e843b9">operator<=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>& other)<span class="keyword"> const</span></div>
|
|
246
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="keyword"> </span>{</div>
|
|
247
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d">compare</a>(other) <= 0;</div>
|
|
248
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  }</div>
|
|
249
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div>
|
|
250
|
+
<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a4779ba4cfc8a0ae23d27ef9d2f3987d0"> 220</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a4779ba4cfc8a0ae23d27ef9d2f3987d0">operator==</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>& other)<span class="keyword"> const</span></div>
|
|
248
251
|
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span> <span class="keyword"> </span>{</div>
|
|
249
|
-
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#
|
|
252
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d">compare</a>(other) == 0;</div>
|
|
250
253
|
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  }</div>
|
|
251
254
|
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  </div>
|
|
252
|
-
<div class="line"><a name="
|
|
253
|
-
<div class="line"><a name="
|
|
254
|
-
<div class="line"><a name="
|
|
255
|
-
<div class="line"><a name="
|
|
256
|
-
<div class="line"><a name="
|
|
257
|
-
<div class="line"><a name="
|
|
258
|
-
<div class="line"><a name="
|
|
259
|
-
<div class="line"><a name="
|
|
260
|
-
<div class="line"><a name="
|
|
261
|
-
<div class="line"><a name="
|
|
262
|
-
<div class="line"><a name="
|
|
263
|
-
<div class="line"><a name="
|
|
264
|
-
<div class="line"><a name="
|
|
265
|
-
<div class="line"><a name="
|
|
266
|
-
<div class="line"><a name="
|
|
267
|
-
<div class="line"><a name="
|
|
268
|
-
<div class="line"><a name="
|
|
269
|
-
<div class="line"><a name="
|
|
270
|
-
<div class="line"><a name="
|
|
271
|
-
<div class="line"><a name="
|
|
272
|
-
<div class="line"><a name="
|
|
273
|
-
<div class="line"><a name="
|
|
274
|
-
<div class="line"><a name="
|
|
275
|
-
<div class="line"><a name="
|
|
276
|
-
<div class="line"><a name="
|
|
277
|
-
<div class="line"><a name="
|
|
278
|
-
<div class="line"><a name="
|
|
279
|
-
<div class="line"><a name="
|
|
280
|
-
<div class="line"><a name="
|
|
255
|
+
<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a0aa519ff93cdab15f9324c6b05df8e47"> 225</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a0aa519ff93cdab15f9324c6b05df8e47">operator>=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>& other)<span class="keyword"> const</span></div>
|
|
256
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span> <span class="keyword"> </span>{</div>
|
|
257
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a2e3c5007c3348083b51b0a4fa3e843b9">operator<=</a>(other, *<span class="keyword">this</span>);</div>
|
|
258
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  }</div>
|
|
259
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  </div>
|
|
260
|
+
<div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a8ca19a3f2f7e79c20c4a4f98897470c7"> 230</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a8ca19a3f2f7e79c20c4a4f98897470c7">operator></a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth</a>& other)<span class="keyword"> const</span></div>
|
|
261
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span> <span class="keyword"> </span>{</div>
|
|
262
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d">compare</a>(other) == 1;</div>
|
|
263
|
+
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  }</div>
|
|
264
|
+
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  </div>
|
|
265
|
+
<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a275559cdb0fea5d06b1516c4c49da0ae"> 236</a></span>  [[nodiscard]] <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1WTOCycleDepth.html#a275559cdb0fea5d06b1516c4c49da0ae">toString</a>()<span class="keyword"> const</span></div>
|
|
266
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span> <span class="keyword"> </span>{</div>
|
|
267
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
268
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  std::stringstream rawstr(str);</div>
|
|
269
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  rawstr << <span class="stringliteral">"["</span>;</div>
|
|
270
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">begin</a>(), et = <a class="code" href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">end</a>(); it != et;)</div>
|
|
271
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  {</div>
|
|
272
|
+
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  rawstr << (*it)->toString();</div>
|
|
273
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  ++it;</div>
|
|
274
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  <span class="keywordflow">if</span> (it != et)</div>
|
|
275
|
+
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  {</div>
|
|
276
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  rawstr << <span class="stringliteral">", "</span>;</div>
|
|
277
|
+
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  }</div>
|
|
278
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  }</div>
|
|
279
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  rawstr << <span class="stringliteral">"]"</span>;</div>
|
|
280
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
281
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  }</div>
|
|
282
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  </div>
|
|
283
|
+
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  </div>
|
|
284
|
+
<div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycleDepth.html#a6053b66d1350ef6ea9a0c8095869f606"> 256</a></span>  <span class="keyword">friend</span> std::ostream& <a class="code" href="classSVF_1_1WTOCycleDepth.html#a6053b66d1350ef6ea9a0c8095869f606">operator<<</a>(std::ostream& o,</div>
|
|
285
|
+
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth<GraphT></a>& wto)</div>
|
|
286
|
+
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  {</div>
|
|
287
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  o << wto.<a class="code" href="classSVF_1_1WTOCycleDepth.html#a275559cdb0fea5d06b1516c4c49da0ae">toString</a>();</div>
|
|
288
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  <span class="keywordflow">return</span> o;</div>
|
|
289
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div>
|
|
290
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  </div>
|
|
291
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span> }; <span class="comment">// end class WTOCycleDepth</span></div>
|
|
281
292
|
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  </div>
|
|
282
|
-
<div class="line"><a name="
|
|
283
|
-
<div class="line"><a name="
|
|
284
|
-
<div class="line"><a name="
|
|
285
|
-
<div class="line"><a name="
|
|
286
|
-
<div class="line"><a name="
|
|
287
|
-
<div class="line"><a name="
|
|
288
|
-
<div class="line"><a name="
|
|
289
|
-
<div class="line"><a name="
|
|
290
|
-
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> }; <span class="comment">// end class WTOVisitor</span></div>
|
|
293
|
+
<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html"> 271</a></span> <span class="keyword">template</span> <<span class="keyword">typename</span> GraphT> <span class="keyword">class </span><a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a></div>
|
|
294
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> {</div>
|
|
295
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> <span class="keyword">public</span>:</div>
|
|
296
|
+
<div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7"> 274</a></span>  <span class="keyword">enum</span> <a class="code" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7">WTOCT</a></div>
|
|
297
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  {</div>
|
|
298
|
+
<div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7ae6153e626f0cd77b3560511ef845c14d"> 276</a></span>  <a class="code" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7ae6153e626f0cd77b3560511ef845c14d">Node</a>,</div>
|
|
299
|
+
<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7a8a904539134bae644c387a317981c110"> 277</a></span>  <a class="code" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7a8a904539134bae644c387a317981c110">Cycle</a></div>
|
|
300
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  };</div>
|
|
291
301
|
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  </div>
|
|
292
|
-
<div class="line"><a name="
|
|
293
|
-
<div class="line"><a name="
|
|
294
|
-
<div class="line"><a name="
|
|
295
|
-
<div class="line"><a name="
|
|
296
|
-
<div class="line"><a name="
|
|
297
|
-
<div class="line"><a name="
|
|
298
|
-
<div class="line"><a name="
|
|
299
|
-
<div class="line"><a name="
|
|
300
|
-
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  </div>
|
|
301
|
-
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> 
|
|
302
|
-
<div class="line"><a name="l00296"></a><span class="lineno"
|
|
302
|
+
<div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#a5ef3384996e29f5f38490b4266b19f01"> 281</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1WTOComponent.html#a5ef3384996e29f5f38490b4266b19f01">WTOComponent</a>(<a class="code" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7">WTOCT</a> k) : <a class="code" href="classSVF_1_1WTOComponent.html#a1da81c85c89d975b6df9dafdb32dc788">_type</a>(k) {};</div>
|
|
303
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  </div>
|
|
304
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <a class="code" href="classSVF_1_1WTOComponent.html#a5ef3384996e29f5f38490b4266b19f01">WTOComponent</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&) noexcept = <span class="keywordflow">default</span>;</div>
|
|
305
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  </div>
|
|
306
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  <a class="code" href="classSVF_1_1WTOComponent.html#a5ef3384996e29f5f38490b4266b19f01">WTOComponent</a>(<a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&&) noexcept = default;</div>
|
|
307
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  </div>
|
|
308
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>& operator=(const <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&) noexcept = default;</div>
|
|
309
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  </div>
|
|
310
|
+
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>& operator=(<a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>&&) noexcept = default;</div>
|
|
311
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  </div>
|
|
312
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  virtual <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTOComponent.html#a2b92d79dd17e8d89f2441c5655157b80">accept</a>(<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a><GraphT>&) const = 0;</div>
|
|
303
313
|
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  </div>
|
|
304
|
-
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span> 
|
|
314
|
+
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  virtual ~<a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a>() = default;</div>
|
|
305
315
|
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  </div>
|
|
306
|
-
<div class="line"><a name="
|
|
307
|
-
<div class="line"><a name="
|
|
308
|
-
<div class="line"><a name="
|
|
309
|
-
<div class="line"><a name="
|
|
310
|
-
<div class="line"><a name="
|
|
316
|
+
<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#acb129a6e7dc72b347f21325fbfe970b1"> 301</a></span>  inline <a class="code" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7">WTOCT</a> <a class="code" href="classSVF_1_1WTOComponent.html#acb129a6e7dc72b347f21325fbfe970b1">getKind</a>()<span class="keyword"> const</span></div>
|
|
317
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> <span class="keyword"> </span>{</div>
|
|
318
|
+
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOComponent.html#a1da81c85c89d975b6df9dafdb32dc788">_type</a>;</div>
|
|
319
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div>
|
|
320
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  </div>
|
|
321
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  [[nodiscard]] <span class="keyword">virtual</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1WTOComponent.html#a149bad69eb00f216887a42ae0fb518fc">toString</a>() <span class="keyword">const</span> = 0;</div>
|
|
322
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  </div>
|
|
311
323
|
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  </div>
|
|
312
|
-
<div class="line"><a name="
|
|
313
|
-
<div class="line"><a name="
|
|
314
|
-
<div class="line"><a name="
|
|
315
|
-
<div class="line"><a name="
|
|
316
|
-
<div class="line"><a name="
|
|
317
|
-
<div class="line"><a name="
|
|
318
|
-
<div class="line"><a name="
|
|
319
|
-
<div class="line"><a name="
|
|
324
|
+
<div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#aa14277ce617c9a01800db64cc62ef2f3"> 310</a></span>  <span class="keyword">friend</span> std::ostream& <a class="code" href="classSVF_1_1WTOComponent.html#aa14277ce617c9a01800db64cc62ef2f3">operator<<</a>(std::ostream& o,</div>
|
|
325
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent<GraphT></a>& wto)</div>
|
|
326
|
+
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  {</div>
|
|
327
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  o << wto.<a class="code" href="classSVF_1_1WTOComponent.html#a149bad69eb00f216887a42ae0fb518fc">toString</a>();</div>
|
|
328
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keywordflow">return</span> o;</div>
|
|
329
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  }</div>
|
|
330
|
+
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  </div>
|
|
331
|
+
<div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponent.html#a1da81c85c89d975b6df9dafdb32dc788"> 318</a></span>  <a class="code" href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7">WTOCT</a> <a class="code" href="classSVF_1_1WTOComponent.html#a1da81c85c89d975b6df9dafdb32dc788">_type</a>;</div>
|
|
332
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  </div>
|
|
333
|
+
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> }; <span class="comment">// end class WTOComponent</span></div>
|
|
320
334
|
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  </div>
|
|
321
|
-
<div class="line"><a name="
|
|
322
|
-
<div class="line"><a name="
|
|
323
|
-
<div class="line"><a name="
|
|
324
|
-
<div class="line"><a name="
|
|
325
|
-
<div class="line"><a name="
|
|
326
|
-
<div class="line"><a name="
|
|
327
|
-
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  }</div>
|
|
328
|
-
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  </div>
|
|
329
|
-
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="keyword">private</span>:</div>
|
|
335
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="keyword">template</span> <<span class="keyword">typename</span> GraphT> <span class="keyword">class </span><a class="code" href="classSVF_1_1WTONode.html">WTONode</a> final : <span class="keyword">public</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a><GraphT></div>
|
|
336
|
+
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> {</div>
|
|
337
|
+
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="keyword">public</span>:</div>
|
|
338
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  static_assert(<a class="code" href="structSVF_1_1has__nodetype.html">has_nodetype<GraphT>::value</a>,</div>
|
|
339
|
+
<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#a65738a32240777ce6ded22d2c4adbaf8"> 329</a></span>  <span class="stringliteral">"GraphT must have a nested type named 'NodeType'"</span>);</div>
|
|
340
|
+
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GraphT::NodeType <a class="code" href="classSVF_1_1WTONode.html#a65738a32240777ce6ded22d2c4adbaf8">NodeT</a>;</div>
|
|
330
341
|
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  </div>
|
|
331
|
-
<div class="line"><a name="l00332"></a><span class="lineno"
|
|
332
|
-
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  </div>
|
|
333
|
-
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> 
|
|
334
|
-
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> 
|
|
335
|
-
<div class="line"><a name="
|
|
336
|
-
<div class="line"><a name="
|
|
337
|
-
<div class="line"><a name="
|
|
338
|
-
<div class="line"><a name="
|
|
339
|
-
<div class="line"><a name="
|
|
340
|
-
<div class="line"><a name="
|
|
341
|
-
<div class="line"><a name="
|
|
342
|
-
<div class="line"><a name="
|
|
343
|
-
<div class="line"><a name="
|
|
344
|
-
<div class="line"><a name="
|
|
345
|
-
<div class="line"><a name="
|
|
346
|
-
<div class="line"><a name="
|
|
347
|
-
<div class="line"><a name="
|
|
348
|
-
<div class="line"><a name="
|
|
349
|
-
<div class="line"><a name="
|
|
350
|
-
<div class="line"><a name="
|
|
351
|
-
<div class="line"><a name="
|
|
342
|
+
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span> <span class="keyword">private</span>:</div>
|
|
343
|
+
<div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#aa673666e3776f7b75b341dc1695841e9"> 333</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html#a65738a32240777ce6ded22d2c4adbaf8">NodeT</a>* <a class="code" href="classSVF_1_1WTONode.html#aa673666e3776f7b75b341dc1695841e9">_node</a>;</div>
|
|
344
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  </div>
|
|
345
|
+
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span> <span class="keyword">public</span>:</div>
|
|
346
|
+
<div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#acb1c9f5fa393500a8efe9f885b1748ce"> 337</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1WTONode.html#acb1c9f5fa393500a8efe9f885b1748ce">WTONode</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html#a65738a32240777ce6ded22d2c4adbaf8">NodeT</a>* <a class="code" href="classSVF_1_1WTONode.html#aae0fe6c5464535f41f4723c23615e5cd">node</a>)</div>
|
|
347
|
+
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  : <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a><GraphT>(<a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a><GraphT>::Node), <a class="code" href="classSVF_1_1WTONode.html#aa673666e3776f7b75b341dc1695841e9">_node</a>(<a class="code" href="classSVF_1_1WTONode.html#aae0fe6c5464535f41f4723c23615e5cd">node</a>)</div>
|
|
348
|
+
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  {</div>
|
|
349
|
+
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  }</div>
|
|
350
|
+
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  </div>
|
|
351
|
+
<div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#aae0fe6c5464535f41f4723c23615e5cd"> 343</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html#a65738a32240777ce6ded22d2c4adbaf8">NodeT</a>* <a class="code" href="classSVF_1_1WTONode.html#aae0fe6c5464535f41f4723c23615e5cd">node</a>()<span class="keyword"> const</span></div>
|
|
352
|
+
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="keyword"> </span>{</div>
|
|
353
|
+
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTONode.html#aa673666e3776f7b75b341dc1695841e9">_node</a>;</div>
|
|
354
|
+
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  }</div>
|
|
355
|
+
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  </div>
|
|
356
|
+
<div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#a26f8f157a0661fff8d9f4f38d21a6445"> 349</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTONode.html#a26f8f157a0661fff8d9f4f38d21a6445">accept</a>(<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor<GraphT></a>& v)<span class="keyword"> const override</span></div>
|
|
357
|
+
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> <span class="keyword"> </span>{</div>
|
|
358
|
+
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  v.<a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(*<span class="keyword">this</span>);</div>
|
|
359
|
+
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  }</div>
|
|
360
|
+
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  </div>
|
|
361
|
+
<div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#a9afd271657066e8f3e3ed79397780e91"> 355</a></span>  [[nodiscard]] <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1WTONode.html#a9afd271657066e8f3e3ed79397780e91">toString</a>()<span class="keyword"> const override</span></div>
|
|
362
|
+
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span> <span class="keyword"> </span>{</div>
|
|
363
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="comment">// return _node->toString();</span></div>
|
|
364
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keywordflow">return</span> std::to_string(<a class="code" href="classSVF_1_1WTONode.html#aa673666e3776f7b75b341dc1695841e9">_node</a>->getId());</div>
|
|
352
365
|
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  }</div>
|
|
353
366
|
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  </div>
|
|
354
|
-
<div class="line"><a name="l00362"></a><span class="lineno"
|
|
355
|
-
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> 
|
|
356
|
-
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> 
|
|
357
|
-
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> 
|
|
358
|
-
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> 
|
|
359
|
-
<div class="line"><a name="
|
|
360
|
-
<div class="line"><a name="
|
|
361
|
-
<div class="line"><a name="
|
|
362
|
-
<div class="line"><a name="
|
|
363
|
-
<div class="line"><a name="
|
|
367
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  </div>
|
|
368
|
+
<div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#a3c57d30540d9cb64f1373236281e8bcd"> 363</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTONode.html#a3c57d30540d9cb64f1373236281e8bcd">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html">WTONode<GraphT></a>*)</div>
|
|
369
|
+
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  {</div>
|
|
370
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
371
|
+
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  }</div>
|
|
372
|
+
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  </div>
|
|
373
|
+
<div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="classSVF_1_1WTONode.html#ad9eb797028c0f30b8b8899edc3fb1b2b"> 368</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTONode.html#ad9eb797028c0f30b8b8899edc3fb1b2b">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent<GraphT></a>* c)</div>
|
|
374
|
+
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  {</div>
|
|
375
|
+
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordflow">return</span> c-><a class="code" href="classSVF_1_1WTOComponent.html#acb129a6e7dc72b347f21325fbfe970b1">getKind</a>() == <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent<GraphT>::Node</a>;</div>
|
|
376
|
+
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  }</div>
|
|
364
377
|
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  </div>
|
|
365
|
-
<div class="line"><a name="l00374"></a><span class="lineno"
|
|
366
|
-
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> 
|
|
367
|
-
<div class="line"><a name="
|
|
368
|
-
<div class="line"><a name="
|
|
369
|
-
<div class="line"><a name="
|
|
370
|
-
<div class="line"><a name="
|
|
371
|
-
<div class="line"><a name="
|
|
372
|
-
<div class="line"><a name="
|
|
373
|
-
<div class="line"><a name="
|
|
374
|
-
<div class="line"><a name="
|
|
375
|
-
<div class="line"><a name="
|
|
376
|
-
<div class="line"><a name="
|
|
377
|
-
<div class="line"><a name="
|
|
378
|
-
<div class="line"><a name="
|
|
379
|
-
<div class="line"><a name="
|
|
380
|
-
<div class="line"><a name="
|
|
381
|
-
<div class="line"><a name="
|
|
382
|
-
<div class="line"><a name="
|
|
378
|
+
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> }; <span class="comment">// end class WTONode</span></div>
|
|
379
|
+
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  </div>
|
|
380
|
+
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="keyword">template</span> <<span class="keyword">typename</span> GraphT> <span class="keyword">class </span>WTOCycle final : <span class="keyword">public</span> WTOComponent<GraphT></div>
|
|
381
|
+
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span> {</div>
|
|
382
|
+
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="keyword">public</span>:</div>
|
|
383
|
+
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  static_assert(has_nodetype<GraphT>::value,</div>
|
|
384
|
+
<div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a1c4a4a2387abd60e1fa1d4cee6b83b55"> 383</a></span>  <span class="stringliteral">"GraphT must have a nested type named 'NodeType'"</span>);</div>
|
|
385
|
+
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GraphT::NodeType <a class="code" href="classSVF_1_1WTOCycle.html#a1c4a4a2387abd60e1fa1d4cee6b83b55">NodeT</a>;</div>
|
|
386
|
+
<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#adaa4b0f063eaf6f1bd02da38fd3b29de"> 385</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent<GraphT></a> <a class="code" href="classSVF_1_1WTOCycle.html#adaa4b0f063eaf6f1bd02da38fd3b29de">WTOComponentT</a>;</div>
|
|
387
|
+
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  </div>
|
|
388
|
+
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="keyword">private</span>:</div>
|
|
389
|
+
<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#acc26c1e8e39691416b590d1a29f57c38"> 388</a></span>  <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponentT</a>* <a class="code" href="classSVF_1_1WTOCycle.html#acc26c1e8e39691416b590d1a29f57c38">WTOComponentPtr</a>;</div>
|
|
390
|
+
<div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a04d7ad708faad0b6cb360e6010c21600"> 389</a></span>  <span class="keyword">typedef</span> std::list<WTOComponentPtr> <a class="code" href="classSVF_1_1WTOCycle.html#a04d7ad708faad0b6cb360e6010c21600">WTOComponentRefList</a>;</div>
|
|
391
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  </div>
|
|
392
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span> <span class="keyword">public</span>:</div>
|
|
393
|
+
<div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#ad0a2a2bb4c2d6eafaedbf04ced31243d"> 393</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> WTOComponentRefList::const_iterator <a class="code" href="classSVF_1_1WTOCycle.html#ad0a2a2bb4c2d6eafaedbf04ced31243d">Iterator</a>;</div>
|
|
394
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  </div>
|
|
395
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> <span class="keyword">private</span>:</div>
|
|
396
|
+
<div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a1f54ed975152670e16280f8b12aebc66"> 397</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html#a1c4a4a2387abd60e1fa1d4cee6b83b55">NodeT</a>* <a class="code" href="classSVF_1_1WTOCycle.html#a1f54ed975152670e16280f8b12aebc66">_head</a>;</div>
|
|
383
397
|
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  </div>
|
|
384
|
-
<div class="line"><a name="
|
|
385
|
-
<div class="line"><a name="l00401"></a><span class="lineno"
|
|
386
|
-
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> 
|
|
387
|
-
<div class="line"><a name="
|
|
388
|
-
<div class="line"><a name="l00405"></a><span class="lineno"
|
|
389
|
-
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span> 
|
|
390
|
-
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span> 
|
|
398
|
+
<div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a8e781898712dae7399ded6ccdce6aa53"> 400</a></span>  <a class="code" href="classSVF_1_1WTOCycle.html#a04d7ad708faad0b6cb360e6010c21600">WTOComponentRefList</a> <a class="code" href="classSVF_1_1WTOCycle.html#a8e781898712dae7399ded6ccdce6aa53">_components</a>;</div>
|
|
399
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  </div>
|
|
400
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="keyword">public</span>:</div>
|
|
401
|
+
<div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a19ad36eef78d46348ca75c5d2e12519b"> 404</a></span>  <a class="code" href="classSVF_1_1WTOCycle.html#a19ad36eef78d46348ca75c5d2e12519b">WTOCycle</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html#a1c4a4a2387abd60e1fa1d4cee6b83b55">NodeT</a>* <a class="code" href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079">head</a>, <a class="code" href="classSVF_1_1WTOCycle.html#a04d7ad708faad0b6cb360e6010c21600">WTOComponentRefList</a> components)</div>
|
|
402
|
+
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  : <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a><GraphT>(<a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent</a><GraphT>::Cycle), <a class="code" href="classSVF_1_1WTOCycle.html#a1f54ed975152670e16280f8b12aebc66">_head</a>(<a class="code" href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079">head</a>),</div>
|
|
403
|
+
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <a class="code" href="classSVF_1_1WTOCycle.html#a8e781898712dae7399ded6ccdce6aa53">_components</a>(std::<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">move</a>(components))</div>
|
|
404
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  {</div>
|
|
391
405
|
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  }</div>
|
|
392
406
|
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  </div>
|
|
393
|
-
<div class="line"><a name="
|
|
394
|
-
<div class="line"><a name="
|
|
395
|
-
<div class="line"><a name="
|
|
396
|
-
<div class="line"><a name="
|
|
397
|
-
<div class="line"><a name="
|
|
398
|
-
<div class="line"><a name="
|
|
399
|
-
<div class="line"><a name="
|
|
400
|
-
<div class="line"><a name="
|
|
401
|
-
<div class="line"><a name="
|
|
402
|
-
<div class="line"><a name="
|
|
403
|
-
<div class="line"><a name="
|
|
404
|
-
<div class="line"><a name="
|
|
405
|
-
<div class="line"><a name="
|
|
406
|
-
<div class="line"><a name="
|
|
407
|
-
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  </div>
|
|
407
|
+
<div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079"> 411</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html#a1c4a4a2387abd60e1fa1d4cee6b83b55">NodeT</a>* <a class="code" href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079">head</a>()<span class="keyword"> const</span></div>
|
|
408
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span> <span class="keyword"> </span>{</div>
|
|
409
|
+
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycle.html#a1f54ed975152670e16280f8b12aebc66">_head</a>;</div>
|
|
410
|
+
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  }</div>
|
|
411
|
+
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  </div>
|
|
412
|
+
<div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a807c883d1cfe98c791c903125742f95b"> 417</a></span>  <a class="code" href="classSVF_1_1WTOCycle.html#ad0a2a2bb4c2d6eafaedbf04ced31243d">Iterator</a> <a class="code" href="classSVF_1_1WTOCycle.html#a807c883d1cfe98c791c903125742f95b">begin</a>()<span class="keyword"> const</span></div>
|
|
413
|
+
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> <span class="keyword"> </span>{</div>
|
|
414
|
+
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycle.html#a8e781898712dae7399ded6ccdce6aa53">_components</a>.cbegin();</div>
|
|
415
|
+
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  }</div>
|
|
416
|
+
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  </div>
|
|
417
|
+
<div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a03fd55dd34c48d22cefcaf6dc93f734a"> 423</a></span>  <a class="code" href="classSVF_1_1WTOCycle.html#ad0a2a2bb4c2d6eafaedbf04ced31243d">Iterator</a> <a class="code" href="classSVF_1_1WTOCycle.html#a03fd55dd34c48d22cefcaf6dc93f734a">end</a>()<span class="keyword"> const</span></div>
|
|
418
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <span class="keyword"> </span>{</div>
|
|
419
|
+
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1WTOCycle.html#a8e781898712dae7399ded6ccdce6aa53">_components</a>.cend();</div>
|
|
420
|
+
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  }</div>
|
|
408
421
|
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  </div>
|
|
409
|
-
<div class="line"><a name="
|
|
410
|
-
<div class="line"><a name="
|
|
411
|
-
<div class="line"><a name="
|
|
412
|
-
<div class="line"><a name="
|
|
413
|
-
<div class="line"><a name="
|
|
414
|
-
<div class="line"><a name="
|
|
415
|
-
<div class="line"><a name="
|
|
416
|
-
<div class="line"><a name="
|
|
417
|
-
<div class="line"><a name="
|
|
418
|
-
<div class="line"><a name="
|
|
419
|
-
<div class="line"><a name="
|
|
420
|
-
<div class="line"><a name="
|
|
421
|
-
<div class="line"><a name="
|
|
422
|
-
<div class="line"><a name="
|
|
423
|
-
<div class="line"><a name="
|
|
424
|
-
<div class="line"><a name="
|
|
425
|
-
<div class="line"><a name="
|
|
426
|
-
<div class="line"><a name="
|
|
427
|
-
<div class="line"><a name="
|
|
428
|
-
<div class="line"><a name="
|
|
429
|
-
<div class="line"><a name="
|
|
430
|
-
<div class="line"><a name="
|
|
431
|
-
<div class="line"><a name="
|
|
432
|
-
<div class="line"><a name="
|
|
433
|
-
<div class="line"><a name="
|
|
434
|
-
<div class="line"><a name="
|
|
435
|
-
<div class="line"><a name="
|
|
436
|
-
<div class="line"><a name="
|
|
437
|
-
<div class="line"><a name="
|
|
438
|
-
<div class="line"><a name="
|
|
439
|
-
<div class="line"><a name="
|
|
440
|
-
<div class="line"><a name="
|
|
441
|
-
<div class="line"><a name="l00464"></a><span class="lineno"
|
|
442
|
-
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span> 
|
|
422
|
+
<div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#acb7a52e66c5ef16f01cf6b7637578fcd"> 429</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTOCycle.html#acb7a52e66c5ef16f01cf6b7637578fcd">accept</a>(<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor<GraphT></a>& v)<span class="keyword"> const override</span></div>
|
|
423
|
+
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span> <span class="keyword"> </span>{</div>
|
|
424
|
+
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  v.<a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(*<span class="keyword">this</span>);</div>
|
|
425
|
+
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  }</div>
|
|
426
|
+
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  </div>
|
|
427
|
+
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  </div>
|
|
428
|
+
<div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#adf52b9a57bcfb16d0e538f15677ed9fa"> 436</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycle.html#adf52b9a57bcfb16d0e538f15677ed9fa">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycle<GraphT></a>*)</div>
|
|
429
|
+
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  {</div>
|
|
430
|
+
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
|
|
431
|
+
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  }</div>
|
|
432
|
+
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  </div>
|
|
433
|
+
<div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a0033d1b904ba3a6f77648174166c9250"> 441</a></span>  <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTOCycle.html#a0033d1b904ba3a6f77648174166c9250">classof</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent<GraphT></a>* c)</div>
|
|
434
|
+
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  {</div>
|
|
435
|
+
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordflow">return</span> c-><a class="code" href="classSVF_1_1WTOComponent.html#acb129a6e7dc72b347f21325fbfe970b1">getKind</a>() == <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent<GraphT>::Cycle</a>;</div>
|
|
436
|
+
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  }</div>
|
|
437
|
+
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  </div>
|
|
438
|
+
<div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOCycle.html#a5ecefd827cf83b86839fb3ac300f86b7"> 448</a></span>  [[nodiscard]] <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1WTOCycle.html#a5ecefd827cf83b86839fb3ac300f86b7">toString</a>()<span class="keyword"> const override</span></div>
|
|
439
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> <span class="keyword"> </span>{</div>
|
|
440
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
441
|
+
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  std::stringstream rawstr(str);</div>
|
|
442
|
+
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  rawstr << <span class="stringliteral">"("</span>;</div>
|
|
443
|
+
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  rawstr << <a class="code" href="classSVF_1_1WTOCycle.html#a1f54ed975152670e16280f8b12aebc66">_head</a>->getId() << <span class="stringliteral">", "</span>;</div>
|
|
444
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1WTOCycle.html#a807c883d1cfe98c791c903125742f95b">begin</a>(), et = <a class="code" href="classSVF_1_1WTOCycle.html#a03fd55dd34c48d22cefcaf6dc93f734a">end</a>(); it != et;)</div>
|
|
445
|
+
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  {</div>
|
|
446
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  rawstr << (*it)->toString();</div>
|
|
447
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  ++it;</div>
|
|
448
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordflow">if</span> (it != et)</div>
|
|
449
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  {</div>
|
|
450
|
+
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  rawstr << <span class="stringliteral">", "</span>;</div>
|
|
451
|
+
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  }</div>
|
|
452
|
+
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  }</div>
|
|
453
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  rawstr << <span class="stringliteral">")"</span>;</div>
|
|
454
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
455
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  }</div>
|
|
443
456
|
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  </div>
|
|
444
|
-
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> 
|
|
445
|
-
<div class="line"><a name="l00468"></a><span class="lineno"
|
|
446
|
-
<div class="line"><a name="
|
|
447
|
-
<div class="line"><a name="
|
|
448
|
-
<div class="line"><a name="
|
|
449
|
-
<div class="line"><a name="
|
|
450
|
-
<div class="line"><a name="
|
|
451
|
-
<div class="line"><a name="
|
|
452
|
-
<div class="line"><a name="
|
|
453
|
-
<div class="line"><a name="
|
|
454
|
-
<div class="line"><a name="
|
|
455
|
-
<div class="line"><a name="
|
|
456
|
-
<div class="line"><a name="
|
|
457
|
-
<div class="line"><a name="
|
|
458
|
-
<div class="line"><a name="
|
|
459
|
-
<div class="line"><a name="
|
|
460
|
-
<div class="line"><a name="
|
|
461
|
-
<div class="line"><a name="
|
|
462
|
-
<div class="line"><a name="
|
|
463
|
-
<div class="line"><a name="
|
|
464
|
-
<div class="line"><a name="
|
|
465
|
-
<div class="line"><a name="
|
|
466
|
-
<div class="line"><a name="
|
|
467
|
-
<div class="line"><a name="
|
|
468
|
-
<div class="line"><a name="
|
|
469
|
-
<div class="line"><a name="
|
|
470
|
-
<div class="line"><a name="
|
|
471
|
-
<div class="line"><a name="
|
|
472
|
-
<div class="line"><a name="
|
|
473
|
-
<div class="line"><a name="
|
|
474
|
-
<div class="line"><a name="
|
|
475
|
-
<div class="line"><a name="
|
|
476
|
-
<div class="line"><a name="
|
|
477
|
-
<div class="line"><a name="
|
|
478
|
-
<div class="line"><a name="
|
|
479
|
-
<div class="line"><a name="
|
|
480
|
-
<div class="line"><a name="
|
|
481
|
-
<div class="line"><a name="
|
|
482
|
-
<div class="line"><a name="
|
|
483
|
-
<div class="line"><a name="
|
|
484
|
-
<div class="line"><a name="
|
|
485
|
-
<div class="line"><a name="
|
|
486
|
-
<div class="line"><a name="
|
|
487
|
-
<div class="line"><a name="
|
|
488
|
-
<div class="line"><a name="
|
|
489
|
-
<div class="line"><a name="
|
|
490
|
-
<div class="line"><a name="
|
|
491
|
-
<div class="line"><a name="
|
|
492
|
-
<div class="line"><a name="
|
|
493
|
-
<div class="line"><a name="
|
|
494
|
-
<div class="line"><a name="
|
|
495
|
-
<div class="line"><a name="
|
|
496
|
-
<div class="line"><a name="
|
|
497
|
-
<div class="line"><a name="
|
|
498
|
-
<div class="line"><a name="
|
|
499
|
-
<div class="line"><a name="
|
|
500
|
-
<div class="line"><a name="
|
|
501
|
-
<div class="line"><a name="
|
|
502
|
-
<div class="line"><a name="
|
|
503
|
-
<div class="line"><a name="
|
|
504
|
-
<div class="line"><a name="
|
|
505
|
-
<div class="line"><a name="
|
|
506
|
-
<div class="line"><a name="
|
|
507
|
-
<div class="line"><a name="
|
|
508
|
-
<div class="line"><a name="
|
|
509
|
-
<div class="line"><a name="
|
|
510
|
-
<div class="line"><a name="
|
|
511
|
-
<div class="line"><a name="
|
|
512
|
-
<div class="line"><a name="
|
|
513
|
-
<div class="line"><a name="
|
|
514
|
-
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span> <span class="keyword"> </span>{</div>
|
|
515
|
-
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ab9fa2e63665b25c8fb771e92dc9b19dc">_headToCycle</a>.cbegin();</div>
|
|
516
|
-
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  }</div>
|
|
517
|
-
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  </div>
|
|
518
|
-
<div class="line"><a name="l00541"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#a822077820c188463603f8968c4535a60"> 541</a></span>  <span class="keyword">typename</span> NodeRefToWTOCycleMap::const_iterator <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a822077820c188463603f8968c4535a60">headEnd</a>()<span class="keyword"> const</span></div>
|
|
519
|
-
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="keyword"> </span>{</div>
|
|
520
|
-
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ab9fa2e63665b25c8fb771e92dc9b19dc">_headToCycle</a>.cend();</div>
|
|
521
|
-
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  }</div>
|
|
522
|
-
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  </div>
|
|
523
|
-
<div class="line"><a name="l00546"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#a4fb40a0bed7cad99e9be5480455a6a71"> 546</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada27aa4f9b577c7f7cef09e9936327f2">NodeRefSet</a> &<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a4fb40a0bed7cad99e9be5480455a6a71">getTails</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *node)<span class="keyword"> const</span></div>
|
|
524
|
-
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> <span class="keyword"> </span>{</div>
|
|
525
|
-
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#abb5b72dbfa6f00bf952f1b71deb48598">_headToTails</a>.find(node);</div>
|
|
526
|
-
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  assert(it != <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#abb5b72dbfa6f00bf952f1b71deb48598">_headToTails</a>.end() && <span class="stringliteral">"node not found"</span>);</div>
|
|
527
|
-
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keywordflow">return</span> it->second;</div>
|
|
528
|
-
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  }</div>
|
|
457
|
+
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> }; <span class="comment">// end class WTOCycle</span></div>
|
|
458
|
+
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  </div>
|
|
459
|
+
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="keyword">template</span> <<span class="keyword">typename</span> GraphT> <span class="keyword">class </span>WTOComponentVisitor</div>
|
|
460
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span> {</div>
|
|
461
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span> <span class="keyword">public</span>:</div>
|
|
462
|
+
<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponentVisitor.html#a873b7e2a4166cb6a5b48a63dbafa295d"> 475</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTONode.html">WTONode<GraphT></a> <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a873b7e2a4166cb6a5b48a63dbafa295d">WTONodeT</a>;</div>
|
|
463
|
+
<div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="classSVF_1_1WTOComponentVisitor.html#a978324f9b276a9d086b9e7a12feac997"> 476</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycle<GraphT></a> <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a978324f9b276a9d086b9e7a12feac997">WTOCycleT</a>;</div>
|
|
464
|
+
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  </div>
|
|
465
|
+
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span> <span class="keyword">public</span>:</div>
|
|
466
|
+
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a829bc3b32dcb5740da40c5cff75680d9">WTOComponentVisitor</a>() = <span class="keywordflow">default</span>;</div>
|
|
467
|
+
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  </div>
|
|
468
|
+
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a829bc3b32dcb5740da40c5cff75680d9">WTOComponentVisitor</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&) noexcept = <span class="keywordflow">default</span>;</div>
|
|
469
|
+
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  </div>
|
|
470
|
+
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a829bc3b32dcb5740da40c5cff75680d9">WTOComponentVisitor</a>(<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&&) noexcept = default;</div>
|
|
471
|
+
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  </div>
|
|
472
|
+
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>& operator=(const <a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&) noexcept =</div>
|
|
473
|
+
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  default;</div>
|
|
474
|
+
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  </div>
|
|
475
|
+
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>& operator=(<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>&&) noexcept = default;</div>
|
|
476
|
+
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  </div>
|
|
477
|
+
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  virtual <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(const <a class="code" href="classSVF_1_1WTONode.html">WTONodeT</a>&) = 0;</div>
|
|
478
|
+
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  </div>
|
|
479
|
+
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  virtual <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(const <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycleT</a>&) = 0;</div>
|
|
480
|
+
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  </div>
|
|
481
|
+
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  virtual ~<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a>() = default;</div>
|
|
482
|
+
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  </div>
|
|
483
|
+
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> }; <span class="comment">// end class WTOComponentVisitor</span></div>
|
|
484
|
+
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  </div>
|
|
485
|
+
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span> template <typename GraphT> class <a class="code" href="classSVF_1_1WTO.html">WTO</a></div>
|
|
486
|
+
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span> {</div>
|
|
487
|
+
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  </div>
|
|
488
|
+
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span> <span class="keyword">public</span>:</div>
|
|
489
|
+
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  static_assert(<a class="code" href="structSVF_1_1has__nodetype.html">has_nodetype<GraphT>::value</a>,</div>
|
|
490
|
+
<div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a78e43eb435fb7f5ee47670f10c6e67f2"> 514</a></span>  <span class="stringliteral">"GraphT must have a nested type named 'NodeType'"</span>);</div>
|
|
491
|
+
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  static_assert(<a class="code" href="structSVF_1_1has__edgetype.html">has_edgetype<GraphT>::value</a>,</div>
|
|
492
|
+
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="stringliteral">"GraphT must have a nested type named 'EdgeType'"</span>);</div>
|
|
493
|
+
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GraphT::NodeType <a class="code" href="classSVF_1_1WTO.html#a78e43eb435fb7f5ee47670f10c6e67f2">NodeT</a>;</div>
|
|
494
|
+
<div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a620d528ac72c17913b462acedb8e88c3"> 518</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> GraphT::EdgeType <a class="code" href="classSVF_1_1WTO.html#a620d528ac72c17913b462acedb8e88c3">EdgeT</a>;</div>
|
|
495
|
+
<div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ae2cde12ccd4206b7ace44bc2146c792e"> 519</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">WTOCycleDepth<GraphT></a> <a class="code" href="classSVF_1_1WTO.html#ae2cde12ccd4206b7ace44bc2146c792e">GraphTWTOCycleDepth</a>;</div>
|
|
496
|
+
<div class="line"><a name="l00520"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a43bd515dd7ea9ae1f56b79d29cfdc00c"> 520</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponent<GraphT></a> <a class="code" href="classSVF_1_1WTO.html#a43bd515dd7ea9ae1f56b79d29cfdc00c">WTOComponentT</a>;</div>
|
|
497
|
+
<div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a96f37d843d4bd7c2b30cfc5bc59cf90d"> 521</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTONode.html">WTONode<GraphT></a> <a class="code" href="classSVF_1_1WTO.html#a96f37d843d4bd7c2b30cfc5bc59cf90d">WTONodeT</a>;</div>
|
|
498
|
+
<div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a71a0d4afca77f59db4829c7b39419429"> 522</a></span>  <span class="keyword">typedef</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycle<GraphT></a> <a class="code" href="classSVF_1_1WTO.html#a71a0d4afca77f59db4829c7b39419429">WTOCycleT</a>;</div>
|
|
499
|
+
<div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a7be430782b325bbb92d9fd014e9c68c0"> 523</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const NodeT*></a> <a class="code" href="classSVF_1_1WTO.html#a7be430782b325bbb92d9fd014e9c68c0">NodeRefList</a>;</div>
|
|
500
|
+
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  </div>
|
|
501
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span> <span class="keyword">protected</span>:</div>
|
|
502
|
+
<div class="line"><a name="l00526"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a15ecb3d149a88c93318133314d010954"> 526</a></span>  <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOComponent.html">WTOComponentT</a>* <a class="code" href="classSVF_1_1WTO.html#a15ecb3d149a88c93318133314d010954">WTOComponentPtr</a>;</div>
|
|
503
|
+
<div class="line"><a name="l00527"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9"> 527</a></span>  <span class="keyword">typedef</span> std::list<WTOComponentPtr> <a class="code" href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9">WTOComponentRefList</a>;</div>
|
|
504
|
+
<div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a928688b5f1e2111311262ccd936b1ca9"> 528</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<WTOComponentPtr></a> <a class="code" href="classSVF_1_1WTO.html#a928688b5f1e2111311262ccd936b1ca9">WTOComponentRefSet</a>;</div>
|
|
505
|
+
<div class="line"><a name="l00529"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a9103af81d0c21787dcc96188ea243d0a"> 529</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const NodeT*, const WTOCycleT*></a> <a class="code" href="classSVF_1_1WTO.html#a9103af81d0c21787dcc96188ea243d0a">NodeRefToWTOCycleMap</a>;</div>
|
|
506
|
+
<div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ae652de9cb9fca45b8cb6c08606d7971a"> 530</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const NodeT*, NodeRefList></a> <a class="code" href="classSVF_1_1WTO.html#ae652de9cb9fca45b8cb6c08606d7971a">NodeRefTONodeRefListMap</a>;</div>
|
|
507
|
+
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  </div>
|
|
508
|
+
<div class="line"><a name="l00532"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7"> 532</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a>;</div>
|
|
509
|
+
<div class="line"><a name="l00533"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a93a5b48c93dc4f01f50040e71c5aeada"> 533</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const NodeT*, CycleDepthNumber></a> <a class="code" href="classSVF_1_1WTO.html#a93a5b48c93dc4f01f50040e71c5aeada">NodeRefToCycleDepthNumber</a>;</div>
|
|
510
|
+
<div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ab35eabe45c6b944b26532fbe630cd019"> 534</a></span>  <span class="keyword">typedef</span> std::vector<const NodeT*> <a class="code" href="classSVF_1_1WTO.html#ab35eabe45c6b944b26532fbe630cd019">Stack</a>;</div>
|
|
511
|
+
<div class="line"><a name="l00535"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a8022c9a6ebc62ed292698f07ab93bafe"> 535</a></span>  <span class="keyword">typedef</span> std::shared_ptr<GraphTWTOCycleDepth> <a class="code" href="classSVF_1_1WTO.html#a8022c9a6ebc62ed292698f07ab93bafe">WTOCycleDepthPtr</a>;</div>
|
|
512
|
+
<div class="line"><a name="l00536"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a4d7362b707ea6013811db5ffa80aeb0b"> 536</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const NodeT*, WTOCycleDepthPtr></a> <a class="code" href="classSVF_1_1WTO.html#a4d7362b707ea6013811db5ffa80aeb0b">NodeRefToWTOCycleDepthPtr</a>;</div>
|
|
513
|
+
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  </div>
|
|
514
|
+
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> <span class="keyword">public</span>:</div>
|
|
515
|
+
<div class="line"><a name="l00540"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a49ea9544fc55c3de1b3aebde1ba69470"> 540</a></span>  <span class="keyword">typedef</span> <span class="keyword">typename</span> WTOComponentRefList::const_iterator <a class="code" href="classSVF_1_1WTO.html#a49ea9544fc55c3de1b3aebde1ba69470">Iterator</a>;</div>
|
|
516
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  </div>
|
|
517
|
+
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> <span class="keyword">protected</span>:</div>
|
|
518
|
+
<div class="line"><a name="l00543"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#acbc503aa22e6d9bf2f6406fc45ebbab1"> 543</a></span>  <a class="code" href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9">WTOComponentRefList</a> <a class="code" href="classSVF_1_1WTO.html#acbc503aa22e6d9bf2f6406fc45ebbab1">_components</a>;</div>
|
|
519
|
+
<div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a649f1a93b6fd51553f6e144f2fe99542"> 544</a></span>  <a class="code" href="classSVF_1_1WTO.html#a928688b5f1e2111311262ccd936b1ca9">WTOComponentRefSet</a> <a class="code" href="classSVF_1_1WTO.html#a649f1a93b6fd51553f6e144f2fe99542">_allComponents</a>;</div>
|
|
520
|
+
<div class="line"><a name="l00545"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a5752288fb686b9ef5d6c8edc0cee6348"> 545</a></span>  <a class="code" href="classSVF_1_1WTO.html#a9103af81d0c21787dcc96188ea243d0a">NodeRefToWTOCycleMap</a> <a class="code" href="classSVF_1_1WTO.html#a5752288fb686b9ef5d6c8edc0cee6348">headRefToCycle</a>;</div>
|
|
521
|
+
<div class="line"><a name="l00546"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ab6eebbf5ab6f6c3ee157e22da10620e9"> 546</a></span>  <a class="code" href="classSVF_1_1WTO.html#a4d7362b707ea6013811db5ffa80aeb0b">NodeRefToWTOCycleDepthPtr</a> <a class="code" href="classSVF_1_1WTO.html#ab6eebbf5ab6f6c3ee157e22da10620e9">_nodeToDepth</a>;</div>
|
|
522
|
+
<div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a54d8c25df36b0c44d52369c4294a1ed8"> 547</a></span>  <a class="code" href="classSVF_1_1WTO.html#a93a5b48c93dc4f01f50040e71c5aeada">NodeRefToCycleDepthNumber</a> <a class="code" href="classSVF_1_1WTO.html#a54d8c25df36b0c44d52369c4294a1ed8">_nodeToCDN</a>;</div>
|
|
523
|
+
<div class="line"><a name="l00548"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#af3e699fe03e5072f057cf162aefe8c12"> 548</a></span>  <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a> <a class="code" href="classSVF_1_1WTO.html#af3e699fe03e5072f057cf162aefe8c12">_num</a>;</div>
|
|
524
|
+
<div class="line"><a name="l00549"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a333df66435d9c4444ff7f729ca9d0050"> 549</a></span>  <a class="code" href="classSVF_1_1WTO.html#ab35eabe45c6b944b26532fbe630cd019">Stack</a> <a class="code" href="classSVF_1_1WTO.html#a333df66435d9c4444ff7f729ca9d0050">_stack</a>;</div>
|
|
525
|
+
<div class="line"><a name="l00550"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ae8e57cc333199bc8b5aaff0a825eed47"> 550</a></span>  GraphT* <a class="code" href="classSVF_1_1WTO.html#ae8e57cc333199bc8b5aaff0a825eed47">_graph</a>;</div>
|
|
526
|
+
<div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a5853e7a33044635877b8f07de05ff047"> 551</a></span>  <span class="keyword">const</span> NodeT* <a class="code" href="classSVF_1_1WTO.html#a5853e7a33044635877b8f07de05ff047">_entry</a>;</div>
|
|
529
527
|
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  </div>
|
|
530
|
-
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> 
|
|
531
|
-
<div class="line"><a name="
|
|
532
|
-
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span> 
|
|
533
|
-
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span> 
|
|
534
|
-
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> 
|
|
535
|
-
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> 
|
|
536
|
-
<div class="line"><a name="
|
|
537
|
-
<div class="line"><a name="
|
|
538
|
-
<div class="line"><a name="
|
|
539
|
-
<div class="line"><a name="
|
|
540
|
-
<div class="line"><a name="
|
|
541
|
-
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="keywordflow">return</span> it != <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada96b743fb0fd92f5f2c539130404187">_nodeToDepth</a>.end();</div>
|
|
542
|
-
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  }</div>
|
|
528
|
+
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> <span class="keyword">public</span>:</div>
|
|
529
|
+
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  </div>
|
|
530
|
+
<div class="line"><a name="l00556"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a7757a14d821963ad5ee03da0b542f8fb"> 556</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1WTO.html#a7757a14d821963ad5ee03da0b542f8fb">WTO</a>(GraphT* graph, <span class="keyword">const</span> NodeT* entry) : _num(0), _graph(graph), _entry(entry)</div>
|
|
531
|
+
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  {</div>
|
|
532
|
+
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  }</div>
|
|
533
|
+
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  </div>
|
|
534
|
+
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <a class="code" href="classSVF_1_1WTO.html">WTO</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTO.html">WTO</a>& other) = <span class="keywordflow">default</span>;</div>
|
|
535
|
+
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  </div>
|
|
536
|
+
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <a class="code" href="classSVF_1_1WTO.html">WTO</a>(<a class="code" href="classSVF_1_1WTO.html">WTO</a>&& other) = <span class="keywordflow">default</span>;</div>
|
|
537
|
+
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  </div>
|
|
538
|
+
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <a class="code" href="classSVF_1_1WTO.html">WTO</a>& <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a2f5ba04581b5771dd083aa799329e43b">operator=</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTO.html">WTO</a>& other) = <span class="keywordflow">default</span>;</div>
|
|
543
539
|
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  </div>
|
|
544
|
-
<div class="line"><a name="l00570"></a><span class="lineno"
|
|
545
|
-
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> 
|
|
546
|
-
<div class="line"><a name="
|
|
547
|
-
<div class="line"><a name="
|
|
548
|
-
<div class="line"><a name="
|
|
549
|
-
<div class="line"><a name="
|
|
550
|
-
<div class="line"><a name="
|
|
551
|
-
<div class="line"><a name="
|
|
552
|
-
<div class="line"><a name="
|
|
553
|
-
<div class="line"><a name="
|
|
554
|
-
<div class="line"><a name="
|
|
555
|
-
<div class="line"><a name="
|
|
556
|
-
<div class="line"><a name="
|
|
557
|
-
<div class="line"><a name="
|
|
558
|
-
<div class="line"><a name="
|
|
559
|
-
<div class="line"><a name="
|
|
560
|
-
<div class="line"><a name="
|
|
561
|
-
<div class="line"><a name="
|
|
562
|
-
<div class="line"><a name="
|
|
563
|
-
<div class="line"><a name="
|
|
564
|
-
<div class="line"><a name="
|
|
565
|
-
<div class="line"><a name="
|
|
566
|
-
<div class="line"><a name="
|
|
567
|
-
<div class="line"><a name="
|
|
568
|
-
<div class="line"><a name="
|
|
569
|
-
<div class="line"><a name="
|
|
570
|
-
<div class="line"><a name="
|
|
571
|
-
<div class="line"><a name="
|
|
572
|
-
<div class="line"><a name="
|
|
573
|
-
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <span class="keywordflow">return</span> o;</div>
|
|
574
|
-
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  }</div>
|
|
575
|
-
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  </div>
|
|
576
|
-
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> <span class="keyword">protected</span>:</div>
|
|
540
|
+
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <a class="code" href="classSVF_1_1WTO.html">WTO</a>& <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a2f5ba04581b5771dd083aa799329e43b">operator=</a>(<a class="code" href="classSVF_1_1WTO.html">WTO</a>&& other) = <span class="keywordflow">default</span>;</div>
|
|
541
|
+
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  </div>
|
|
542
|
+
<div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a78828eb753f5a27848256d383cf57b5e"> 573</a></span>  <a class="code" href="classSVF_1_1WTO.html#a78828eb753f5a27848256d383cf57b5e">~WTO</a>()</div>
|
|
543
|
+
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  {</div>
|
|
544
|
+
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& component : _allComponents)</div>
|
|
545
|
+
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  {</div>
|
|
546
|
+
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <span class="keyword">delete</span> component;</div>
|
|
547
|
+
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  }</div>
|
|
548
|
+
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  }</div>
|
|
549
|
+
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  </div>
|
|
550
|
+
<div class="line"><a name="l00583"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a13e9082913aa4a14065687ccdd47642d"> 583</a></span>  <a class="code" href="classSVF_1_1WTO.html#a49ea9544fc55c3de1b3aebde1ba69470">Iterator</a> <a class="code" href="classSVF_1_1WTO.html#a13e9082913aa4a14065687ccdd47642d">begin</a>()<span class="keyword"> const</span></div>
|
|
551
|
+
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="keyword"> </span>{</div>
|
|
552
|
+
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keywordflow">return</span> _components.cbegin();</div>
|
|
553
|
+
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  }</div>
|
|
554
|
+
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  </div>
|
|
555
|
+
<div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a22b67a51964cb1d7882aab7e74b026f2"> 589</a></span>  <a class="code" href="classSVF_1_1WTO.html#a49ea9544fc55c3de1b3aebde1ba69470">Iterator</a> <a class="code" href="classSVF_1_1WTO.html#a22b67a51964cb1d7882aab7e74b026f2">end</a>()<span class="keyword"> const</span></div>
|
|
556
|
+
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="keyword"> </span>{</div>
|
|
557
|
+
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keywordflow">return</span> _components.cend();</div>
|
|
558
|
+
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  }</div>
|
|
559
|
+
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  </div>
|
|
560
|
+
<div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a605c2cb15b3c3ff2581d5f2d0a4719a7"> 594</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTO.html#a605c2cb15b3c3ff2581d5f2d0a4719a7">isHead</a>(<span class="keyword">const</span> NodeT* node)<span class="keyword"> const</span></div>
|
|
561
|
+
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> <span class="keyword"> </span>{</div>
|
|
562
|
+
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keywordflow">return</span> headRefToCycle.find(node) != headRefToCycle.end();</div>
|
|
563
|
+
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  }</div>
|
|
564
|
+
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  </div>
|
|
565
|
+
<div class="line"><a name="l00599"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a62a6ee6d3894861a0fb74309d2951e16"> 599</a></span>  <span class="keyword">typename</span> NodeRefToWTOCycleMap::const_iterator <a class="code" href="classSVF_1_1WTO.html#a62a6ee6d3894861a0fb74309d2951e16">headBegin</a>()<span class="keyword"> const</span></div>
|
|
566
|
+
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="keyword"> </span>{</div>
|
|
567
|
+
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keywordflow">return</span> headRefToCycle.cbegin();</div>
|
|
568
|
+
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  }</div>
|
|
577
569
|
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  </div>
|
|
578
|
-
<div class="line"><a name="
|
|
579
|
-
<div class="line"><a name="
|
|
580
|
-
<div class="line"><a name="
|
|
581
|
-
<div class="line"><a name="
|
|
582
|
-
<div class="line"><a name="
|
|
583
|
-
<div class="line"><a name="
|
|
584
|
-
<div class="line"><a name="
|
|
585
|
-
<div class="line"><a name="
|
|
586
|
-
<div class="line"><a name="
|
|
587
|
-
<div class="line"><a name="
|
|
588
|
-
<div class="line"><a name="
|
|
589
|
-
<div class="line"><a name="
|
|
590
|
-
<div class="line"><a name="
|
|
591
|
-
<div class="line"><a name="
|
|
592
|
-
<div class="line"><a name="
|
|
593
|
-
<div class="line"><a name="
|
|
594
|
-
<div class="line"><a name="
|
|
595
|
-
<div class="line"><a name="
|
|
596
|
-
<div class="line"><a name="
|
|
597
|
-
<div class="line"><a name="
|
|
598
|
-
<div class="line"><a name="
|
|
599
|
-
<div class="line"><a name="
|
|
600
|
-
<div class="line"><a name="
|
|
601
|
-
<div class="line"><a name="
|
|
602
|
-
<div class="line"><a name="
|
|
603
|
-
<div class="line"><a name="
|
|
604
|
-
<div class="line"><a name="
|
|
605
|
-
<div class="line"><a name="
|
|
606
|
-
<div class="line"><a name="
|
|
607
|
-
<div class="line"><a name="
|
|
608
|
-
<div class="line"><a name="
|
|
609
|
-
<div class="line"><a name="
|
|
610
|
-
<div class="line"><a name="
|
|
611
|
-
<div class="line"><a name="
|
|
612
|
-
<div class="line"><a name="
|
|
613
|
-
<div class="line"><a name="
|
|
614
|
-
<div class="line"><a name="
|
|
615
|
-
<div class="line"><a name="
|
|
616
|
-
<div class="line"><a name="
|
|
617
|
-
<div class="line"><a name="
|
|
618
|
-
<div class="line"><a name="
|
|
619
|
-
<div class="line"><a name="
|
|
620
|
-
<div class="line"><a name="
|
|
621
|
-
<div class="line"><a name="
|
|
622
|
-
<div class="line"><a name="
|
|
623
|
-
<div class="line"><a name="
|
|
624
|
-
<div class="line"><a name="
|
|
625
|
-
<div class="line"><a name="
|
|
626
|
-
<div class="line"><a name="
|
|
627
|
-
<div class="line"><a name="
|
|
628
|
-
<div class="line"><a name="
|
|
629
|
-
<div class="line"><a name="
|
|
630
|
-
<div class="line"><a name="
|
|
631
|
-
<div class="line"><a name="
|
|
632
|
-
<div class="line"><a name="
|
|
633
|
-
<div class="line"><a name="
|
|
634
|
-
<div class="line"><a name="
|
|
635
|
-
<div class="line"><a name="
|
|
636
|
-
<div class="line"><a name="
|
|
637
|
-
<div class="line"><a name="
|
|
638
|
-
<div class="line"><a name="
|
|
639
|
-
<div class="line"><a name="
|
|
640
|
-
<div class="line"><a name="
|
|
641
|
-
<div class="line"><a name="
|
|
642
|
-
<div class="line"><a name="
|
|
643
|
-
<div class="line"><a name="
|
|
644
|
-
<div class="line"><a name="
|
|
645
|
-
<div class="line"><a name="
|
|
646
|
-
<div class="line"><a name="
|
|
647
|
-
<div class="line"><a name="
|
|
648
|
-
<div class="line"><a name="
|
|
649
|
-
<div class="line"><a name="
|
|
650
|
-
<div class="line"><a name="
|
|
651
|
-
<div class="line"><a name="
|
|
652
|
-
<div class="line"><a name="
|
|
653
|
-
<div class="line"><a name="
|
|
654
|
-
<div class="line"><a name="
|
|
655
|
-
<div class="line"><a name="
|
|
656
|
-
<div class="line"><a name="
|
|
657
|
-
<div class="line"><a name="
|
|
658
|
-
<div class="line"><a name="
|
|
659
|
-
<div class="line"><a name="
|
|
660
|
-
<div class="line"><a name="
|
|
661
|
-
<div class="line"><a name="
|
|
662
|
-
<div class="line"><a name="
|
|
663
|
-
<div class="line"><a name="
|
|
664
|
-
<div class="line"><a name="
|
|
665
|
-
<div class="line"><a name="
|
|
666
|
-
<div class="line"><a name="
|
|
667
|
-
<div class="line"><a name="
|
|
668
|
-
<div class="line"><a name="
|
|
669
|
-
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  }</div>
|
|
670
|
-
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  }</div>
|
|
671
|
-
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  </div>
|
|
672
|
-
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <span class="keyword">protected</span>:</div>
|
|
673
|
-
<div class="line"><a name="l00702"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html#a0efb4902bc6933e28b042edf6fc3f94c"> 702</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">CFBasicBlockGWTOCycleDepth</a> &<a class="code" href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html#a0efb4902bc6933e28b042edf6fc3f94c">getWTOCycleDepth</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div>
|
|
570
|
+
<div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ace35f97608d342cae7cda7936816f624"> 605</a></span>  <span class="keyword">typename</span> NodeRefToWTOCycleMap::const_iterator <a class="code" href="classSVF_1_1WTO.html#ace35f97608d342cae7cda7936816f624">headEnd</a>()<span class="keyword"> const</span></div>
|
|
571
|
+
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="keyword"> </span>{</div>
|
|
572
|
+
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keywordflow">return</span> headRefToCycle.cend();</div>
|
|
573
|
+
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  }</div>
|
|
574
|
+
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  </div>
|
|
575
|
+
<div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#aa50fbcbff0e3aa30bce2ba1b810e8ca8"> 611</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycleDepth.html">GraphTWTOCycleDepth</a>& <a class="code" href="classSVF_1_1WTO.html#aa50fbcbff0e3aa30bce2ba1b810e8ca8">cycleDepth</a>(<span class="keyword">const</span> NodeT* <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div>
|
|
576
|
+
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span> <span class="keyword"> </span>{</div>
|
|
577
|
+
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keyword">auto</span> it = _nodeToDepth.find(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
|
|
578
|
+
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  assert(it != _nodeToDepth.end() && <span class="stringliteral">"node not found"</span>);</div>
|
|
579
|
+
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  <span class="keywordflow">return</span> *(it->second);</div>
|
|
580
|
+
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  }</div>
|
|
581
|
+
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  </div>
|
|
582
|
+
<div class="line"><a name="l00619"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a1e331c472a19616ccef9f8230a8724fb"> 619</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1WTO.html#a1e331c472a19616ccef9f8230a8724fb">in_cycleDepth_table</a>(<span class="keyword">const</span> NodeT* <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div>
|
|
583
|
+
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span> <span class="keyword"> </span>{</div>
|
|
584
|
+
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="keyword">auto</span> it = _nodeToDepth.find(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
|
|
585
|
+
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keywordflow">return</span> it != _nodeToDepth.end();</div>
|
|
586
|
+
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  }</div>
|
|
587
|
+
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  </div>
|
|
588
|
+
<div class="line"><a name="l00626"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#af2ac6543be66a6ca5911f49f16c341c4"> 626</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO.html#af2ac6543be66a6ca5911f49f16c341c4">accept</a>(<a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor<GraphT></a>& v)</div>
|
|
589
|
+
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  {</div>
|
|
590
|
+
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& c : _components)</div>
|
|
591
|
+
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  {</div>
|
|
592
|
+
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  c->accept(v);</div>
|
|
593
|
+
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  }</div>
|
|
594
|
+
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  }</div>
|
|
595
|
+
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  </div>
|
|
596
|
+
<div class="line"><a name="l00635"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a2245875350c4a72f826d998f02f5e796"> 635</a></span>  [[nodiscard]] <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1WTO.html#a2245875350c4a72f826d998f02f5e796">toString</a>()<span class="keyword"> const</span></div>
|
|
597
|
+
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span> <span class="keyword"> </span>{</div>
|
|
598
|
+
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str;</div>
|
|
599
|
+
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  std::stringstream rawstr(str);</div>
|
|
600
|
+
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  rawstr << <span class="stringliteral">"["</span>;</div>
|
|
601
|
+
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = begin(), et = end(); it != et;)</div>
|
|
602
|
+
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  {</div>
|
|
603
|
+
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  rawstr << (*it)->toString();</div>
|
|
604
|
+
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  ++it;</div>
|
|
605
|
+
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="keywordflow">if</span> (it != et)</div>
|
|
606
|
+
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  {</div>
|
|
607
|
+
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  rawstr << <span class="stringliteral">", "</span>;</div>
|
|
608
|
+
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  }</div>
|
|
609
|
+
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  }</div>
|
|
610
|
+
<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  rawstr << <span class="stringliteral">"]"</span>;</div>
|
|
611
|
+
<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  <span class="keywordflow">return</span> rawstr.str();</div>
|
|
612
|
+
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  }</div>
|
|
613
|
+
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  </div>
|
|
614
|
+
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  </div>
|
|
615
|
+
<div class="line"><a name="l00655"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a9342328c10f51f56290b61e06851f30d"> 655</a></span>  <span class="keyword">friend</span> std::ostream& <a class="code" href="classSVF_1_1WTO.html#a9342328c10f51f56290b61e06851f30d">operator<<</a>(std::ostream& o, <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTO.html">WTO<GraphT></a>& wto)</div>
|
|
616
|
+
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  {</div>
|
|
617
|
+
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  o << wto.<a class="code" href="classSVF_1_1WTO.html#a2245875350c4a72f826d998f02f5e796">toString</a>();</div>
|
|
618
|
+
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  <span class="keywordflow">return</span> o;</div>
|
|
619
|
+
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  }</div>
|
|
620
|
+
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  </div>
|
|
621
|
+
<div class="line"><a name="l00662"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a12d50323eaa2d40925699232beb37747"> 662</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO.html#a12d50323eaa2d40925699232beb37747">init</a>()</div>
|
|
622
|
+
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  {</div>
|
|
623
|
+
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(_entry, _components);</div>
|
|
624
|
+
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  _nodeToCDN.clear();</div>
|
|
625
|
+
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  _stack.clear();</div>
|
|
626
|
+
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  buildNodeToDepth();</div>
|
|
627
|
+
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  }</div>
|
|
628
|
+
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  </div>
|
|
629
|
+
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span> <span class="keyword">protected</span>:</div>
|
|
630
|
+
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  </div>
|
|
631
|
+
<div class="line"><a name="l00673"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html"> 673</a></span>  <span class="keyword">class </span><a class="code" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html">WTOCycleDepthBuilder</a> final : <span class="keyword">public</span> <a class="code" href="classSVF_1_1WTOComponentVisitor.html">WTOComponentVisitor</a><GraphT></div>
|
|
632
|
+
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  {</div>
|
|
633
|
+
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <span class="keyword">private</span>:</div>
|
|
634
|
+
<div class="line"><a name="l00676"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#ad40b8e78a27207b8cf113517aed6dca3"> 676</a></span>  <a class="code" href="classSVF_1_1WTO.html#a8022c9a6ebc62ed292698f07ab93bafe">WTOCycleDepthPtr</a> <a class="code" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#ad40b8e78a27207b8cf113517aed6dca3">_wtoCycleDepth</a>;</div>
|
|
635
|
+
<div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a853dc3f6646858f76de023925d9d6bce"> 677</a></span>  <a class="code" href="classSVF_1_1WTO.html#a4d7362b707ea6013811db5ffa80aeb0b">NodeRefToWTOCycleDepthPtr</a>& <a class="code" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a853dc3f6646858f76de023925d9d6bce">_nodeToWTOCycleDepth</a>;</div>
|
|
636
|
+
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  </div>
|
|
637
|
+
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="keyword">public</span>:</div>
|
|
638
|
+
<div class="line"><a name="l00680"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a6cf986992bb78e6e3aa2e75b883c01c9"> 680</a></span>  <span class="keyword">explicit</span> <a class="code" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a6cf986992bb78e6e3aa2e75b883c01c9">WTOCycleDepthBuilder</a>(</div>
|
|
639
|
+
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  <a class="code" href="classSVF_1_1WTO.html#a4d7362b707ea6013811db5ffa80aeb0b">NodeRefToWTOCycleDepthPtr</a>& nodeToWTOCycleDepth)</div>
|
|
640
|
+
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  : _wtoCycleDepth(std::make_shared<<a class="code" href="classSVF_1_1WTOCycleDepth.html">GraphTWTOCycleDepth</a>>()),</div>
|
|
641
|
+
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  _nodeToWTOCycleDepth(nodeToWTOCycleDepth)</div>
|
|
642
|
+
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  {</div>
|
|
643
|
+
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  }</div>
|
|
644
|
+
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  </div>
|
|
645
|
+
<div class="line"><a name="l00687"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#aad99b0e8004bb36b9a4ba81ea16c5d90"> 687</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#aad99b0e8004bb36b9a4ba81ea16c5d90">visit</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycleT</a>& cycle)<span class="keyword"> override</span></div>
|
|
646
|
+
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span> <span class="keyword"> </span>{</div>
|
|
647
|
+
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTO.html#a78e43eb435fb7f5ee47670f10c6e67f2">NodeT</a>* head = cycle.<a class="code" href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079">head</a>();</div>
|
|
648
|
+
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <a class="code" href="classSVF_1_1WTO.html#a8022c9a6ebc62ed292698f07ab93bafe">WTOCycleDepthPtr</a> previous_cycleDepth = _wtoCycleDepth;</div>
|
|
649
|
+
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  _nodeToWTOCycleDepth.insert(std::make_pair(head, _wtoCycleDepth));</div>
|
|
650
|
+
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  _wtoCycleDepth =</div>
|
|
651
|
+
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  std::make_shared<GraphTWTOCycleDepth>(*_wtoCycleDepth);</div>
|
|
652
|
+
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  _wtoCycleDepth->add(head);</div>
|
|
653
|
+
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = cycle.<a class="code" href="classSVF_1_1WTOCycle.html#a807c883d1cfe98c791c903125742f95b">begin</a>(), et = cycle.<a class="code" href="classSVF_1_1WTOCycle.html#a03fd55dd34c48d22cefcaf6dc93f734a">end</a>(); it != et; ++it)</div>
|
|
654
|
+
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  {</div>
|
|
655
|
+
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  (*it)->accept(*<span class="keyword">this</span>);</div>
|
|
656
|
+
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  }</div>
|
|
657
|
+
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  _wtoCycleDepth = previous_cycleDepth;</div>
|
|
658
|
+
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  }</div>
|
|
659
|
+
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  </div>
|
|
660
|
+
<div class="line"><a name="l00702"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a51be6e437a0d715e2571242c4dde1794"> 702</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a51be6e437a0d715e2571242c4dde1794">visit</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html">WTONodeT</a>& node)<span class="keyword"> override</span></div>
|
|
674
661
|
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span> <span class="keyword"> </span>{</div>
|
|
675
|
-
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span> 
|
|
676
|
-
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> 
|
|
677
|
-
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> 
|
|
678
|
-
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span> 
|
|
679
|
-
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  </div>
|
|
680
|
-
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span> 
|
|
681
|
-
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> 
|
|
682
|
-
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> 
|
|
683
|
-
<div class="line"><a name="
|
|
684
|
-
<div class="line"><a name="
|
|
685
|
-
<div class="line"><a name="
|
|
686
|
-
<div class="line"><a name="
|
|
687
|
-
<div class="line"><a name="
|
|
688
|
-
<div class="line"><a name="
|
|
689
|
-
<div class="line"><a name="
|
|
690
|
-
<div class="line"><a name="
|
|
691
|
-
<div class="line"><a name="
|
|
692
|
-
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span> 
|
|
693
|
-
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> 
|
|
694
|
-
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span> 
|
|
695
|
-
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  </div>
|
|
696
|
-
<div class="line"><a name="
|
|
697
|
-
<div class="line"><a name="
|
|
698
|
-
<div class="line"><a name="
|
|
699
|
-
<div class="line"><a name="
|
|
700
|
-
<div class="line"><a name="
|
|
701
|
-
<div class="line"><a name="
|
|
702
|
-
<div class="line"><a name="
|
|
703
|
-
<div class="line"><a name="
|
|
704
|
-
<div class="line"><a name="
|
|
705
|
-
<div class="line"><a name="
|
|
706
|
-
<div class="line"><a name="
|
|
707
|
-
<div class="line"><a name="
|
|
708
|
-
<div class="line"><a name="
|
|
709
|
-
<div class="line"><a name="
|
|
710
|
-
<div class="line"><a name="
|
|
662
|
+
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  _nodeToWTOCycleDepth.insert(</div>
|
|
663
|
+
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  std::make_pair(node.<a class="code" href="classSVF_1_1WTONode.html#aae0fe6c5464535f41f4723c23615e5cd">node</a>(), _wtoCycleDepth));</div>
|
|
664
|
+
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  }</div>
|
|
665
|
+
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  </div>
|
|
666
|
+
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  }; <span class="comment">// end class WTOCycleDepthBuilder</span></div>
|
|
667
|
+
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  </div>
|
|
668
|
+
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> <span class="keyword">protected</span>:</div>
|
|
669
|
+
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  </div>
|
|
670
|
+
<div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a65d2ed9e7306392ce0b82ac018f0cdea"> 712</a></span>  <span class="keyword">inline</span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO.html#a65d2ed9e7306392ce0b82ac018f0cdea">forEachSuccessor</a>(<span class="keyword">const</span> NodeT* node, std::function<<span class="keywordtype">void</span>(<span class="keyword">const</span> NodeT*)> func)<span class="keyword"> const</span></div>
|
|
671
|
+
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span> <span class="keyword"> </span>{</div>
|
|
672
|
+
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& e : node->getOutEdges())</div>
|
|
673
|
+
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  {</div>
|
|
674
|
+
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  func(e->getDstNode());</div>
|
|
675
|
+
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  }</div>
|
|
676
|
+
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  }</div>
|
|
677
|
+
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  </div>
|
|
678
|
+
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> <span class="keyword">protected</span>:</div>
|
|
679
|
+
<div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a92034688db3f67feb6e997d4c03f769f"> 722</a></span>  <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a> <a class="code" href="classSVF_1_1WTO.html#a92034688db3f67feb6e997d4c03f769f">getCDN</a>(<span class="keyword">const</span> NodeT* <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)<span class="keyword"> const</span></div>
|
|
680
|
+
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span> <span class="keyword"> </span>{</div>
|
|
681
|
+
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keyword">auto</span> it = _nodeToCDN.find(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
|
|
682
|
+
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <span class="keywordflow">if</span> (it != _nodeToCDN.end())</div>
|
|
683
|
+
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  {</div>
|
|
684
|
+
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <span class="keywordflow">return</span> it->second;</div>
|
|
685
|
+
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  }</div>
|
|
686
|
+
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <span class="keywordflow">else</span></div>
|
|
687
|
+
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  {</div>
|
|
688
|
+
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <span class="keywordflow">return</span> 0;</div>
|
|
689
|
+
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  }</div>
|
|
690
|
+
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  }</div>
|
|
691
|
+
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  </div>
|
|
692
|
+
<div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a7fc78de450f2cb6cbed8aa6856638ad1"> 736</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO.html#a7fc78de450f2cb6cbed8aa6856638ad1">setCDN</a>(<span class="keyword">const</span> NodeT* <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>, <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a>& dfn)</div>
|
|
693
|
+
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  {</div>
|
|
694
|
+
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <span class="keyword">auto</span> res = _nodeToCDN.insert(std::make_pair(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>, dfn));</div>
|
|
695
|
+
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <span class="keywordflow">if</span> (!res.second)</div>
|
|
696
|
+
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  {</div>
|
|
697
|
+
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  (res.first)->second = dfn;</div>
|
|
698
|
+
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  }</div>
|
|
711
699
|
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  }</div>
|
|
712
700
|
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  </div>
|
|
713
|
-
<div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="
|
|
701
|
+
<div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#ae6655b82c9137b960eac07631897de82"> 746</a></span>  <span class="keyword">const</span> NodeT* <a class="code" href="classSVF_1_1WTO.html#ae6655b82c9137b960eac07631897de82">pop</a>()</div>
|
|
714
702
|
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  {</div>
|
|
715
|
-
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span> 
|
|
716
|
-
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span> 
|
|
717
|
-
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> 
|
|
718
|
-
<div class="line"><a name="l00751"></a><span class="lineno"
|
|
719
|
-
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span> 
|
|
720
|
-
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span> 
|
|
721
|
-
<div class="line"><a name="
|
|
722
|
-
<div class="line"><a name="
|
|
723
|
-
<div class="line"><a name="
|
|
724
|
-
<div class="line"><a name="
|
|
725
|
-
<div class="line"><a name="
|
|
726
|
-
<div class="line"><a name="
|
|
727
|
-
<div class="line"><a name="
|
|
728
|
-
<div class="line"><a name="
|
|
729
|
-
<div class="line"><a name="
|
|
730
|
-
<div class="line"><a name="
|
|
731
|
-
<div class="line"><a name="
|
|
732
|
-
<div class="line"><a name="l00766"></a><span class="lineno"
|
|
733
|
-
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span> 
|
|
734
|
-
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span> 
|
|
735
|
-
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span> 
|
|
736
|
-
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> 
|
|
737
|
-
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span> 
|
|
738
|
-
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> 
|
|
739
|
-
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span> 
|
|
740
|
-
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span> 
|
|
741
|
-
<div class="line"><a name="
|
|
742
|
-
<div class="line"><a name="
|
|
743
|
-
<div class="line"><a name="
|
|
744
|
-
<div class="line"><a name="
|
|
745
|
-
<div class="line"><a name="
|
|
746
|
-
<div class="line"><a name="
|
|
747
|
-
<div class="line"><a name="
|
|
748
|
-
<div class="line"><a name="
|
|
749
|
-
<div class="line"><a name="
|
|
750
|
-
<div class="line"><a name="
|
|
751
|
-
<div class="line"><a name="
|
|
752
|
-
<div class="line"><a name="
|
|
753
|
-
<div class="line"><a name="
|
|
754
|
-
<div class="line"><a name="
|
|
755
|
-
<div class="line"><a name="
|
|
756
|
-
<div class="line"><a name="
|
|
757
|
-
<div class="line"><a name="
|
|
758
|
-
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  }</div>
|
|
759
|
-
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  </div>
|
|
760
|
-
<div class="line"><a name="l00795"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#af7351af6e43b593b9915ed2a2d0d16fb"> 795</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a19ae57653ecb3c74d030bed48327ed0e">CycleDepthNumber</a> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#af7351af6e43b593b9915ed2a2d0d16fb">visit</a>(<span class="keyword">const</span> <a class="code" href="classSVF_1_1CFBasicBlockNode.html">CFBasicBlockNode</a> *node, <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a1e6c7cb2b79de62cbad8d29980d5cf38">WTOCompRefList</a> &partition)</div>
|
|
703
|
+
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  assert(!_stack.empty() && <span class="stringliteral">"empty stack"</span>);</div>
|
|
704
|
+
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  <span class="keyword">const</span> NodeT* top = _stack.back();</div>
|
|
705
|
+
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  _stack.pop_back();</div>
|
|
706
|
+
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <span class="keywordflow">return</span> top;</div>
|
|
707
|
+
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  }</div>
|
|
708
|
+
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  </div>
|
|
709
|
+
<div class="line"><a name="l00755"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a9a67c7812a890ee4ff9cd470f947bf86"> 755</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO.html#a9a67c7812a890ee4ff9cd470f947bf86">push</a>(<span class="keyword">const</span> NodeT* <a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>)</div>
|
|
710
|
+
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  {</div>
|
|
711
|
+
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  _stack.push_back(<a class="code" href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a>);</div>
|
|
712
|
+
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  }</div>
|
|
713
|
+
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  </div>
|
|
714
|
+
<div class="line"><a name="l00760"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a2ce51d9a57e8a353aa23d14dce933c9a"> 760</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html">WTONodeT</a>* <a class="code" href="classSVF_1_1WTO.html#a2ce51d9a57e8a353aa23d14dce933c9a">newNode</a>(<span class="keyword">const</span> NodeT* node)</div>
|
|
715
|
+
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  {</div>
|
|
716
|
+
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTONode.html">WTONodeT</a>* ptr = <span class="keyword">new</span> <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a873b7e2a4166cb6a5b48a63dbafa295d">WTONodeT</a>(node);</div>
|
|
717
|
+
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  _allComponents.insert(ptr);</div>
|
|
718
|
+
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  <span class="keywordflow">return</span> ptr;</div>
|
|
719
|
+
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  }</div>
|
|
720
|
+
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  </div>
|
|
721
|
+
<div class="line"><a name="l00767"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#aee55e23a1994d4daa29f21a608a1ca69"> 767</a></span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycleT</a>* <a class="code" href="classSVF_1_1WTO.html#aee55e23a1994d4daa29f21a608a1ca69">newCycle</a>(<span class="keyword">const</span> NodeT* node,</div>
|
|
722
|
+
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9">WTOComponentRefList</a>& partition)</div>
|
|
723
|
+
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  {</div>
|
|
724
|
+
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycleT</a>* ptr = <span class="keyword">new</span> <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a978324f9b276a9d086b9e7a12feac997">WTOCycleT</a>(node, <a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(partition));</div>
|
|
725
|
+
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  _allComponents.insert(ptr);</div>
|
|
726
|
+
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <span class="keywordflow">return</span> ptr;</div>
|
|
727
|
+
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  }</div>
|
|
728
|
+
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  </div>
|
|
729
|
+
<div class="line"><a name="l00776"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a8dc175362f4dbbf158e1fe03745f1ce7"> 776</a></span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycleT</a>* <a class="code" href="classSVF_1_1WTO.html#a8dc175362f4dbbf158e1fe03745f1ce7">component</a>(<span class="keyword">const</span> NodeT* node)</div>
|
|
730
|
+
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  {</div>
|
|
731
|
+
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <a class="code" href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9">WTOComponentRefList</a> partition;</div>
|
|
732
|
+
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  forEachSuccessor(node, [&](<span class="keyword">const</span> NodeT* succ)</div>
|
|
733
|
+
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  {</div>
|
|
734
|
+
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  <span class="keywordflow">if</span> (getCDN(succ) == 0)</div>
|
|
735
|
+
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  {</div>
|
|
736
|
+
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(succ, partition);</div>
|
|
737
|
+
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  }</div>
|
|
738
|
+
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  });</div>
|
|
739
|
+
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1WTOCycle.html">WTOCycleT</a>* ptr = newCycle(node, partition);</div>
|
|
740
|
+
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  headRefToCycle.emplace(node, ptr);</div>
|
|
741
|
+
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="keywordflow">return</span> ptr;</div>
|
|
742
|
+
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  }</div>
|
|
743
|
+
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  </div>
|
|
744
|
+
<div class="line"><a name="l00794"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#a56259113c30312e5052d0d8c0d4d6b77"> 794</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a> <a class="code" href="classSVF_1_1WTO.html#a56259113c30312e5052d0d8c0d4d6b77">visit</a>(<span class="keyword">const</span> NodeT* node,</div>
|
|
745
|
+
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <a class="code" href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9">WTOComponentRefList</a>& partition)</div>
|
|
761
746
|
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  {</div>
|
|
762
|
-
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <a class="code" href="
|
|
763
|
-
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <a class="code" href="
|
|
747
|
+
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a> head(0);</div>
|
|
748
|
+
<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a> min(0);</div>
|
|
764
749
|
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="keywordtype">bool</span> loop;</div>
|
|
765
750
|
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  </div>
|
|
766
|
-
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span> 
|
|
767
|
-
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span> 
|
|
768
|
-
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  head =
|
|
769
|
-
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span> 
|
|
751
|
+
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  push(node);</div>
|
|
752
|
+
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  _num += <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a>(1);</div>
|
|
753
|
+
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  head = _num;</div>
|
|
754
|
+
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  setCDN(node, head);</div>
|
|
770
755
|
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  loop = <span class="keyword">false</span>;</div>
|
|
771
|
-
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> 
|
|
756
|
+
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  forEachSuccessor(node, [&](<span class="keyword">const</span> NodeT* succ)</div>
|
|
772
757
|
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  {</div>
|
|
773
|
-
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <
|
|
774
|
-
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <
|
|
775
|
-
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span> 
|
|
776
|
-
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span> 
|
|
777
|
-
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span> 
|
|
778
|
-
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span> 
|
|
779
|
-
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> 
|
|
780
|
-
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span> 
|
|
781
|
-
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span> 
|
|
782
|
-
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span> 
|
|
783
|
-
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span> 
|
|
784
|
-
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span> 
|
|
785
|
-
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span> 
|
|
786
|
-
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span> 
|
|
787
|
-
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> 
|
|
788
|
-
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span> 
|
|
789
|
-
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <span class="keywordflow">
|
|
758
|
+
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a> succ_dfn = getCDN(succ);</div>
|
|
759
|
+
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <span class="keywordflow">if</span> (succ_dfn == <a class="code" href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">CycleDepthNumber</a>(0))</div>
|
|
760
|
+
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  {</div>
|
|
761
|
+
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  min = <a class="code" href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">visit</a>(succ, partition);</div>
|
|
762
|
+
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  }</div>
|
|
763
|
+
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  <span class="keywordflow">else</span></div>
|
|
764
|
+
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  {</div>
|
|
765
|
+
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  min = succ_dfn;</div>
|
|
766
|
+
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  }</div>
|
|
767
|
+
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <span class="keywordflow">if</span> (min <= head)</div>
|
|
768
|
+
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  {</div>
|
|
769
|
+
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  head = min;</div>
|
|
770
|
+
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  loop = <span class="keyword">true</span>;</div>
|
|
771
|
+
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  }</div>
|
|
772
|
+
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  });</div>
|
|
773
|
+
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  </div>
|
|
774
|
+
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <span class="keywordflow">if</span> (head == getCDN(node))</div>
|
|
790
775
|
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  {</div>
|
|
791
|
-
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span> 
|
|
792
|
-
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span> 
|
|
793
|
-
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span> 
|
|
794
|
-
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> 
|
|
795
|
-
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <span class="keywordflow">
|
|
796
|
-
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span> 
|
|
797
|
-
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span> 
|
|
798
|
-
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span> 
|
|
799
|
-
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span> 
|
|
800
|
-
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span> 
|
|
801
|
-
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span> 
|
|
802
|
-
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span> 
|
|
803
|
-
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span> 
|
|
804
|
-
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span> 
|
|
805
|
-
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span> 
|
|
806
|
-
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> 
|
|
807
|
-
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span> 
|
|
808
|
-
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span> 
|
|
809
|
-
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span> 
|
|
810
|
-
<div class="line"><a name="
|
|
811
|
-
<div class="line"><a name="
|
|
812
|
-
<div class="line"><a name="
|
|
813
|
-
<div class="line"><a name="
|
|
814
|
-
<div class="line"><a name="
|
|
815
|
-
<div class="line"><a name="
|
|
816
|
-
<div class="line"><a name="
|
|
817
|
-
<div class="line"><a name="
|
|
818
|
-
<div class="line"><a name="
|
|
819
|
-
<div class="line"><a name="
|
|
820
|
-
<div class="line"><a name="
|
|
821
|
-
<div class="line"><a name="
|
|
822
|
-
<div class="line"><a name="
|
|
823
|
-
<div class="line"><a name="
|
|
824
|
-
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  partition.push_front(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a9dd4ed2f3347d529163a60e0386ea11d">component</a>(node));</div>
|
|
825
|
-
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  }</div>
|
|
826
|
-
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="keywordflow">else</span></div>
|
|
827
|
-
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  {</div>
|
|
828
|
-
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  partition.push_front(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#acab6d0c92dc8e03a97cc78b060a624c4">newNode</a>(node));</div>
|
|
829
|
-
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  }</div>
|
|
830
|
-
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  }</div>
|
|
831
|
-
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  <span class="keywordflow">return</span> head;</div>
|
|
832
|
-
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  }</div>
|
|
833
|
-
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  </div>
|
|
834
|
-
<div class="line"><a name="l00870"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#a50fa3b82172788c5e963d723b27900ba"> 870</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a50fa3b82172788c5e963d723b27900ba">buildNodeToWTOCycleDepth</a>()</div>
|
|
835
|
-
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  {</div>
|
|
836
|
-
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO_1_1WTOCycleDepthBuilder.html">WTOCycleDepthBuilder</a> builder(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada96b743fb0fd92f5f2c539130404187">_nodeToDepth</a>);</div>
|
|
837
|
-
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a62021e77023442dc809f6441cd3692c5">begin</a>(), et = <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad915ed46be9ae3dbd7ee8227c0dee40d">end</a>(); it != et; ++it)</div>
|
|
838
|
-
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  {</div>
|
|
839
|
-
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  (*it)->accept(&builder);</div>
|
|
840
|
-
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  }</div>
|
|
841
|
-
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  }</div>
|
|
842
|
-
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  </div>
|
|
843
|
-
<div class="line"><a name="l00880"></a><span class="lineno"><a class="line" href="classSVF_1_1CFBasicBlockGWTO.html#a371c7416c88df3c0b70addf9b88b305a"> 880</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a371c7416c88df3c0b70addf9b88b305a">build_tails</a>()</div>
|
|
844
|
-
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  {</div>
|
|
845
|
-
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> &head: <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ab9fa2e63665b25c8fb771e92dc9b19dc">_headToCycle</a>)</div>
|
|
846
|
-
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  {</div>
|
|
847
|
-
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada27aa4f9b577c7f7cef09e9936327f2">NodeRefSet</a> tails;</div>
|
|
848
|
-
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html">TailBuilder</a> builder(<a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ad00addfd46be014c35a6ffbc9333d7f3">_graph</a>, <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#ada96b743fb0fd92f5f2c539130404187">_nodeToDepth</a>, tails, head.first, <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#a47b0a759cac2b4264b8c01dbe9f1c63f">getWTOCycleDepth</a>(head.first));</div>
|
|
849
|
-
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = head.second->begin(), eit = head.second->end(); it != eit; ++it)</div>
|
|
850
|
-
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  {</div>
|
|
851
|
-
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  (*it)->accept(&builder);</div>
|
|
852
|
-
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  }</div>
|
|
853
|
-
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  <a class="code" href="classSVF_1_1CFBasicBlockGWTO.html#abb5b72dbfa6f00bf952f1b71deb48598">_headToTails</a>.emplace(head.first, tails);</div>
|
|
854
|
-
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  }</div>
|
|
855
|
-
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  }</div>
|
|
856
|
-
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  </div>
|
|
857
|
-
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span> }; <span class="comment">// end class CFBasicBlockGWTO</span></div>
|
|
858
|
-
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  </div>
|
|
859
|
-
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span> } <span class="comment">// end namespace SVF</span></div>
|
|
860
|
-
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span> <span class="preprocessor">#endif </span><span class="comment">/* WTO_H_ */</span><span class="preprocessor"></span></div>
|
|
776
|
+
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  setCDN(node, UINT_MAX);</div>
|
|
777
|
+
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <span class="keyword">const</span> NodeT* element = pop();</div>
|
|
778
|
+
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  <span class="keywordflow">if</span> (loop)</div>
|
|
779
|
+
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  {</div>
|
|
780
|
+
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <span class="keywordflow">while</span> (element != node)</div>
|
|
781
|
+
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  {</div>
|
|
782
|
+
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  setCDN(element, 0);</div>
|
|
783
|
+
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  element = pop();</div>
|
|
784
|
+
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  }</div>
|
|
785
|
+
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  partition.push_front(component(node));</div>
|
|
786
|
+
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  }</div>
|
|
787
|
+
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <span class="keywordflow">else</span></div>
|
|
788
|
+
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  {</div>
|
|
789
|
+
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  partition.push_front(newNode(node));</div>
|
|
790
|
+
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  }</div>
|
|
791
|
+
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  }</div>
|
|
792
|
+
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  <span class="keywordflow">return</span> head;</div>
|
|
793
|
+
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  }</div>
|
|
794
|
+
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  </div>
|
|
795
|
+
<div class="line"><a name="l00846"></a><span class="lineno"><a class="line" href="classSVF_1_1WTO.html#abf8ab42831098184ce972aa6664fcb8a"> 846</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1WTO.html#abf8ab42831098184ce972aa6664fcb8a">buildNodeToDepth</a>()</div>
|
|
796
|
+
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  {</div>
|
|
797
|
+
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  WTOCycleDepthBuilder builder(_nodeToDepth);</div>
|
|
798
|
+
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = begin(), et = end(); it != et; ++it)</div>
|
|
799
|
+
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  {</div>
|
|
800
|
+
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  (*it)->accept(builder);</div>
|
|
801
|
+
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  }</div>
|
|
802
|
+
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  }</div>
|
|
803
|
+
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  </div>
|
|
804
|
+
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span> }; <span class="comment">// end class WTO</span></div>
|
|
805
|
+
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  </div>
|
|
806
|
+
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> } <span class="comment">// namespace SVF</span></div>
|
|
807
|
+
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  </div>
|
|
808
|
+
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span> <span class="preprocessor">#endif </span><span class="comment">/* WTO_H_ */</span><span class="preprocessor"></span></div>
|
|
861
809
|
</div><!-- fragment --></div><!-- contents -->
|
|
862
|
-
<div class="ttc" id="
|
|
863
|
-
<div class="ttc" id="
|
|
864
|
-
<div class="ttc" id="
|
|
865
|
-
<div class="ttc" id="
|
|
866
|
-
<div class="ttc" id="
|
|
867
|
-
<div class="ttc" id="
|
|
868
|
-
<div class="ttc" id="
|
|
869
|
-
<div class="ttc" id="
|
|
870
|
-
<div class="ttc" id="
|
|
871
|
-
<div class="ttc" id="
|
|
872
|
-
<div class="ttc" id="
|
|
873
|
-
<div class="ttc" id="
|
|
810
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a275559cdb0fea5d06b1516c4c49da0ae"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a275559cdb0fea5d06b1516c4c49da0ae">SVF::WTOCycleDepth::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Dump the cycleDepth, for debugging purpose.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00236">WTO.h:236</a></div></div>
|
|
811
|
+
<div class="ttc" id="aclassSVF_1_1WTOComponent_html_a149bad69eb00f216887a42ae0fb518fc"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a149bad69eb00f216887a42ae0fb518fc">SVF::WTOComponent::toString</a></div><div class="ttdeci">virtual std::string toString() const =0</div></div>
|
|
812
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a2e3c5007c3348083b51b0a4fa3e843b9"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a2e3c5007c3348083b51b0a4fa3e843b9">SVF::WTOCycleDepth::operator<=</a></div><div class="ttdeci">bool operator<=(const WTOCycleDepth &other) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00215">WTO.h:215</a></div></div>
|
|
813
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_adf52b9a57bcfb16d0e538f15677ed9fa"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#adf52b9a57bcfb16d0e538f15677ed9fa">SVF::WTOCycle::classof</a></div><div class="ttdeci">static bool classof(const WTOCycle< GraphT > *)</div><div class="ttdoc">ClassOf.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00436">WTO.h:436</a></div></div>
|
|
814
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a15ecb3d149a88c93318133314d010954"><div class="ttname"><a href="classSVF_1_1WTO.html#a15ecb3d149a88c93318133314d010954">SVF::WTO::WTOComponentPtr</a></div><div class="ttdeci">const typedef WTOComponentT * WTOComponentPtr</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00526">WTO.h:526</a></div></div>
|
|
815
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a16a1c72a181571a0f131975caa929ade"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a16a1c72a181571a0f131975caa929ade">SVF::WTOCycleDepth::end</a></div><div class="ttdeci">Iterator end() const</div><div class="ttdoc">End iterator over the head of cycles.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00148">WTO.h:148</a></div></div>
|
|
816
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_af3e699fe03e5072f057cf162aefe8c12"><div class="ttname"><a href="classSVF_1_1WTO.html#af3e699fe03e5072f057cf162aefe8c12">SVF::WTO::_num</a></div><div class="ttdeci">CycleDepthNumber _num</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00548">WTO.h:548</a></div></div>
|
|
817
|
+
<div class="ttc" id="aclassSVF_1_1WTONode_html_a9afd271657066e8f3e3ed79397780e91"><div class="ttname"><a href="classSVF_1_1WTONode.html#a9afd271657066e8f3e3ed79397780e91">SVF::WTONode::toString</a></div><div class="ttdeci">std::string toString() const override</div><div class="ttdoc">Dump the node, for debugging purpose.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00355">WTO.h:355</a></div></div>
|
|
818
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_a8e781898712dae7399ded6ccdce6aa53"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a8e781898712dae7399ded6ccdce6aa53">SVF::WTOCycle::_components</a></div><div class="ttdeci">WTOComponentRefList _components</div><div class="ttdoc">List of components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00400">WTO.h:400</a></div></div>
|
|
819
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a1208cd4c5a880905df4031bf610bd0bb"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a1208cd4c5a880905df4031bf610bd0bb">SVF::WTOCycleDepth::~WTOCycleDepth</a></div><div class="ttdeci">~WTOCycleDepth()=default</div><div class="ttdoc">Destructor.</div></div>
|
|
820
|
+
<div class="ttc" id="aclassSVF_1_1WTONode_html_ad9eb797028c0f30b8b8899edc3fb1b2b"><div class="ttname"><a href="classSVF_1_1WTONode.html#ad9eb797028c0f30b8b8899edc3fb1b2b">SVF::WTONode::classof</a></div><div class="ttdeci">static bool classof(const WTOComponent< GraphT > *c)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00368">WTO.h:368</a></div></div>
|
|
821
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a4779ba4cfc8a0ae23d27ef9d2f3987d0"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a4779ba4cfc8a0ae23d27ef9d2f3987d0">SVF::WTOCycleDepth::operator==</a></div><div class="ttdeci">bool operator==(const WTOCycleDepth &other) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00220">WTO.h:220</a></div></div>
|
|
822
|
+
<div class="ttc" id="aclassSVF_1_1WTOComponent_html_a3c2b9ef6ae6a3d47b0bba929f12560f7a8a904539134bae644c387a317981c110"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7a8a904539134bae644c387a317981c110">SVF::WTOComponent::Cycle</a></div><div class="ttdeci">@ Cycle</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00277">WTO.h:277</a></div></div>
|
|
823
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a78828eb753f5a27848256d383cf57b5e"><div class="ttname"><a href="classSVF_1_1WTO.html#a78828eb753f5a27848256d383cf57b5e">SVF::WTO::~WTO</a></div><div class="ttdeci">~WTO()</div><div class="ttdoc">Destructor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00573">WTO.h:573</a></div></div>
|
|
874
824
|
<div class="ttc" id="anamespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00097">SVFType.h:97</a></div></div>
|
|
875
|
-
<div class="ttc" id="
|
|
876
|
-
<div class="ttc" id="
|
|
825
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a7757a14d821963ad5ee03da0b542f8fb"><div class="ttname"><a href="classSVF_1_1WTO.html#a7757a14d821963ad5ee03da0b542f8fb">SVF::WTO::WTO</a></div><div class="ttdeci">WTO(GraphT *graph, const NodeT *entry)</div><div class="ttdoc">Compute the weak topological order of the given graph.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00556">WTO.h:556</a></div></div>
|
|
826
|
+
<div class="ttc" id="aclassSVF_1_1WTOComponentVisitor_html_a2f5ba04581b5771dd083aa799329e43b"><div class="ttname"><a href="classSVF_1_1WTOComponentVisitor.html#a2f5ba04581b5771dd083aa799329e43b">SVF::WTOComponentVisitor::operator=</a></div><div class="ttdeci">WTOComponentVisitor & operator=(const WTOComponentVisitor &) noexcept=default</div><div class="ttdoc">Copy assignment operator.</div></div>
|
|
827
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_ae652de9cb9fca45b8cb6c08606d7971a"><div class="ttname"><a href="classSVF_1_1WTO.html#ae652de9cb9fca45b8cb6c08606d7971a">SVF::WTO::NodeRefTONodeRefListMap</a></div><div class="ttdeci">Map< const NodeT *, NodeRefList > NodeRefTONodeRefListMap</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00530">WTO.h:530</a></div></div>
|
|
828
|
+
<div class="ttc" id="aclassSVF_1_1WTOComponentVisitor_html_a873b7e2a4166cb6a5b48a63dbafa295d"><div class="ttname"><a href="classSVF_1_1WTOComponentVisitor.html#a873b7e2a4166cb6a5b48a63dbafa295d">SVF::WTOComponentVisitor::WTONodeT</a></div><div class="ttdeci">WTONode< GraphT > WTONodeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00475">WTO.h:475</a></div></div>
|
|
877
829
|
<div class="ttc" id="anamespaceSVF_html"><div class="ttname"><a href="namespaceSVF.html">SVF</a></div><div class="ttdoc">for isBitcode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00065">BasicTypes.h:65</a></div></div>
|
|
878
|
-
<div class="ttc" id="
|
|
879
|
-
<div class="ttc" id="
|
|
880
|
-
<div class="ttc" id="
|
|
881
|
-
<div class="ttc" id="
|
|
882
|
-
<div class="ttc" id="
|
|
883
|
-
<div class="ttc" id="
|
|
884
|
-
<div class="ttc" id="
|
|
885
|
-
<div class="ttc" id="
|
|
886
|
-
<div class="ttc" id="
|
|
887
|
-
<div class="ttc" id="
|
|
888
|
-
<div class="ttc" id="
|
|
889
|
-
<div class="ttc" id="
|
|
890
|
-
<div class="ttc" id="
|
|
891
|
-
<div class="ttc" id="
|
|
892
|
-
<div class="ttc" id="
|
|
893
|
-
<div class="ttc" id="
|
|
894
|
-
<div class="ttc" id="
|
|
830
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a56259113c30312e5052d0d8c0d4d6b77"><div class="ttname"><a href="classSVF_1_1WTO.html#a56259113c30312e5052d0d8c0d4d6b77">SVF::WTO::visit</a></div><div class="ttdeci">virtual CycleDepthNumber visit(const NodeT *node, WTOComponentRefList &partition)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00794">WTO.h:794</a></div></div>
|
|
831
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html"><div class="ttname"><a href="classSVF_1_1WTO.html">SVF::WTO</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00043">WTO.h:43</a></div></div>
|
|
832
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a05e5c2f26d21fea5197205e23fea7d3a"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a05e5c2f26d21fea5197205e23fea7d3a">SVF::WTOCycleDepth::begin</a></div><div class="ttdeci">Iterator begin() const</div><div class="ttdoc">Begin iterator over the head of cycles.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00142">WTO.h:142</a></div></div>
|
|
833
|
+
<div class="ttc" id="aclassSVF_1_1WTO_1_1WTOCycleDepthBuilder_html_aad99b0e8004bb36b9a4ba81ea16c5d90"><div class="ttname"><a href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#aad99b0e8004bb36b9a4ba81ea16c5d90">SVF::WTO::WTOCycleDepthBuilder::visit</a></div><div class="ttdeci">void visit(const WTOCycleT &cycle) override</div><div class="ttdoc">Visit the given cycle.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00687">WTO.h:687</a></div></div>
|
|
834
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_ae6655b82c9137b960eac07631897de82"><div class="ttname"><a href="classSVF_1_1WTO.html#ae6655b82c9137b960eac07631897de82">SVF::WTO::pop</a></div><div class="ttdeci">const NodeT * pop()</div><div class="ttdoc">Pop a node from the stack.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00746">WTO.h:746</a></div></div>
|
|
835
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_aeca7ef6c7cca3533d72fc8d6a5d9337c"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#aeca7ef6c7cca3533d72fc8d6a5d9337c">SVF::WTOCycleDepth::operator=</a></div><div class="ttdeci">WTOCycleDepth & operator=(const WTOCycleDepth &)=default</div><div class="ttdoc">Copy assignment operator.</div></div>
|
|
836
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a54890e9212acbff3ccd28d674f86e9e7"><div class="ttname"><a href="classSVF_1_1WTO.html#a54890e9212acbff3ccd28d674f86e9e7">SVF::WTO::CycleDepthNumber</a></div><div class="ttdeci">u32_t CycleDepthNumber</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00532">WTO.h:532</a></div></div>
|
|
837
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a2245875350c4a72f826d998f02f5e796"><div class="ttname"><a href="classSVF_1_1WTO.html#a2245875350c4a72f826d998f02f5e796">SVF::WTO::toString</a></div><div class="ttdeci">std::string toString() const</div><div class="ttdoc">Dump the order, for debugging purpose.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00635">WTO.h:635</a></div></div>
|
|
838
|
+
<div class="ttc" id="aclassSVF_1_1WTONode_html_a26f8f157a0661fff8d9f4f38d21a6445"><div class="ttname"><a href="classSVF_1_1WTONode.html#a26f8f157a0661fff8d9f4f38d21a6445">SVF::WTONode::accept</a></div><div class="ttdeci">void accept(WTOComponentVisitor< GraphT > &v) const override</div><div class="ttdoc">Accept the given visitor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00349">WTO.h:349</a></div></div>
|
|
839
|
+
<div class="ttc" id="aclassSVF_1_1WTONode_html_aa673666e3776f7b75b341dc1695841e9"><div class="ttname"><a href="classSVF_1_1WTONode.html#aa673666e3776f7b75b341dc1695841e9">SVF::WTONode::_node</a></div><div class="ttdeci">const NodeT * _node</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00333">WTO.h:333</a></div></div>
|
|
840
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a7fc78de450f2cb6cbed8aa6856638ad1"><div class="ttname"><a href="classSVF_1_1WTO.html#a7fc78de450f2cb6cbed8aa6856638ad1">SVF::WTO::setCDN</a></div><div class="ttdeci">void setCDN(const NodeT *n, const CycleDepthNumber &dfn)</div><div class="ttdoc">Set the depth-first number of the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00736">WTO.h:736</a></div></div>
|
|
841
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_ace35f97608d342cae7cda7936816f624"><div class="ttname"><a href="classSVF_1_1WTO.html#ace35f97608d342cae7cda7936816f624">SVF::WTO::headEnd</a></div><div class="ttdeci">NodeRefToWTOCycleMap::const_iterator headEnd() const</div><div class="ttdoc">End iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00605">WTO.h:605</a></div></div>
|
|
842
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a949e2ee782c346339a1ddaa868c8abaf"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a949e2ee782c346339a1ddaa868c8abaf">SVF::WTOCycleDepth::WTOCycleDepth</a></div><div class="ttdeci">WTOCycleDepth()=default</div><div class="ttdoc">Constructor.</div></div>
|
|
843
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_ab6eebbf5ab6f6c3ee157e22da10620e9"><div class="ttname"><a href="classSVF_1_1WTO.html#ab6eebbf5ab6f6c3ee157e22da10620e9">SVF::WTO::_nodeToDepth</a></div><div class="ttdeci">NodeRefToWTOCycleDepthPtr _nodeToDepth</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00546">WTO.h:546</a></div></div>
|
|
844
|
+
<div class="ttc" id="aclassSVF_1_1WTONode_html_a3c57d30540d9cb64f1373236281e8bcd"><div class="ttname"><a href="classSVF_1_1WTONode.html#a3c57d30540d9cb64f1373236281e8bcd">SVF::WTONode::classof</a></div><div class="ttdeci">static bool classof(const WTONode< GraphT > *)</div><div class="ttdoc">ClassOf.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00363">WTO.h:363</a></div></div>
|
|
845
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_a1f54ed975152670e16280f8b12aebc66"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a1f54ed975152670e16280f8b12aebc66">SVF::WTOCycle::_head</a></div><div class="ttdeci">const NodeT * _head</div><div class="ttdoc">Head of the cycle.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00397">WTO.h:397</a></div></div>
|
|
846
|
+
<div class="ttc" id="aclassSVF_1_1WTO_1_1WTOCycleDepthBuilder_html"><div class="ttname"><a href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html">SVF::WTO::WTOCycleDepthBuilder</a></div><div class="ttdoc">Visitor to build the cycle depths of each node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00673">WTO.h:673</a></div></div>
|
|
895
847
|
<div class="ttc" id="acJSON_8cpp_html_ab6e2ea6dc7bd57d1483413449998230a"><div class="ttname"><a href="cJSON_8cpp.html#ab6e2ea6dc7bd57d1483413449998230a">n</a></div><div class="ttdeci">cJSON * n</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8cpp_source.html#l02558">cJSON.cpp:2558</a></div></div>
|
|
896
|
-
<div class="ttc" id="
|
|
897
|
-
<div class="ttc" id="
|
|
898
|
-
<div class="ttc" id="
|
|
899
|
-
<div class="ttc" id="
|
|
900
|
-
<div class="ttc" id="
|
|
901
|
-
<div class="ttc" id="
|
|
902
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_1_1TailBuilder_html"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html">SVF::CFBasicBlockGWTO::TailBuilder</a></div><div class="ttdoc">Visitor to build the tails of each head/loop.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00649">WTO.h:649</a></div></div>
|
|
903
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTOCycle_html_a1dbbc3e09c213cf6e8511832b1fa03b6"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTOCycle.html#a1dbbc3e09c213cf6e8511832b1fa03b6">SVF::CFBasicBlockGWTOCycle::CFBasicBlockGWTOCycle</a></div><div class="ttdeci">CFBasicBlockGWTOCycle(const CFBasicBlockNode *head, WtoComponentRefList components)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00401">WTO.h:401</a></div></div>
|
|
904
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTOCycle_html_acce909c4c082749affec7b0d3ceb394a"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTOCycle.html#acce909c4c082749affec7b0d3ceb394a">SVF::CFBasicBlockGWTOCycle::classof</a></div><div class="ttdeci">static bool classof(const CFBasicBlockGWTOCycle *)</div><div class="ttdoc">ClassOf.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00428">WTO.h:428</a></div></div>
|
|
848
|
+
<div class="ttc" id="aclassSVF_1_1WTOComponent_html"><div class="ttname"><a href="classSVF_1_1WTOComponent.html">SVF::WTOComponent</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00271">WTO.h:271</a></div></div>
|
|
849
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a13e9082913aa4a14065687ccdd47642d"><div class="ttname"><a href="classSVF_1_1WTO.html#a13e9082913aa4a14065687ccdd47642d">SVF::WTO::begin</a></div><div class="ttdeci">Iterator begin() const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00583">WTO.h:583</a></div></div>
|
|
850
|
+
<div class="ttc" id="aclassSVF_1_1WTOComponent_html_a3c2b9ef6ae6a3d47b0bba929f12560f7ae6153e626f0cd77b3560511ef845c14d"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7ae6153e626f0cd77b3560511ef845c14d">SVF::WTOComponent::Node</a></div><div class="ttdeci">@ Node</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00276">WTO.h:276</a></div></div>
|
|
851
|
+
<div class="ttc" id="astructSVF_1_1has__nodetype_html"><div class="ttname"><a href="structSVF_1_1has__nodetype.html">SVF::has_nodetype</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00052">WTO.h:52</a></div></div>
|
|
852
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_a19ad36eef78d46348ca75c5d2e12519b"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a19ad36eef78d46348ca75c5d2e12519b">SVF::WTOCycle::WTOCycle</a></div><div class="ttdeci">WTOCycle(const NodeT *head, WTOComponentRefList components)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00404">WTO.h:404</a></div></div>
|
|
853
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a1e331c472a19616ccef9f8230a8724fb"><div class="ttname"><a href="classSVF_1_1WTO.html#a1e331c472a19616ccef9f8230a8724fb">SVF::WTO::in_cycleDepth_table</a></div><div class="ttdeci">bool in_cycleDepth_table(const NodeT *n) const</div><div class="ttdoc">Return the cycleDepth of the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00619">WTO.h:619</a></div></div>
|
|
905
854
|
<div class="ttc" id="aSVFType_8h_html"><div class="ttname"><a href="SVFType_8h.html">SVFType.h</a></div></div>
|
|
906
|
-
<div class="ttc" id="
|
|
907
|
-
<div class="ttc" id="
|
|
908
|
-
<div class="ttc" id="
|
|
855
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_ac1a8ef3c15d484dc4f593b7d737e7de9"><div class="ttname"><a href="classSVF_1_1WTO.html#ac1a8ef3c15d484dc4f593b7d737e7de9">SVF::WTO::WTOComponentRefList</a></div><div class="ttdeci">std::list< WTOComponentPtr > WTOComponentRefList</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00527">WTO.h:527</a></div></div>
|
|
856
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_ac1a815006184b8a54a1390832f929630"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#ac1a815006184b8a54a1390832f929630">SVF::WTOCycleDepth::NodeT</a></div><div class="ttdeci">GraphT::NodeType NodeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00104">WTO.h:104</a></div></div>
|
|
857
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_acc26c1e8e39691416b590d1a29f57c38"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#acc26c1e8e39691416b590d1a29f57c38">SVF::WTOCycle::WTOComponentPtr</a></div><div class="ttdeci">const typedef WTOComponentT * WTOComponentPtr</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00388">WTO.h:388</a></div></div>
|
|
858
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html">SVF::WTOCycleDepth</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00100">WTO.h:100</a></div></div>
|
|
859
|
+
<div class="ttc" id="aclassSVF_1_1WTOComponent_html_aa14277ce617c9a01800db64cc62ef2f3"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#aa14277ce617c9a01800db64cc62ef2f3">SVF::WTOComponent::operator<<</a></div><div class="ttdeci">friend std::ostream & operator<<(std::ostream &o, const WTOComponent< GraphT > &wto)</div><div class="ttdoc">Overloading operator << for dumping ICFG node ID.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00310">WTO.h:310</a></div></div>
|
|
860
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a22b67a51964cb1d7882aab7e74b026f2"><div class="ttname"><a href="classSVF_1_1WTO.html#a22b67a51964cb1d7882aab7e74b026f2">SVF::WTO::end</a></div><div class="ttdeci">Iterator end() const</div><div class="ttdoc">End iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00589">WTO.h:589</a></div></div>
|
|
861
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_a1c4a4a2387abd60e1fa1d4cee6b83b55"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a1c4a4a2387abd60e1fa1d4cee6b83b55">SVF::WTOCycle::NodeT</a></div><div class="ttdeci">GraphT::NodeType NodeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00383">WTO.h:383</a></div></div>
|
|
862
|
+
<div class="ttc" id="aclassSVF_1_1WTO_1_1WTOCycleDepthBuilder_html_a6cf986992bb78e6e3aa2e75b883c01c9"><div class="ttname"><a href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a6cf986992bb78e6e3aa2e75b883c01c9">SVF::WTO::WTOCycleDepthBuilder::WTOCycleDepthBuilder</a></div><div class="ttdeci">WTOCycleDepthBuilder(NodeRefToWTOCycleDepthPtr &nodeToWTOCycleDepth)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00680">WTO.h:680</a></div></div>
|
|
863
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a333df66435d9c4444ff7f729ca9d0050"><div class="ttname"><a href="classSVF_1_1WTO.html#a333df66435d9c4444ff7f729ca9d0050">SVF::WTO::_stack</a></div><div class="ttdeci">Stack _stack</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00549">WTO.h:549</a></div></div>
|
|
864
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a12d50323eaa2d40925699232beb37747"><div class="ttname"><a href="classSVF_1_1WTO.html#a12d50323eaa2d40925699232beb37747">SVF::WTO::init</a></div><div class="ttdeci">void init()</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00662">WTO.h:662</a></div></div>
|
|
909
865
|
<div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
910
|
-
<div class="ttc" id="
|
|
911
|
-
<div class="ttc" id="
|
|
912
|
-
<div class="ttc" id="
|
|
913
|
-
<div class="ttc" id="
|
|
914
|
-
<div class="ttc" id="
|
|
915
|
-
<div class="ttc" id="
|
|
916
|
-
<div class="ttc" id="
|
|
917
|
-
<div class="ttc" id="
|
|
918
|
-
<div class="ttc" id="
|
|
919
|
-
<div class="ttc" id="
|
|
920
|
-
<div class="ttc" id="
|
|
921
|
-
<div class="ttc" id="
|
|
922
|
-
<div class="ttc" id="
|
|
923
|
-
<div class="ttc" id="
|
|
924
|
-
<div class="ttc" id="
|
|
925
|
-
<div class="ttc" id="
|
|
926
|
-
<div class="ttc" id="
|
|
927
|
-
<div class="ttc" id="
|
|
928
|
-
<div class="ttc" id="
|
|
929
|
-
<div class="ttc" id="
|
|
930
|
-
<div class="ttc" id="
|
|
931
|
-
<div class="ttc" id="
|
|
932
|
-
<div class="ttc" id="
|
|
933
|
-
<div class="ttc" id="
|
|
934
|
-
<div class="ttc" id="
|
|
935
|
-
<div class="ttc" id="
|
|
936
|
-
<div class="ttc" id="
|
|
937
|
-
<div class="ttc" id="
|
|
938
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockNode_html_ad8afed175964dc0b90f98dbf68fdf1c8"><div class="ttname"><a href="classSVF_1_1CFBasicBlockNode.html#ad8afed175964dc0b90f98dbf68fdf1c8">SVF::CFBasicBlockNode::getFunction</a></div><div class="ttdeci">const SVFFunction * getFunction() const</div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00152">CFBasicBlockG.h:152</a></div></div>
|
|
939
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTONode_html_a5b614494716dd565c0af2b7e8110f8d0"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTONode.html#a5b614494716dd565c0af2b7e8110f8d0">SVF::CFBasicBlockGWTONode::toString</a></div><div class="ttdeci">std::string toString() const override</div><div class="ttdoc">Convert the node to string.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00362">WTO.h:362</a></div></div>
|
|
940
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html">SVF::CFBasicBlockGWTO</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00464">WTO.h:464</a></div></div>
|
|
941
|
-
<div class="ttc" id="aclassSVF_1_1WTOVisitor_html_aa338935535bb5c855224aa01d624f9d8"><div class="ttname"><a href="classSVF_1_1WTOVisitor.html#aa338935535bb5c855224aa01d624f9d8">SVF::WTOVisitor::visit</a></div><div class="ttdeci">virtual void visit(const CFBasicBlockGWTONode &)=0</div><div class="ttdoc">Visit WTO Node.</div></div>
|
|
942
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a822077820c188463603f8968c4535a60"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a822077820c188463603f8968c4535a60">SVF::CFBasicBlockGWTO::headEnd</a></div><div class="ttdeci">NodeRefToWTOCycleMap::const_iterator headEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00541">WTO.h:541</a></div></div>
|
|
943
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTONode_html_a2d94a3f6bd93d6b3806ec03de3eb1576"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTONode.html#a2d94a3f6bd93d6b3806ec03de3eb1576">SVF::CFBasicBlockGWTONode::classof</a></div><div class="ttdeci">static bool classof(const CFBasicBlockGWTONode *)</div><div class="ttdoc">ClassOf.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00369">WTO.h:369</a></div></div>
|
|
944
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_1_1TailBuilder_html_ae846777ace039ab74fad15ee52884f44"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO_1_1TailBuilder.html#ae846777ace039ab74fad15ee52884f44">SVF::CFBasicBlockGWTO::TailBuilder::_head</a></div><div class="ttdeci">const CFBasicBlockNode * _head</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00654">WTO.h:654</a></div></div>
|
|
945
|
-
<div class="ttc" id="aclassSVF_1_1WTOVisitor_html_a78a0b2d508d8591126203f8b5d6e22cd"><div class="ttname"><a href="classSVF_1_1WTOVisitor.html#a78a0b2d508d8591126203f8b5d6e22cd">SVF::WTOVisitor::WTOVisitor</a></div><div class="ttdeci">WTOVisitor()=default</div><div class="ttdoc">Default Constructor.</div></div>
|
|
946
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a371c7416c88df3c0b70addf9b88b305a"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a371c7416c88df3c0b70addf9b88b305a">SVF::CFBasicBlockGWTO::build_tails</a></div><div class="ttdeci">virtual void build_tails()</div><div class="ttdoc">Build the tails for each cycle.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00880">WTO.h:880</a></div></div>
|
|
947
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTOComp_html_a83d5f4a0d2c4efc9840d30f1a1c3b300aca33b5832e3fca1c5966ecc4ce695f96"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTOComp.html#a83d5f4a0d2c4efc9840d30f1a1c3b300aca33b5832e3fca1c5966ecc4ce695f96">SVF::CFBasicBlockGWTOComp::Cycle</a></div><div class="ttdeci">@ Cycle</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00291">WTO.h:291</a></div></div>
|
|
866
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_aee55e23a1994d4daa29f21a608a1ca69"><div class="ttname"><a href="classSVF_1_1WTO.html#aee55e23a1994d4daa29f21a608a1ca69">SVF::WTO::newCycle</a></div><div class="ttdeci">const WTOCycleT * newCycle(const NodeT *node, const WTOComponentRefList &partition)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00767">WTO.h:767</a></div></div>
|
|
867
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a43bd515dd7ea9ae1f56b79d29cfdc00c"><div class="ttname"><a href="classSVF_1_1WTO.html#a43bd515dd7ea9ae1f56b79d29cfdc00c">SVF::WTO::WTOComponentT</a></div><div class="ttdeci">WTOComponent< GraphT > WTOComponentT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00520">WTO.h:520</a></div></div>
|
|
868
|
+
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_ad37880353cffc950d5b9417bc41c0b06"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#ad37880353cffc950d5b9417bc41c0b06">SVF::SVFUtil::void_t</a></div><div class="ttdeci">typename make_void< Ts... >::type void_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00631">SVFUtil.h:631</a></div></div>
|
|
869
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a7be430782b325bbb92d9fd014e9c68c0"><div class="ttname"><a href="classSVF_1_1WTO.html#a7be430782b325bbb92d9fd014e9c68c0">SVF::WTO::NodeRefList</a></div><div class="ttdeci">Set< const NodeT * > NodeRefList</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00523">WTO.h:523</a></div></div>
|
|
870
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_af2ac6543be66a6ca5911f49f16c341c4"><div class="ttname"><a href="classSVF_1_1WTO.html#af2ac6543be66a6ca5911f49f16c341c4">SVF::WTO::accept</a></div><div class="ttdeci">void accept(WTOComponentVisitor< GraphT > &v)</div><div class="ttdoc">Accept the given visitor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00626">WTO.h:626</a></div></div>
|
|
871
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_a0033d1b904ba3a6f77648174166c9250"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a0033d1b904ba3a6f77648174166c9250">SVF::WTOCycle::classof</a></div><div class="ttdeci">static bool classof(const WTOComponent< GraphT > *c)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00441">WTO.h:441</a></div></div>
|
|
872
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_a04d7ad708faad0b6cb360e6010c21600"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a04d7ad708faad0b6cb360e6010c21600">SVF::WTOCycle::WTOComponentRefList</a></div><div class="ttdeci">std::list< WTOComponentPtr > WTOComponentRefList</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00389">WTO.h:389</a></div></div>
|
|
873
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a2ce51d9a57e8a353aa23d14dce933c9a"><div class="ttname"><a href="classSVF_1_1WTO.html#a2ce51d9a57e8a353aa23d14dce933c9a">SVF::WTO::newNode</a></div><div class="ttdeci">const WTONodeT * newNode(const NodeT *node)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00760">WTO.h:760</a></div></div>
|
|
874
|
+
<div class="ttc" id="aclassSVF_1_1WTOComponent_html_a3c2b9ef6ae6a3d47b0bba929f12560f7"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a3c2b9ef6ae6a3d47b0bba929f12560f7">SVF::WTOComponent::WTOCT</a></div><div class="ttdeci">WTOCT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00274">WTO.h:274</a></div></div>
|
|
875
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a605c2cb15b3c3ff2581d5f2d0a4719a7"><div class="ttname"><a href="classSVF_1_1WTO.html#a605c2cb15b3c3ff2581d5f2d0a4719a7">SVF::WTO::isHead</a></div><div class="ttdeci">bool isHead(const NodeT *node) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00594">WTO.h:594</a></div></div>
|
|
876
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a5853e7a33044635877b8f07de05ff047"><div class="ttname"><a href="classSVF_1_1WTO.html#a5853e7a33044635877b8f07de05ff047">SVF::WTO::_entry</a></div><div class="ttdeci">const NodeT * _entry</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00551">WTO.h:551</a></div></div>
|
|
877
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a65d2ed9e7306392ce0b82ac018f0cdea"><div class="ttname"><a href="classSVF_1_1WTO.html#a65d2ed9e7306392ce0b82ac018f0cdea">SVF::WTO::forEachSuccessor</a></div><div class="ttdeci">virtual void forEachSuccessor(const NodeT *node, std::function< void(const NodeT *)> func) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00712">WTO.h:712</a></div></div>
|
|
878
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_afff8fb7472fa48b80b6e685b5f85666d"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#afff8fb7472fa48b80b6e685b5f85666d">SVF::WTOCycleDepth::compare</a></div><div class="ttdeci">int compare(const WTOCycleDepth &other) const</div><div class="ttdoc">Compare the given cycle depths.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00174">WTO.h:174</a></div></div>
|
|
879
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a78e43eb435fb7f5ee47670f10c6e67f2"><div class="ttname"><a href="classSVF_1_1WTO.html#a78e43eb435fb7f5ee47670f10c6e67f2">SVF::WTO::NodeT</a></div><div class="ttdeci">GraphT::NodeType NodeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00514">WTO.h:514</a></div></div>
|
|
880
|
+
<div class="ttc" id="aclassSVF_1_1WTOComponent_html_a5ef3384996e29f5f38490b4266b19f01"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a5ef3384996e29f5f38490b4266b19f01">SVF::WTOComponent::WTOComponent</a></div><div class="ttdeci">WTOComponent(WTOCT k)</div><div class="ttdoc">Default constructor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00281">WTO.h:281</a></div></div>
|
|
881
|
+
<div class="ttc" id="aclassSVF_1_1WTONode_html"><div class="ttname"><a href="classSVF_1_1WTONode.html">SVF::WTONode</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00045">WTO.h:45</a></div></div>
|
|
882
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a49ea9544fc55c3de1b3aebde1ba69470"><div class="ttname"><a href="classSVF_1_1WTO.html#a49ea9544fc55c3de1b3aebde1ba69470">SVF::WTO::Iterator</a></div><div class="ttdeci">WTOComponentRefList::const_iterator Iterator</div><div class="ttdoc">Iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00540">WTO.h:540</a></div></div>
|
|
883
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a9342328c10f51f56290b61e06851f30d"><div class="ttname"><a href="classSVF_1_1WTO.html#a9342328c10f51f56290b61e06851f30d">SVF::WTO::operator<<</a></div><div class="ttdeci">friend std::ostream & operator<<(std::ostream &o, const WTO< GraphT > &wto)</div><div class="ttdoc">Overloading operator << for dumping ICFG node ID.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00655">WTO.h:655</a></div></div>
|
|
884
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a4d7362b707ea6013811db5ffa80aeb0b"><div class="ttname"><a href="classSVF_1_1WTO.html#a4d7362b707ea6013811db5ffa80aeb0b">SVF::WTO::NodeRefToWTOCycleDepthPtr</a></div><div class="ttdeci">Map< const NodeT *, WTOCycleDepthPtr > NodeRefToWTOCycleDepthPtr</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00536">WTO.h:536</a></div></div>
|
|
885
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_a5ecefd827cf83b86839fb3ac300f86b7"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a5ecefd827cf83b86839fb3ac300f86b7">SVF::WTOCycle::toString</a></div><div class="ttdeci">std::string toString() const override</div><div class="ttdoc">Dump the cycle, for debugging purpose.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00448">WTO.h:448</a></div></div>
|
|
886
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_a807c883d1cfe98c791c903125742f95b"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a807c883d1cfe98c791c903125742f95b">SVF::WTOCycle::begin</a></div><div class="ttdeci">Iterator begin() const</div><div class="ttdoc">Begin iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00417">WTO.h:417</a></div></div>
|
|
887
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a8dc175362f4dbbf158e1fe03745f1ce7"><div class="ttname"><a href="classSVF_1_1WTO.html#a8dc175362f4dbbf158e1fe03745f1ce7">SVF::WTO::component</a></div><div class="ttdeci">virtual const WTOCycleT * component(const NodeT *node)</div><div class="ttdoc">Create the cycle component for the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00776">WTO.h:776</a></div></div>
|
|
888
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a9a67c7812a890ee4ff9cd470f947bf86"><div class="ttname"><a href="classSVF_1_1WTO.html#a9a67c7812a890ee4ff9cd470f947bf86">SVF::WTO::push</a></div><div class="ttdeci">void push(const NodeT *n)</div><div class="ttdoc">Push a node on the stack.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00755">WTO.h:755</a></div></div>
|
|
889
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a8df436e4ff4cc9df4900c1262cc89b1c"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a8df436e4ff4cc9df4900c1262cc89b1c">SVF::WTOCycleDepth::add</a></div><div class="ttdeci">void add(const NodeT *head)</div><div class="ttdoc">Add a cycle head in the cycleDepth.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00136">WTO.h:136</a></div></div>
|
|
890
|
+
<div class="ttc" id="aclassSVF_1_1WTOComponentVisitor_html_a829bc3b32dcb5740da40c5cff75680d9"><div class="ttname"><a href="classSVF_1_1WTOComponentVisitor.html#a829bc3b32dcb5740da40c5cff75680d9">SVF::WTOComponentVisitor::WTOComponentVisitor</a></div><div class="ttdeci">WTOComponentVisitor()=default</div><div class="ttdoc">Default constructor.</div></div>
|
|
891
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a62a6ee6d3894861a0fb74309d2951e16"><div class="ttname"><a href="classSVF_1_1WTO.html#a62a6ee6d3894861a0fb74309d2951e16">SVF::WTO::headBegin</a></div><div class="ttdeci">NodeRefToWTOCycleMap::const_iterator headBegin() const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00599">WTO.h:599</a></div></div>
|
|
892
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a71a0d4afca77f59db4829c7b39419429"><div class="ttname"><a href="classSVF_1_1WTO.html#a71a0d4afca77f59db4829c7b39419429">SVF::WTO::WTOCycleT</a></div><div class="ttdeci">WTOCycle< GraphT > WTOCycleT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00522">WTO.h:522</a></div></div>
|
|
893
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a6d7bd6b0da1527da8c85aab87462fba8"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a6d7bd6b0da1527da8c85aab87462fba8">SVF::WTOCycleDepth::_heads</a></div><div class="ttdeci">NodeRefList _heads</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00114">WTO.h:114</a></div></div>
|
|
948
894
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a72502f7f536418621485e90ab98c2016"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">SVF::SVFUtil::move</a></div><div class="ttdeci">constexpr std::remove_reference< T >::type && move(T &&t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00621">SVFUtil.h:621</a></div></div>
|
|
949
|
-
<div class="ttc" id="
|
|
950
|
-
<div class="ttc" id="
|
|
951
|
-
<div class="ttc" id="
|
|
952
|
-
<div class="ttc" id="
|
|
953
|
-
<div class="ttc" id="
|
|
954
|
-
<div class="ttc" id="
|
|
955
|
-
<div class="ttc" id="
|
|
956
|
-
<div class="ttc" id="
|
|
957
|
-
<div class="ttc" id="
|
|
958
|
-
<div class="ttc" id="
|
|
959
|
-
<div class="ttc" id="
|
|
960
|
-
<div class="ttc" id="
|
|
961
|
-
<div class="ttc" id="
|
|
962
|
-
<div class="ttc" id="
|
|
963
|
-
<div class="ttc" id="
|
|
964
|
-
<div class="ttc" id="
|
|
965
|
-
<div class="ttc" id="
|
|
966
|
-
<div class="ttc" id="
|
|
967
|
-
<div class="ttc" id="
|
|
968
|
-
<div class="ttc" id="
|
|
969
|
-
<div class="ttc" id="
|
|
970
|
-
<div class="ttc" id="
|
|
971
|
-
<div class="ttc" id="
|
|
972
|
-
<div class="ttc" id="
|
|
973
|
-
<div class="ttc" id="
|
|
974
|
-
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_acbe5ed1e3ea411cc87c2fafa16f4c38f"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#acbe5ed1e3ea411cc87c2fafa16f4c38f">SVF::WTOCycleDepth::_heads</a></div><div class="ttdeci">NodeRefList _heads</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00090">WTO.h:90</a></div></div>
|
|
975
|
-
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a943e6586b5b2c8343437a914ddb1a1b6"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a943e6586b5b2c8343437a914ddb1a1b6">SVF::WTOCycleDepth::end</a></div><div class="ttdeci">Iterator end() const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00122">WTO.h:122</a></div></div>
|
|
976
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGraph_html"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGraph.html">SVF::CFBasicBlockGraph</a></div><div class="ttdef"><b>Definition:</b> <a href="CFBasicBlockG_8h_source.html#l00350">CFBasicBlockG.h:350</a></div></div>
|
|
977
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTOComp_html_abcf38d30d6739751c20ad612d26349a9"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTOComp.html#abcf38d30d6739751c20ad612d26349a9">SVF::CFBasicBlockGWTOComp::accept</a></div><div class="ttdeci">virtual void accept(WTOVisitor *) const =0</div><div class="ttdoc">Accept a visitor.</div></div>
|
|
978
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTONode_html_a2668c86630ba496424411bad5fec9190"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTONode.html#a2668c86630ba496424411bad5fec9190">SVF::CFBasicBlockGWTONode::accept</a></div><div class="ttdeci">void accept(WTOVisitor *v) const override</div><div class="ttdoc">Accept a visitor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00356">WTO.h:356</a></div></div>
|
|
979
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTOCycle_html_a10dc61999fc10f09921225f12129cade"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTOCycle.html#a10dc61999fc10f09921225f12129cade">SVF::CFBasicBlockGWTOCycle::classof</a></div><div class="ttdeci">static bool classof(const CFBasicBlockGWTOComp *c)</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00433">WTO.h:433</a></div></div>
|
|
980
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_a2a453341c33faac3e74bb54d8da6db18"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#a2a453341c33faac3e74bb54d8da6db18">SVF::CFBasicBlockGWTO::WTOCompRefSet</a></div><div class="ttdeci">Set< const CFBasicBlockGWTOComp * > WTOCompRefSet</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00473">WTO.h:473</a></div></div>
|
|
981
|
-
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_ad64c8a219008ad37f9b9aa2904502292"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#ad64c8a219008ad37f9b9aa2904502292">SVF::WTOCycleDepth::operator>=</a></div><div class="ttdeci">bool operator>=(const WTOCycleDepth &other) const</div><div class="ttdoc">Greater than or Equal with other's depth.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00232">WTO.h:232</a></div></div>
|
|
982
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_ad00addfd46be014c35a6ffbc9333d7f3"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#ad00addfd46be014c35a6ffbc9333d7f3">SVF::CFBasicBlockGWTO::_graph</a></div><div class="ttdeci">CFBasicBlockGraph * _graph</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00495">WTO.h:495</a></div></div>
|
|
983
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_ada96b743fb0fd92f5f2c539130404187"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#ada96b743fb0fd92f5f2c539130404187">SVF::CFBasicBlockGWTO::_nodeToDepth</a></div><div class="ttdeci">NodeRefToWTOCycleDepthPtr _nodeToDepth</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00491">WTO.h:491</a></div></div>
|
|
984
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTOCycle_html_af4f9d44087dceb6c028abf585b5a6d5b"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTOCycle.html#af4f9d44087dceb6c028abf585b5a6d5b">SVF::CFBasicBlockGWTOCycle::Iterator</a></div><div class="ttdeci">WtoComponentRefList::const_iterator Iterator</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00390">WTO.h:390</a></div></div>
|
|
985
|
-
<div class="ttc" id="aclassSVF_1_1CFBasicBlockGWTO_html_ae611a47e1f7c41dba63577a1435b56bd"><div class="ttname"><a href="classSVF_1_1CFBasicBlockGWTO.html#ae611a47e1f7c41dba63577a1435b56bd">SVF::CFBasicBlockGWTO::~CFBasicBlockGWTO</a></div><div class="ttdeci">~CFBasicBlockGWTO()</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00513">WTO.h:513</a></div></div>
|
|
895
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_abf8ab42831098184ce972aa6664fcb8a"><div class="ttname"><a href="classSVF_1_1WTO.html#abf8ab42831098184ce972aa6664fcb8a">SVF::WTO::buildNodeToDepth</a></div><div class="ttdeci">void buildNodeToDepth()</div><div class="ttdoc">Build the node to WTO cycle depth table.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00846">WTO.h:846</a></div></div>
|
|
896
|
+
<div class="ttc" id="aclassSVF_1_1WTOComponentVisitor_html_a1a5052418f6e73c9da9cee44dc50443d"><div class="ttname"><a href="classSVF_1_1WTOComponentVisitor.html#a1a5052418f6e73c9da9cee44dc50443d">SVF::WTOComponentVisitor::visit</a></div><div class="ttdeci">virtual void visit(const WTONodeT &)=0</div><div class="ttdoc">Visit the given node.</div></div>
|
|
897
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_adaa4b0f063eaf6f1bd02da38fd3b29de"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#adaa4b0f063eaf6f1bd02da38fd3b29de">SVF::WTOCycle::WTOComponentT</a></div><div class="ttdeci">WTOComponent< GraphT > WTOComponentT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00385">WTO.h:385</a></div></div>
|
|
898
|
+
<div class="ttc" id="aclassSVF_1_1WTONode_html_acb1c9f5fa393500a8efe9f885b1748ce"><div class="ttname"><a href="classSVF_1_1WTONode.html#acb1c9f5fa393500a8efe9f885b1748ce">SVF::WTONode::WTONode</a></div><div class="ttdeci">WTONode(const NodeT *node)</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00337">WTO.h:337</a></div></div>
|
|
899
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html"><div class="ttname"><a href="classSVF_1_1WTOCycle.html">SVF::WTOCycle</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00047">WTO.h:47</a></div></div>
|
|
900
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_af4c6d0f992a1844aa21a6d26be66b34c"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#af4c6d0f992a1844aa21a6d26be66b34c">SVF::WTOCycleDepth::NodeRefList</a></div><div class="ttdeci">std::vector< const NodeT * > NodeRefList</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00108">WTO.h:108</a></div></div>
|
|
901
|
+
<div class="ttc" id="aclassSVF_1_1WTOComponent_html_acb129a6e7dc72b347f21325fbfe970b1"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#acb129a6e7dc72b347f21325fbfe970b1">SVF::WTOComponent::getKind</a></div><div class="ttdeci">WTOCT getKind() const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00301">WTO.h:301</a></div></div>
|
|
902
|
+
<div class="ttc" id="aclassSVF_1_1WTO_1_1WTOCycleDepthBuilder_html_a853dc3f6646858f76de023925d9d6bce"><div class="ttname"><a href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a853dc3f6646858f76de023925d9d6bce">SVF::WTO::WTOCycleDepthBuilder::_nodeToWTOCycleDepth</a></div><div class="ttdeci">NodeRefToWTOCycleDepthPtr & _nodeToWTOCycleDepth</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00677">WTO.h:677</a></div></div>
|
|
903
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a649f1a93b6fd51553f6e144f2fe99542"><div class="ttname"><a href="classSVF_1_1WTO.html#a649f1a93b6fd51553f6e144f2fe99542">SVF::WTO::_allComponents</a></div><div class="ttdeci">WTOComponentRefSet _allComponents</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00544">WTO.h:544</a></div></div>
|
|
904
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_acb7a52e66c5ef16f01cf6b7637578fcd"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#acb7a52e66c5ef16f01cf6b7637578fcd">SVF::WTOCycle::accept</a></div><div class="ttdeci">void accept(WTOComponentVisitor< GraphT > &v) const override</div><div class="ttdoc">Accept the given visitor.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00429">WTO.h:429</a></div></div>
|
|
905
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_ae8e57cc333199bc8b5aaff0a825eed47"><div class="ttname"><a href="classSVF_1_1WTO.html#ae8e57cc333199bc8b5aaff0a825eed47">SVF::WTO::_graph</a></div><div class="ttdeci">GraphT * _graph</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00550">WTO.h:550</a></div></div>
|
|
906
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_ad4171d23b56c5402687bac3febb4b233"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#ad4171d23b56c5402687bac3febb4b233">SVF::WTOCycleDepth::operator^</a></div><div class="ttdeci">WTOCycleDepth operator^(const WTOCycleDepth &other) const</div><div class="ttdoc">Return the common prefix of the given cycle depths.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00154">WTO.h:154</a></div></div>
|
|
907
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a8022c9a6ebc62ed292698f07ab93bafe"><div class="ttname"><a href="classSVF_1_1WTO.html#a8022c9a6ebc62ed292698f07ab93bafe">SVF::WTO::WTOCycleDepthPtr</a></div><div class="ttdeci">std::shared_ptr< GraphTWTOCycleDepth > WTOCycleDepthPtr</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00535">WTO.h:535</a></div></div>
|
|
908
|
+
<div class="ttc" id="astructSVF_1_1has__edgetype_html"><div class="ttname"><a href="structSVF_1_1has__edgetype.html">SVF::has_edgetype</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00061">WTO.h:61</a></div></div>
|
|
909
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_a03fd55dd34c48d22cefcaf6dc93f734a"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#a03fd55dd34c48d22cefcaf6dc93f734a">SVF::WTOCycle::end</a></div><div class="ttdeci">Iterator end() const</div><div class="ttdoc">End iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00423">WTO.h:423</a></div></div>
|
|
910
|
+
<div class="ttc" id="aclassSVF_1_1WTOComponent_html_a2b92d79dd17e8d89f2441c5655157b80"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a2b92d79dd17e8d89f2441c5655157b80">SVF::WTOComponent::accept</a></div><div class="ttdeci">virtual void accept(WTOComponentVisitor< GraphT > &) const =0</div><div class="ttdoc">Accept the given visitor.</div></div>
|
|
911
|
+
<div class="ttc" id="aclassSVF_1_1WTO_1_1WTOCycleDepthBuilder_html_a51be6e437a0d715e2571242c4dde1794"><div class="ttname"><a href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#a51be6e437a0d715e2571242c4dde1794">SVF::WTO::WTOCycleDepthBuilder::visit</a></div><div class="ttdeci">void visit(const WTONodeT &node) override</div><div class="ttdoc">Visit the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00702">WTO.h:702</a></div></div>
|
|
912
|
+
<div class="ttc" id="aclassSVF_1_1WTOComponent_html_a1da81c85c89d975b6df9dafdb32dc788"><div class="ttname"><a href="classSVF_1_1WTOComponent.html#a1da81c85c89d975b6df9dafdb32dc788">SVF::WTOComponent::_type</a></div><div class="ttdeci">WTOCT _type</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00318">WTO.h:318</a></div></div>
|
|
913
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a375803014eebb65532a843eee6d9a690"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a375803014eebb65532a843eee6d9a690">SVF::WTOCycleDepth::Iterator</a></div><div class="ttdeci">NodeRefList::const_iterator Iterator</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00111">WTO.h:111</a></div></div>
|
|
914
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a44cce3ef52a02cfe8d650e9ce079c210"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a44cce3ef52a02cfe8d650e9ce079c210">SVF::WTOCycleDepth::operator<</a></div><div class="ttdeci">bool operator<(const WTOCycleDepth &other) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00210">WTO.h:210</a></div></div>
|
|
915
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a92034688db3f67feb6e997d4c03f769f"><div class="ttname"><a href="classSVF_1_1WTO.html#a92034688db3f67feb6e997d4c03f769f">SVF::WTO::getCDN</a></div><div class="ttdeci">CycleDepthNumber getCDN(const NodeT *n) const</div><div class="ttdoc">Return the depth-first number of the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00722">WTO.h:722</a></div></div>
|
|
916
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a6053b66d1350ef6ea9a0c8095869f606"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a6053b66d1350ef6ea9a0c8095869f606">SVF::WTOCycleDepth::operator<<</a></div><div class="ttdeci">friend std::ostream & operator<<(std::ostream &o, const WTOCycleDepth< GraphT > &wto)</div><div class="ttdoc">Overloading operator << for dumping ICFG node ID.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00256">WTO.h:256</a></div></div>
|
|
917
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_aa50fbcbff0e3aa30bce2ba1b810e8ca8"><div class="ttname"><a href="classSVF_1_1WTO.html#aa50fbcbff0e3aa30bce2ba1b810e8ca8">SVF::WTO::cycleDepth</a></div><div class="ttdeci">const GraphTWTOCycleDepth & cycleDepth(const NodeT *n) const</div><div class="ttdoc">Return the cycleDepth of the given node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00611">WTO.h:611</a></div></div>
|
|
918
|
+
<div class="ttc" id="aclassSVF_1_1WTONode_html_aae0fe6c5464535f41f4723c23615e5cd"><div class="ttname"><a href="classSVF_1_1WTONode.html#aae0fe6c5464535f41f4723c23615e5cd">SVF::WTONode::node</a></div><div class="ttdeci">const NodeT * node() const</div><div class="ttdoc">Return the graph node.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00343">WTO.h:343</a></div></div>
|
|
919
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_ace60ecb07603681de5c3020d0d3c5079"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#ace60ecb07603681de5c3020d0d3c5079">SVF::WTOCycle::head</a></div><div class="ttdeci">const NodeT * head() const</div><div class="ttdoc">Return the head of the cycle.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00411">WTO.h:411</a></div></div>
|
|
986
920
|
<div class="ttc" id="aSVFValue_8h_html"><div class="ttname"><a href="SVFValue_8h.html">SVFValue.h</a></div></div>
|
|
987
|
-
<div class="ttc" id="
|
|
988
|
-
<div class="ttc" id="
|
|
921
|
+
<div class="ttc" id="aclassSVF_1_1WTONode_html_a65738a32240777ce6ded22d2c4adbaf8"><div class="ttname"><a href="classSVF_1_1WTONode.html#a65738a32240777ce6ded22d2c4adbaf8">SVF::WTONode::NodeT</a></div><div class="ttdeci">GraphT::NodeType NodeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00329">WTO.h:329</a></div></div>
|
|
922
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a9103af81d0c21787dcc96188ea243d0a"><div class="ttname"><a href="classSVF_1_1WTO.html#a9103af81d0c21787dcc96188ea243d0a">SVF::WTO::NodeRefToWTOCycleMap</a></div><div class="ttdeci">Map< const NodeT *, const WTOCycleT * > NodeRefToWTOCycleMap</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00529">WTO.h:529</a></div></div>
|
|
923
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a96f37d843d4bd7c2b30cfc5bc59cf90d"><div class="ttname"><a href="classSVF_1_1WTO.html#a96f37d843d4bd7c2b30cfc5bc59cf90d">SVF::WTO::WTONodeT</a></div><div class="ttdeci">WTONode< GraphT > WTONodeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00521">WTO.h:521</a></div></div>
|
|
924
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_acbc503aa22e6d9bf2f6406fc45ebbab1"><div class="ttname"><a href="classSVF_1_1WTO.html#acbc503aa22e6d9bf2f6406fc45ebbab1">SVF::WTO::_components</a></div><div class="ttdeci">WTOComponentRefList _components</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00543">WTO.h:543</a></div></div>
|
|
989
925
|
<div class="ttc" id="anamespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00102">SVFType.h:102</a></div></div>
|
|
990
|
-
<div class="ttc" id="
|
|
991
|
-
<div class="ttc" id="
|
|
992
|
-
<div class="ttc" id="
|
|
993
|
-
<div class="ttc" id="
|
|
926
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a0aa519ff93cdab15f9324c6b05df8e47"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a0aa519ff93cdab15f9324c6b05df8e47">SVF::WTOCycleDepth::operator>=</a></div><div class="ttdeci">bool operator>=(const WTOCycleDepth &other) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00225">WTO.h:225</a></div></div>
|
|
927
|
+
<div class="ttc" id="aclassSVF_1_1WTOComponentVisitor_html_a978324f9b276a9d086b9e7a12feac997"><div class="ttname"><a href="classSVF_1_1WTOComponentVisitor.html#a978324f9b276a9d086b9e7a12feac997">SVF::WTOComponentVisitor::WTOCycleT</a></div><div class="ttdeci">WTOCycle< GraphT > WTOCycleT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00476">WTO.h:476</a></div></div>
|
|
928
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a54d8c25df36b0c44d52369c4294a1ed8"><div class="ttname"><a href="classSVF_1_1WTO.html#a54d8c25df36b0c44d52369c4294a1ed8">SVF::WTO::_nodeToCDN</a></div><div class="ttdeci">NodeRefToCycleDepthNumber _nodeToCDN</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00547">WTO.h:547</a></div></div>
|
|
929
|
+
<div class="ttc" id="aclassSVF_1_1WTO_1_1WTOCycleDepthBuilder_html_ad40b8e78a27207b8cf113517aed6dca3"><div class="ttname"><a href="classSVF_1_1WTO_1_1WTOCycleDepthBuilder.html#ad40b8e78a27207b8cf113517aed6dca3">SVF::WTO::WTOCycleDepthBuilder::_wtoCycleDepth</a></div><div class="ttdeci">WTOCycleDepthPtr _wtoCycleDepth</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00676">WTO.h:676</a></div></div>
|
|
930
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a620d528ac72c17913b462acedb8e88c3"><div class="ttname"><a href="classSVF_1_1WTO.html#a620d528ac72c17913b462acedb8e88c3">SVF::WTO::EdgeT</a></div><div class="ttdeci">GraphT::EdgeType EdgeT</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00518">WTO.h:518</a></div></div>
|
|
931
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_ae2cde12ccd4206b7ace44bc2146c792e"><div class="ttname"><a href="classSVF_1_1WTO.html#ae2cde12ccd4206b7ace44bc2146c792e">SVF::WTO::GraphTWTOCycleDepth</a></div><div class="ttdeci">WTOCycleDepth< GraphT > GraphTWTOCycleDepth</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00519">WTO.h:519</a></div></div>
|
|
994
932
|
<div class="ttc" id="anamespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00051">SVFType.h:51</a></div></div>
|
|
995
|
-
<div class="ttc" id="
|
|
996
|
-
<div class="ttc" id="
|
|
997
|
-
<div class="ttc" id="
|
|
998
|
-
<div class="ttc" id="
|
|
933
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycle_html_ad0a2a2bb4c2d6eafaedbf04ced31243d"><div class="ttname"><a href="classSVF_1_1WTOCycle.html#ad0a2a2bb4c2d6eafaedbf04ced31243d">SVF::WTOCycle::Iterator</a></div><div class="ttdeci">WTOComponentRefList::const_iterator Iterator</div><div class="ttdoc">Iterator over the components.</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00393">WTO.h:393</a></div></div>
|
|
934
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a93a5b48c93dc4f01f50040e71c5aeada"><div class="ttname"><a href="classSVF_1_1WTO.html#a93a5b48c93dc4f01f50040e71c5aeada">SVF::WTO::NodeRefToCycleDepthNumber</a></div><div class="ttdeci">Map< const NodeT *, CycleDepthNumber > NodeRefToCycleDepthNumber</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00533">WTO.h:533</a></div></div>
|
|
935
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a928688b5f1e2111311262ccd936b1ca9"><div class="ttname"><a href="classSVF_1_1WTO.html#a928688b5f1e2111311262ccd936b1ca9">SVF::WTO::WTOComponentRefSet</a></div><div class="ttdeci">Set< WTOComponentPtr > WTOComponentRefSet</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00528">WTO.h:528</a></div></div>
|
|
936
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_ab35eabe45c6b944b26532fbe630cd019"><div class="ttname"><a href="classSVF_1_1WTO.html#ab35eabe45c6b944b26532fbe630cd019">SVF::WTO::Stack</a></div><div class="ttdeci">std::vector< const NodeT * > Stack</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00534">WTO.h:534</a></div></div>
|
|
937
|
+
<div class="ttc" id="aclassSVF_1_1WTO_html_a5752288fb686b9ef5d6c8edc0cee6348"><div class="ttname"><a href="classSVF_1_1WTO.html#a5752288fb686b9ef5d6c8edc0cee6348">SVF::WTO::headRefToCycle</a></div><div class="ttdeci">NodeRefToWTOCycleMap headRefToCycle</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00545">WTO.h:545</a></div></div>
|
|
938
|
+
<div class="ttc" id="aclassSVF_1_1WTOCycleDepth_html_a8ca19a3f2f7e79c20c4a4f98897470c7"><div class="ttname"><a href="classSVF_1_1WTOCycleDepth.html#a8ca19a3f2f7e79c20c4a4f98897470c7">SVF::WTOCycleDepth::operator></a></div><div class="ttdeci">bool operator>(const WTOCycleDepth &other) const</div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00230">WTO.h:230</a></div></div>
|
|
939
|
+
<div class="ttc" id="aclassSVF_1_1WTOComponentVisitor_html"><div class="ttname"><a href="classSVF_1_1WTOComponentVisitor.html">SVF::WTOComponentVisitor</a></div><div class="ttdef"><b>Definition:</b> <a href="WTO_8h_source.html#l00049">WTO.h:49</a></div></div>
|
|
999
940
|
<!-- start footer part -->
|
|
1000
941
|
<hr class="footer"/><address class="footer"><small>
|
|
1001
942
|
Generated by  <a href="http://www.doxygen.org/index.html">
|