svf-tools 1.0.503 → 1.0.506
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/LICENSE.TXT +4 -2
- package/SVF-doxygen/html/html/AbstractPointsToDS_8h_source.html +1 -1
- package/SVF-doxygen/html/html/AndersenHCD_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/AndersenLCD_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +8 -7
- package/SVF-doxygen/html/html/AndersenSFR_8h_source.html +7 -7
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +12 -6
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +21 -17
- package/SVF-doxygen/html/html/Andersen_8h_source.html +10 -9
- package/SVF-doxygen/html/html/BDDExpr_8cpp_source.html +8 -4
- package/SVF-doxygen/html/html/BDDExpr_8h_source.html +5 -5
- package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +6 -6
- package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +5 -4
- package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +7 -6
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CFLGraph_8h_source.html +2 -1
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/CHG_8cpp.html +1 -1
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CHG_8h_source.html +5 -4
- package/SVF-doxygen/html/html/CPPUtil_8cpp.html +2 -2
- package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CPPUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CSC_8cpp_source.html +5 -4
- package/SVF-doxygen/html/html/CSC_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +12 -10
- package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ConsG_8h_source.html +5 -4
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +8 -8
- package/SVF-doxygen/html/html/CoreBitVector_8cpp.html +1 -1
- package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +4 -2
- package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +8 -6
- package/SVF-doxygen/html/html/DCHG_8h_source.html +5 -5
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +6 -4
- package/SVF-doxygen/html/html/DDAStat_8h_source.html +5 -5
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +12 -8
- package/SVF-doxygen/html/html/DPItem_8h_source.html +4 -4
- package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExeState_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ExeState_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ExtAPI_8cpp.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +2 -2
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +17 -12
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +6 -6
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +4 -4
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +12 -10
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +19 -15
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +6 -6
- package/SVF-doxygen/html/html/GenericGraph_8h_source.html +5 -5
- package/SVF-doxygen/html/html/GrammarBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +6 -6
- 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/LLVMLoopAnalysis_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/LLVMModule_8cpp.html +25 -7
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +12 -7
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +15 -14
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +5 -3
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LocationSet_8cpp_source.html +7 -4
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +6 -5
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +8 -8
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MHP_8cpp.html +1 -1
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +19 -13
- package/SVF-doxygen/html/html/MHP_8h_source.html +10 -6
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +11 -8
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +12 -6
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +4 -4
- 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 +6 -6
- package/SVF-doxygen/html/html/MTA_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +11 -2
- package/SVF-doxygen/html/html/MemPartition_8h_source.html +4 -4
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +19 -11
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +12 -7
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +5 -5
- package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +8 -4
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +4 -4
- package/SVF-doxygen/html/html/OfflineConsG_8cpp_source.html +6 -2
- package/SVF-doxygen/html/html/OfflineConsG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/PCG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +6 -4
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +8 -7
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +8 -6
- package/SVF-doxygen/html/html/PTAStat_8h_source.html +4 -4
- package/SVF-doxygen/html/html/PathCondAllocator_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/PathCondAllocator_8h_source.html +5 -5
- package/SVF-doxygen/html/html/PersistentPointsToCache_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PersistentPointsToDS_8h_source.html +2 -2
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +12 -10
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +16 -13
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +9 -9
- package/SVF-doxygen/html/html/PointsTo_8cpp_source.html +36 -24
- package/SVF-doxygen/html/html/PointsTo_8h.html +1 -0
- package/SVF-doxygen/html/html/PointsTo_8h_source.html +34 -33
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +8 -5
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SCC_8h_source.html +7 -4
- package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +27 -29
- package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +76 -73
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +7 -5
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +8 -5
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +8 -6
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +6 -5
- package/SVF-doxygen/html/html/SVFGStat_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +11 -9
- package/SVF-doxygen/html/html/SVFG_8h_source.html +5 -5
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +4 -3
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +7 -7
- package/SVF-doxygen/html/html/SVFLoop_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +8 -5
- package/SVF-doxygen/html/html/SVFUtil_8h.html +4 -4
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +17 -11
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +2 -2
- 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_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SparseBitVector_8h.html +201 -0
- package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +179 -0
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +10 -7
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +4 -4
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SymState_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +5 -5
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +8 -7
- package/SVF-doxygen/html/html/TCT_8h_source.html +10 -7
- package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +8 -5
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +4 -4
- 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/Util_2BasicTypes_8h_source.html +7 -7
- package/SVF-doxygen/html/html/VFGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +6 -6
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +7 -5
- package/SVF-doxygen/html/html/VFG_8h_source.html +5 -5
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +15 -10
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +7 -7
- package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +6 -3
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +3 -3
- package/SVF-doxygen/html/html/WPASolver_8h_source.html +3 -3
- 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 +169 -162
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +53 -41
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHCD.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1AndersenHLCD.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1AndersenLCD.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +19 -17
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +16 -10
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BDDExprManager.html +17 -10
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +26 -22
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CSC.html +8 -6
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +8 -7
- package/SVF-doxygen/html/html/classSVF_1_1CondPointsToSet.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +18 -16
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +12 -10
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +36 -33
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +50 -42
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DummyVersionPropSVFGNode.html +4 -3
- package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FileChecker.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +64 -51
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +18 -15
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +23 -21
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +6 -5
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase_1_1SymbolHash.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFGStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +40 -39
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +53 -48
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet-members.html +25 -24
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +85 -45
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +13 -9
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +40 -40
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +56 -43
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +153 -125
- package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +13 -10
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +24 -15
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +44 -36
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MemRegion.html +12 -8
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +4 -2
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1OfflineConsG.html +10 -7
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +8 -6
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +5 -3
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +13 -10
- package/SVF-doxygen/html/html/classSVF_1_1PathCondAllocator.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDFPTData.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PersistentDiffPTData.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPTData.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1PersistentPointsToCache.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +214 -206
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator-members.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo_1_1PointsToIterator.html +83 -75
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +13 -7
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SCCDetection.html +11 -8
- package/SVF-doxygen/html/html/classSVF_1_1SCCDetection_1_1GNodeSCCInfo.html +8 -7
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +49 -40
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +34 -29
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +11 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +11 -10
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +46 -46
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector-members.html +117 -0
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector.html +1358 -0
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator-members.html +95 -0
- package/SVF-doxygen/html/html/classSVF_1_1SparseBitVector_1_1SparseBitVectorIterator.html +594 -0
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +13 -12
- package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +12 -9
- package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +5 -4
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +44 -39
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +11 -10
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +2 -1
- package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +4 -3
- package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +14 -11
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +4 -3
- package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +1 -1
- package/SVF-doxygen/html/html/classes.html +107 -106
- package/SVF-doxygen/html/html/dir_95e22971b5dbae2382075a3453e365b4.html +2 -0
- package/SVF-doxygen/html/html/files.html +8 -7
- package/SVF-doxygen/html/html/functions_a.html +12 -3
- package/SVF-doxygen/html/html/functions_b.html +27 -5
- package/SVF-doxygen/html/html/functions_c.html +25 -14
- package/SVF-doxygen/html/html/functions_e.html +20 -2
- package/SVF-doxygen/html/html/functions_eval_b.html +10 -0
- package/SVF-doxygen/html/html/functions_f.html +31 -13
- package/SVF-doxygen/html/html/functions_func.html +8 -2
- package/SVF-doxygen/html/html/functions_func_b.html +4 -3
- package/SVF-doxygen/html/html/functions_func_c.html +24 -16
- package/SVF-doxygen/html/html/functions_func_e.html +5 -2
- package/SVF-doxygen/html/html/functions_func_f.html +19 -1
- package/SVF-doxygen/html/html/functions_func_g.html +13 -10
- package/SVF-doxygen/html/html/functions_func_i.html +18 -8
- package/SVF-doxygen/html/html/functions_func_o.html +19 -8
- package/SVF-doxygen/html/html/functions_func_r.html +4 -2
- package/SVF-doxygen/html/html/functions_func_s.html +16 -5
- package/SVF-doxygen/html/html/functions_func_t.html +4 -0
- package/SVF-doxygen/html/html/functions_func_u.html +3 -0
- package/SVF-doxygen/html/html/functions_func_w.html +3 -0
- package/SVF-doxygen/html/html/functions_g.html +16 -13
- package/SVF-doxygen/html/html/functions_i.html +24 -12
- package/SVF-doxygen/html/html/functions_l.html +3 -3
- package/SVF-doxygen/html/html/functions_o.html +28 -17
- package/SVF-doxygen/html/html/functions_p.html +19 -17
- package/SVF-doxygen/html/html/functions_r.html +5 -5
- package/SVF-doxygen/html/html/functions_s.html +25 -11
- package/SVF-doxygen/html/html/functions_t.html +14 -8
- package/SVF-doxygen/html/html/functions_type_b.html +3 -0
- package/SVF-doxygen/html/html/functions_type_e.html +9 -0
- package/SVF-doxygen/html/html/functions_type_i.html +1 -0
- package/SVF-doxygen/html/html/functions_type_s.html +3 -0
- package/SVF-doxygen/html/html/functions_u.html +3 -0
- package/SVF-doxygen/html/html/functions_v.html +3 -3
- package/SVF-doxygen/html/html/functions_vars_a.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_b.html +10 -0
- package/SVF-doxygen/html/html/functions_vars_c.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_e.html +6 -0
- package/SVF-doxygen/html/html/functions_vars_i.html +3 -0
- package/SVF-doxygen/html/html/functions_vars_s.html +1 -1
- package/SVF-doxygen/html/html/functions_vars_w.html +3 -0
- package/SVF-doxygen/html/html/functions_w.html +11 -11
- package/SVF-doxygen/html/html/globals_defs_h.html +6 -0
- package/SVF-doxygen/html/html/globals_defs_s.html +5 -2
- package/SVF-doxygen/html/html/globals_h.html +8 -2
- package/SVF-doxygen/html/html/globals_s.html +14 -11
- package/SVF-doxygen/html/html/hierarchy.html +161 -154
- package/SVF-doxygen/html/html/menudata.js +2 -1
- package/SVF-doxygen/html/html/namespaceSVF.html +559 -70
- package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +5 -5
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +27 -23
- package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +3 -3
- package/SVF-doxygen/html/html/namespacemembers_c.html +9 -0
- package/SVF-doxygen/html/html/namespacemembers_d.html +4 -1
- package/SVF-doxygen/html/html/namespacemembers_enum.html +3 -0
- package/SVF-doxygen/html/html/namespacemembers_eval.html +9 -0
- package/SVF-doxygen/html/html/namespacemembers_func.html +20 -2
- package/SVF-doxygen/html/html/namespacemembers_n.html +1 -1
- package/SVF-doxygen/html/html/namespacemembers_o.html +7 -1
- package/SVF-doxygen/html/html/namespacemembers_s.html +0 -3
- package/SVF-doxygen/html/html/namespacemembers_type.html +1 -4
- package/SVF-doxygen/html/html/namespacemembers_z.html +85 -0
- package/SVF-doxygen/html/html/search/all_1.js +3 -1
- package/SVF-doxygen/html/html/search/all_10.js +10 -8
- package/SVF-doxygen/html/html/search/all_12.js +2 -2
- package/SVF-doxygen/html/html/search/all_13.js +16 -11
- package/SVF-doxygen/html/html/search/all_14.js +9 -8
- package/SVF-doxygen/html/html/search/all_15.js +2 -1
- package/SVF-doxygen/html/html/search/all_16.js +2 -2
- package/SVF-doxygen/html/html/search/all_17.js +3 -2
- package/SVF-doxygen/html/html/search/all_1a.js +4 -0
- package/SVF-doxygen/html/html/search/all_2.js +8 -3
- package/SVF-doxygen/html/html/search/all_3.js +7 -3
- package/SVF-doxygen/html/html/search/all_4.js +1 -1
- package/SVF-doxygen/html/html/search/all_5.js +7 -3
- package/SVF-doxygen/html/html/search/all_6.js +8 -3
- package/SVF-doxygen/html/html/search/all_7.js +1 -0
- package/SVF-doxygen/html/html/search/all_8.js +3 -1
- package/SVF-doxygen/html/html/search/all_9.js +8 -6
- 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 +2 -2
- package/SVF-doxygen/html/html/search/all_f.js +15 -15
- package/SVF-doxygen/html/html/search/classes_10.js +1 -0
- package/SVF-doxygen/html/html/search/classes_7.js +1 -1
- package/SVF-doxygen/html/html/search/classes_9.js +1 -0
- package/SVF-doxygen/html/html/search/classes_d.js +2 -0
- package/SVF-doxygen/html/html/search/classes_f.js +3 -0
- package/SVF-doxygen/html/html/search/defines_6.js +2 -0
- package/SVF-doxygen/html/html/search/defines_f.js +2 -1
- package/SVF-doxygen/html/html/search/enums_d.html +26 -0
- package/SVF-doxygen/html/html/search/enums_d.js +4 -0
- package/SVF-doxygen/html/html/search/enumvalues_1.js +3 -0
- package/SVF-doxygen/html/html/search/enumvalues_14.js +3 -2
- package/SVF-doxygen/html/html/search/files_d.js +1 -0
- package/SVF-doxygen/html/html/search/functions_0.js +2 -0
- package/SVF-doxygen/html/html/search/functions_1.js +1 -1
- package/SVF-doxygen/html/html/search/functions_10.js +1 -1
- package/SVF-doxygen/html/html/search/functions_11.js +4 -1
- package/SVF-doxygen/html/html/search/functions_12.js +2 -2
- package/SVF-doxygen/html/html/search/functions_13.js +1 -0
- package/SVF-doxygen/html/html/search/functions_15.js +1 -0
- package/SVF-doxygen/html/html/search/functions_2.js +6 -3
- package/SVF-doxygen/html/html/search/functions_3.js +1 -1
- package/SVF-doxygen/html/html/search/functions_4.js +2 -2
- package/SVF-doxygen/html/html/search/functions_5.js +6 -1
- package/SVF-doxygen/html/html/search/functions_6.js +1 -0
- package/SVF-doxygen/html/html/search/functions_8.js +4 -2
- package/SVF-doxygen/html/html/search/functions_e.js +12 -12
- package/SVF-doxygen/html/html/search/searchdata.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_1.js +1 -0
- package/SVF-doxygen/html/html/search/typedefs_11.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_4.js +3 -0
- package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_d.js +1 -1
- package/SVF-doxygen/html/html/search/variables_1.js +1 -1
- package/SVF-doxygen/html/html/search/variables_13.js +1 -1
- package/SVF-doxygen/html/html/search/variables_14.js +3 -3
- package/SVF-doxygen/html/html/search/variables_15.js +1 -1
- package/SVF-doxygen/html/html/search/variables_17.js +1 -0
- package/SVF-doxygen/html/html/search/variables_2.js +3 -1
- package/SVF-doxygen/html/html/search/variables_3.js +1 -0
- package/SVF-doxygen/html/html/search/variables_5.js +2 -1
- package/SVF-doxygen/html/html/search/variables_9.js +1 -0
- package/SVF-doxygen/html/html/search/variables_e.js +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1GrammarBase_1_1Symbol.html +4 -4
- package/SVF-doxygen/html/html/structSVF_1_1Hash.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01std_1_1pair_3_01S_00_01T_01_4_01_4.html +5 -5
- package/SVF-doxygen/html/html/structSVF_1_1LeadingZerosCounter-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1LeadingZerosCounter.html +138 -0
- package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter.html +129 -0
- package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter_3_01T_00_018_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter_3_01T_00_018_01_4.html +129 -0
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1equalNodeBS.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement-members.html +107 -0
- package/SVF-doxygen/html/html/structSVF_1_1SparseBitVectorElement.html +981 -0
- package/SVF-doxygen/html/html/structSVF_1_1TrailingZerosCounter-members.html +81 -0
- package/SVF-doxygen/html/html/structSVF_1_1TrailingZerosCounter.html +138 -0
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CondStdSet_3_01Element_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtDPItem_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1ExeState_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1LocationSet_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1PointsTo_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4-members.html +81 -0
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +136 -0
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1StmtDPItem_3_01LocCond_01_4_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SymState_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +3 -3
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +6 -6
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +6 -6
- package/include/MemoryModel/PointsTo.h +3 -2
- package/include/SVF-FE/LLVMModule.h +3 -0
- package/include/Util/SVFBasicTypes.h +6 -5
- package/include/Util/SparseBitVector.h +1208 -0
- package/lib/MemoryModel/PointsTo.cpp +12 -12
- package/lib/SVF-FE/LLVMModule.cpp +157 -18
- package/lib/Util/CoreBitVector.cpp +2 -2
- package/lib/WPA/Andersen.cpp +1 -1
- package/lib/WPA/FlowSensitive.cpp +1 -1
- package/package.json +1 -1
package/LICENSE.TXT
CHANGED
|
@@ -32,9 +32,11 @@ which apply to that code.
|
|
|
32
32
|
The following pieces of software have additional or alternate copyrights,
|
|
33
33
|
licenses, and/or restrictions:
|
|
34
34
|
|
|
35
|
-
Program Directory
|
|
36
|
-
-------
|
|
35
|
+
Program Directory/File
|
|
36
|
+
------- --------------
|
|
37
37
|
CUDD-2.5.0 include/CUDD/
|
|
38
38
|
lib/CUDD/
|
|
39
39
|
fastcluster/hclust-cpp include/FastCluster/
|
|
40
40
|
lib/FastCluster/
|
|
41
|
+
LLVM's SparseBitVector include/Util/SparseBitVector.h
|
|
42
|
+
(no LICENSE.TXT; see comment)
|
|
@@ -81,7 +81,7 @@ $(function() {
|
|
|
81
81
|
<div class="ttc" id="classSVF_1_1PTData_html_a9ae6037637d8b9acb323333f491f4a7d"><div class="ttname"><a href="classSVF_1_1PTData.html#a9ae6037637d8b9acb323333f491f4a7d">SVF::PTData::getPts</a></div><div class="ttdeci">virtual const DataSet & getPts(const Key &var)=0</div><div class="ttdoc">Get points-to set of var. </div></div>
|
|
82
82
|
<div class="ttc" id="classSVF_1_1DFPTData_html"><div class="ttname"><a href="classSVF_1_1DFPTData.html">SVF::DFPTData</a></div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00160">AbstractPointsToDS.h:160</a></div></div>
|
|
83
83
|
<div class="ttc" id="classSVF_1_1DiffPTData_html_a76b2abf95bf425044e8a6c4141bd470b"><div class="ttname"><a href="classSVF_1_1DiffPTData.html#a76b2abf95bf425044e8a6c4141bd470b">SVF::DiffPTData::PTDataTy</a></div><div class="ttdeci">BasePTData::PTDataTy PTDataTy</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00119">AbstractPointsToDS.h:119</a></div></div>
|
|
84
|
-
<div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
84
|
+
<div class="ttc" id="namespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00110">SVFBasicTypes.h:110</a></div></div>
|
|
85
85
|
<div class="ttc" id="classSVF_1_1PTData_html_ad45879017d8fdeedc987ce35c4eba1a5"><div class="ttname"><a href="classSVF_1_1PTData.html#ad45879017d8fdeedc987ce35c4eba1a5">SVF::PTData::clear</a></div><div class="ttdeci">virtual void clear()=0</div><div class="ttdoc">Clears all points-to sets as if nothing is stored. </div></div>
|
|
86
86
|
<div class="ttc" id="classSVF_1_1VersionedPTData_html_a9833b47df24ed821a55d5ce9a3917f1f"><div class="ttname"><a href="classSVF_1_1VersionedPTData.html#a9833b47df24ed821a55d5ce9a3917f1f">SVF::VersionedPTData::BasePTData</a></div><div class="ttdeci">PTData< Key, KeySet, Data, DataSet > BasePTData</div><div class="ttdef"><b>Definition:</b> <a href="AbstractPointsToDS_8h_source.html#l00238">AbstractPointsToDS.h:238</a></div></div>
|
|
87
87
|
<div class="ttc" id="SVFBasicTypes_8h_html"><div class="ttname"><a href="SVFBasicTypes_8h.html">SVFBasicTypes.h</a></div></div>
|
|
@@ -69,13 +69,13 @@ $(function() {
|
|
|
69
69
|
<a href="AndersenHCD_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">//===- AndersenHCD.cpp -- HCD based Field-sensitive Andersen's analysis-------------------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * AndersenHCD.cpp</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * Created on: 09 Oct. 2018</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Author: Yuxiang Lei</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="Andersen_8h.html">WPA/Andersen.h</a>"</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="PointsTo_8h.html">MemoryModel/PointsTo.h</a>"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVFUtil.html">SVFUtil</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <a class="code" href="classSVF_1_1AndersenHCD.html">AndersenHCD</a> *<a class="code" href="classSVF_1_1AndersenHCD.html#a2356a7f8215725d2ee035630b1487b05">AndersenHCD::hcdAndersen</a> = <span class="keyword">nullptr</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> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">// --- Methods of AndersenHCD ---</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> </div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="classSVF_1_1AndersenHCD.html#aaac9cac7fc5696adb585abd9d67f8c14"> 45</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1AndersenHCD.html#aaac9cac7fc5696adb585abd9d67f8c14">AndersenHCD::initialize</a>()</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>  <a class="code" href="classSVF_1_1Andersen.html#a20617a69c112ad423b1b5021e48a8548">Andersen::initialize</a>();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="comment">// Build offline constraint graph and solve its constraints</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  oCG = <span class="keyword">new</span> <a class="code" href="classSVF_1_1OfflineConsG.html">OfflineConsG</a>(pag);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <a class="code" href="classSVF_1_1SCCDetection.html">OSCC</a>* oscc = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SCCDetection.html">OSCC</a>(oCG);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  oscc-><a class="code" href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">find</a>();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  oCG->solveOfflineSCC(oscc);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  <span class="keyword">delete</span> oscc;</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="l00059"></a><span class="lineno"><a class="line" href="classSVF_1_1AndersenHCD.html#ae3ac936d1ae3e46a9110b8c8ed9f279c"> 59</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1AndersenHCD.html#ae3ac936d1ae3e46a9110b8c8ed9f279c">AndersenHCD::solveWorklist</a>()</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keywordflow">while</span> (!isWorklistEmpty())</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = popFromWorklist();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  collapsePWCNode(nodeId);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span> </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="comment">//Merge detected offline SCC cycles</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  mergeSCC(nodeId);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">// Keep solving until workList is empty.</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  processNode(nodeId);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  collapseFields();</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classSVF_1_1AndersenHCD.html#a2bbd6a0af75b17a70b1451a69cc3d5d7"> 78</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1AndersenHCD.html#a2bbd6a0af75b17a70b1451a69cc3d5d7">AndersenHCD::mergeSCC</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span> (hasOfflineRep(nodeId))</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="comment">// get offline rep node</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> oRep = getOfflineRep(nodeId);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="comment">// get online rep node</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rep = consCG->sccRepNode(oRep);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a> &pts = getPts(nodeId);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1PointsTo_1_1PointsToIterator.html">PointsTo::iterator</a> ptIt = pts.<a class="code" href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">begin</a>(), ptEit = pts.<a class="code" href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">end</a>(); ptIt != ptEit; ++ptIt)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> tgt = *ptIt;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* tgtNode = consCG->getConstraintNode(tgt);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">if</span> (!tgtNode-><a class="code" href="classSVF_1_1ConstraintNode.html#a2d37b9e477f8ddc9f9b517b9e2867d44">getDirectInEdges</a>().empty())</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">if</span> (tgtNode-><a class="code" href="classSVF_1_1ConstraintNode.html#a9058618987da9d21156cea72a5d5ddad">getAddrOutEdges</a>().size() > 1)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <a class="code" href="util_8h.html#a07d17d6d5d1074c0969bc5d3c3d1d84a">assert</a>(!oCG->isaRef(tgt) && <span class="stringliteral">"Point-to target should not be a ref node!"</span>);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  mergeNodeAndPts(tgt, rep);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classSVF_1_1AndersenHCD.html#afea4ecab92720da2f5dad27840ac1e57"> 104</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1AndersenHCD.html#afea4ecab92720da2f5dad27840ac1e57">AndersenHCD::mergeNodeAndPts</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> node, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> rep)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  node = sccRepNode(node);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  rep = sccRepNode(rep);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">if</span> (!isaMergedNode(node))</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">if</span> (unionPts(rep, node))</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  pushIntoWorklist(rep);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="comment">// Once a 'Node' is merged to its rep, it is collapsed,</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="comment">// only its 'NodeID' remaining in the set 'subNodes' of its rep node.</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  mergeNodeToRep(node, rep);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  setMergedNode(node);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> }</div><div class="ttc" id="Andersen_8h_html"><div class="ttname"><a href="Andersen_8h.html">Andersen.h</a></div></div>
|
|
70
70
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
|
|
71
71
|
<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>
|
|
72
|
-
<div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#
|
|
72
|
+
<div class="ttc" id="classSVF_1_1PointsTo_1_1PointsToIterator_html"><div class="ttname"><a href="classSVF_1_1PointsTo_1_1PointsToIterator.html">SVF::PointsTo::PointsToIterator</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00181">PointsTo.h:181</a></div></div>
|
|
73
73
|
<div class="ttc" id="classSVF_1_1AndersenHCD_html_aaac9cac7fc5696adb585abd9d67f8c14"><div class="ttname"><a href="classSVF_1_1AndersenHCD.html#aaac9cac7fc5696adb585abd9d67f8c14">SVF::AndersenHCD::initialize</a></div><div class="ttdeci">virtual void initialize()</div><div class="ttdef"><b>Definition:</b> <a href="AndersenHCD_8cpp_source.html#l00045">AndersenHCD.cpp:45</a></div></div>
|
|
74
74
|
<div class="ttc" id="classSVF_1_1SCCDetection_html_a123b5006a6da7053e5e357140da3c5a3"><div class="ttname"><a href="classSVF_1_1SCCDetection.html#a123b5006a6da7053e5e357140da3c5a3">SVF::SCCDetection::find</a></div><div class="ttdeci">void find(void)</div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00308">SCC.h:308</a></div></div>
|
|
75
75
|
<div class="ttc" id="classSVF_1_1AndersenHCD_html_a2356a7f8215725d2ee035630b1487b05"><div class="ttname"><a href="classSVF_1_1AndersenHCD.html#a2356a7f8215725d2ee035630b1487b05">SVF::AndersenHCD::hcdAndersen</a></div><div class="ttdeci">static AndersenHCD * hcdAndersen</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00555">Andersen.h:555</a></div></div>
|
|
76
76
|
<div class="ttc" id="classSVF_1_1OfflineConsG_html"><div class="ttname"><a href="classSVF_1_1OfflineConsG.html">SVF::OfflineConsG</a></div><div class="ttdef"><b>Definition:</b> <a href="OfflineConsG_8h_source.html#l00044">OfflineConsG.h:44</a></div></div>
|
|
77
77
|
<div class="ttc" id="classSVF_1_1SCCDetection_html"><div class="ttname"><a href="classSVF_1_1SCCDetection.html">SVF::SCCDetection</a></div><div class="ttdef"><b>Definition:</b> <a href="SCC_8h_source.html#l00054">SCC.h:54</a></div></div>
|
|
78
|
-
<div class="ttc" id="classSVF_1_1PointsTo_html_aa53962e561399bf493d1f2b9137356f6"><div class="ttname"><a href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">SVF::PointsTo::begin</a></div><div class="ttdeci">const_iterator begin(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#
|
|
78
|
+
<div class="ttc" id="classSVF_1_1PointsTo_html_aa53962e561399bf493d1f2b9137356f6"><div class="ttname"><a href="classSVF_1_1PointsTo.html#aa53962e561399bf493d1f2b9137356f6">SVF::PointsTo::begin</a></div><div class="ttdeci">const_iterator begin(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00128">PointsTo.h:128</a></div></div>
|
|
79
79
|
<div class="ttc" id="classSVF_1_1AndersenHCD_html_a2bbd6a0af75b17a70b1451a69cc3d5d7"><div class="ttname"><a href="classSVF_1_1AndersenHCD.html#a2bbd6a0af75b17a70b1451a69cc3d5d7">SVF::AndersenHCD::mergeSCC</a></div><div class="ttdeci">virtual void mergeSCC(NodeID nodeId)</div><div class="ttdef"><b>Definition:</b> <a href="AndersenHCD_8cpp_source.html#l00078">AndersenHCD.cpp:78</a></div></div>
|
|
80
80
|
<div class="ttc" id="classSVF_1_1ConstraintNode_html_a9058618987da9d21156cea72a5d5ddad"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#a9058618987da9d21156cea72a5d5ddad">SVF::ConstraintNode::getAddrOutEdges</a></div><div class="ttdeci">const ConstraintEdge::ConstraintEdgeSetTy & getAddrOutEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00160">ConsGNode.h:160</a></div></div>
|
|
81
81
|
<div class="ttc" id="classSVF_1_1AndersenHCD_html"><div class="ttname"><a href="classSVF_1_1AndersenHCD.html">SVF::AndersenHCD</a></div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00548">Andersen.h:548</a></div></div>
|
|
@@ -86,8 +86,8 @@ $(function() {
|
|
|
86
86
|
<div class="ttc" id="classSVF_1_1AndersenHCD_html_ae3ac936d1ae3e46a9110b8c8ed9f279c"><div class="ttname"><a href="classSVF_1_1AndersenHCD.html#ae3ac936d1ae3e46a9110b8c8ed9f279c">SVF::AndersenHCD::solveWorklist</a></div><div class="ttdeci">virtual void solveWorklist()</div><div class="ttdef"><b>Definition:</b> <a href="AndersenHCD_8cpp_source.html#l00059">AndersenHCD.cpp:59</a></div></div>
|
|
87
87
|
<div class="ttc" id="classSVF_1_1AndersenHCD_html_afea4ecab92720da2f5dad27840ac1e57"><div class="ttname"><a href="classSVF_1_1AndersenHCD.html#afea4ecab92720da2f5dad27840ac1e57">SVF::AndersenHCD::mergeNodeAndPts</a></div><div class="ttdeci">void mergeNodeAndPts(NodeID node, NodeID tgt)</div><div class="ttdef"><b>Definition:</b> <a href="AndersenHCD_8cpp_source.html#l00104">AndersenHCD.cpp:104</a></div></div>
|
|
88
88
|
<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>
|
|
89
|
-
<div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#
|
|
90
|
-
<div class="ttc" id="classSVF_1_1PointsTo_html_a8f741cdffbf3c5fe0f602cdca677dee6"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">SVF::PointsTo::end</a></div><div class="ttdeci">const_iterator end(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#
|
|
89
|
+
<div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
|
|
90
|
+
<div class="ttc" id="classSVF_1_1PointsTo_html_a8f741cdffbf3c5fe0f602cdca677dee6"><div class="ttname"><a href="classSVF_1_1PointsTo.html#a8f741cdffbf3c5fe0f602cdca677dee6">SVF::PointsTo::end</a></div><div class="ttdeci">const_iterator end(void) const</div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00132">PointsTo.h:132</a></div></div>
|
|
91
91
|
<div class="ttc" id="classSVF_1_1ConstraintNode_html_a2d37b9e477f8ddc9f9b517b9e2867d44"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#a2d37b9e477f8ddc9f9b517b9e2867d44">SVF::ConstraintNode::getDirectInEdges</a></div><div class="ttdeci">const ConstraintEdge::ConstraintEdgeSetTy & getDirectInEdges() const</div><div class="ttdoc">Return constraint edges. </div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00116">ConsGNode.h:116</a></div></div>
|
|
92
92
|
</div><!-- fragment --></div><!-- contents -->
|
|
93
93
|
<!-- start footer part -->
|
|
@@ -67,9 +67,9 @@ $(function() {
|
|
|
67
67
|
</div><!--header-->
|
|
68
68
|
<div class="contents">
|
|
69
69
|
<a href="AndersenLCD_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">//===- AndersenLCD.cpp -- LCD based field-sensitive Andersen's analysis-------//</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">//</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">// SVF: Static Value-Flow Analysis</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">//</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">// Copyright (C) <2013-2017> <Yulei Sui></span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">//</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">// This program is free software: you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">// it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">// the Free Software Foundation, either version 3 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">// (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">// This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">// but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">// GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">// You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">// along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">//</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">//===----------------------------------------------------------------------===//</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">/*</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment"> * AndersenLCD.cpp</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment"> *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment"> * Created on: 13 Sep. 2018</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * Author: Yuxiang Lei</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="comment"> */</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="Andersen_8h.html">WPA/Andersen.h</a>"</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "<a class="code" href="PointsTo_8h.html">MemoryModel/PointsTo.h</a>"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVF.html">SVF</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">using namespace </span><a class="code" href="namespaceSVFUtil.html">SVFUtil</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <a class="code" href="classSVF_1_1AndersenLCD.html">AndersenLCD</a>* <a class="code" href="classSVF_1_1AndersenLCD.html#ae4e979d6e7fa83c8961d0caf0ca0f54e">AndersenLCD::lcdAndersen</a> = <span class="keyword">nullptr</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> </div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="classSVF_1_1AndersenLCD.html#a52399086e540c2adabc03a978155f55d"> 39</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1AndersenLCD.html#a52399086e540c2adabc03a978155f55d">AndersenLCD::solveWorklist</a>()</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="keywordflow">while</span> (!isWorklistEmpty())</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>  <span class="comment">// Merge detected SCC cycles</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  mergeSCC();</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>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = popFromWorklist();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  collapsePWCNode(nodeId);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="comment">// Keep solving until workList is empty.</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  processNode(nodeId);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  collapseFields();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classSVF_1_1AndersenLCD.html#a139d80e25fe713194f719581915d36d5"> 57</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1AndersenLCD.html#a139d80e25fe713194f719581915d36d5">AndersenLCD::handleCopyGep</a>(<a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* node)</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>  <span class="keywordtype">double</span> propStart = stat->getClk();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId = node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  computeDiffPts(nodeId);</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>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge : node-><a class="code" href="classSVF_1_1ConstraintNode.html#ab77173aa8af6155b569f20ff0cdcec72">getCopyOutEdges</a>())</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> dstNodeId = edge->getDstID();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& srcPts = getPts(nodeId);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1PointsTo.html">PointsTo</a>& dstPts = getPts(dstNodeId);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="comment">// In one edge, if the pts of src node equals to that of dst node, and the edge</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="comment">// is never met, push it into 'metEdges' and push the dst node into 'lcdCandidates'</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">if</span> (!srcPts.<a class="code" href="classSVF_1_1PointsTo.html#ac4688413177b49b37dbbfd3ed188d59b">empty</a>() && srcPts == dstPts && !isMetEdge(edge))</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  addMetEdge(edge);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  addLCDCandidate((edge)->getDstID());</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  processCopy(nodeId, edge);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <span class="keywordflow">for</span> (<a class="code" href="classSVF_1_1ConstraintEdge.html">ConstraintEdge</a>* edge : node-><a class="code" href="classSVF_1_1ConstraintNode.html#a19d3d2c996ba821227a836717e5443c8">getGepOutEdges</a>())</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1GepCGEdge.html">GepCGEdge</a>* gepEdge = SVFUtil::dyn_cast<GepCGEdge>(edge))</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  processGep(nodeId, gepEdge);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  <span class="keywordtype">double</span> propEnd = stat->getClk();</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  timeOfProcessCopyGep += (propEnd - propStart) / <a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classSVF_1_1AndersenLCD.html#a132fe3985f04b55b5e172649db7e44d7"> 91</a></span> <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1AndersenLCD.html#a132fe3985f04b55b5e172649db7e44d7">AndersenLCD::mergeSCC</a>()</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">if</span> (hasLCDCandidate())</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  SCCDetect();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  cleanLCDCandidate();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> </div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classSVF_1_1AndersenLCD.html#a078a58b3b3f18cca4e09ff5a9a8ed791"> 103</a></span> <a class="code" href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">NodeStack</a>& <a class="code" href="classSVF_1_1AndersenLCD.html#a078a58b3b3f18cca4e09ff5a9a8ed791">AndersenLCD::SCCDetect</a>()</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  numOfSCCDetection++;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span> </div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <a class="code" href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">NodeSet</a> sccCandidates;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  sccCandidates.clear();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">for</span> (NodeSet::iterator it = lcdCandidates.begin(); it != lcdCandidates.end(); ++it)</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">if</span> (sccRepNode(*it) == *it)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  sccCandidates.insert(*it);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span> </div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordtype">double</span> sccStart = stat->getClk();</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  getSCCDetector()->find(sccCandidates);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  <span class="keywordtype">double</span> sccEnd = stat->getClk();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  timeOfSCCDetection += (sccEnd - sccStart) / <a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> </div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordtype">double</span> mergeStart = stat->getClk();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  mergeSccCycle();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordtype">double</span> mergeEnd = stat->getClk();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  timeOfSCCMerges += (mergeEnd - mergeStart) / <a class="code" href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">return</span> getSCCDetector()->topoNodeStack();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span> </div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classSVF_1_1AndersenLCD.html#ac78efb1e4246c06c64dad1d368ed032d"> 131</a></span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1AndersenLCD.html#ac78efb1e4246c06c64dad1d368ed032d">AndersenLCD::mergeSrcToTgt</a>(<a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> nodeId, <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a> newRepId)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span> {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span> </div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">if</span>(nodeId==newRepId)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span> </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  updatePropaPts(newRepId, nodeId);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  unionPts(newRepId,nodeId);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  pushIntoWorklist(newRepId);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="classSVF_1_1ConstraintNode.html">ConstraintNode</a>* node = consCG->getConstraintNode(nodeId);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordtype">bool</span> gepInsideScc = consCG->moveEdgesToRepNode(node, consCG->getConstraintNode(newRepId));</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  updateNodeRepAndSubs(node-><a class="code" href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">getId</a>(),newRepId);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  consCG->removeConstraintNode(node);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span> </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  <span class="keywordflow">return</span> gepInsideScc;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> }</div><div class="ttc" id="Andersen_8h_html"><div class="ttname"><a href="Andersen_8h.html">Andersen.h</a></div></div>
|
|
70
|
-
<div class="ttc" id="namespaceSVF_html_a212231734fa43d5c7414137deaac7df3"><div class="ttname"><a href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">SVF::NodeSet</a></div><div class="ttdeci">Set< NodeID > NodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
70
|
+
<div class="ttc" id="namespaceSVF_html_a212231734fa43d5c7414137deaac7df3"><div class="ttname"><a href="namespaceSVF.html#a212231734fa43d5c7414137deaac7df3">SVF::NodeSet</a></div><div class="ttdeci">Set< NodeID > NodeSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00122">SVFBasicTypes.h:122</a></div></div>
|
|
71
71
|
<div class="ttc" id="namespaceSVF_html_a43a65e0d33af3c743294f7a1139d2301"><div class="ttname"><a href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">SVF::NodeID</a></div><div class="ttdeci">unsigned NodeID</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00019">MTAResultValidator.h:19</a></div></div>
|
|
72
|
-
<div class="ttc" id="namespaceSVF_html_a1811127aebdb9c926e39d155e20b3dc0"><div class="ttname"><a href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">SVF::NodeStack</a></div><div class="ttdeci">std::stack< NodeID > NodeStack</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
72
|
+
<div class="ttc" id="namespaceSVF_html_a1811127aebdb9c926e39d155e20b3dc0"><div class="ttname"><a href="namespaceSVF.html#a1811127aebdb9c926e39d155e20b3dc0">SVF::NodeStack</a></div><div class="ttdeci">std::stack< NodeID > NodeStack</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00127">SVFBasicTypes.h:127</a></div></div>
|
|
73
73
|
<div class="ttc" id="classSVF_1_1GepCGEdge_html"><div class="ttname"><a href="classSVF_1_1GepCGEdge.html">SVF::GepCGEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00225">ConsGEdge.h:225</a></div></div>
|
|
74
74
|
<div class="ttc" id="classSVF_1_1AndersenLCD_html_a52399086e540c2adabc03a978155f55d"><div class="ttname"><a href="classSVF_1_1AndersenLCD.html#a52399086e540c2adabc03a978155f55d">SVF::AndersenLCD::solveWorklist</a></div><div class="ttdeci">void solveWorklist()</div><div class="ttdef"><b>Definition:</b> <a href="AndersenLCD_8cpp_source.html#l00039">AndersenLCD.cpp:39</a></div></div>
|
|
75
75
|
<div class="ttc" id="classSVF_1_1AndersenLCD_html_ae4e979d6e7fa83c8961d0caf0ca0f54e"><div class="ttname"><a href="classSVF_1_1AndersenLCD.html#ae4e979d6e7fa83c8961d0caf0ca0f54e">SVF::AndersenLCD::lcdAndersen</a></div><div class="ttdeci">static AndersenLCD * lcdAndersen</div><div class="ttdef"><b>Definition:</b> <a href="Andersen_8h_source.html#l00473">Andersen.h:473</a></div></div>
|
|
@@ -79,14 +79,14 @@ $(function() {
|
|
|
79
79
|
<div class="ttc" id="classSVF_1_1AndersenLCD_html_ac78efb1e4246c06c64dad1d368ed032d"><div class="ttname"><a href="classSVF_1_1AndersenLCD.html#ac78efb1e4246c06c64dad1d368ed032d">SVF::AndersenLCD::mergeSrcToTgt</a></div><div class="ttdeci">bool mergeSrcToTgt(NodeID nodeId, NodeID newRepId)</div><div class="ttdef"><b>Definition:</b> <a href="AndersenLCD_8cpp_source.html#l00131">AndersenLCD.cpp:131</a></div></div>
|
|
80
80
|
<div class="ttc" id="PointsTo_8h_html"><div class="ttname"><a href="PointsTo_8h.html">PointsTo.h</a></div></div>
|
|
81
81
|
<div class="ttc" id="classSVF_1_1ConstraintNode_html"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html">SVF::ConstraintNode</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00040">ConsGNode.h:40</a></div></div>
|
|
82
|
-
<div class="ttc" id="SVFBasicTypes_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
82
|
+
<div class="ttc" id="SVFBasicTypes_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFBasicTypes_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00182">SVFBasicTypes.h:182</a></div></div>
|
|
83
83
|
<div class="ttc" id="classSVF_1_1ConstraintNode_html_ab77173aa8af6155b569f20ff0cdcec72"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#ab77173aa8af6155b569f20ff0cdcec72">SVF::ConstraintNode::getCopyOutEdges</a></div><div class="ttdeci">const ConstraintEdge::ConstraintEdgeSetTy & getCopyOutEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00128">ConsGNode.h:128</a></div></div>
|
|
84
84
|
<div class="ttc" id="classSVF_1_1ConstraintNode_html_a19d3d2c996ba821227a836717e5443c8"><div class="ttname"><a href="classSVF_1_1ConstraintNode.html#a19d3d2c996ba821227a836717e5443c8">SVF::ConstraintNode::getGepOutEdges</a></div><div class="ttdeci">const ConstraintEdge::ConstraintEdgeSetTy & getGepOutEdges() const</div><div class="ttdef"><b>Definition:</b> <a href="ConsGNode_8h_source.html#l00136">ConsGNode.h:136</a></div></div>
|
|
85
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="CFGNormalizer_8h_source.html#l00035">CFGNormalizer.h:35</a></div></div>
|
|
86
86
|
<div class="ttc" id="classSVF_1_1GenericNode_html_ac3e55ef37aefb411ea4c87b1aa3b1895"><div class="ttname"><a href="classSVF_1_1GenericNode.html#ac3e55ef37aefb411ea4c87b1aa3b1895">SVF::GenericNode::getId</a></div><div class="ttdeci">NodeID getId() const</div><div class="ttdoc">Get ID. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00169">GenericGraph.h:169</a></div></div>
|
|
87
87
|
<div class="ttc" id="classSVF_1_1AndersenLCD_html_a078a58b3b3f18cca4e09ff5a9a8ed791"><div class="ttname"><a href="classSVF_1_1AndersenLCD.html#a078a58b3b3f18cca4e09ff5a9a8ed791">SVF::AndersenLCD::SCCDetect</a></div><div class="ttdeci">NodeStack & SCCDetect()</div><div class="ttdef"><b>Definition:</b> <a href="AndersenLCD_8cpp_source.html#l00103">AndersenLCD.cpp:103</a></div></div>
|
|
88
88
|
<div class="ttc" id="classSVF_1_1ConstraintEdge_html"><div class="ttname"><a href="classSVF_1_1ConstraintEdge.html">SVF::ConstraintEdge</a></div><div class="ttdef"><b>Definition:</b> <a href="ConsGEdge_8h_source.html#l00048">ConsGEdge.h:48</a></div></div>
|
|
89
|
-
<div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#
|
|
89
|
+
<div class="ttc" id="classSVF_1_1PointsTo_html"><div class="ttname"><a href="classSVF_1_1PointsTo.html">SVF::PointsTo</a></div><div class="ttdef"><b>Definition:</b> <a href="PointsTo_8h_source.html#l00028">PointsTo.h:28</a></div></div>
|
|
90
90
|
<div class="ttc" id="classSVF_1_1AndersenLCD_html_a139d80e25fe713194f719581915d36d5"><div class="ttname"><a href="classSVF_1_1AndersenLCD.html#a139d80e25fe713194f719581915d36d5">SVF::AndersenLCD::handleCopyGep</a></div><div class="ttdeci">virtual void handleCopyGep(ConstraintNode *node)</div><div class="ttdef"><b>Definition:</b> <a href="AndersenLCD_8cpp_source.html#l00057">AndersenLCD.cpp:57</a></div></div>
|
|
91
91
|
<div class="ttc" id="classSVF_1_1AndersenLCD_html_a132fe3985f04b55b5e172649db7e44d7"><div class="ttname"><a href="classSVF_1_1AndersenLCD.html#a132fe3985f04b55b5e172649db7e44d7">SVF::AndersenLCD::mergeSCC</a></div><div class="ttdeci">void mergeSCC()</div><div class="ttdef"><b>Definition:</b> <a href="AndersenLCD_8cpp_source.html#l00091">AndersenLCD.cpp:91</a></div></div>
|
|
92
92
|
</div><!-- fragment --></div><!-- contents -->
|