svf-tools 1.0.442 → 1.0.445
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenHCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenHLCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Annotator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/BDDExpr_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/BDDExpr_8h_source.html +1 -1
- package/SVF-doxygen/html/html/BitVector_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/BitVector_8h_source.html +1 -1
- package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFGNormalizer_8cpp.html +86 -0
- package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +104 -0
- package/SVF-doxygen/html/html/CFGNormalizer_8h.html +95 -0
- package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +95 -0
- package/SVF-doxygen/html/html/CFLAlias_8h.html +100 -0
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +136 -0
- package/SVF-doxygen/html/html/CFLGrammar_8cpp.html +81 -0
- package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +90 -0
- package/SVF-doxygen/html/html/CFLGrammar_8h.html +97 -0
- package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +114 -0
- package/SVF-doxygen/html/html/CFLGraph_8cpp.html +96 -0
- package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +123 -0
- package/SVF-doxygen/html/html/CFLGraph_8h.html +124 -0
- package/SVF-doxygen/html/html/CFLGraph_8h_source.html +114 -0
- package/SVF-doxygen/html/html/CFLSolver_8cpp.html +80 -0
- package/SVF-doxygen/html/html/CFLSolver_8cpp_source.html +107 -0
- package/SVF-doxygen/html/html/CFLSolver_8h.html +6 -5
- package/SVF-doxygen/html/html/CFLSolver_8h_source.html +27 -33
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CHG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CPPUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CSC_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CSC_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CallGraphBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Casting_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +6 -6
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DCHG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DPItem_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExeState_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ExeState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FileChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitiveTBHC_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/GrammarBuilder_8cpp.html +94 -0
- package/SVF-doxygen/html/html/GrammarBuilder_8cpp_source.html +92 -0
- package/SVF-doxygen/html/html/GrammarBuilder_8h.html +96 -0
- package/SVF-doxygen/html/html/GrammarBuilder_8h_source.html +87 -0
- package/SVF-doxygen/html/html/Graph2Json_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Graph2Json_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GraphReachSolver_8h.html +96 -0
- package/SVF-doxygen/html/html/GraphReachSolver_8h_source.html +113 -0
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MHP_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MTA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +1 -1
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/Options_8cpp_source.html +7 -2
- package/SVF-doxygen/html/html/Options_8h_source.html +7 -2
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PTAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +5 -5
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PointsTo_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SCC_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCheckerAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SrcSnkDDA_8h.html +3 -3
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +61 -61
- package/SVF-doxygen/html/html/SrcSnkSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +1 -1
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/TCT_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +1 -1
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/TypeBasedHeapCloning_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VFGEdge_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/VFG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WPASolver_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WPAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WorkList_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Z3Expr_8h_source.html +1 -1
- package/SVF-doxygen/html/html/annotated.html +302 -288
- package/SVF-doxygen/html/html/cfl_8cpp.html +171 -0
- package/SVF-doxygen/html/html/cfl_8cpp_source.html +95 -0
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +39 -39
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD-members.html +56 -56
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD-members.html +55 -55
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD-members.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +52 -52
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +59 -59
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +53 -53
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer-members.html +90 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +458 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +216 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +801 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLEdge-members.html +96 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLEdge.html +216 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLEdge.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar-members.html +110 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar.html +591 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLGrammar.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph-members.html +122 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.html +756 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraph.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLNode-members.html +118 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +257 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver-members.html +17 -28
- package/SVF-doxygen/html/html/classSVF_1_1CFLSolver.html +181 -548
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +36 -36
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode-members.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +43 -43
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +57 -57
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker-members.html +55 -55
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +64 -64
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +55 -55
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker-members.html +57 -57
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +66 -66
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +48 -48
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +47 -47
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC-members.html +59 -59
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveTBHC.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.html +8 -24
- package/SVF-doxygen/html/html/classSVF_1_1GenericEdge.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GenericGraph.html +10 -9
- package/SVF-doxygen/html/html/classSVF_1_1GenericGraph.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.html +21 -20
- package/SVF-doxygen/html/html/classSVF_1_1GenericNode.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase-members.html +93 -0
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +399 -0
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder-members.html +85 -0
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBuilder.html +226 -0
- package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver-members.html +106 -0
- package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver.html +937 -0
- package/SVF-doxygen/html/html/classSVF_1_1GraphReachSolver.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker-members.html +55 -55
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +81 -81
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1Options-members.html +80 -75
- package/SVF-doxygen/html/html/classSVF_1_1Options.html +130 -0
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +17 -16
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA-members.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +207 -207
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.png +0 -0
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkSolver.html +0 -12
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +42 -42
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +45 -45
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +61 -61
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +5 -5
- package/SVF-doxygen/html/html/classes.html +103 -101
- package/SVF-doxygen/html/html/cuddInt_8c.html +6 -6
- package/SVF-doxygen/html/html/cuddInt_8c_source.html +2 -2
- package/SVF-doxygen/html/html/cudd_8h.html +4 -4
- package/SVF-doxygen/html/html/dda_8cpp.html +2 -46
- package/SVF-doxygen/html/html/dda_8cpp_source.html +4 -5
- package/SVF-doxygen/html/html/dir_1870ebf480d659cc38d2dd7ac3aa8993.html +2 -0
- package/SVF-doxygen/html/html/dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html +2 -0
- package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
- package/SVF-doxygen/html/html/dir_97aefd0d527b934f1d99a682da8fe6a9.html +2 -0
- package/SVF-doxygen/html/html/dir_98f9a352f241e0e917d4efaa4086f6e8.html +89 -0
- package/SVF-doxygen/html/html/dir_ae8aa099e368efaa962140c6624142bc.html +91 -0
- package/SVF-doxygen/html/html/dir_d44c64559bbebec7f509842c48db8b23.html +2 -0
- package/SVF-doxygen/html/html/dir_e6cca4e14eddbb730e0cbe3cab632ce5.html +83 -0
- package/SVF-doxygen/html/html/dir_fa02919a30fec2d2c2d591b4d920d648.html +2 -0
- package/SVF-doxygen/html/html/files.html +268 -252
- package/SVF-doxygen/html/html/functions.html +2 -1
- package/SVF-doxygen/html/html/functions_0x7e.html +18 -0
- package/SVF-doxygen/html/html/functions_a.html +16 -14
- package/SVF-doxygen/html/html/functions_b.html +16 -5
- package/SVF-doxygen/html/html/functions_c.html +69 -26
- package/SVF-doxygen/html/html/functions_d.html +3 -1
- package/SVF-doxygen/html/html/functions_e.html +19 -4
- package/SVF-doxygen/html/html/functions_eval.html +0 -6
- package/SVF-doxygen/html/html/functions_eval_c.html +9 -0
- package/SVF-doxygen/html/html/functions_eval_f.html +0 -3
- package/SVF-doxygen/html/html/functions_f.html +28 -21
- package/SVF-doxygen/html/html/functions_func.html +18 -10
- package/SVF-doxygen/html/html/functions_func_0x7e.html +18 -0
- package/SVF-doxygen/html/html/functions_func_b.html +19 -8
- package/SVF-doxygen/html/html/functions_func_c.html +42 -18
- package/SVF-doxygen/html/html/functions_func_d.html +4 -2
- package/SVF-doxygen/html/html/functions_func_e.html +10 -1
- package/SVF-doxygen/html/html/functions_func_f.html +6 -3
- package/SVF-doxygen/html/html/functions_func_g.html +56 -10
- package/SVF-doxygen/html/html/functions_func_h.html +12 -2
- package/SVF-doxygen/html/html/functions_func_i.html +19 -9
- package/SVF-doxygen/html/html/functions_func_n.html +7 -1
- package/SVF-doxygen/html/html/functions_func_p.html +8 -4
- package/SVF-doxygen/html/html/functions_func_s.html +20 -6
- package/SVF-doxygen/html/html/functions_func_v.html +3 -2
- package/SVF-doxygen/html/html/functions_g.html +86 -21
- package/SVF-doxygen/html/html/functions_h.html +15 -5
- package/SVF-doxygen/html/html/functions_i.html +27 -12
- package/SVF-doxygen/html/html/functions_l.html +5 -2
- package/SVF-doxygen/html/html/functions_n.html +22 -7
- package/SVF-doxygen/html/html/functions_o.html +6 -6
- package/SVF-doxygen/html/html/functions_p.html +23 -16
- package/SVF-doxygen/html/html/functions_r.html +11 -6
- package/SVF-doxygen/html/html/functions_s.html +53 -17
- package/SVF-doxygen/html/html/functions_t.html +11 -7
- package/SVF-doxygen/html/html/functions_type_c.html +5 -1
- package/SVF-doxygen/html/html/functions_type_g.html +6 -3
- package/SVF-doxygen/html/html/functions_type_i.html +4 -2
- package/SVF-doxygen/html/html/functions_type_n.html +6 -3
- package/SVF-doxygen/html/html/functions_type_p.html +9 -0
- package/SVF-doxygen/html/html/functions_type_s.html +6 -0
- package/SVF-doxygen/html/html/functions_type_w.html +3 -1
- package/SVF-doxygen/html/html/functions_v.html +2 -1
- package/SVF-doxygen/html/html/functions_vars.html +2 -1
- package/SVF-doxygen/html/html/functions_vars_c.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_e.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_f.html +9 -0
- package/SVF-doxygen/html/html/functions_vars_g.html +17 -1
- package/SVF-doxygen/html/html/functions_vars_i.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_l.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_n.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_r.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_s.html +16 -0
- package/SVF-doxygen/html/html/functions_vars_t.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_w.html +3 -1
- package/SVF-doxygen/html/html/functions_w.html +15 -1
- package/SVF-doxygen/html/html/globals_func_i.html +3 -10
- package/SVF-doxygen/html/html/globals_func_m.html +12 -11
- package/SVF-doxygen/html/html/globals_func_s.html +1 -0
- package/SVF-doxygen/html/html/globals_i.html +3 -10
- package/SVF-doxygen/html/html/globals_m.html +14 -13
- package/SVF-doxygen/html/html/globals_s.html +8 -7
- package/SVF-doxygen/html/html/hierarchy.html +433 -417
- package/SVF-doxygen/html/html/mta_8cpp.html +2 -46
- package/SVF-doxygen/html/html/mta_8cpp_source.html +3 -4
- package/SVF-doxygen/html/html/namespaceSVF.html +83 -6
- package/SVF-doxygen/html/html/namespacellvm.html +9 -0
- package/SVF-doxygen/html/html/namespacemembers_c.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_g.html +11 -2
- package/SVF-doxygen/html/html/namespacemembers_type.html +10 -1
- package/SVF-doxygen/html/html/saber_8cpp.html +2 -46
- package/SVF-doxygen/html/html/saber_8cpp_source.html +4 -5
- package/SVF-doxygen/html/html/search/all_0.js +1 -1
- package/SVF-doxygen/html/html/search/all_1.js +4 -4
- package/SVF-doxygen/html/html/search/all_10.js +8 -6
- package/SVF-doxygen/html/html/search/all_12.js +2 -1
- package/SVF-doxygen/html/html/search/all_13.js +20 -11
- package/SVF-doxygen/html/html/search/all_14.js +5 -3
- package/SVF-doxygen/html/html/search/all_16.js +2 -2
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_1b.js +6 -0
- package/SVF-doxygen/html/html/search/all_2.js +6 -4
- package/SVF-doxygen/html/html/search/all_3.js +27 -4
- package/SVF-doxygen/html/html/search/all_4.js +3 -2
- package/SVF-doxygen/html/html/search/all_5.js +5 -0
- package/SVF-doxygen/html/html/search/all_6.js +8 -5
- package/SVF-doxygen/html/html/search/all_7.js +40 -13
- package/SVF-doxygen/html/html/search/all_8.js +4 -1
- package/SVF-doxygen/html/html/search/all_9.js +9 -7
- package/SVF-doxygen/html/html/search/all_c.js +2 -1
- package/SVF-doxygen/html/html/search/all_d.js +2 -2
- package/SVF-doxygen/html/html/search/all_e.js +9 -5
- package/SVF-doxygen/html/html/search/all_f.js +4 -4
- package/SVF-doxygen/html/html/search/classes_2.js +7 -0
- package/SVF-doxygen/html/html/search/classes_3.js +1 -0
- package/SVF-doxygen/html/html/search/classes_5.js +1 -0
- package/SVF-doxygen/html/html/search/classes_6.js +7 -0
- package/SVF-doxygen/html/html/search/enumvalues_0.js +0 -2
- package/SVF-doxygen/html/html/search/enumvalues_2.js +3 -0
- package/SVF-doxygen/html/html/search/enumvalues_5.js +0 -1
- package/SVF-doxygen/html/html/search/files_2.js +11 -1
- package/SVF-doxygen/html/html/search/files_6.js +4 -1
- package/SVF-doxygen/html/html/search/functions_0.js +4 -2
- package/SVF-doxygen/html/html/search/functions_1.js +6 -4
- package/SVF-doxygen/html/html/search/functions_10.js +7 -3
- package/SVF-doxygen/html/html/search/functions_13.js +1 -1
- package/SVF-doxygen/html/html/search/functions_16.js +6 -0
- package/SVF-doxygen/html/html/search/functions_2.js +8 -0
- package/SVF-doxygen/html/html/search/functions_3.js +2 -2
- package/SVF-doxygen/html/html/search/functions_4.js +3 -0
- package/SVF-doxygen/html/html/search/functions_5.js +3 -3
- package/SVF-doxygen/html/html/search/functions_6.js +22 -10
- package/SVF-doxygen/html/html/search/functions_7.js +4 -1
- package/SVF-doxygen/html/html/search/functions_8.js +5 -4
- package/SVF-doxygen/html/html/search/functions_b.js +1 -1
- package/SVF-doxygen/html/html/search/functions_c.js +2 -0
- package/SVF-doxygen/html/html/search/functions_e.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_11.js +1 -0
- package/SVF-doxygen/html/html/search/typedefs_15.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_2.js +3 -2
- package/SVF-doxygen/html/html/search/typedefs_6.js +6 -3
- package/SVF-doxygen/html/html/search/typedefs_8.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_d.js +3 -3
- package/SVF-doxygen/html/html/search/typedefs_f.js +2 -0
- package/SVF-doxygen/html/html/search/variables_0.js +1 -1
- package/SVF-doxygen/html/html/search/variables_12.js +1 -0
- package/SVF-doxygen/html/html/search/variables_13.js +5 -0
- package/SVF-doxygen/html/html/search/variables_14.js +3 -1
- package/SVF-doxygen/html/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/html/search/variables_3.js +2 -0
- package/SVF-doxygen/html/html/search/variables_5.js +3 -1
- package/SVF-doxygen/html/html/search/variables_6.js +3 -0
- package/SVF-doxygen/html/html/search/variables_7.js +5 -1
- package/SVF-doxygen/html/html/search/variables_9.js +1 -0
- package/SVF-doxygen/html/html/search/variables_c.js +1 -0
- package/SVF-doxygen/html/html/search/variables_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_e.js +2 -0
- package/SVF-doxygen/html/html/st_8c.html +4 -4
- package/SVF-doxygen/html/html/st_8c_source.html +2 -2
- package/SVF-doxygen/html/html/st_8h.html +4 -4
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4-members.html +87 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +381 -0
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.html +100 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01Inverse_3_01SVF_1_1CFLNode_01_5_01_4_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.html +122 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLGraph_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.html +96 -0
- package/SVF-doxygen/html/html/structllvm_1_1GraphTraits_3_01SVF_1_1CFLNode_01_5_01_4.png +0 -0
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +10 -54
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +8 -9
- package/SVF-doxygen/html/html/tools_2CFL_2CMakeLists_8txt.html +102 -0
- package/SVF-doxygen/html/html/wpa_8cpp.html +2 -46
- package/SVF-doxygen/html/html/wpa_8cpp_source.html +3 -4
- package/include/CFL/CFGNormalizer.h +70 -0
- package/include/CFL/CFLAlias.h +124 -0
- package/include/CFL/CFLGrammar.h +127 -0
- package/include/CFL/CFLSolver.h +94 -0
- package/include/CFL/GrammarBuilder.h +65 -0
- package/include/Graphs/CFLGraph.h +175 -0
- package/include/Graphs/IRGraph.h +1 -1
- package/include/MemoryModel/PointerAnalysis.h +3 -3
- package/include/SABER/SrcSnkDDA.h +3 -2
- package/include/Util/GraphReachSolver.h +186 -0
- package/include/Util/Options.h +6 -0
- package/lib/CFL/CFGNormalizer.cpp +329 -0
- package/lib/CFL/CFLGrammar.cpp +101 -0
- package/lib/CFL/CFLSolver.cpp +106 -0
- package/lib/CFL/GrammarBuilder.cpp +155 -0
- package/lib/CMakeLists.txt +1 -0
- package/lib/Graphs/CFLGraph.cpp +225 -0
- package/lib/Util/Options.cpp +31 -0
- package/package.json +1 -1
- package/tools/CFL/CMakeLists.txt +12 -0
- package/tools/CFL/cfl.cpp +80 -0
- package/tools/CMakeLists.txt +1 -0
- package/tools/DDA/dda.cpp +0 -3
- package/tools/Example/svf-ex.cpp +0 -3
- package/tools/MTA/mta.cpp +0 -4
- package/tools/SABER/saber.cpp +0 -3
- package/tools/WPA/wpa.cpp +0 -4
|
@@ -2930,8 +2930,9 @@ ref count error at node </li>
|
|
|
2930
2930
|
<p>SeeAlso [Cudd_Increasing] </p>
|
|
2931
2931
|
|
|
2932
2932
|
<p class="definition">Definition at line <a class="el" href="cuddInt_8c_source.html#l16691">16691</a> of file <a class="el" href="cuddInt_8c_source.html">cuddInt.c</a>.</p>
|
|
2933
|
-
<div class="fragment"><div class="line"><a name="l16695"></a><span class="lineno">16695</span>  {</div><div class="line"><a name="l16696"></a><span class="lineno">16696</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> topf, level;</div><div class="line"><a name="l16697"></a><span class="lineno">16697</span>  <a class="code" href="structDdNode.html">DdNode</a> *F, *fv, *fvn, *res;</div><div class="line"><a name="l16698"></a><span class="lineno">16698</span>  <a class="code" href="cudd_8h.html#af55488f14ee0664be0dee3f2004f5fd6">DD_CTFP</a> cacheOp;</div><div class="line"><a name="l16699"></a><span class="lineno">16699</span> </div><div class="line"><a name="l16700"></a><span class="lineno">16700</span>  <a class="code" href="cuddInt_8h.html#a94289b59164b0be08fdb041e6f847fd4">statLine</a>(dd);</div><div class="line"><a name="l16701"></a><span class="lineno">16701</span> <span class="preprocessor">#ifdef DD_DEBUG</span></div><div class="line"><a name="l16702"></a><span class="lineno">16702</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(0 <= i && i < dd->size);</div><div class="line"><a name="l16703"></a><span class="lineno">16703</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l16704"></a><span class="lineno">16704</span> </div><div class="line"><a name="l16705"></a><span class="lineno">16705</span>  F = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(f);</div><div class="line"><a name="l16706"></a><span class="lineno">16706</span>  topf = <a class="code" href="cuddInt_8h.html#aa7299d1217a57571ef88e9ac90530978">cuddI</a>(dd,F-><a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>);</div><div class="line"><a name="l16707"></a><span class="lineno">16707</span> </div><div class="line"><a name="l16708"></a><span class="lineno">16708</span>  <span class="comment">/* Check terminal case. If topf > i, f does not depend on var.</span></div><div class="line"><a name="l16709"></a><span class="lineno">16709</span> <span class="comment"> ** Therefore, f is unate in i.</span></div><div class="line"><a name="l16710"></a><span class="lineno">16710</span> <span class="comment"> */</span></div><div class="line"><a name="l16711"></a><span class="lineno">16711</span>  level = (unsigned) dd-><a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[i];</div><div class="line"><a name="l16712"></a><span class="lineno">16712</span>  <a class="code" href="
|
|
2933
|
+
<div class="fragment"><div class="line"><a name="l16695"></a><span class="lineno">16695</span>  {</div><div class="line"><a name="l16696"></a><span class="lineno">16696</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> topf, level;</div><div class="line"><a name="l16697"></a><span class="lineno">16697</span>  <a class="code" href="structDdNode.html">DdNode</a> *F, *fv, *fvn, *res;</div><div class="line"><a name="l16698"></a><span class="lineno">16698</span>  <a class="code" href="cudd_8h.html#af55488f14ee0664be0dee3f2004f5fd6">DD_CTFP</a> cacheOp;</div><div class="line"><a name="l16699"></a><span class="lineno">16699</span> </div><div class="line"><a name="l16700"></a><span class="lineno">16700</span>  <a class="code" href="cuddInt_8h.html#a94289b59164b0be08fdb041e6f847fd4">statLine</a>(dd);</div><div class="line"><a name="l16701"></a><span class="lineno">16701</span> <span class="preprocessor">#ifdef DD_DEBUG</span></div><div class="line"><a name="l16702"></a><span class="lineno">16702</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(0 <= i && i < dd->size);</div><div class="line"><a name="l16703"></a><span class="lineno">16703</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l16704"></a><span class="lineno">16704</span> </div><div class="line"><a name="l16705"></a><span class="lineno">16705</span>  F = <a class="code" href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a>(f);</div><div class="line"><a name="l16706"></a><span class="lineno">16706</span>  topf = <a class="code" href="cuddInt_8h.html#aa7299d1217a57571ef88e9ac90530978">cuddI</a>(dd,F-><a class="code" href="structDdNode.html#abbd39b25b9abe4b4d53cd267a4103bda">index</a>);</div><div class="line"><a name="l16707"></a><span class="lineno">16707</span> </div><div class="line"><a name="l16708"></a><span class="lineno">16708</span>  <span class="comment">/* Check terminal case. If topf > i, f does not depend on var.</span></div><div class="line"><a name="l16709"></a><span class="lineno">16709</span> <span class="comment"> ** Therefore, f is unate in i.</span></div><div class="line"><a name="l16710"></a><span class="lineno">16710</span> <span class="comment"> */</span></div><div class="line"><a name="l16711"></a><span class="lineno">16711</span>  level = (unsigned) dd-><a class="code" href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">perm</a>[i];</div><div class="line"><a name="l16712"></a><span class="lineno">16712</span>  <a class="code" href="tools_2CFL_2CMakeLists_8txt.html#aff8b1edecee3d7c397afcfe02e05d0c7">if</a> (topf > level) {</div><div class="line"><a name="l16713"></a><span class="lineno">16713</span>  <span class="keywordflow">return</span>(<a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd));</div><div class="line"><a name="l16714"></a><span class="lineno">16714</span>  }</div><div class="line"><a name="l16715"></a><span class="lineno">16715</span> </div><div class="line"><a name="l16716"></a><span class="lineno">16716</span>  <span class="comment">/* From now on, f is not constant. */</span></div><div class="line"><a name="l16717"></a><span class="lineno">16717</span> </div><div class="line"><a name="l16718"></a><span class="lineno">16718</span>  <span class="comment">/* Check cache. */</span></div><div class="line"><a name="l16719"></a><span class="lineno">16719</span>  cacheOp = (<a class="code" href="cudd_8h.html#af55488f14ee0664be0dee3f2004f5fd6">DD_CTFP</a>) <a class="code" href="cuddInt_8c.html#a66a70b011fca8b95fbc3953e8b1be1fe">Cudd_Decreasing</a>;</div><div class="line"><a name="l16720"></a><span class="lineno">16720</span>  res = <a class="code" href="cuddInt_8c.html#ab4f89447f0f0892337a1d6ff4c533933">cuddCacheLookup2</a>(dd,cacheOp,f,dd-><a class="code" href="structDdManager.html#a70f75f877a9e8f1b7a1c219cd4675ce1">vars</a>[i]);</div><div class="line"><a name="l16721"></a><span class="lineno">16721</span>  <span class="keywordflow">if</span> (res != NULL) {</div><div class="line"><a name="l16722"></a><span class="lineno">16722</span>  <span class="keywordflow">return</span>(res);</div><div class="line"><a name="l16723"></a><span class="lineno">16723</span>  }</div><div class="line"><a name="l16724"></a><span class="lineno">16724</span> </div><div class="line"><a name="l16725"></a><span class="lineno">16725</span>  <span class="comment">/* Compute cofactors. */</span></div><div class="line"><a name="l16726"></a><span class="lineno">16726</span>  fv = <a class="code" href="cuddInt_8h.html#a09834c697b92ac296b1e50c863f88262">cuddT</a>(F); fvn = <a class="code" href="cuddInt_8h.html#aaef03f10591d8e28bb5fecd2aa7c93ff">cuddE</a>(F);</div><div class="line"><a name="l16727"></a><span class="lineno">16727</span>  <span class="keywordflow">if</span> (F != f) {</div><div class="line"><a name="l16728"></a><span class="lineno">16728</span>  fv = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(fv);</div><div class="line"><a name="l16729"></a><span class="lineno">16729</span>  fvn = <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(fvn);</div><div class="line"><a name="l16730"></a><span class="lineno">16730</span>  }</div><div class="line"><a name="l16731"></a><span class="lineno">16731</span> </div><div class="line"><a name="l16732"></a><span class="lineno">16732</span>  <span class="keywordflow">if</span> (topf == (<span class="keywordtype">unsigned</span>) level) {</div><div class="line"><a name="l16733"></a><span class="lineno">16733</span>  <span class="comment">/* Special case: if fv is regular, fv(1,...,1) = 1;</span></div><div class="line"><a name="l16734"></a><span class="lineno">16734</span> <span class="comment"> ** If in addition fvn is complemented, fvn(1,...,1) = 0.</span></div><div class="line"><a name="l16735"></a><span class="lineno">16735</span> <span class="comment"> ** But then f(1,1,...,1) > f(0,1,...,1). Hence f is not</span></div><div class="line"><a name="l16736"></a><span class="lineno">16736</span> <span class="comment"> ** monotonic decreasing in i.</span></div><div class="line"><a name="l16737"></a><span class="lineno">16737</span> <span class="comment"> */</span></div><div class="line"><a name="l16738"></a><span class="lineno">16738</span>  <span class="keywordflow">if</span> (!<a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(fv) && <a class="code" href="cudd_8h.html#a35322518c24f65f44eda9623083cb62c">Cudd_IsComplement</a>(fvn)) {</div><div class="line"><a name="l16739"></a><span class="lineno">16739</span>  <span class="keywordflow">return</span>(<a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(<a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd)));</div><div class="line"><a name="l16740"></a><span class="lineno">16740</span>  }</div><div class="line"><a name="l16741"></a><span class="lineno">16741</span>  res = <a class="code" href="cuddInt_8c.html#a89a46089e8572876a1521cdee6cb31a2">Cudd_bddLeq</a>(dd,fv,fvn) ? <a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd) : <a class="code" href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a>(<a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd));</div><div class="line"><a name="l16742"></a><span class="lineno">16742</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l16743"></a><span class="lineno">16743</span>  res = <a class="code" href="cuddInt_8c.html#a66a70b011fca8b95fbc3953e8b1be1fe">Cudd_Decreasing</a>(dd,fv,i);</div><div class="line"><a name="l16744"></a><span class="lineno">16744</span>  <span class="keywordflow">if</span> (res == <a class="code" href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a>(dd)) {</div><div class="line"><a name="l16745"></a><span class="lineno">16745</span>  res = <a class="code" href="cuddInt_8c.html#a66a70b011fca8b95fbc3953e8b1be1fe">Cudd_Decreasing</a>(dd,fvn,i);</div><div class="line"><a name="l16746"></a><span class="lineno">16746</span>  }</div><div class="line"><a name="l16747"></a><span class="lineno">16747</span>  }</div><div class="line"><a name="l16748"></a><span class="lineno">16748</span> </div><div class="line"><a name="l16749"></a><span class="lineno">16749</span>  <a class="code" href="cuddInt_8c.html#acf6d1175a8da1a1613910bac913fee58">cuddCacheInsert2</a>(dd,cacheOp,f,dd-><a class="code" href="structDdManager.html#a70f75f877a9e8f1b7a1c219cd4675ce1">vars</a>[i],res);</div><div class="line"><a name="l16750"></a><span class="lineno">16750</span>  <span class="keywordflow">return</span>(res);</div><div class="line"><a name="l16751"></a><span class="lineno">16751</span> </div><div class="line"><a name="l16752"></a><span class="lineno">16752</span>  } <span class="comment">/* end of Cudd_Decreasing */</span></div><div class="ttc" id="structDdNode_html"><div class="ttname"><a href="structDdNode.html">DdNode</a></div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00264">cudd.h:264</a></div></div>
|
|
2934
2934
|
<div class="ttc" id="cudd_8h_html_a352ef8d39e760eaabae6d58d9a5ddbfc"><div class="ttname"><a href="cudd_8h.html#a352ef8d39e760eaabae6d58d9a5ddbfc">Cudd_Not</a></div><div class="ttdeci">#define Cudd_Not(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00343">cudd.h:343</a></div></div>
|
|
2935
|
+
<div class="ttc" id="tools_2CFL_2CMakeLists_8txt_html_aff8b1edecee3d7c397afcfe02e05d0c7"><div class="ttname"><a href="tools_2CFL_2CMakeLists_8txt.html#aff8b1edecee3d7c397afcfe02e05d0c7">if</a></div><div class="ttdeci">if(DEFINED IN_SOURCE_BUILD) set(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(cfl cfl.cpp) else() add_executable(cfl cfl.cpp) target_link_libraries(cfl Svf Cudd $</div><div class="ttdef"><b>Definition:</b> <a href="tools_2CFL_2CMakeLists_8txt_source.html#l00002">CMakeLists.txt:2</a></div></div>
|
|
2935
2936
|
<div class="ttc" id="util_8h_html_a07d17d6d5d1074c0969bc5d3c3d1d84a"><div class="ttname"><a href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a></div><div class="ttdeci">#define assert(ex)</div><div class="ttdef"><b>Definition:</b> <a href="util_8h_source.html#l00141">util.h:141</a></div></div>
|
|
2936
2937
|
<div class="ttc" id="cudd_8h_html_afbbecf4f6f78f92518f4d0a477d870b6"><div class="ttname"><a href="cudd_8h.html#afbbecf4f6f78f92518f4d0a477d870b6">Cudd_Regular</a></div><div class="ttdeci">#define Cudd_Regular(node)</div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00373">cudd.h:373</a></div></div>
|
|
2937
2938
|
<div class="ttc" id="cuddInt_8h_html_a94289b59164b0be08fdb041e6f847fd4"><div class="ttname"><a href="cuddInt_8h.html#a94289b59164b0be08fdb041e6f847fd4">statLine</a></div><div class="ttdeci">#define statLine(dd)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00990">cuddInt.h:990</a></div></div>
|
|
@@ -2948,7 +2949,6 @@ ref count error at node </li>
|
|
|
2948
2949
|
<div class="ttc" id="cuddInt_8h_html_a0fc86b7b0c157b7fa3738661d65a22d7"><div class="ttname"><a href="cuddInt_8h.html#a0fc86b7b0c157b7fa3738661d65a22d7">DD_ONE</a></div><div class="ttdeci">#define DD_ONE(dd)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00864">cuddInt.h:864</a></div></div>
|
|
2949
2950
|
<div class="ttc" id="structDdManager_html_a299d281a98c60aeec0e8edf6671a0f51"><div class="ttname"><a href="structDdManager.html#a299d281a98c60aeec0e8edf6671a0f51">DdManager::perm</a></div><div class="ttdeci">int * perm</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00369">cuddInt.h:369</a></div></div>
|
|
2950
2951
|
<div class="ttc" id="cuddInt_8c_html_acf6d1175a8da1a1613910bac913fee58"><div class="ttname"><a href="cuddInt_8c.html#acf6d1175a8da1a1613910bac913fee58">cuddCacheInsert2</a></div><div class="ttdeci">void cuddCacheInsert2(DdManager *table, DD_CTFP op, DdNode *f, DdNode *g, DdNode *data)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l04329">cuddInt.c:4329</a></div></div>
|
|
2951
|
-
<div class="ttc" id="tools_2DDA_2CMakeLists_8txt_html_a7686df215f6da6fdcfa2c20950c96939"><div class="ttname"><a href="tools_2DDA_2CMakeLists_8txt.html#a7686df215f6da6fdcfa2c20950c96939">if</a></div><div class="ttdeci">if(DEFINED IN_SOURCE_BUILD) set(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(dvf dda.cpp) else() add_executable(dvf dda.cpp) target_link_libraries(dvf Svf Cudd $</div><div class="ttdef"><b>Definition:</b> <a href="tools_2DDA_2CMakeLists_8txt_source.html#l00002">CMakeLists.txt:2</a></div></div>
|
|
2952
2952
|
</div><!-- fragment -->
|
|
2953
2953
|
</div>
|
|
2954
2954
|
</div>
|
|
@@ -4306,12 +4306,13 @@ Dynamic Programming (exact) </li>
|
|
|
4306
4306
|
<p>SideEffects [Changes the variable order for all diagrams and clears the cache.] </p>
|
|
4307
4307
|
|
|
4308
4308
|
<p class="definition">Definition at line <a class="el" href="cuddInt_8c_source.html#l14558">14558</a> of file <a class="el" href="cuddInt_8c_source.html">cuddInt.c</a>.</p>
|
|
4309
|
-
<div class="fragment"><div class="line"><a name="l14562"></a><span class="lineno">14562</span> {</div><div class="line"><a name="l14563"></a><span class="lineno">14563</span>  <a class="code" href="structDdHook.html">DdHook</a> *hook;</div><div class="line"><a name="l14564"></a><span class="lineno">14564</span>  <span class="keywordtype">int</span> <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a>;</div><div class="line"><a name="l14565"></a><span class="lineno">14565</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nextDyn;</div><div class="line"><a name="l14566"></a><span class="lineno">14566</span> <span class="preprocessor">#ifdef DD_STATS</span></div><div class="line"><a name="l14567"></a><span class="lineno">14567</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> initialSize;</div><div class="line"><a name="l14568"></a><span class="lineno">14568</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> finalSize;</div><div class="line"><a name="l14569"></a><span class="lineno">14569</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l14570"></a><span class="lineno">14570</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> localTime;</div><div class="line"><a name="l14571"></a><span class="lineno">14571</span> </div><div class="line"><a name="l14572"></a><span class="lineno">14572</span>  <span class="comment">/* Don't reorder if there are too many dead nodes. */</span></div><div class="line"><a name="l14573"></a><span class="lineno">14573</span>  <span class="keywordflow">if</span> (table-><a class="code" href="structDdManager.html#afaedd101dfa7b7e2cb11614647ec37b2">keys</a> - table-><a class="code" href="structDdManager.html#a170c1cfcbbd9b83bb479fc85c177c52e">dead</a> < (<span class="keywordtype">unsigned</span>) minsize)</div><div class="line"><a name="l14574"></a><span class="lineno">14574</span>  <span class="keywordflow">return</span>(1);</div><div class="line"><a name="l14575"></a><span class="lineno">14575</span> </div><div class="line"><a name="l14576"></a><span class="lineno">14576</span>  <span class="keywordflow">if</span> (heuristic == <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea3c2554eb182fa3c6440fa5e3f72dddd5">CUDD_REORDER_SAME</a>) {</div><div class="line"><a name="l14577"></a><span class="lineno">14577</span>  heuristic = table-><a class="code" href="structDdManager.html#a20124711be407362dbe378648906ef89">autoMethod</a>;</div><div class="line"><a name="l14578"></a><span class="lineno">14578</span>  }</div><div class="line"><a name="l14579"></a><span class="lineno">14579</span>  <span class="keywordflow">if</span> (heuristic == <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddeabb43fb9caec196a5f3333de31c16b475">CUDD_REORDER_NONE</a>) {</div><div class="line"><a name="l14580"></a><span class="lineno">14580</span>  <span class="keywordflow">return</span>(1);</div><div class="line"><a name="l14581"></a><span class="lineno">14581</span>  }</div><div class="line"><a name="l14582"></a><span class="lineno">14582</span> </div><div class="line"><a name="l14583"></a><span class="lineno">14583</span>  <span class="comment">/* This call to Cudd_ReduceHeap does initiate reordering. Therefore</span></div><div class="line"><a name="l14584"></a><span class="lineno">14584</span> <span class="comment"> ** we count it.</span></div><div class="line"><a name="l14585"></a><span class="lineno">14585</span> <span class="comment"> */</span></div><div class="line"><a name="l14586"></a><span class="lineno">14586</span>  table-><a class="code" href="structDdManager.html#a78f3a2f3e04757968e4ed484da5f441f">reorderings</a>++;</div><div class="line"><a name="l14587"></a><span class="lineno">14587</span> </div><div class="line"><a name="l14588"></a><span class="lineno">14588</span>  localTime = <a class="code" href="util_8h.html#aafccfc19496a7104d4daf560555e84b0">util_cpu_time</a>();</div><div class="line"><a name="l14589"></a><span class="lineno">14589</span> </div><div class="line"><a name="l14590"></a><span class="lineno">14590</span>  <span class="comment">/* Run the hook functions. */</span></div><div class="line"><a name="l14591"></a><span class="lineno">14591</span>  hook = table-><a class="code" href="structDdManager.html#a227987a65d97bf4b8f3c905d6cc79024">preReorderingHook</a>;</div><div class="line"><a name="l14592"></a><span class="lineno">14592</span>  <span class="keywordflow">while</span> (hook != NULL) {</div><div class="line"><a name="l14593"></a><span class="lineno">14593</span>  <span class="keywordtype">int</span> res = (hook-><a class="code" href="structDdHook.html#a5b1bfe85ce0ac180fc160eb8c30094d7">f</a>)(table, <span class="stringliteral">"BDD"</span>, (<span class="keywordtype">void</span> *)heuristic);</div><div class="line"><a name="l14594"></a><span class="lineno">14594</span>  <span class="keywordflow">if</span> (res == 0) <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l14595"></a><span class="lineno">14595</span>  hook = hook-><a class="code" href="structDdHook.html#af30b5d30fbe9fe96c61bf418c75f1038">next</a>;</div><div class="line"><a name="l14596"></a><span class="lineno">14596</span>  }</div><div class="line"><a name="l14597"></a><span class="lineno">14597</span> </div><div class="line"><a name="l14598"></a><span class="lineno">14598</span>  <span class="keywordflow">if</span> (!<a class="code" href="cuddInt_8c.html#af10d05b2d480c2083dc53009b68a5781">ddReorderPreprocess</a>(table)) <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l14599"></a><span class="lineno">14599</span>  <a class="code" href="cuddInt_8c.html#a1860a312dbd8ab2ab829b1a3beed31d9">ddTotalNumberSwapping</a> = 0;</div><div class="line"><a name="l14600"></a><span class="lineno">14600</span> </div><div class="line"><a name="l14601"></a><span class="lineno">14601</span>  <span class="keywordflow">if</span> (table-><a class="code" href="structDdManager.html#afaedd101dfa7b7e2cb11614647ec37b2">keys</a> > table-><a class="code" href="structDdManager.html#a56b99ad9c23fcdc06fae90079b9690ce">peakLiveNodes</a>) {</div><div class="line"><a name="l14602"></a><span class="lineno">14602</span>  table-><a class="code" href="structDdManager.html#a56b99ad9c23fcdc06fae90079b9690ce">peakLiveNodes</a> = table-><a class="code" href="structDdManager.html#afaedd101dfa7b7e2cb11614647ec37b2">keys</a>;</div><div class="line"><a name="l14603"></a><span class="lineno">14603</span>  }</div><div class="line"><a name="l14604"></a><span class="lineno">14604</span> <span class="preprocessor">#ifdef DD_STATS</span></div><div class="line"><a name="l14605"></a><span class="lineno">14605</span>  initialSize = table-><a class="code" href="structDdManager.html#afaedd101dfa7b7e2cb11614647ec37b2">keys</a> - table-><a class="code" href="structDdManager.html#a0407971624e8cbb0510be72840e1788b">isolated</a>;</div><div class="line"><a name="l14606"></a><span class="lineno">14606</span>  ddTotalNISwaps = 0;</div><div class="line"><a name="l14607"></a><span class="lineno">14607</span> </div><div class="line"><a name="l14608"></a><span class="lineno">14608</span>  <span class="keywordflow">switch</span>(heuristic) {</div><div class="line"><a name="l14609"></a><span class="lineno">14609</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea8ffde9a0194df5e01bb3a0eaf2d5a489">CUDD_REORDER_RANDOM</a>:</div><div class="line"><a name="l14610"></a><span class="lineno">14610</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea45255db0c5134ca33ba807a372879368">CUDD_REORDER_RANDOM_PIVOT</a>:</div><div class="line"><a name="l14611"></a><span class="lineno">14611</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:I_RANDOM "</span>);</div><div class="line"><a name="l14612"></a><span class="lineno">14612</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l14613"></a><span class="lineno">14613</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddeaf512171f99e30a741b604602e077ae54">CUDD_REORDER_SIFT</a>:</div><div class="line"><a name="l14614"></a><span class="lineno">14614</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea2eb44e59cba9e1b55653941959eb5938">CUDD_REORDER_SIFT_CONVERGE</a>:</div><div class="line"><a name="l14615"></a><span class="lineno">14615</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea2b9444b7775bba12da0f39a584078e0c">CUDD_REORDER_SYMM_SIFT</a>:</div><div class="line"><a name="l14616"></a><span class="lineno">14616</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddeabc7a353b99f532efefdf9092016e0894">CUDD_REORDER_SYMM_SIFT_CONV</a>:</div><div class="line"><a name="l14617"></a><span class="lineno">14617</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea2f3a3020e2028bf957b4d2e6da34b748">CUDD_REORDER_GROUP_SIFT</a>:</div><div class="line"><a name="l14618"></a><span class="lineno">14618</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea021943df6809b36d89fa03d0bb63b9ef">CUDD_REORDER_GROUP_SIFT_CONV</a>:</div><div class="line"><a name="l14619"></a><span class="lineno">14619</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:I_SIFTING "</span>);</div><div class="line"><a name="l14620"></a><span class="lineno">14620</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l14621"></a><span class="lineno">14621</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea1200f7bc9ce4e409d0bc1750518b97fe">CUDD_REORDER_WINDOW2</a>:</div><div class="line"><a name="l14622"></a><span class="lineno">14622</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddeae53a5c1dfdd719ff377d4f900de4c0cf">CUDD_REORDER_WINDOW3</a>:</div><div class="line"><a name="l14623"></a><span class="lineno">14623</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea69dac82abf4db2bbf5820fa9638bdc4a">CUDD_REORDER_WINDOW4</a>:</div><div class="line"><a name="l14624"></a><span class="lineno">14624</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea8c7e70e4c81dbc35286b7a00685f5a19">CUDD_REORDER_WINDOW2_CONV</a>:</div><div class="line"><a name="l14625"></a><span class="lineno">14625</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddeaf7eb9f8bb0bd33ae78ecb6fb3094c3f9">CUDD_REORDER_WINDOW3_CONV</a>:</div><div class="line"><a name="l14626"></a><span class="lineno">14626</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddeac949aef80601550a561adaf440aca438">CUDD_REORDER_WINDOW4_CONV</a>:</div><div class="line"><a name="l14627"></a><span class="lineno">14627</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:I_WINDOW "</span>);</div><div class="line"><a name="l14628"></a><span class="lineno">14628</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l14629"></a><span class="lineno">14629</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea86b75dbbbe111b8b098b079fcae00bb8">CUDD_REORDER_ANNEALING</a>:</div><div class="line"><a name="l14630"></a><span class="lineno">14630</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:I_ANNEAL "</span>);</div><div class="line"><a name="l14631"></a><span class="lineno">14631</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l14632"></a><span class="lineno">14632</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea5f8da0a69c6e0a45f5aabf29c0f62b80">CUDD_REORDER_GENETIC</a>:</div><div class="line"><a name="l14633"></a><span class="lineno">14633</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:I_GENETIC "</span>);</div><div class="line"><a name="l14634"></a><span class="lineno">14634</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l14635"></a><span class="lineno">14635</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddeacb683aa1b0f0447e6bc3e233a27bc09a">CUDD_REORDER_LINEAR</a>:</div><div class="line"><a name="l14636"></a><span class="lineno">14636</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea5fe4925131a190c26d615676991cbc87">CUDD_REORDER_LINEAR_CONVERGE</a>:</div><div class="line"><a name="l14637"></a><span class="lineno">14637</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:I_LINSIFT "</span>);</div><div class="line"><a name="l14638"></a><span class="lineno">14638</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l14639"></a><span class="lineno">14639</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea18cd94b42260d7f89b98887317383c96">CUDD_REORDER_EXACT</a>:</div><div class="line"><a name="l14640"></a><span class="lineno">14640</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:I_EXACT "</span>);</div><div class="line"><a name="l14641"></a><span class="lineno">14641</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l14642"></a><span class="lineno">14642</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l14643"></a><span class="lineno">14643</span>  <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l14644"></a><span class="lineno">14644</span>  }</div><div class="line"><a name="l14645"></a><span class="lineno">14645</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"%8d: initial size"</span>,initialSize);</div><div class="line"><a name="l14646"></a><span class="lineno">14646</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l14647"></a><span class="lineno">14647</span> </div><div class="line"><a name="l14648"></a><span class="lineno">14648</span>  <span class="comment">/* See if we should use alternate threshold for maximum growth. */</span></div><div class="line"><a name="l14649"></a><span class="lineno">14649</span>  <span class="keywordflow">if</span> (table-><a class="code" href="structDdManager.html#aab2156c5c7271dc0aecf7ffc18e68e5f">reordCycle</a> && table-><a class="code" href="structDdManager.html#a78f3a2f3e04757968e4ed484da5f441f">reorderings</a> % table-><a class="code" href="structDdManager.html#aab2156c5c7271dc0aecf7ffc18e68e5f">reordCycle</a> == 0) {</div><div class="line"><a name="l14650"></a><span class="lineno">14650</span>  <span class="keywordtype">double</span> saveGrowth = table-><a class="code" href="structDdManager.html#a8a6a4238d1bc8a87eabd2c3eabd233d7">maxGrowth</a>;</div><div class="line"><a name="l14651"></a><span class="lineno">14651</span>  table-><a class="code" href="structDdManager.html#a8a6a4238d1bc8a87eabd2c3eabd233d7">maxGrowth</a> = table-><a class="code" href="structDdManager.html#a2926e48e488cec20a61e9b0dc6b91795">maxGrowthAlt</a>;</div><div class="line"><a name="l14652"></a><span class="lineno">14652</span>  result = <a class="code" href="cuddInt_8c.html#a66ff5219b538de2d580f832a4ddfc362">cuddTreeSifting</a>(table,heuristic);</div><div class="line"><a name="l14653"></a><span class="lineno">14653</span>  table-><a class="code" href="structDdManager.html#a8a6a4238d1bc8a87eabd2c3eabd233d7">maxGrowth</a> = saveGrowth;</div><div class="line"><a name="l14654"></a><span class="lineno">14654</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l14655"></a><span class="lineno">14655</span>  result = <a class="code" href="cuddInt_8c.html#a66ff5219b538de2d580f832a4ddfc362">cuddTreeSifting</a>(table,heuristic);</div><div class="line"><a name="l14656"></a><span class="lineno">14656</span>  }</div><div class="line"><a name="l14657"></a><span class="lineno">14657</span> </div><div class="line"><a name="l14658"></a><span class="lineno">14658</span> <span class="preprocessor">#ifdef DD_STATS</span></div><div class="line"><a name="l14659"></a><span class="lineno">14659</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l14660"></a><span class="lineno">14660</span>  finalSize = table-><a class="code" href="structDdManager.html#afaedd101dfa7b7e2cb11614647ec37b2">keys</a> - table-><a class="code" href="structDdManager.html#a0407971624e8cbb0510be72840e1788b">isolated</a>;</div><div class="line"><a name="l14661"></a><span class="lineno">14661</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:F_REORDER %8d: final size\n"</span>,finalSize);</div><div class="line"><a name="l14662"></a><span class="lineno">14662</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:T_REORDER %8g: total time (sec)\n"</span>,</div><div class="line"><a name="l14663"></a><span class="lineno">14663</span>  ((<span class="keywordtype">double</span>)(<a class="code" href="util_8h.html#aafccfc19496a7104d4daf560555e84b0">util_cpu_time</a>() - localTime)/1000.0));</div><div class="line"><a name="l14664"></a><span class="lineno">14664</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:N_REORDER %8d: total swaps\n"</span>,</div><div class="line"><a name="l14665"></a><span class="lineno">14665</span>  <a class="code" href="cuddInt_8c.html#a1860a312dbd8ab2ab829b1a3beed31d9">ddTotalNumberSwapping</a>);</div><div class="line"><a name="l14666"></a><span class="lineno">14666</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:M_REORDER %8d: NI swaps\n"</span>,ddTotalNISwaps);</div><div class="line"><a name="l14667"></a><span class="lineno">14667</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l14668"></a><span class="lineno">14668</span> </div><div class="line"><a name="l14669"></a><span class="lineno">14669</span>  <span class="keywordflow">if</span> (result == 0)</div><div class="line"><a name="l14670"></a><span class="lineno">14670</span>  <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l14671"></a><span class="lineno">14671</span> </div><div class="line"><a name="l14672"></a><span class="lineno">14672</span>  <span class="keywordflow">if</span> (!<a class="code" href="cuddInt_8c.html#acb38f795d39e6eeb71d62d9ce62278f6">ddReorderPostprocess</a>(table))</div><div class="line"><a name="l14673"></a><span class="lineno">14673</span>  <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l14674"></a><span class="lineno">14674</span> </div><div class="line"><a name="l14675"></a><span class="lineno">14675</span>  <span class="keywordflow">if</span> (table-><a class="code" href="structDdManager.html#ab50e58f446cce13dd36cf63230e2d836">realign</a>) {</div><div class="line"><a name="l14676"></a><span class="lineno">14676</span>  <span class="keywordflow">if</span> (!<a class="code" href="cuddInt_8c.html#ae994abd80d7d5b41c74a3a6016f52815">cuddZddAlignToBdd</a>(table))</div><div class="line"><a name="l14677"></a><span class="lineno">14677</span>  <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l14678"></a><span class="lineno">14678</span>  }</div><div class="line"><a name="l14679"></a><span class="lineno">14679</span> </div><div class="line"><a name="l14680"></a><span class="lineno">14680</span>  nextDyn = (table-><a class="code" href="structDdManager.html#afaedd101dfa7b7e2cb11614647ec37b2">keys</a> - table-><a class="code" href="structDdManager.html#aa8d293b6a4f69f6b4795e2fc24ede216">constants</a>.<a class="code" href="structDdSubtable.html#aca2eea345c00c69090e701ffacff7de4">keys</a> + 1) *</div><div class="line"><a name="l14681"></a><span class="lineno">14681</span>  <a class="code" href="cuddInt_8h.html#ae2a9d0ccd78a4c81e643ef54c2f51d53">DD_DYN_RATIO</a> + table-><a class="code" href="structDdManager.html#aa8d293b6a4f69f6b4795e2fc24ede216">constants</a>.<a class="code" href="structDdSubtable.html#aca2eea345c00c69090e701ffacff7de4">keys</a>;</div><div class="line"><a name="l14682"></a><span class="lineno">14682</span>  <a class="code" href="tools_2DDA_2CMakeLists_8txt.html#a7686df215f6da6fdcfa2c20950c96939">if</a> (table-><a class="code" href="structDdManager.html#a78f3a2f3e04757968e4ed484da5f441f">reorderings</a> < 20 || nextDyn > table-><a class="code" href="structDdManager.html#a832f5099477ac37dbce551565c61496d">nextDyn</a>)</div><div class="line"><a name="l14683"></a><span class="lineno">14683</span>  table-><a class="code" href="structDdManager.html#a832f5099477ac37dbce551565c61496d">nextDyn</a> = nextDyn;</div><div class="line"><a name="l14684"></a><span class="lineno">14684</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l14685"></a><span class="lineno">14685</span>  table-><a class="code" href="structDdManager.html#a832f5099477ac37dbce551565c61496d">nextDyn</a> += 20;</div><div class="line"><a name="l14686"></a><span class="lineno">14686</span>  <span class="keywordflow">if</span> (table-><a class="code" href="structDdManager.html#a25841e85a14cc64d3764b10687554c89">randomizeOrder</a> != 0) {</div><div class="line"><a name="l14687"></a><span class="lineno">14687</span>  table-><a class="code" href="structDdManager.html#a832f5099477ac37dbce551565c61496d">nextDyn</a> += <a class="code" href="cuddInt_8c.html#a57ec529a98560b3da382b0f8cec7ece4">Cudd_Random</a>() & table-><a class="code" href="structDdManager.html#a25841e85a14cc64d3764b10687554c89">randomizeOrder</a>;</div><div class="line"><a name="l14688"></a><span class="lineno">14688</span>  }</div><div class="line"><a name="l14689"></a><span class="lineno">14689</span>  table-><a class="code" href="structDdManager.html#ab8c81b5f0658b90c2c3bd339123a1f7a">reordered</a> = 1;</div><div class="line"><a name="l14690"></a><span class="lineno">14690</span> </div><div class="line"><a name="l14691"></a><span class="lineno">14691</span>  <span class="comment">/* Run hook functions. */</span></div><div class="line"><a name="l14692"></a><span class="lineno">14692</span>  hook = table-><a class="code" href="structDdManager.html#a051721a550ae2f41b9838b8153d46b30">postReorderingHook</a>;</div><div class="line"><a name="l14693"></a><span class="lineno">14693</span>  <span class="keywordflow">while</span> (hook != NULL) {</div><div class="line"><a name="l14694"></a><span class="lineno">14694</span>  <span class="keywordtype">int</span> res = (hook-><a class="code" href="structDdHook.html#a5b1bfe85ce0ac180fc160eb8c30094d7">f</a>)(table, <span class="stringliteral">"BDD"</span>, (<span class="keywordtype">void</span> *)localTime);</div><div class="line"><a name="l14695"></a><span class="lineno">14695</span>  <span class="keywordflow">if</span> (res == 0) <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l14696"></a><span class="lineno">14696</span>  hook = hook-><a class="code" href="structDdHook.html#af30b5d30fbe9fe96c61bf418c75f1038">next</a>;</div><div class="line"><a name="l14697"></a><span class="lineno">14697</span>  }</div><div class="line"><a name="l14698"></a><span class="lineno">14698</span>  <span class="comment">/* Update cumulative reordering time. */</span></div><div class="line"><a name="l14699"></a><span class="lineno">14699</span>  table-><a class="code" href="structDdManager.html#a50246fe31dd62f3a6aad6636299e214a">reordTime</a> += <a class="code" href="util_8h.html#aafccfc19496a7104d4daf560555e84b0">util_cpu_time</a>() - localTime;</div><div class="line"><a name="l14700"></a><span class="lineno">14700</span> </div><div class="line"><a name="l14701"></a><span class="lineno">14701</span>  <span class="keywordflow">return</span>(result);</div><div class="line"><a name="l14702"></a><span class="lineno">14702</span> </div><div class="line"><a name="l14703"></a><span class="lineno">14703</span> } <span class="comment">/* end of Cudd_ReduceHeap */</span></div><div class="ttc" id="cudd_8h_html_a8ff397cb64855989d6ad62a491e20ddea3c2554eb182fa3c6440fa5e3f72dddd5"><div class="ttname"><a href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea3c2554eb182fa3c6440fa5e3f72dddd5">CUDD_REORDER_SAME</a></div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00142">cudd.h:142</a></div></div>
|
|
4309
|
+
<div class="fragment"><div class="line"><a name="l14562"></a><span class="lineno">14562</span> {</div><div class="line"><a name="l14563"></a><span class="lineno">14563</span>  <a class="code" href="structDdHook.html">DdHook</a> *hook;</div><div class="line"><a name="l14564"></a><span class="lineno">14564</span>  <span class="keywordtype">int</span> <a class="code" href="cuddInt_8c.html#a8b2e13c78efca330f06b6ddcd7464b41">result</a>;</div><div class="line"><a name="l14565"></a><span class="lineno">14565</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> nextDyn;</div><div class="line"><a name="l14566"></a><span class="lineno">14566</span> <span class="preprocessor">#ifdef DD_STATS</span></div><div class="line"><a name="l14567"></a><span class="lineno">14567</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> initialSize;</div><div class="line"><a name="l14568"></a><span class="lineno">14568</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> finalSize;</div><div class="line"><a name="l14569"></a><span class="lineno">14569</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l14570"></a><span class="lineno">14570</span>  <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> localTime;</div><div class="line"><a name="l14571"></a><span class="lineno">14571</span> </div><div class="line"><a name="l14572"></a><span class="lineno">14572</span>  <span class="comment">/* Don't reorder if there are too many dead nodes. */</span></div><div class="line"><a name="l14573"></a><span class="lineno">14573</span>  <span class="keywordflow">if</span> (table-><a class="code" href="structDdManager.html#afaedd101dfa7b7e2cb11614647ec37b2">keys</a> - table-><a class="code" href="structDdManager.html#a170c1cfcbbd9b83bb479fc85c177c52e">dead</a> < (<span class="keywordtype">unsigned</span>) minsize)</div><div class="line"><a name="l14574"></a><span class="lineno">14574</span>  <span class="keywordflow">return</span>(1);</div><div class="line"><a name="l14575"></a><span class="lineno">14575</span> </div><div class="line"><a name="l14576"></a><span class="lineno">14576</span>  <span class="keywordflow">if</span> (heuristic == <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea3c2554eb182fa3c6440fa5e3f72dddd5">CUDD_REORDER_SAME</a>) {</div><div class="line"><a name="l14577"></a><span class="lineno">14577</span>  heuristic = table-><a class="code" href="structDdManager.html#a20124711be407362dbe378648906ef89">autoMethod</a>;</div><div class="line"><a name="l14578"></a><span class="lineno">14578</span>  }</div><div class="line"><a name="l14579"></a><span class="lineno">14579</span>  <span class="keywordflow">if</span> (heuristic == <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddeabb43fb9caec196a5f3333de31c16b475">CUDD_REORDER_NONE</a>) {</div><div class="line"><a name="l14580"></a><span class="lineno">14580</span>  <span class="keywordflow">return</span>(1);</div><div class="line"><a name="l14581"></a><span class="lineno">14581</span>  }</div><div class="line"><a name="l14582"></a><span class="lineno">14582</span> </div><div class="line"><a name="l14583"></a><span class="lineno">14583</span>  <span class="comment">/* This call to Cudd_ReduceHeap does initiate reordering. Therefore</span></div><div class="line"><a name="l14584"></a><span class="lineno">14584</span> <span class="comment"> ** we count it.</span></div><div class="line"><a name="l14585"></a><span class="lineno">14585</span> <span class="comment"> */</span></div><div class="line"><a name="l14586"></a><span class="lineno">14586</span>  table-><a class="code" href="structDdManager.html#a78f3a2f3e04757968e4ed484da5f441f">reorderings</a>++;</div><div class="line"><a name="l14587"></a><span class="lineno">14587</span> </div><div class="line"><a name="l14588"></a><span class="lineno">14588</span>  localTime = <a class="code" href="util_8h.html#aafccfc19496a7104d4daf560555e84b0">util_cpu_time</a>();</div><div class="line"><a name="l14589"></a><span class="lineno">14589</span> </div><div class="line"><a name="l14590"></a><span class="lineno">14590</span>  <span class="comment">/* Run the hook functions. */</span></div><div class="line"><a name="l14591"></a><span class="lineno">14591</span>  hook = table-><a class="code" href="structDdManager.html#a227987a65d97bf4b8f3c905d6cc79024">preReorderingHook</a>;</div><div class="line"><a name="l14592"></a><span class="lineno">14592</span>  <span class="keywordflow">while</span> (hook != NULL) {</div><div class="line"><a name="l14593"></a><span class="lineno">14593</span>  <span class="keywordtype">int</span> res = (hook-><a class="code" href="structDdHook.html#a5b1bfe85ce0ac180fc160eb8c30094d7">f</a>)(table, <span class="stringliteral">"BDD"</span>, (<span class="keywordtype">void</span> *)heuristic);</div><div class="line"><a name="l14594"></a><span class="lineno">14594</span>  <span class="keywordflow">if</span> (res == 0) <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l14595"></a><span class="lineno">14595</span>  hook = hook-><a class="code" href="structDdHook.html#af30b5d30fbe9fe96c61bf418c75f1038">next</a>;</div><div class="line"><a name="l14596"></a><span class="lineno">14596</span>  }</div><div class="line"><a name="l14597"></a><span class="lineno">14597</span> </div><div class="line"><a name="l14598"></a><span class="lineno">14598</span>  <span class="keywordflow">if</span> (!<a class="code" href="cuddInt_8c.html#af10d05b2d480c2083dc53009b68a5781">ddReorderPreprocess</a>(table)) <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l14599"></a><span class="lineno">14599</span>  <a class="code" href="cuddInt_8c.html#a1860a312dbd8ab2ab829b1a3beed31d9">ddTotalNumberSwapping</a> = 0;</div><div class="line"><a name="l14600"></a><span class="lineno">14600</span> </div><div class="line"><a name="l14601"></a><span class="lineno">14601</span>  <span class="keywordflow">if</span> (table-><a class="code" href="structDdManager.html#afaedd101dfa7b7e2cb11614647ec37b2">keys</a> > table-><a class="code" href="structDdManager.html#a56b99ad9c23fcdc06fae90079b9690ce">peakLiveNodes</a>) {</div><div class="line"><a name="l14602"></a><span class="lineno">14602</span>  table-><a class="code" href="structDdManager.html#a56b99ad9c23fcdc06fae90079b9690ce">peakLiveNodes</a> = table-><a class="code" href="structDdManager.html#afaedd101dfa7b7e2cb11614647ec37b2">keys</a>;</div><div class="line"><a name="l14603"></a><span class="lineno">14603</span>  }</div><div class="line"><a name="l14604"></a><span class="lineno">14604</span> <span class="preprocessor">#ifdef DD_STATS</span></div><div class="line"><a name="l14605"></a><span class="lineno">14605</span>  initialSize = table-><a class="code" href="structDdManager.html#afaedd101dfa7b7e2cb11614647ec37b2">keys</a> - table-><a class="code" href="structDdManager.html#a0407971624e8cbb0510be72840e1788b">isolated</a>;</div><div class="line"><a name="l14606"></a><span class="lineno">14606</span>  ddTotalNISwaps = 0;</div><div class="line"><a name="l14607"></a><span class="lineno">14607</span> </div><div class="line"><a name="l14608"></a><span class="lineno">14608</span>  <span class="keywordflow">switch</span>(heuristic) {</div><div class="line"><a name="l14609"></a><span class="lineno">14609</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea8ffde9a0194df5e01bb3a0eaf2d5a489">CUDD_REORDER_RANDOM</a>:</div><div class="line"><a name="l14610"></a><span class="lineno">14610</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea45255db0c5134ca33ba807a372879368">CUDD_REORDER_RANDOM_PIVOT</a>:</div><div class="line"><a name="l14611"></a><span class="lineno">14611</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:I_RANDOM "</span>);</div><div class="line"><a name="l14612"></a><span class="lineno">14612</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l14613"></a><span class="lineno">14613</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddeaf512171f99e30a741b604602e077ae54">CUDD_REORDER_SIFT</a>:</div><div class="line"><a name="l14614"></a><span class="lineno">14614</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea2eb44e59cba9e1b55653941959eb5938">CUDD_REORDER_SIFT_CONVERGE</a>:</div><div class="line"><a name="l14615"></a><span class="lineno">14615</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea2b9444b7775bba12da0f39a584078e0c">CUDD_REORDER_SYMM_SIFT</a>:</div><div class="line"><a name="l14616"></a><span class="lineno">14616</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddeabc7a353b99f532efefdf9092016e0894">CUDD_REORDER_SYMM_SIFT_CONV</a>:</div><div class="line"><a name="l14617"></a><span class="lineno">14617</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea2f3a3020e2028bf957b4d2e6da34b748">CUDD_REORDER_GROUP_SIFT</a>:</div><div class="line"><a name="l14618"></a><span class="lineno">14618</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea021943df6809b36d89fa03d0bb63b9ef">CUDD_REORDER_GROUP_SIFT_CONV</a>:</div><div class="line"><a name="l14619"></a><span class="lineno">14619</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:I_SIFTING "</span>);</div><div class="line"><a name="l14620"></a><span class="lineno">14620</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l14621"></a><span class="lineno">14621</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea1200f7bc9ce4e409d0bc1750518b97fe">CUDD_REORDER_WINDOW2</a>:</div><div class="line"><a name="l14622"></a><span class="lineno">14622</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddeae53a5c1dfdd719ff377d4f900de4c0cf">CUDD_REORDER_WINDOW3</a>:</div><div class="line"><a name="l14623"></a><span class="lineno">14623</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea69dac82abf4db2bbf5820fa9638bdc4a">CUDD_REORDER_WINDOW4</a>:</div><div class="line"><a name="l14624"></a><span class="lineno">14624</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea8c7e70e4c81dbc35286b7a00685f5a19">CUDD_REORDER_WINDOW2_CONV</a>:</div><div class="line"><a name="l14625"></a><span class="lineno">14625</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddeaf7eb9f8bb0bd33ae78ecb6fb3094c3f9">CUDD_REORDER_WINDOW3_CONV</a>:</div><div class="line"><a name="l14626"></a><span class="lineno">14626</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddeac949aef80601550a561adaf440aca438">CUDD_REORDER_WINDOW4_CONV</a>:</div><div class="line"><a name="l14627"></a><span class="lineno">14627</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:I_WINDOW "</span>);</div><div class="line"><a name="l14628"></a><span class="lineno">14628</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l14629"></a><span class="lineno">14629</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea86b75dbbbe111b8b098b079fcae00bb8">CUDD_REORDER_ANNEALING</a>:</div><div class="line"><a name="l14630"></a><span class="lineno">14630</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:I_ANNEAL "</span>);</div><div class="line"><a name="l14631"></a><span class="lineno">14631</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l14632"></a><span class="lineno">14632</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea5f8da0a69c6e0a45f5aabf29c0f62b80">CUDD_REORDER_GENETIC</a>:</div><div class="line"><a name="l14633"></a><span class="lineno">14633</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:I_GENETIC "</span>);</div><div class="line"><a name="l14634"></a><span class="lineno">14634</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l14635"></a><span class="lineno">14635</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddeacb683aa1b0f0447e6bc3e233a27bc09a">CUDD_REORDER_LINEAR</a>:</div><div class="line"><a name="l14636"></a><span class="lineno">14636</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea5fe4925131a190c26d615676991cbc87">CUDD_REORDER_LINEAR_CONVERGE</a>:</div><div class="line"><a name="l14637"></a><span class="lineno">14637</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:I_LINSIFT "</span>);</div><div class="line"><a name="l14638"></a><span class="lineno">14638</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l14639"></a><span class="lineno">14639</span>  <span class="keywordflow">case</span> <a class="code" href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea18cd94b42260d7f89b98887317383c96">CUDD_REORDER_EXACT</a>:</div><div class="line"><a name="l14640"></a><span class="lineno">14640</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:I_EXACT "</span>);</div><div class="line"><a name="l14641"></a><span class="lineno">14641</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l14642"></a><span class="lineno">14642</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l14643"></a><span class="lineno">14643</span>  <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l14644"></a><span class="lineno">14644</span>  }</div><div class="line"><a name="l14645"></a><span class="lineno">14645</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"%8d: initial size"</span>,initialSize);</div><div class="line"><a name="l14646"></a><span class="lineno">14646</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l14647"></a><span class="lineno">14647</span> </div><div class="line"><a name="l14648"></a><span class="lineno">14648</span>  <span class="comment">/* See if we should use alternate threshold for maximum growth. */</span></div><div class="line"><a name="l14649"></a><span class="lineno">14649</span>  <span class="keywordflow">if</span> (table-><a class="code" href="structDdManager.html#aab2156c5c7271dc0aecf7ffc18e68e5f">reordCycle</a> && table-><a class="code" href="structDdManager.html#a78f3a2f3e04757968e4ed484da5f441f">reorderings</a> % table-><a class="code" href="structDdManager.html#aab2156c5c7271dc0aecf7ffc18e68e5f">reordCycle</a> == 0) {</div><div class="line"><a name="l14650"></a><span class="lineno">14650</span>  <span class="keywordtype">double</span> saveGrowth = table-><a class="code" href="structDdManager.html#a8a6a4238d1bc8a87eabd2c3eabd233d7">maxGrowth</a>;</div><div class="line"><a name="l14651"></a><span class="lineno">14651</span>  table-><a class="code" href="structDdManager.html#a8a6a4238d1bc8a87eabd2c3eabd233d7">maxGrowth</a> = table-><a class="code" href="structDdManager.html#a2926e48e488cec20a61e9b0dc6b91795">maxGrowthAlt</a>;</div><div class="line"><a name="l14652"></a><span class="lineno">14652</span>  result = <a class="code" href="cuddInt_8c.html#a66ff5219b538de2d580f832a4ddfc362">cuddTreeSifting</a>(table,heuristic);</div><div class="line"><a name="l14653"></a><span class="lineno">14653</span>  table-><a class="code" href="structDdManager.html#a8a6a4238d1bc8a87eabd2c3eabd233d7">maxGrowth</a> = saveGrowth;</div><div class="line"><a name="l14654"></a><span class="lineno">14654</span>  } <span class="keywordflow">else</span> {</div><div class="line"><a name="l14655"></a><span class="lineno">14655</span>  result = <a class="code" href="cuddInt_8c.html#a66ff5219b538de2d580f832a4ddfc362">cuddTreeSifting</a>(table,heuristic);</div><div class="line"><a name="l14656"></a><span class="lineno">14656</span>  }</div><div class="line"><a name="l14657"></a><span class="lineno">14657</span> </div><div class="line"><a name="l14658"></a><span class="lineno">14658</span> <span class="preprocessor">#ifdef DD_STATS</span></div><div class="line"><a name="l14659"></a><span class="lineno">14659</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"\n"</span>);</div><div class="line"><a name="l14660"></a><span class="lineno">14660</span>  finalSize = table-><a class="code" href="structDdManager.html#afaedd101dfa7b7e2cb11614647ec37b2">keys</a> - table-><a class="code" href="structDdManager.html#a0407971624e8cbb0510be72840e1788b">isolated</a>;</div><div class="line"><a name="l14661"></a><span class="lineno">14661</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:F_REORDER %8d: final size\n"</span>,finalSize);</div><div class="line"><a name="l14662"></a><span class="lineno">14662</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:T_REORDER %8g: total time (sec)\n"</span>,</div><div class="line"><a name="l14663"></a><span class="lineno">14663</span>  ((<span class="keywordtype">double</span>)(<a class="code" href="util_8h.html#aafccfc19496a7104d4daf560555e84b0">util_cpu_time</a>() - localTime)/1000.0));</div><div class="line"><a name="l14664"></a><span class="lineno">14664</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:N_REORDER %8d: total swaps\n"</span>,</div><div class="line"><a name="l14665"></a><span class="lineno">14665</span>  <a class="code" href="cuddInt_8c.html#a1860a312dbd8ab2ab829b1a3beed31d9">ddTotalNumberSwapping</a>);</div><div class="line"><a name="l14666"></a><span class="lineno">14666</span>  (void) fprintf(table-><a class="code" href="structDdManager.html#af318bea3248f8e99d7889f028be4ec8f">out</a>,<span class="stringliteral">"#:M_REORDER %8d: NI swaps\n"</span>,ddTotalNISwaps);</div><div class="line"><a name="l14667"></a><span class="lineno">14667</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l14668"></a><span class="lineno">14668</span> </div><div class="line"><a name="l14669"></a><span class="lineno">14669</span>  <span class="keywordflow">if</span> (result == 0)</div><div class="line"><a name="l14670"></a><span class="lineno">14670</span>  <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l14671"></a><span class="lineno">14671</span> </div><div class="line"><a name="l14672"></a><span class="lineno">14672</span>  <span class="keywordflow">if</span> (!<a class="code" href="cuddInt_8c.html#acb38f795d39e6eeb71d62d9ce62278f6">ddReorderPostprocess</a>(table))</div><div class="line"><a name="l14673"></a><span class="lineno">14673</span>  <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l14674"></a><span class="lineno">14674</span> </div><div class="line"><a name="l14675"></a><span class="lineno">14675</span>  <span class="keywordflow">if</span> (table-><a class="code" href="structDdManager.html#ab50e58f446cce13dd36cf63230e2d836">realign</a>) {</div><div class="line"><a name="l14676"></a><span class="lineno">14676</span>  <span class="keywordflow">if</span> (!<a class="code" href="cuddInt_8c.html#ae994abd80d7d5b41c74a3a6016f52815">cuddZddAlignToBdd</a>(table))</div><div class="line"><a name="l14677"></a><span class="lineno">14677</span>  <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l14678"></a><span class="lineno">14678</span>  }</div><div class="line"><a name="l14679"></a><span class="lineno">14679</span> </div><div class="line"><a name="l14680"></a><span class="lineno">14680</span>  nextDyn = (table-><a class="code" href="structDdManager.html#afaedd101dfa7b7e2cb11614647ec37b2">keys</a> - table-><a class="code" href="structDdManager.html#aa8d293b6a4f69f6b4795e2fc24ede216">constants</a>.<a class="code" href="structDdSubtable.html#aca2eea345c00c69090e701ffacff7de4">keys</a> + 1) *</div><div class="line"><a name="l14681"></a><span class="lineno">14681</span>  <a class="code" href="cuddInt_8h.html#ae2a9d0ccd78a4c81e643ef54c2f51d53">DD_DYN_RATIO</a> + table-><a class="code" href="structDdManager.html#aa8d293b6a4f69f6b4795e2fc24ede216">constants</a>.<a class="code" href="structDdSubtable.html#aca2eea345c00c69090e701ffacff7de4">keys</a>;</div><div class="line"><a name="l14682"></a><span class="lineno">14682</span>  <a class="code" href="tools_2CFL_2CMakeLists_8txt.html#aff8b1edecee3d7c397afcfe02e05d0c7">if</a> (table-><a class="code" href="structDdManager.html#a78f3a2f3e04757968e4ed484da5f441f">reorderings</a> < 20 || nextDyn > table-><a class="code" href="structDdManager.html#a832f5099477ac37dbce551565c61496d">nextDyn</a>)</div><div class="line"><a name="l14683"></a><span class="lineno">14683</span>  table-><a class="code" href="structDdManager.html#a832f5099477ac37dbce551565c61496d">nextDyn</a> = nextDyn;</div><div class="line"><a name="l14684"></a><span class="lineno">14684</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l14685"></a><span class="lineno">14685</span>  table-><a class="code" href="structDdManager.html#a832f5099477ac37dbce551565c61496d">nextDyn</a> += 20;</div><div class="line"><a name="l14686"></a><span class="lineno">14686</span>  <span class="keywordflow">if</span> (table-><a class="code" href="structDdManager.html#a25841e85a14cc64d3764b10687554c89">randomizeOrder</a> != 0) {</div><div class="line"><a name="l14687"></a><span class="lineno">14687</span>  table-><a class="code" href="structDdManager.html#a832f5099477ac37dbce551565c61496d">nextDyn</a> += <a class="code" href="cuddInt_8c.html#a57ec529a98560b3da382b0f8cec7ece4">Cudd_Random</a>() & table-><a class="code" href="structDdManager.html#a25841e85a14cc64d3764b10687554c89">randomizeOrder</a>;</div><div class="line"><a name="l14688"></a><span class="lineno">14688</span>  }</div><div class="line"><a name="l14689"></a><span class="lineno">14689</span>  table-><a class="code" href="structDdManager.html#ab8c81b5f0658b90c2c3bd339123a1f7a">reordered</a> = 1;</div><div class="line"><a name="l14690"></a><span class="lineno">14690</span> </div><div class="line"><a name="l14691"></a><span class="lineno">14691</span>  <span class="comment">/* Run hook functions. */</span></div><div class="line"><a name="l14692"></a><span class="lineno">14692</span>  hook = table-><a class="code" href="structDdManager.html#a051721a550ae2f41b9838b8153d46b30">postReorderingHook</a>;</div><div class="line"><a name="l14693"></a><span class="lineno">14693</span>  <span class="keywordflow">while</span> (hook != NULL) {</div><div class="line"><a name="l14694"></a><span class="lineno">14694</span>  <span class="keywordtype">int</span> res = (hook-><a class="code" href="structDdHook.html#a5b1bfe85ce0ac180fc160eb8c30094d7">f</a>)(table, <span class="stringliteral">"BDD"</span>, (<span class="keywordtype">void</span> *)localTime);</div><div class="line"><a name="l14695"></a><span class="lineno">14695</span>  <span class="keywordflow">if</span> (res == 0) <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l14696"></a><span class="lineno">14696</span>  hook = hook-><a class="code" href="structDdHook.html#af30b5d30fbe9fe96c61bf418c75f1038">next</a>;</div><div class="line"><a name="l14697"></a><span class="lineno">14697</span>  }</div><div class="line"><a name="l14698"></a><span class="lineno">14698</span>  <span class="comment">/* Update cumulative reordering time. */</span></div><div class="line"><a name="l14699"></a><span class="lineno">14699</span>  table-><a class="code" href="structDdManager.html#a50246fe31dd62f3a6aad6636299e214a">reordTime</a> += <a class="code" href="util_8h.html#aafccfc19496a7104d4daf560555e84b0">util_cpu_time</a>() - localTime;</div><div class="line"><a name="l14700"></a><span class="lineno">14700</span> </div><div class="line"><a name="l14701"></a><span class="lineno">14701</span>  <span class="keywordflow">return</span>(result);</div><div class="line"><a name="l14702"></a><span class="lineno">14702</span> </div><div class="line"><a name="l14703"></a><span class="lineno">14703</span> } <span class="comment">/* end of Cudd_ReduceHeap */</span></div><div class="ttc" id="cudd_8h_html_a8ff397cb64855989d6ad62a491e20ddea3c2554eb182fa3c6440fa5e3f72dddd5"><div class="ttname"><a href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea3c2554eb182fa3c6440fa5e3f72dddd5">CUDD_REORDER_SAME</a></div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00142">cudd.h:142</a></div></div>
|
|
4310
4310
|
<div class="ttc" id="structDdSubtable_html_aca2eea345c00c69090e701ffacff7de4"><div class="ttname"><a href="structDdSubtable.html#aca2eea345c00c69090e701ffacff7de4">DdSubtable::keys</a></div><div class="ttdeci">unsigned int keys</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00314">cuddInt.h:314</a></div></div>
|
|
4311
4311
|
<div class="ttc" id="cudd_8h_html_a8ff397cb64855989d6ad62a491e20ddea2b9444b7775bba12da0f39a584078e0c"><div class="ttname"><a href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea2b9444b7775bba12da0f39a584078e0c">CUDD_REORDER_SYMM_SIFT</a></div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00148">cudd.h:148</a></div></div>
|
|
4312
4312
|
<div class="ttc" id="structDdManager_html_a50246fe31dd62f3a6aad6636299e214a"><div class="ttname"><a href="structDdManager.html#a50246fe31dd62f3a6aad6636299e214a">DdManager::reordTime</a></div><div class="ttdeci">unsigned long reordTime</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00434">cuddInt.h:434</a></div></div>
|
|
4313
4313
|
<div class="ttc" id="structDdManager_html_a20124711be407362dbe378648906ef89"><div class="ttname"><a href="structDdManager.html#a20124711be407362dbe378648906ef89">DdManager::autoMethod</a></div><div class="ttdeci">Cudd_ReorderingType autoMethod</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00402">cuddInt.h:402</a></div></div>
|
|
4314
4314
|
<div class="ttc" id="structDdManager_html_a56b99ad9c23fcdc06fae90079b9690ce"><div class="ttname"><a href="structDdManager.html#a56b99ad9c23fcdc06fae90079b9690ce">DdManager::peakLiveNodes</a></div><div class="ttdeci">unsigned int peakLiveNodes</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00445">cuddInt.h:445</a></div></div>
|
|
4315
|
+
<div class="ttc" id="tools_2CFL_2CMakeLists_8txt_html_aff8b1edecee3d7c397afcfe02e05d0c7"><div class="ttname"><a href="tools_2CFL_2CMakeLists_8txt.html#aff8b1edecee3d7c397afcfe02e05d0c7">if</a></div><div class="ttdeci">if(DEFINED IN_SOURCE_BUILD) set(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(cfl cfl.cpp) else() add_executable(cfl cfl.cpp) target_link_libraries(cfl Svf Cudd $</div><div class="ttdef"><b>Definition:</b> <a href="tools_2CFL_2CMakeLists_8txt_source.html#l00002">CMakeLists.txt:2</a></div></div>
|
|
4315
4316
|
<div class="ttc" id="structDdManager_html_a227987a65d97bf4b8f3c905d6cc79024"><div class="ttname"><a href="structDdManager.html#a227987a65d97bf4b8f3c905d6cc79024">DdManager::preReorderingHook</a></div><div class="ttdeci">DdHook * preReorderingHook</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00421">cuddInt.h:421</a></div></div>
|
|
4316
4317
|
<div class="ttc" id="cudd_8h_html_a8ff397cb64855989d6ad62a491e20ddea2f3a3020e2028bf957b4d2e6da34b748"><div class="ttname"><a href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea2f3a3020e2028bf957b4d2e6da34b748">CUDD_REORDER_GROUP_SIFT</a></div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00156">cudd.h:156</a></div></div>
|
|
4317
4318
|
<div class="ttc" id="structDdManager_html_aab2156c5c7271dc0aecf7ffc18e68e5f"><div class="ttname"><a href="structDdManager.html#aab2156c5c7271dc0aecf7ffc18e68e5f">DdManager::reordCycle</a></div><div class="ttdeci">int reordCycle</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8h_source.html#l00399">cuddInt.h:399</a></div></div>
|
|
@@ -4358,7 +4359,6 @@ Dynamic Programming (exact) </li>
|
|
|
4358
4359
|
<div class="ttc" id="cudd_8h_html_a8ff397cb64855989d6ad62a491e20ddeabc7a353b99f532efefdf9092016e0894"><div class="ttname"><a href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddeabc7a353b99f532efefdf9092016e0894">CUDD_REORDER_SYMM_SIFT_CONV</a></div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00149">cudd.h:149</a></div></div>
|
|
4359
4360
|
<div class="ttc" id="cuddInt_8c_html_a57ec529a98560b3da382b0f8cec7ece4"><div class="ttname"><a href="cuddInt_8c.html#a57ec529a98560b3da382b0f8cec7ece4">Cudd_Random</a></div><div class="ttdeci">long Cudd_Random(void)</div><div class="ttdef"><b>Definition:</b> <a href="cuddInt_8c_source.html#l22881">cuddInt.c:22881</a></div></div>
|
|
4360
4361
|
<div class="ttc" id="cudd_8h_html_a8ff397cb64855989d6ad62a491e20ddea69dac82abf4db2bbf5820fa9638bdc4a"><div class="ttname"><a href="cudd_8h.html#a8ff397cb64855989d6ad62a491e20ddea69dac82abf4db2bbf5820fa9638bdc4a">CUDD_REORDER_WINDOW4</a></div><div class="ttdef"><b>Definition:</b> <a href="cudd_8h_source.html#l00152">cudd.h:152</a></div></div>
|
|
4361
|
-
<div class="ttc" id="tools_2DDA_2CMakeLists_8txt_html_a7686df215f6da6fdcfa2c20950c96939"><div class="ttname"><a href="tools_2DDA_2CMakeLists_8txt.html#a7686df215f6da6fdcfa2c20950c96939">if</a></div><div class="ttdeci">if(DEFINED IN_SOURCE_BUILD) set(LLVM_LINK_COMPONENTS BitWriter Core IPO IrReader InstCombine Instrumentation Target Linker Analysis ScalarOpts Support Svf Cudd) add_llvm_tool(dvf dda.cpp) else() add_executable(dvf dda.cpp) target_link_libraries(dvf Svf Cudd $</div><div class="ttdef"><b>Definition:</b> <a href="tools_2DDA_2CMakeLists_8txt_source.html#l00002">CMakeLists.txt:2</a></div></div>
|
|
4362
4362
|
</div><!-- fragment -->
|
|
4363
4363
|
</div>
|
|
4364
4364
|
</div>
|
|
@@ -76,8 +76,6 @@ $(function() {
|
|
|
76
76
|
<table class="memberdecls">
|
|
77
77
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
78
78
|
Functions</h2></td></tr>
|
|
79
|
-
<tr class="memitem:a17d2e24d913aaa7484a3e226255019b7"><td class="memItemLeft" align="right" valign="top">static cl::opt< std::string > </td><td class="memItemRight" valign="bottom"><a class="el" href="dda_8cpp.html#a17d2e24d913aaa7484a3e226255019b7">InputFilename</a> (cl::Positional, cl::desc("<input bitcode>"), cl::init("-"))</td></tr>
|
|
80
|
-
<tr class="separator:a17d2e24d913aaa7484a3e226255019b7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
81
79
|
<tr class="memitem:afffbd7760f0128b74c9dbfd517d0f99e"><td class="memItemLeft" align="right" valign="top">static cl::opt< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="dda_8cpp.html#afffbd7760f0128b74c9dbfd517d0f99e">StandardCompileOpts</a> ("std-compile-opts", cl::desc("Include the standard compile time optimizations"))</td></tr>
|
|
82
80
|
<tr class="separator:afffbd7760f0128b74c9dbfd517d0f99e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
83
81
|
<tr class="memitem:a55c1167d4e6efe7828f050d978291725"><td class="memItemLeft" align="right" valign="top">static cl::opt< bool > </td><td class="memItemRight" valign="bottom"><a class="el" href="dda_8cpp.html#a55c1167d4e6efe7828f050d978291725">DAA</a> ("daa", cl::init(false), cl::desc("Demand-Driven Alias Analysis Pass"))</td></tr>
|
|
@@ -262,48 +260,6 @@ Functions</h2></td></tr>
|
|
|
262
260
|
</table>
|
|
263
261
|
</div><div class="memdoc">
|
|
264
262
|
|
|
265
|
-
</div>
|
|
266
|
-
</div>
|
|
267
|
-
<a id="a17d2e24d913aaa7484a3e226255019b7"></a>
|
|
268
|
-
<h2 class="memtitle"><span class="permalink"><a href="#a17d2e24d913aaa7484a3e226255019b7">◆ </a></span>InputFilename()</h2>
|
|
269
|
-
|
|
270
|
-
<div class="memitem">
|
|
271
|
-
<div class="memproto">
|
|
272
|
-
<table class="mlabels">
|
|
273
|
-
<tr>
|
|
274
|
-
<td class="mlabels-left">
|
|
275
|
-
<table class="memname">
|
|
276
|
-
<tr>
|
|
277
|
-
<td class="memname">static cl::opt<std::string> InputFilename </td>
|
|
278
|
-
<td>(</td>
|
|
279
|
-
<td class="paramtype">cl::Positional </td>
|
|
280
|
-
<td class="paramname">, </td>
|
|
281
|
-
</tr>
|
|
282
|
-
<tr>
|
|
283
|
-
<td class="paramkey"></td>
|
|
284
|
-
<td></td>
|
|
285
|
-
<td class="paramtype">cl::desc("<input bitcode>") </td>
|
|
286
|
-
<td class="paramname">, </td>
|
|
287
|
-
</tr>
|
|
288
|
-
<tr>
|
|
289
|
-
<td class="paramkey"></td>
|
|
290
|
-
<td></td>
|
|
291
|
-
<td class="paramtype">cl::init("-") </td>
|
|
292
|
-
<td class="paramname"> </td>
|
|
293
|
-
</tr>
|
|
294
|
-
<tr>
|
|
295
|
-
<td></td>
|
|
296
|
-
<td>)</td>
|
|
297
|
-
<td></td><td></td>
|
|
298
|
-
</tr>
|
|
299
|
-
</table>
|
|
300
|
-
</td>
|
|
301
|
-
<td class="mlabels-right">
|
|
302
|
-
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
303
|
-
</tr>
|
|
304
|
-
</table>
|
|
305
|
-
</div><div class="memdoc">
|
|
306
|
-
|
|
307
263
|
</div>
|
|
308
264
|
</div>
|
|
309
265
|
<a id="a3c04138a5bfe5d72780bb7e82a18e627"></a>
|
|
@@ -332,8 +288,8 @@ Functions</h2></td></tr>
|
|
|
332
288
|
</table>
|
|
333
289
|
</div><div class="memdoc">
|
|
334
290
|
|
|
335
|
-
<p class="definition">Definition at line <a class="el" href="dda_8cpp_source.html#
|
|
336
|
-
<div class="fragment"><div class="line"><a name="
|
|
291
|
+
<p class="definition">Definition at line <a class="el" href="dda_8cpp_source.html#l00041">41</a> of file <a class="el" href="dda_8cpp_source.html">dda.cpp</a>.</p>
|
|
292
|
+
<div class="fragment"><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  std::vector<std::string> moduleNameVec;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a62ca9a79ce7b6960e3fc42d8b183bd50">SVFUtil::processArguments</a>(argc, argv, arg_num, arg_value, moduleNameVec);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="stringliteral">"Demand-Driven Points-to Analysis\n"</span>);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">"ir_annotator"</span>)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  LLVMModuleSet::getLLVMModuleSet()->preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()->buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  svfModule-><a class="code" href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">buildSymbolTableInfo</a>();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="classSVF_1_1DDAPass.html">DDAPass</a> *dda = <span class="keyword">new</span> <a class="code" href="classSVF_1_1DDAPass.html">DDAPass</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  dda-><a class="code" href="classSVF_1_1DDAPass.html#af196994d6ec7f5cead72212407842103">runOnModule</a>(svfModule);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> }</div><div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a62ca9a79ce7b6960e3fc42d8b183bd50"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a62ca9a79ce7b6960e3fc42d8b183bd50">SVF::SVFUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &arg_num, char **arg_value, std::vector< std::string > &moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00387">LLVMUtil.cpp:387</a></div></div>
|
|
337
293
|
<div class="ttc" id="classSVF_1_1SVFModule_html"><div class="ttname"><a href="classSVF_1_1SVFModule.html">SVF::SVFModule</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00041">SVFModule.h:41</a></div></div>
|
|
338
294
|
<div class="ttc" id="classSVF_1_1DDAPass_html"><div class="ttname"><a href="classSVF_1_1DDAPass.html">SVF::DDAPass</a></div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00024">DDAPass.h:24</a></div></div>
|
|
339
295
|
<div class="ttc" id="classSVF_1_1DDAPass_html_af196994d6ec7f5cead72212407842103"><div class="ttname"><a href="classSVF_1_1DDAPass.html#af196994d6ec7f5cead72212407842103">SVF::DDAPass::runOnModule</a></div><div class="ttdeci">virtual void runOnModule(SVFModule *module)</div><div class="ttdoc">We start from here. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00032">DDAPass.cpp:32</a></div></div>
|
|
@@ -66,9 +66,8 @@ $(function() {
|
|
|
66
66
|
<div class="title">dda.cpp</div> </div>
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
|
-
<a href="dda_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> // On Demand Value Flow Analysis</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> //</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> // Author: Yulei Sui,</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> */</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> </div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">//#include "AliasUtil/AliasAnalysisCounter.h"</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//#include "MemoryModel/ComTypeModel.h"</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="LLVMUtil_8h.html">SVF-FE/LLVMUtil.h</a>"</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include "<a class="code" href="DDAPass_8h.html">DDA/DDAPass.h</a>"</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include "<a class="code" href="Options_8h.html">Util/Options.h</a>"</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">static</span> cl::opt<std::string> <a class="code" href="dda_8cpp.html#a17d2e24d913aaa7484a3e226255019b7">InputFilename</a>(cl::Positional,</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  cl::desc(<span class="stringliteral">"<input bitcode>"</span>), cl::init(<span class="stringliteral">"-"</span>));</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">static</span> cl::opt<bool></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <a class="code" href="dda_8cpp.html#afffbd7760f0128b74c9dbfd517d0f99e">StandardCompileOpts</a>(<span class="stringliteral">"std-compile-opts"</span>,</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  cl::desc(<span class="stringliteral">"Include the standard compile time optimizations"</span>));</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">//static cl::list<const PassInfo*, bool, PassNameParser></span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">//PassList(cl::desc("Optimizations available:"));</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">static</span> cl::opt<bool> <a class="code" href="dda_8cpp.html#a55c1167d4e6efe7828f050d978291725">DAA</a>(<span class="stringliteral">"daa"</span>, cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  cl::desc(<span class="stringliteral">"Demand-Driven Alias Analysis Pass"</span>));</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">static</span> cl::opt<bool> <a class="code" href="dda_8cpp.html#a5ed1de5ad06cf459c1b4e63685316618">REGPT</a>(<span class="stringliteral">"dreg"</span>, cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  cl::desc(<span class="stringliteral">"Demand-driven regular points-to analysis"</span>));</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">static</span> cl::opt<bool> <a class="code" href="dda_8cpp.html#a3abc2ce6737d192a5c3f967734fe8389">RFINEPT</a>(<span class="stringliteral">"dref"</span>, cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  cl::desc(<span class="stringliteral">"Demand-driven refinement points-to analysis"</span>));</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">static</span> cl::opt<bool> <a class="code" href="dda_8cpp.html#adad2a8a1b2f5bf9f333382725f174cb0">ENABLEFIELD</a>(<span class="stringliteral">"fdaa"</span>, cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  cl::desc(<span class="stringliteral">"enable field-sensitivity for demand-driven analysis"</span>));</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">static</span> cl::opt<bool> <a class="code" href="dda_8cpp.html#a1fe1900e000a62ca91dc0651bfa3a24f">ENABLECONTEXT</a>(<span class="stringliteral">"cdaa"</span>, cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  cl::desc(<span class="stringliteral">"enable context-sensitivity for demand-driven analysis"</span>));</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">static</span> cl::opt<bool> <a class="code" href="dda_8cpp.html#af95c31f8cf35812a4fe4a22342aacaa2">ENABLEFLOW</a>(<span class="stringliteral">"ldaa"</span>, cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  cl::desc(<span class="stringliteral">"enable flow-sensitivity for demand-driven analysis"</span>));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="dda_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 44</a></span> <span class="keywordtype">int</span> <a class="code" href="dda_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  std::vector<std::string> moduleNameVec;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a62ca9a79ce7b6960e3fc42d8b183bd50">SVFUtil::processArguments</a>(argc, argv, arg_num, arg_value, moduleNameVec);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  <span class="stringliteral">"Demand-Driven Points-to Analysis\n"</span>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">"ir_annotator"</span>)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  LLVMModuleSet::getLLVMModuleSet()->preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()->buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  svfModule-><a class="code" href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">buildSymbolTableInfo</a>();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <a class="code" href="classSVF_1_1DDAPass.html">DDAPass</a> *dda = <span class="keyword">new</span> <a class="code" href="classSVF_1_1DDAPass.html">DDAPass</a>();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  dda-><a class="code" href="classSVF_1_1DDAPass.html#af196994d6ec7f5cead72212407842103">runOnModule</a>(svfModule);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="ttc" id="dda_8cpp_html_a17d2e24d913aaa7484a3e226255019b7"><div class="ttname"><a href="dda_8cpp.html#a17d2e24d913aaa7484a3e226255019b7">InputFilename</a></div><div class="ttdeci">static cl::opt< std::string > InputFilename(cl::Positional, cl::desc("<input bitcode>"), cl::init("-"))</div></div>
|
|
70
|
-
<div class="ttc" id="
|
|
71
|
-
<div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="CHG_8h_source.html#l00328">CHG.h:328</a></div></div>
|
|
69
|
+
<a href="dda_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> // On Demand Value Flow Analysis</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> //</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> // Author: Yulei Sui,</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> */</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> </div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">//#include "AliasUtil/AliasAnalysisCounter.h"</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">//#include "MemoryModel/ComTypeModel.h"</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#include "<a class="code" href="LLVMUtil_8h.html">SVF-FE/LLVMUtil.h</a>"</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="preprocessor">#include "<a class="code" href="DDAPass_8h.html">DDA/DDAPass.h</a>"</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include "<a class="code" href="Options_8h.html">Util/Options.h</a>"</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="keyword">using namespace </span><a class="code" href="namespacellvm.html">llvm</a>;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="keyword">static</span> cl::opt<bool></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <a class="code" href="dda_8cpp.html#afffbd7760f0128b74c9dbfd517d0f99e">StandardCompileOpts</a>(<span class="stringliteral">"std-compile-opts"</span>,</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  cl::desc(<span class="stringliteral">"Include the standard compile time optimizations"</span>));</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//static cl::list<const PassInfo*, bool, PassNameParser></span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//PassList(cl::desc("Optimizations available:"));</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="keyword">static</span> cl::opt<bool> <a class="code" href="dda_8cpp.html#a55c1167d4e6efe7828f050d978291725">DAA</a>(<span class="stringliteral">"daa"</span>, cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  cl::desc(<span class="stringliteral">"Demand-Driven Alias Analysis Pass"</span>));</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">static</span> cl::opt<bool> <a class="code" href="dda_8cpp.html#a5ed1de5ad06cf459c1b4e63685316618">REGPT</a>(<span class="stringliteral">"dreg"</span>, cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  cl::desc(<span class="stringliteral">"Demand-driven regular points-to analysis"</span>));</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">static</span> cl::opt<bool> <a class="code" href="dda_8cpp.html#a3abc2ce6737d192a5c3f967734fe8389">RFINEPT</a>(<span class="stringliteral">"dref"</span>, cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  cl::desc(<span class="stringliteral">"Demand-driven refinement points-to analysis"</span>));</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">static</span> cl::opt<bool> <a class="code" href="dda_8cpp.html#adad2a8a1b2f5bf9f333382725f174cb0">ENABLEFIELD</a>(<span class="stringliteral">"fdaa"</span>, cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>  cl::desc(<span class="stringliteral">"enable field-sensitivity for demand-driven analysis"</span>));</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">static</span> cl::opt<bool> <a class="code" href="dda_8cpp.html#a1fe1900e000a62ca91dc0651bfa3a24f">ENABLECONTEXT</a>(<span class="stringliteral">"cdaa"</span>, cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>  cl::desc(<span class="stringliteral">"enable context-sensitivity for demand-driven analysis"</span>));</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">static</span> cl::opt<bool> <a class="code" href="dda_8cpp.html#af95c31f8cf35812a4fe4a22342aacaa2">ENABLEFLOW</a>(<span class="stringliteral">"ldaa"</span>, cl::init(<span class="keyword">false</span>),</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  cl::desc(<span class="stringliteral">"enable flow-sensitivity for demand-driven analysis"</span>));</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="dda_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627"> 41</a></span> <span class="keywordtype">int</span> <a class="code" href="dda_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a>(<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> ** argv)</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  <span class="keywordtype">int</span> arg_num = 0;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keywordtype">char</span> **arg_value = <span class="keyword">new</span> <span class="keywordtype">char</span>*[argc];</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  std::vector<std::string> moduleNameVec;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#a62ca9a79ce7b6960e3fc42d8b183bd50">SVFUtil::processArguments</a>(argc, argv, arg_num, arg_value, moduleNameVec);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  cl::ParseCommandLineOptions(arg_num, arg_value,</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="stringliteral">"Demand-Driven Points-to Analysis\n"</span>);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keywordflow">if</span> (Options::WriteAnder == <span class="stringliteral">"ir_annotator"</span>)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  LLVMModuleSet::getLLVMModuleSet()->preProcessBCs(moduleNameVec);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span> </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* svfModule = LLVMModuleSet::getLLVMModuleSet()->buildSVFModule(moduleNameVec);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  svfModule-><a class="code" href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">buildSymbolTableInfo</a>();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  <a class="code" href="classSVF_1_1DDAPass.html">DDAPass</a> *dda = <span class="keyword">new</span> <a class="code" href="classSVF_1_1DDAPass.html">DDAPass</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>  dda-><a class="code" href="classSVF_1_1DDAPass.html#af196994d6ec7f5cead72212407842103">runOnModule</a>(svfModule);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span> </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span> }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="ttc" id="dda_8cpp_html_a1fe1900e000a62ca91dc0651bfa3a24f"><div class="ttname"><a href="dda_8cpp.html#a1fe1900e000a62ca91dc0651bfa3a24f">ENABLECONTEXT</a></div><div class="ttdeci">static cl::opt< bool > ENABLECONTEXT("cdaa", cl::init(false), cl::desc("enable context-sensitivity for demand-driven analysis"))</div></div>
|
|
70
|
+
<div class="ttc" id="namespacellvm_html"><div class="ttname"><a href="namespacellvm.html">llvm</a></div><div class="ttdef"><b>Definition:</b> <a href="CFLGraph_8h_source.html#l00152">CFLGraph.h:152</a></div></div>
|
|
72
71
|
<div class="ttc" id="dda_8cpp_html_afffbd7760f0128b74c9dbfd517d0f99e"><div class="ttname"><a href="dda_8cpp.html#afffbd7760f0128b74c9dbfd517d0f99e">StandardCompileOpts</a></div><div class="ttdeci">static cl::opt< bool > StandardCompileOpts("std-compile-opts", cl::desc("Include the standard compile time optimizations"))</div></div>
|
|
73
72
|
<div class="ttc" id="dda_8cpp_html_a5ed1de5ad06cf459c1b4e63685316618"><div class="ttname"><a href="dda_8cpp.html#a5ed1de5ad06cf459c1b4e63685316618">REGPT</a></div><div class="ttdeci">static cl::opt< bool > REGPT("dreg", cl::init(false), cl::desc("Demand-driven regular points-to analysis"))</div></div>
|
|
74
73
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a62ca9a79ce7b6960e3fc42d8b183bd50"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a62ca9a79ce7b6960e3fc42d8b183bd50">SVF::SVFUtil::processArguments</a></div><div class="ttdeci">void processArguments(int argc, char **argv, int &arg_num, char **arg_value, std::vector< std::string > &moduleNameVec)</div><div class="ttdoc">Parse argument for multi-module analysis. </div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00387">LLVMUtil.cpp:387</a></div></div>
|
|
@@ -77,12 +76,12 @@ $(function() {
|
|
|
77
76
|
<div class="ttc" id="dda_8cpp_html_a3abc2ce6737d192a5c3f967734fe8389"><div class="ttname"><a href="dda_8cpp.html#a3abc2ce6737d192a5c3f967734fe8389">RFINEPT</a></div><div class="ttdeci">static cl::opt< bool > RFINEPT("dref", cl::init(false), cl::desc("Demand-driven refinement points-to analysis"))</div></div>
|
|
78
77
|
<div class="ttc" id="classSVF_1_1DDAPass_html"><div class="ttname"><a href="classSVF_1_1DDAPass.html">SVF::DDAPass</a></div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8h_source.html#l00024">DDAPass.h:24</a></div></div>
|
|
79
78
|
<div class="ttc" id="classSVF_1_1DDAPass_html_af196994d6ec7f5cead72212407842103"><div class="ttname"><a href="classSVF_1_1DDAPass.html#af196994d6ec7f5cead72212407842103">SVF::DDAPass::runOnModule</a></div><div class="ttdeci">virtual void runOnModule(SVFModule *module)</div><div class="ttdoc">We start from here. </div><div class="ttdef"><b>Definition:</b> <a href="DDAPass_8cpp_source.html#l00032">DDAPass.cpp:32</a></div></div>
|
|
80
|
-
<div class="ttc" id="dda_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="dda_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="dda_8cpp_source.html#
|
|
79
|
+
<div class="ttc" id="dda_8cpp_html_a3c04138a5bfe5d72780bb7e82a18e627"><div class="ttname"><a href="dda_8cpp.html#a3c04138a5bfe5d72780bb7e82a18e627">main</a></div><div class="ttdeci">int main(int argc, char **argv)</div><div class="ttdef"><b>Definition:</b> <a href="dda_8cpp_source.html#l00041">dda.cpp:41</a></div></div>
|
|
81
80
|
<div class="ttc" id="dda_8cpp_html_adad2a8a1b2f5bf9f333382725f174cb0"><div class="ttname"><a href="dda_8cpp.html#adad2a8a1b2f5bf9f333382725f174cb0">ENABLEFIELD</a></div><div class="ttdeci">static cl::opt< bool > ENABLEFIELD("fdaa", cl::init(false), cl::desc("enable field-sensitivity for demand-driven analysis"))</div></div>
|
|
82
81
|
<div class="ttc" id="DDAPass_8h_html"><div class="ttname"><a href="DDAPass_8h.html">DDAPass.h</a></div></div>
|
|
83
82
|
<div class="ttc" id="Options_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
84
83
|
<div class="ttc" id="dda_8cpp_html_af95c31f8cf35812a4fe4a22342aacaa2"><div class="ttname"><a href="dda_8cpp.html#af95c31f8cf35812a4fe4a22342aacaa2">ENABLEFLOW</a></div><div class="ttdeci">static cl::opt< bool > ENABLEFLOW("ldaa", cl::init(false), cl::desc("enable flow-sensitivity for demand-driven analysis"))</div></div>
|
|
85
|
-
<div class="ttc" id="namespaceSVF_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="
|
|
84
|
+
<div class="ttc" id="namespaceSVF_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="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
|
|
86
85
|
<div class="ttc" id="classSVF_1_1SVFModule_html_aa03ab5272652290f30870c6e2d053d98"><div class="ttname"><a href="classSVF_1_1SVFModule.html#aa03ab5272652290f30870c6e2d053d98">SVF::SVFModule::buildSymbolTableInfo</a></div><div class="ttdeci">void buildSymbolTableInfo()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8cpp_source.html#l00030">SVFModule.cpp:30</a></div></div>
|
|
87
86
|
<div class="ttc" id="LLVMUtil_8h_html"><div class="ttname"><a href="LLVMUtil_8h.html">LLVMUtil.h</a></div></div>
|
|
88
87
|
</div><!-- fragment --></div><!-- contents -->
|