svf-tools 1.0.587 → 1.0.588
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/AndersenPWC_8h_source.html +5 -5
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/AndersenSFR_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +18 -18
- package/SVF-doxygen/html/html/Andersen_8h_source.html +10 -10
- package/SVF-doxygen/html/html/Annotator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/BasicTypes_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/BreakConstantExpr_8cpp.html +2 -2
- package/SVF-doxygen/html/html/BreakConstantExpr_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/BreakConstantExpr_8h_source.html +4 -4
- package/SVF-doxygen/html/html/CFGNormalizer_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/CFGNormalizer_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CFLAlias_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/CFLAlias_8h_source.html +10 -10
- package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/CFLGrammar_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CFLGrammar_8h_source.html +6 -6
- package/SVF-doxygen/html/html/CFLGraphBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/CFLGraphBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CFLGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CFLGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +25 -25
- package/SVF-doxygen/html/html/CHGBuilder_8h_source.html +5 -5
- package/SVF-doxygen/html/html/CHG_8cpp.html +3 -3
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/CHG_8h_source.html +6 -6
- package/SVF-doxygen/html/html/CPPUtil_8cpp.html +2 -2
- package/SVF-doxygen/html/html/CPPUtil_8cpp_source.html +26 -26
- package/SVF-doxygen/html/html/CPPUtil_8h_source.html +4 -4
- package/SVF-doxygen/html/html/CSC_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/CSC_8h_source.html +4 -4
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/Casting_8h.html +1 -0
- package/SVF-doxygen/html/html/Casting_8h_source.html +42 -42
- package/SVF-doxygen/html/html/ConditionalPT_8h_source.html +6 -6
- package/SVF-doxygen/html/html/ConsGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ConsGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ConsG_8h_source.html +4 -4
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +21 -21
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +11 -11
- package/SVF-doxygen/html/html/CoreBitVector_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CoreBitVector_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +5 -5
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +27 -27
- package/SVF-doxygen/html/html/DCHG_8h_source.html +13 -13
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/DDAClient_8h_source.html +3 -3
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +4 -4
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/DDAStat_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +9 -9
- package/SVF-doxygen/html/html/DPItem_8h_source.html +5 -5
- package/SVF-doxygen/html/html/DataFlowUtil_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/DataFlowUtil_8h_source.html +11 -11
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExeState_8cpp_source.html +5 -5
- 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 +8 -8
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/FSMPTA_8h_source.html +6 -6
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +13 -13
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/FlowSensitive_8h_source.html +7 -7
- package/SVF-doxygen/html/html/GEPTypeBridgeIterator_8h_source.html +3 -3
- 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/Graph2Json_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/GraphPrinter_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +12 -12
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ICFGStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/ICFG_8h_source.html +5 -5
- package/SVF-doxygen/html/html/IRAnnotator_8h_source.html +12 -12
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +6 -6
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +28 -28
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +7 -7
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +26 -26
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +18 -18
- 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 +8 -8
- package/SVF-doxygen/html/html/LocationSet_8h_source.html +5 -5
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +16 -16
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +10 -10
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +5 -5
- package/SVF-doxygen/html/html/MHP_8cpp.html +3 -3
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +25 -26
- package/SVF-doxygen/html/html/MHP_8h_source.html +10 -10
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +4 -4
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +8 -8
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +21 -21
- package/SVF-doxygen/html/html/MTAResultValidator_8h_source.html +10 -10
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/MTAStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/MTA_8h_source.html +7 -7
- package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemPartition_8h_source.html +3 -3
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +8 -8
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +7 -7
- package/SVF-doxygen/html/html/MutablePointsToDS_8h_source.html +2 -2
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/NodeIDAllocator_8h_source.html +3 -3
- 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 +11 -11
- package/SVF-doxygen/html/html/PCG_8h_source.html +7 -7
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +7 -7
- package/SVF-doxygen/html/html/PTAStat_8cpp_source.html +3 -3
- 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 +18 -18
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +19 -19
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +59 -59
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +81 -82
- 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 +6 -6
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SCC_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h.html +5 -1
- package/SVF-doxygen/html/html/SVF-FE_2BasicTypes_8h_source.html +85 -85
- package/SVF-doxygen/html/html/SVFBasicTypes_8h.html +23 -27
- package/SVF-doxygen/html/html/SVFBasicTypes_8h_source.html +69 -70
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFGBuilder_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGStat_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SVFG_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +56 -56
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +47 -47
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +8 -8
- package/SVF-doxygen/html/html/SVFLoop_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +13 -13
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/SVFStat_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +10 -10
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +16 -16
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +8 -8
- package/SVF-doxygen/html/html/SaberAnnotator_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SaberAnnotator_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +14 -14
- package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +8 -8
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SparseBitVector_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +3 -3
- 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 +40 -40
- package/SVF-doxygen/html/html/SymbolTableBuilder_8h_source.html +6 -6
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +16 -16
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +13 -13
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +20 -21
- package/SVF-doxygen/html/html/TCT_8h_source.html +16 -16
- package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +8 -8
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +6 -6
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/TypeAnalysis_8h_source.html +5 -5
- package/SVF-doxygen/html/html/Util_2BasicTypes_8h.html +1 -14
- package/SVF-doxygen/html/html/Util_2BasicTypes_8h_source.html +97 -97
- package/SVF-doxygen/html/html/VFGEdge_8h_source.html +2 -2
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +7 -7
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/VFG_8h_source.html +6 -6
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8h_source.html +6 -6
- package/SVF-doxygen/html/html/WPAFSSolver_8h_source.html +1 -1
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +6 -6
- 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 +2 -2
- package/SVF-doxygen/html/html/Z3Expr_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Z3Expr_8h_source.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualINSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ActualOUTSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ActualParmVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ActualRetVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AddrVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AliasCFLGraphBuilder.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Andersen-members.html +249 -250
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +37 -39
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase-members.html +216 -217
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +9 -11
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD-members.html +259 -260
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +15 -17
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR-members.html +271 -272
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSFR.html +8 -10
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff-members.html +257 -258
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +6 -8
- package/SVF-doxygen/html/html/classSVF_1_1Annotator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ArgumentVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl-members.html +164 -165
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +31 -33
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BreakConstantGEPs.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CFGNormalizer.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias-members.html +191 -192
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +17 -19
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase-members.html +185 -186
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +9 -11
- package/SVF-doxygen/html/html/classSVF_1_1CFLGraphBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF-members.html +189 -190
- package/SVF-doxygen/html/html/classSVF_1_1CFLVF.html +2 -4
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +50 -50
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1CSC.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallDirSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallIndSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +36 -36
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl-members.html +153 -154
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +17 -19
- package/SVF-doxygen/html/html/classSVF_1_1CondStdSet.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CondVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintNode.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ContextCond.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA-members.html +255 -256
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +46 -48
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CopyVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CoreBitVector.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1CxtProc.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CxtThreadProc.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +72 -72
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +27 -27
- package/SVF-doxygen/html/html/classSVF_1_1DirectSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DummyObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DummyValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ExeState.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA-members.html +283 -284
- package/SVF-doxygen/html/html/classSVF_1_1FSMPTA.html +3 -5
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA-members.html +249 -250
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +27 -29
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive-members.html +274 -275
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +67 -69
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +14 -14
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +35 -36
- package/SVF-doxygen/html/html/classSVF_1_1FormalINSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FormalOUTSVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FormalParmVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FormalRetVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FunEntryICFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1FunExitICFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1FunptrDDAClient.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GlobalICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1GrammarBase.html +4 -4
- 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 +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1ICFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ICFGPrinter.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IRAnnotator.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IndirectSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterDisjointMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1InterMSSAPHISVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1InterPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraDirSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraIndSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraMSSAPHISVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IteratedDominanceFrontier.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LoadVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1LocationSet.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +67 -67
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +50 -51
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +38 -38
- package/SVF-doxygen/html/html/classSVF_1_1MRSVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +16 -16
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +15 -15
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +44 -44
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +50 -50
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MergeFunctionRets.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1MutableDFPTData.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1NullPtrVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ObjTypeInfo.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACFInfoBuilder.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraphNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTAStat.html +3 -3
- 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 +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis-members.html +120 -121
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +249 -267
- package/SVF-doxygen/html/html/classSVF_1_1PointsTo.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +11 -11
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetDirSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetIndSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +97 -97
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobal.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +142 -142
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +33 -33
- package/SVF-doxygen/html/html/classSVF_1_1SVFVar.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SaberAnnotator.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +35 -35
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1StInfo.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard-members.html +228 -229
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +2 -4
- package/SVF-doxygen/html/html/classSVF_1_1StmtVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1StoreVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +71 -71
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableInfo.html +29 -29
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +50 -51
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ThreadForkEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadJoinEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ThreadMHPIndSVFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis-members.html +221 -222
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +16 -18
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFCFLGraphBuilder.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +12 -12
- package/SVF-doxygen/html/html/classSVF_1_1VFGEdge.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VarArgPN.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive-members.html +324 -325
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +39 -41
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive_1_1SCC.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1WPAFSSolver.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPAMinimumSolver.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1WPASCCSolver.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1WPASolver.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1Z3Expr.html +1 -1
- package/SVF-doxygen/html/html/classllvm_1_1generic__bridge__gep__type__iterator.html +3 -3
- package/SVF-doxygen/html/html/functions_a.html +5 -8
- package/SVF-doxygen/html/html/functions_func_i.html +3 -3
- package/SVF-doxygen/html/html/functions_func_s.html +1 -1
- package/SVF-doxygen/html/html/functions_i.html +2 -2
- package/SVF-doxygen/html/html/functions_l.html +8 -8
- package/SVF-doxygen/html/html/functions_n.html +4 -4
- package/SVF-doxygen/html/html/functions_o.html +8 -8
- package/SVF-doxygen/html/html/functions_p.html +14 -16
- package/SVF-doxygen/html/html/functions_r.html +2 -4
- package/SVF-doxygen/html/html/functions_s.html +7 -7
- package/SVF-doxygen/html/html/functions_type.html +0 -3
- package/SVF-doxygen/html/html/functions_v.html +6 -6
- package/SVF-doxygen/html/html/functions_w.html +11 -11
- package/SVF-doxygen/html/html/namespaceSVF.html +156 -174
- package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +55 -55
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +40 -40
- package/SVF-doxygen/html/html/namespaceSVF_1_1cppUtil.html +46 -46
- package/SVF-doxygen/html/html/namespacemembers_s.html +0 -3
- package/SVF-doxygen/html/html/namespacemembers_type_s.html +0 -3
- package/SVF-doxygen/html/html/search/all_1.js +0 -1
- package/SVF-doxygen/html/html/search/all_10.js +6 -6
- package/SVF-doxygen/html/html/search/all_11.js +2 -2
- package/SVF-doxygen/html/html/search/all_12.js +5 -6
- package/SVF-doxygen/html/html/search/all_13.js +4 -4
- package/SVF-doxygen/html/html/search/all_15.js +3 -3
- package/SVF-doxygen/html/html/search/all_16.js +2 -2
- package/SVF-doxygen/html/html/search/all_9.js +2 -2
- package/SVF-doxygen/html/html/search/all_c.js +5 -5
- package/SVF-doxygen/html/html/search/all_e.js +2 -2
- package/SVF-doxygen/html/html/search/all_f.js +1 -1
- package/SVF-doxygen/html/html/search/functions_11.js +1 -1
- package/SVF-doxygen/html/html/search/functions_8.js +1 -1
- package/SVF-doxygen/html/html/search/functions_f.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_0.js +0 -1
- package/SVF-doxygen/html/html/search/typedefs_10.js +0 -1
- package/SVF-doxygen/html/html/search/variables_13.js +2 -2
- package/SVF-doxygen/html/html/search/variables_9.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_1PopulationCounter.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1PopulationCounter_3_01T_00_018_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__convert__val.html +5 -5
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__convert__val_3_01To_00_01FromTy_00_01FromTy_01_4.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01From_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01const_01From_01_5const_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__impl_3_01To_00_01std_1_1unique__ptr_3_01From_01_4_01_4.html +4 -4
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__wrap.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1cast__retty__wrap_3_01To_00_01FromTy_00_01FromTy_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1is__simple__type.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl_3_01To_00_01From_00_01typename_01std_1_1enable__if_3_01std_1_1101a002941fb8432b76e90258f1ec6b7.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01From_01_5_01_4.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01From_01_5const_01_4.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01From_01_4.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01From_01_5_01_4.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01From_01_5const_01_4.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__cl_3_01To_00_01const_01std_1_1unique__ptr_3_01From_01_4_01_4.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__wrap.html +5 -5
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1isa__impl__wrap_3_01To_00_01FromTy_00_01FromTy_01_4.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1simplify__type.html +4 -4
- package/SVF-doxygen/html/html/structSVF_1_1SVFUtil_1_1simplify__type_3_01const_01From_01_4.html +6 -6
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01CFLGraph_01_5_01_4.html +3 -3
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01ICFG_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01SVFG_01_5_01_4.html +4 -4
- package/SVF-doxygen/html/html/structllvm_1_1DOTGraphTraits_3_01VFG_01_5_01_4.html +4 -4
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +3 -3
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_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_1CxtProc_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_1CxtStmt_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_1SparseBitVector_3_01N_01_4_01_4.html +4 -4
- 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 +5 -5
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +7 -7
- package/include/MemoryModel/PointerAnalysis.h +0 -1
- package/include/SVF-FE/BasicTypes.h +7 -1
- package/include/Util/BasicTypes.h +1 -22
- package/include/Util/Casting.h +1 -0
- package/include/Util/SVFBasicTypes.h +0 -5
- package/lib/MTA/MHP.cpp +4 -4
- package/lib/MTA/TCT.cpp +1 -1
- package/package.json +1 -1
|
@@ -68,7 +68,7 @@ $(function() {
|
|
|
68
68
|
<div class="contents">
|
|
69
69
|
<a href="MTAResultValidator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * MTAResultValidator.h</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * Created on: 29/06/2015</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Author: Peng Di and Ding Ye</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> */</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="preprocessor">#ifndef MTARESULTVALIDATOR_H_</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="preprocessor">#define MTARESULTVALIDATOR_H_</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> </div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="preprocessor">#include "<a class="code" href="MHP_8h.html">MTA/MHP.h</a>"</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">namespace </span><a class="code" href="namespaceSVF.html">SVF</a></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> {</div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301"> 19</a></span> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <a class="code" href="namespaceSVF.html#a43a65e0d33af3c743294f7a1139d2301">NodeID</a>;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div><div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html"> 21</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1MTAResultValidator.html">MTAResultValidator</a></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> {</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#a8e26b7fe85478eef7b3d0551ab59d9c7"> 25</a></span>  <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#a8e26b7fe85478eef7b3d0551ab59d9c7">INTERLEV_FLAG</a>;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#af7f90c7a146c085d3b432ab40fb3777e"> 26</a></span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#af7f90c7a146c085d3b432ab40fb3777e">MTAResultValidator</a>(<a class="code" href="classSVF_1_1MHP.html">MHP</a>* mh) :</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">mhp</a>(mh)</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>  <a class="code" href="classSVF_1_1MTAResultValidator.html#abe087e2e8d92aa218ef282d2493193ef">tcg</a> = <a class="code" href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a20e740d4b96ef086b6b5778acd38ca88">getThreadCallGraph</a>();</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#aa0ca978e95529568edc4bdac1ffac110">tdAPI</a> = <a class="code" href="classSVF_1_1MTAResultValidator.html#abe087e2e8d92aa218ef282d2493193ef">tcg</a>-><a class="code" href="classSVF_1_1ThreadCallGraph.html#adcad8524a53baf256cd45503ec568c10">getThreadAPI</a>();</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#a8d54a1e8d1703d0c9ba541bcf997e900">mod</a> = <a class="code" href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">mhp</a>-><a class="code" href="classSVF_1_1MHP.html#a033936547612c54326a604f0ff1e39a6">getTCT</a>()-><a class="code" href="classSVF_1_1TCT.html#aabc2c84e951ed9ae64207e379acb3074">getSVFModule</a>();</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="comment">// Destructor</span></div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#afd9f0901b8474c35011eeb57e9bd15e9"> 34</a></span>  <a class="code" href="classSVF_1_1MTAResultValidator.html#afd9f0901b8474c35011eeb57e9bd15e9">~MTAResultValidator</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>  }</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="comment">// Analysis</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#a462f1554e058b656861abfb0aa2e47ff">analyze</a>();</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#aecaf875c6c88f7ba6fa45540e8436f57"> 40</a></span>  <span class="keyword">inline</span> <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1MTAResultValidator.html#aecaf875c6c88f7ba6fa45540e8436f57">getModule</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#a8d54a1e8d1703d0c9ba541bcf997e900">mod</a>;</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="keyword">protected</span>:</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>  <span class="comment">/*</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="comment"> * Assistant functions</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> <span class="comment"> */</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="comment">// Split string</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  std::vector<std::string> &<a class="code" href="classSVF_1_1MTAResultValidator.html#a73db9ad234b263b6e644e4b38be14fe6">split</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> &s, <span class="keywordtype">char</span> delim, std::vector<std::string> &elems);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  std::vector<std::string> <a class="code" href="classSVF_1_1MTAResultValidator.html#a73db9ad234b263b6e644e4b38be14fe6">split</a>(<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> &s, <span class="keywordtype">char</span> delim);</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="comment">// Get special arguments of given call sites</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  NodeID <a class="code" href="classSVF_1_1MTAResultValidator.html#a4ff908be3569c18528fb6f6ff98cd11a">getIntArg</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> arg_num);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  std::vector<std::string> <a class="code" href="classSVF_1_1MTAResultValidator.html#a1ac51d2847f9bdee27092ab22211bb61">getStringArg</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> arg_num);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> <a class="code" href="classSVF_1_1MTAResultValidator.html#afb110fec926967ba334bf2635d58a339">getCxtArg</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> arg_num);</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="comment">/*</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> <span class="comment"> * Get the previous LoadInst or StoreInst from Instruction "I" in the</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> <span class="comment"> * same BasicBlock. Return nullptr if none exists.</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> <span class="comment"> */</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *<a class="code" href="classSVF_1_1MTAResultValidator.html#ab3ba3c6d9c40e97febdab0e7d4ad9a3e">getPreviousMemoryAccessInst</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I);</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="comment">// Compare two cxts</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#a6306899b5360e106dd090bea571027bf">matchCxt</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> cxt1, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a> cxt2) <span class="keyword">const</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>  <span class="comment">// Dump calling context information</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">dumpCxt</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">CallStrCxt</a>& cxt) <span class="keyword">const</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span> </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#a1af033b5742fa9cc1e4f9873184775b7">dumpInterlev</a>(<a class="code" href="classSVF_1_1SparseBitVector.html">NodeBS</a>& lev);</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>  <span class="comment">// Get the validation result string of a single validation scenario.</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">inline</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1MTAResultValidator.html#a9c9baeb57a645b57cc9053b3071f0602">getOutput</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *scenario, <span class="keywordtype">bool</span> analysisRes);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <span class="keyword">inline</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1MTAResultValidator.html#ac24a8a6922d9dc9edecab3bc45bc9204">getOutputforInterlevAnalysis</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *scenario, INTERLEV_FLAG analysisRes);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="comment">/*</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="comment"> * Collect the callsite targets for validations.</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="comment"> * The targets are labeled by "cs1:", "cs2:"... that are the names of its basic blocks.</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> <span class="comment"> * The collected targets are stored in csnumToInstMap that maps label "cs1" to CallInst.</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span> <span class="comment"> */</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#a1fc4116b134aa87420d055b193208e68">collectCallsiteTargets</a>();</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="comment">/*</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <span class="comment"> * Collect the CxtThread targets for validations.</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment"> * The collected targets are stored in vthdToCxt that maps vthd to cxt.</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment"> */</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#a430c03371b2b5b7300c5c3a68d633909">collectCxtThreadTargets</a>();</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="comment">/*</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment"> * Collect TCT targets for validations.</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment"> * The collected targets are stored in rthdToChildren.</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment"> */</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#abdf31e8fca824b56a53788de525042a6">collectTCTTargets</a>();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="comment">/*</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment"> * Collect the thread interleaving targets for validations.</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment"> * The collected targets are stored in instToTSMap and threadStmtToInterLeaving.</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment"> */</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#a3c3eacff786230d093d27615ff360ed4">collectInterleavingTargets</a>();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <span class="comment">/*</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="comment"> * Perform validation for Cxtthread.</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <span class="comment"> * If correct, the validator maps given thread vthd to static CxtThread rthd stored in vthdTorthd.</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span> <span class="comment"> */</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#afa01b108b67ec2ac05a6444b55dbfe01">validateCxtThread</a>();</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="comment">/*</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="comment"> * Perform validation for TCT.</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> <span class="comment"> */</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#ae6a18cbaf113ee8e28c3e8dca458d4be">validateTCT</a>();</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="comment">/*</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span> <span class="comment"> * Perform validation for thread interleaving.</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="comment"> */</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  INTERLEV_FLAG <a class="code" href="classSVF_1_1MTAResultValidator.html#a373b5227fbfa82ac070f55db999afb28">validateInterleaving</a>();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span> </div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#ab2d02695cc8e6fc9e9a46d9d26466fb1"> 120</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, const CallInst*></a> <a class="code" href="classSVF_1_1MTAResultValidator.html#ab2d02695cc8e6fc9e9a46d9d26466fb1">csnumToInst</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#a1392757f98b54057d33adb125fd48efa"> 121</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, CallStrCxt></a> <a class="code" href="classSVF_1_1MTAResultValidator.html#a1392757f98b54057d33adb125fd48efa">vthdToCxtMap</a>;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#a7fc576e83fa259d0ab06d54c3537c4ac"> 122</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, NodeID></a> <a class="code" href="classSVF_1_1MTAResultValidator.html#a7fc576e83fa259d0ab06d54c3537c4ac">vthdTorthdMap</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#ab386260dd6bbaeacde10e5c81f07502c"> 123</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, NodeID></a> <a class="code" href="classSVF_1_1MTAResultValidator.html#ab386260dd6bbaeacde10e5c81f07502c">rthdTovthdMap</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"><a class="line" href="classSVF_1_1MTAResultValidator.html#a7d2043cf3c354812fa5e4cdf7f60ff20"> 125</a></span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<NodeID, Set<NodeID></a>> <a class="code" href="classSVF_1_1MTAResultValidator.html#a7d2043cf3c354812fa5e4cdf7f60ff20">rthdToChildrenMap</a>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#a8452bf182f6f1e0f4c239f620ee803b1"> 127</a></span>  <a class="code" href="classSVF_1_1MHP.html#ae3e240893d0950354d3d775e87d4adf9">MHP::InstToThreadStmtSetMap</a> <a class="code" href="classSVF_1_1MTAResultValidator.html#a8452bf182f6f1e0f4c239f620ee803b1">instToTSMap</a>; <span class="comment">// Map a instruction to CxtThreadStmtSet</span></div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#ac4a7773211a9c842639ac25b1a504c7e"> 128</a></span>  <a class="code" href="classSVF_1_1MHP.html#ac30f283cb2ad020a054ee6525ca94025">MHP::ThreadStmtToThreadInterleav</a> <a class="code" href="classSVF_1_1MTAResultValidator.html#ac4a7773211a9c842639ac25b1a504c7e">threadStmtToInterLeaving</a>; </div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#a251e16fc1fb663c238122dd6d2ba02e1"> 130</a></span>  <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> <span class="keyword">const</span> *<a class="code" href="classSVF_1_1MTAResultValidator.html#a251e16fc1fb663c238122dd6d2ba02e1">CXT_THREAD</a> = <span class="stringliteral">"CXT_THREAD"</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#a7b47044960a12203ce0ce245c4c9c8ec"> 131</a></span>  <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> <span class="keyword">const</span> *<a class="code" href="classSVF_1_1MTAResultValidator.html#a7b47044960a12203ce0ce245c4c9c8ec">INTERLEV_ACCESS</a> = <span class="stringliteral">"INTERLEV_ACCESS"</span>;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#ae709b039a68f5600271c40903b1c0dbe"> 132</a></span>  <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> <span class="keyword">const</span> *<a class="code" href="classSVF_1_1MTAResultValidator.html#ae709b039a68f5600271c40903b1c0dbe">TCT_ACCESS</a> = <span class="stringliteral">"TCT_ACCESS"</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"><a class="line" href="classSVF_1_1MTAResultValidator.html#aa0ca978e95529568edc4bdac1ffac110"> 134</a></span>  <a class="code" href="classSVF_1_1ThreadAPI.html">ThreadAPI</a>* <a class="code" href="classSVF_1_1MTAResultValidator.html#aa0ca978e95529568edc4bdac1ffac110">tdAPI</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#abe087e2e8d92aa218ef282d2493193ef"> 135</a></span>  <a class="code" href="classSVF_1_1ThreadCallGraph.html">ThreadCallGraph</a>* <a class="code" href="classSVF_1_1MTAResultValidator.html#abe087e2e8d92aa218ef282d2493193ef">tcg</a>;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857"> 136</a></span>  <a class="code" href="classSVF_1_1MHP.html">MHP</a>* <a class="code" href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">mhp</a>;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a"> 137</a></span>  vthdToCxtMap <a class="code" href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">vthdToCxt</a>;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#a7382b2759b01b8382c5e59b21e7e262a"> 138</a></span>  vthdTorthdMap <a class="code" href="classSVF_1_1MTAResultValidator.html#a7382b2759b01b8382c5e59b21e7e262a">vthdTorthd</a>;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19"> 139</a></span>  rthdTovthdMap <a class="code" href="classSVF_1_1MTAResultValidator.html#a615623a08324ee155cb527a3b57e8c19">rthdTovthd</a>;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#ae2717c467dc7c49fab0ec93bfa4baaab"> 140</a></span>  csnumToInst <a class="code" href="classSVF_1_1MTAResultValidator.html#ae2717c467dc7c49fab0ec93bfa4baaab">csnumToInstMap</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#a542f2f41c90698270687fc7858a26555"> 141</a></span>  rthdToChildrenMap <a class="code" href="classSVF_1_1MTAResultValidator.html#a542f2f41c90698270687fc7858a26555">rthdToChildren</a>;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#a8d54a1e8d1703d0c9ba541bcf997e900"> 142</a></span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1MTAResultValidator.html#a8d54a1e8d1703d0c9ba541bcf997e900">mod</a>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span> </div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#ac76235240be9684bc71fd924ed83b05b"> 145</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> INTERLEV_FLAG <a class="code" href="classSVF_1_1MTAResultValidator.html#ac76235240be9684bc71fd924ed83b05b">INTERLEV_TRUE</a> = 0x01;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#a3f3cc6bcc79e4125ef9a49857442319d"> 146</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> INTERLEV_FLAG <a class="code" href="classSVF_1_1MTAResultValidator.html#a3f3cc6bcc79e4125ef9a49857442319d">INTERLEV_IMPRECISE</a> = 0x02;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classSVF_1_1MTAResultValidator.html#a1c34f6a65688a3261ec27a35e9b9601b"> 147</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> INTERLEV_FLAG <a class="code" href="classSVF_1_1MTAResultValidator.html#a1c34f6a65688a3261ec27a35e9b9601b">INTERLEV_UNSOUND</a> = 0x04;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> };</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> </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html"> 168</a></span> <span class="keyword">class </span><a class="code" href="classSVF_1_1RaceResultValidator.html">RaceResultValidator</a></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span> {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#ac57ae430ee5b6868fe810172ec658853"> 171</a></span>  <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="classSVF_1_1RaceResultValidator.html#ac57ae430ee5b6868fe810172ec658853">RC_FLAG</a>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html"> 176</a></span>  <span class="keyword">class </span><a class="code" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html">AccessPair</a></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#a7dd2f8afab59ee4d107a6bfdb6c151ea"> 180</a></span>  <a class="code" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#a7dd2f8afab59ee4d107a6bfdb6c151ea">AccessPair</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I1, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I2,</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keyword">const</span> RC_FLAG flags) :</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  I1(I1), I2(I2), flags(flags)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  }</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span> </div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#a63f574da7298fd47d228592f512891d1"> 188</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#a63f574da7298fd47d228592f512891d1">isFlaged</a>(<span class="keyword">const</span> RC_FLAG flag)<span class="keyword"> const</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  <span class="keywordflow">return</span> flags & flag;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  }</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#a97307972daebc1fc358ba2c8009c5990"> 192</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *<a class="code" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#a97307972daebc1fc358ba2c8009c5990">getInstruction1</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">return</span> I1;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#acf383712e9399fec0d52614b2338836c"> 196</a></span>  <span class="keyword">inline</span> <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *<a class="code" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#acf383712e9399fec0d52614b2338836c">getInstruction2</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">return</span> I2;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span> </div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#a753e4df194dc85e37a0285eaac7b30f7"> 203</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *<a class="code" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#a753e4df194dc85e37a0285eaac7b30f7">I1</a>;</div><div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#ad06bd4046fd98b85e6d1f97fcd472d3b"> 204</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *<a class="code" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#ad06bd4046fd98b85e6d1f97fcd472d3b">I2</a>;</div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#aafb0a0cd068e1632f0d643233cad8ad9"> 205</a></span>  RC_FLAG <a class="code" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#aafb0a0cd068e1632f0d643233cad8ad9">flags</a>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  };</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span> </div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#a8f0d25327d5365f6ae229723aa5d6ff7"> 209</a></span>  <span class="keyword">virtual</span> <a class="code" href="classSVF_1_1RaceResultValidator.html#a8f0d25327d5365f6ae229723aa5d6ff7">~RaceResultValidator</a>()</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  release();</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#aec8b923a0da580113a13bf94ffb3ebd7"> 215</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1RaceResultValidator.html#aec8b923a0da580113a13bf94ffb3ebd7">init</a>(<a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* M)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  this->M = M;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  selectedValidationScenarios = RC_MHP | RC_ALIASES | RC_PROTECTED | RC_RACE;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  collectValidationTargets();</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  }</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span> </div><div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#ab8a261120a7f6520d22a6f5cdf2257e9"> 223</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1RaceResultValidator.html#ab8a261120a7f6520d22a6f5cdf2257e9">analyze</a>()</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  validateAll();</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  }</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span> </div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#a64f61b58f59eba5f3e7c69f90edc68df"> 229</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1RaceResultValidator.html#a64f61b58f59eba5f3e7c69f90edc68df">release</a>()</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span> </div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#a749793355ab8390a1e6577d7b05efddf"> 234</a></span>  <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RaceResultValidator.html#a749793355ab8390a1e6577d7b05efddf">hasValidationTarget</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="keyword"> </span>{</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keywordflow">return</span> !accessPairs.empty();</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span> </div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span> <span class="keyword">protected</span>:</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#ade9f150c970aa2cc481c878aebf71662"> 243</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RaceResultValidator.html#ade9f150c970aa2cc481c878aebf71662">mayAccessAliases</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I1,</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I2)</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  {</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  selectedValidationScenarios &= ~RC_ALIASES;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  }</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#aff51b56e5f7173dd8ac053e5d9b1e97d"> 249</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RaceResultValidator.html#aff51b56e5f7173dd8ac053e5d9b1e97d">mayHappenInParallel</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I1,</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I2)</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  selectedValidationScenarios &= ~RC_MHP;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  }</div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#aeb24aa510c7073ef71062e89a11fe00a"> 255</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RaceResultValidator.html#aeb24aa510c7073ef71062e89a11fe00a">protectedByCommonLocks</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I1,</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I2)</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  selectedValidationScenarios &= ~RC_PROTECTED;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  }</div><div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#a1df6b00752e373ac7bf08a2cae0b9641"> 261</a></span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RaceResultValidator.html#a1df6b00752e373ac7bf08a2cae0b9641">mayHaveDataRace</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I1,</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I2)</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  selectedValidationScenarios &= ~RC_RACE;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  }</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> </div><div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#adb3030fc7514506e2592e11898217375"> 274</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1RaceResultValidator.html#adb3030fc7514506e2592e11898217375">collectValidationTargets</a>()</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="comment">// Collect call sites of all RC_ACCESS function calls.</span></div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  std::vector<const CallInst*> csInsts;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> *F = <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = M->llvmFunBegin(); it != M->llvmFunEnd(); it++)</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> fName = (*it)->getName().str();</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">if</span>(fName.find(RC_ACCESS) != std::string::npos)</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  F = (*it);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  }</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keywordflow">if</span> (!F) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> </div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keywordflow">for</span> (Value::const_use_iterator it = F->use_begin(), ie =</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  F->use_end(); it != ie; ++it)</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a334998718813a19a7697daf4ba282faf">Use</a> *u = &*it;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *user = u->getUser();</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a> *csInst = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a>>(user);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  assert(csInst);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  csInsts.push_back(csInst);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  }</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  assert(csInsts.size() % 2 == 0 && <span class="stringliteral">"We should have RC_ACCESS called in pairs."</span>);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> </div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="comment">// Sort the validation sites according to their ids.</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  std::sort(csInsts.begin(), csInsts.end(), compare);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="comment">// Generate access pairs.</span></div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0, e = csInsts.size(); i != e;)</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a> *CI1 = csInsts[i++];</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a> *CI2 = csInsts[i++];</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a> *C = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>>(CI1->getOperand(1));</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  assert(C);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I1 = <a class="code" href="classSVF_1_1MTAResultValidator.html#ab3ba3c6d9c40e97febdab0e7d4ad9a3e">getPreviousMemoryAccessInst</a>(CI1);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I2 = <a class="code" href="classSVF_1_1MTAResultValidator.html#ab3ba3c6d9c40e97febdab0e7d4ad9a3e">getPreviousMemoryAccessInst</a>(CI2);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  assert(I1 && I2 && <span class="stringliteral">"RC_ACCESS should be placed immediately after the target memory access."</span>);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  RC_FLAG flags = C->getZExtValue();</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  accessPairs.push_back(<a class="code" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html">AccessPair</a>(I1, I2, flags));</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span> </div><div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#a58e07fcd0d9a611dfd31ab62802c5990"> 320</a></span>  <span class="keywordtype">void</span> <a class="code" href="classSVF_1_1RaceResultValidator.html#a58e07fcd0d9a611dfd31ab62802c5990">validateAll</a>()</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  {</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a609eea630a8f88fe9eaba15ce7e48738">SVFUtil::pasMsg</a>(<span class="stringliteral">" --- Analysis Result Validation ---\n"</span>);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span> </div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="comment">// Iterate every memory access pair to perform the validation.</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0, e = accessPairs.size(); i != e; ++i)</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  {</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html">AccessPair</a> &ap = accessPairs[i];</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I1 = ap.<a class="code" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#a97307972daebc1fc358ba2c8009c5990">getInstruction1</a>();</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I2 = ap.<a class="code" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#acf383712e9399fec0d52614b2338836c">getInstruction2</a>();</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span> </div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">mhp</a> = mayHappenInParallel(I1, I2);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordtype">bool</span> alias = mayAccessAliases(I1, I2);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordtype">bool</span> protect = protectedByCommonLocks(I1, I2);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordtype">bool</span> racy = mayHaveDataRace(I1, I2);</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span> </div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"For the memory access pair at ("</span></div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVFUtil::getSourceLoc</a>(I1) << <span class="stringliteral">", "</span></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a28c0ede7e4765d2a686fc8ae0f5641a4">SVFUtil::getSourceLoc</a>(I2) << <span class="stringliteral">")\n"</span>;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">if</span> (selectedValidationScenarios & RC_ALIASES)</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  {</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\t"</span></div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  << <a class="code" href="classSVF_1_1MTAResultValidator.html#a9c9baeb57a645b57cc9053b3071f0602">getOutput</a>(<span class="stringliteral">"ALIASES"</span>, alias, ap.<a class="code" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#a63f574da7298fd47d228592f512891d1">isFlaged</a>(RC_ALIASES))</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  }</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">if</span> (selectedValidationScenarios & RC_MHP)</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\t"</span></div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  << <a class="code" href="classSVF_1_1MTAResultValidator.html#a9c9baeb57a645b57cc9053b3071f0602">getOutput</a>(<span class="stringliteral">"MHP"</span>, mhp, ap.<a class="code" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#a63f574da7298fd47d228592f512891d1">isFlaged</a>(RC_MHP)) << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  }</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keywordflow">if</span> (selectedValidationScenarios & RC_PROTECTED)</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  {</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\t"</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  << <a class="code" href="classSVF_1_1MTAResultValidator.html#a9c9baeb57a645b57cc9053b3071f0602">getOutput</a>(<span class="stringliteral">"PROTECT"</span>, protect,</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  ap.<a class="code" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#a63f574da7298fd47d228592f512891d1">isFlaged</a>(RC_PROTECTED)) << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  }</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">if</span> (selectedValidationScenarios & RC_RACE)</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  {</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\t"</span></div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  << <a class="code" href="classSVF_1_1MTAResultValidator.html#a9c9baeb57a645b57cc9053b3071f0602">getOutput</a>(<span class="stringliteral">"RACE"</span>, racy, ap.<a class="code" href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#a63f574da7298fd47d228592f512891d1">isFlaged</a>(RC_RACE))</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  }</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  }</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span> </div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"\n"</span>;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  }</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span> </div><div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#afdd89e26a7c168762bfe85746252827f"> 368</a></span>  <span class="keyword">inline</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="classSVF_1_1RaceResultValidator.html#afdd89e26a7c168762bfe85746252827f">getOutput</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *scenario,</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordtype">bool</span> analysisRes, <span class="keywordtype">bool</span> expectedRes)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> ret(scenario);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  ret += <span class="stringliteral">"\t"</span>;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">if</span> (expectedRes)</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  ret += <span class="stringliteral">" T: "</span>;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  ret += <span class="stringliteral">" F: "</span>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keywordflow">if</span> (analysisRes == expectedRes)</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  ret += <a class="code" href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">SVFUtil::sucMsg</a>(<span class="stringliteral">"SUCCESS"</span>);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordflow">else</span></div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  ret += <a class="code" href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVFUtil::errMsg</a>(<span class="stringliteral">"FAILURE"</span>);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#abd3ad42a71357dfd1483e6e0d18d5ebd"> 385</a></span>  <a class="code" href="classSVF_1_1SVFModule.html">SVFModule</a>* <a class="code" href="classSVF_1_1RaceResultValidator.html#abd3ad42a71357dfd1483e6e0d18d5ebd">M</a>;</div><div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#a8436ecde1e34bca7cef86a320ad42162"> 386</a></span>  std::vector<AccessPair> <a class="code" href="classSVF_1_1RaceResultValidator.html#a8436ecde1e34bca7cef86a320ad42162">accessPairs</a>;</div><div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#a1294cb90b073ba25a8ffc06180c09419"> 387</a></span>  RC_FLAG <a class="code" href="classSVF_1_1RaceResultValidator.html#a1294cb90b073ba25a8ffc06180c09419">selectedValidationScenarios</a>;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span> </div><div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#a7a16fb7a3f382284dbb080802f6e6f43"> 393</a></span>  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classSVF_1_1RaceResultValidator.html#a7a16fb7a3f382284dbb080802f6e6f43">compare</a>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a> *CI1, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">CallInst</a> *CI2)</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  {</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V1 = CI1->getOperand(0);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a> *V2 = CI2->getOperand(0);</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a> *C1 = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>>(V1);</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a> *C2 = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVFUtil::dyn_cast</a><<a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>>(V2);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  assert(0 != C1 && 0 != C2);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keywordflow">return</span> C1->getZExtValue() < C2->getZExtValue();</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span> </div><div class="line"><a name="l00408"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#ad029f7a9a5161191a44d1e841f9d6114"> 408</a></span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *<a class="code" href="classSVF_1_1RaceResultValidator.html#ad029f7a9a5161191a44d1e841f9d6114">getPreviousMemoryAccessInst</a>(</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a> *I)</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  I = I->getPrevNode();</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="keywordflow">while</span> (I)</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keywordflow">if</span> (SVFUtil::isa<LoadInst>(I) || SVFUtil::isa<StoreInst>(I))</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keywordflow">return</span> I;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span> </div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a> *callee = <a class="code" href="namespaceSVF_1_1SVFUtil.html#a145abbd2958629718fbca41d25c3124d">SVFUtil::getCallee</a>(I))</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  {</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">if</span> (callee->getName().find(<span class="stringliteral">"llvm.memset"</span>) != std::string::npos)</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keywordflow">return</span> I;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  }</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  I = I->getPrevNode();</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  }</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  }</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span> </div><div class="line"><a name="l00430"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#a1effe26639e7663cc3baf36e0abffbac"> 430</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> RC_FLAG RC_MHP = 0x01;</div><div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#a05b95f3110d4653c37730df0b7622e8a"> 431</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> RC_FLAG RC_ALIASES = 0x02;</div><div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#adf7cfdebbb94b94fba093a8d345096ca"> 432</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> RC_FLAG RC_PROTECTED = 0x04;</div><div class="line"><a name="l00433"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#aabf8c6ed2c4c82ef53bfa67bf9304e04"> 433</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> RC_FLAG RC_RACE = 0x10;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div><div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="classSVF_1_1RaceResultValidator.html#ae296de41ead49fcff5ea9e7a5afde1c9"> 438</a></span>  <span class="keyword">static</span> constexpr <span class="keywordtype">char</span> <span class="keyword">const</span> *RC_ACCESS = <span class="stringliteral">"RC_ACCESS"</span>;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span> };</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span> } <span class="comment">// namespace SVF end</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor">#endif </span><span class="comment">/* MTARESULTVALIDATOR_H_ */</span><span class="preprocessor"></span></div><div class="ttc" id="classSVF_1_1RaceResultValidator_html_aff51b56e5f7173dd8ac053e5d9b1e97d"><div class="ttname"><a href="classSVF_1_1RaceResultValidator.html#aff51b56e5f7173dd8ac053e5d9b1e97d">SVF::RaceResultValidator::mayHappenInParallel</a></div><div class="ttdeci">virtual bool mayHappenInParallel(const Instruction *I1, const Instruction *I2)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00249">MTAResultValidator.h:249</a></div></div>
|
|
70
70
|
<div class="ttc" id="classSVF_1_1MHP_html"><div class="ttname"><a href="classSVF_1_1MHP.html">SVF::MHP</a></div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00046">MHP.h:46</a></div></div>
|
|
71
|
-
<div class="ttc" id="namespaceSVF_html_a334998718813a19a7697daf4ba282faf"><div class="ttname"><a href="namespaceSVF.html#a334998718813a19a7697daf4ba282faf">SVF::Use</a></div><div class="ttdeci">llvm::Use Use</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#
|
|
71
|
+
<div class="ttc" id="namespaceSVF_html_a334998718813a19a7697daf4ba282faf"><div class="ttname"><a href="namespaceSVF.html#a334998718813a19a7697daf4ba282faf">SVF::Use</a></div><div class="ttdeci">llvm::Use Use</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00043">BasicTypes.h:43</a></div></div>
|
|
72
72
|
<div class="ttc" id="classSVF_1_1RaceResultValidator_1_1AccessPair_html_a97307972daebc1fc358ba2c8009c5990"><div class="ttname"><a href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#a97307972daebc1fc358ba2c8009c5990">SVF::RaceResultValidator::AccessPair::getInstruction1</a></div><div class="ttdeci">const Instruction * getInstruction1() const</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00192">MTAResultValidator.h:192</a></div></div>
|
|
73
73
|
<div class="ttc" id="classSVF_1_1RaceResultValidator_html_a7a16fb7a3f382284dbb080802f6e6f43"><div class="ttname"><a href="classSVF_1_1RaceResultValidator.html#a7a16fb7a3f382284dbb080802f6e6f43">SVF::RaceResultValidator::compare</a></div><div class="ttdeci">static bool compare(const CallInst *CI1, const CallInst *CI2)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00393">MTAResultValidator.h:393</a></div></div>
|
|
74
74
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a1392757f98b54057d33adb125fd48efa"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a1392757f98b54057d33adb125fd48efa">SVF::MTAResultValidator::vthdToCxtMap</a></div><div class="ttdeci">Map< NodeID, CallStrCxt > vthdToCxtMap</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00121">MTAResultValidator.h:121</a></div></div>
|
|
@@ -85,10 +85,10 @@ $(function() {
|
|
|
85
85
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_ae7d61becd14123f60976fd7261d0c84d"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ae7d61becd14123f60976fd7261d0c84d">SVF::MTAResultValidator::dumpCxt</a></div><div class="ttdeci">void dumpCxt(const CallStrCxt &cxt) const</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00159">MTAResultValidator.cpp:159</a></div></div>
|
|
86
86
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a4ff908be3569c18528fb6f6ff98cd11a"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a4ff908be3569c18528fb6f6ff98cd11a">SVF::MTAResultValidator::getIntArg</a></div><div class="ttdeci">NodeID getIntArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00059">MTAResultValidator.cpp:59</a></div></div>
|
|
87
87
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_ab3ba3c6d9c40e97febdab0e7d4ad9a3e"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ab3ba3c6d9c40e97febdab0e7d4ad9a3e">SVF::MTAResultValidator::getPreviousMemoryAccessInst</a></div><div class="ttdeci">const Instruction * getPreviousMemoryAccessInst(const Instruction *I)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00107">MTAResultValidator.cpp:107</a></div></div>
|
|
88
|
-
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
88
|
+
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00093">BasicTypes.h:93</a></div></div>
|
|
89
89
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html">SVF::MTAResultValidator</a></div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00021">MTAResultValidator.h:21</a></div></div>
|
|
90
90
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a7382b2759b01b8382c5e59b21e7e262a"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a7382b2759b01b8382c5e59b21e7e262a">SVF::MTAResultValidator::vthdTorthd</a></div><div class="ttdeci">vthdTorthdMap vthdTorthd</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00138">MTAResultValidator.h:138</a></div></div>
|
|
91
|
-
<div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdoc">LLVM Instructions. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
91
|
+
<div class="ttc" id="namespaceSVF_html_adc8b60ca7d60cf6c81feae20e4a04c63"><div class="ttname"><a href="namespaceSVF.html#adc8b60ca7d60cf6c81feae20e4a04c63">SVF::CallInst</a></div><div class="ttdeci">llvm::CallInst CallInst</div><div class="ttdoc">LLVM Instructions. </div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00076">BasicTypes.h:76</a></div></div>
|
|
92
92
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_ac24a8a6922d9dc9edecab3bc45bc9204"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ac24a8a6922d9dc9edecab3bc45bc9204">SVF::MTAResultValidator::getOutputforInterlevAnalysis</a></div><div class="ttdeci">std::string getOutputforInterlevAnalysis(const char *scenario, INTERLEV_FLAG analysisRes)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00131">MTAResultValidator.cpp:131</a></div></div>
|
|
93
93
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a251e16fc1fb663c238122dd6d2ba02e1"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a251e16fc1fb663c238122dd6d2ba02e1">SVF::MTAResultValidator::CXT_THREAD</a></div><div class="ttdeci">static constexpr char const * CXT_THREAD</div><div class="ttdoc">Map a statement to its thread interleavings. </div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00130">MTAResultValidator.h:130</a></div></div>
|
|
94
94
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a373b5227fbfa82ac070f55db999afb28"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a373b5227fbfa82ac070f55db999afb28">SVF::MTAResultValidator::validateInterleaving</a></div><div class="ttdeci">INTERLEV_FLAG validateInterleaving()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00457">MTAResultValidator.cpp:457</a></div></div>
|
|
@@ -96,12 +96,12 @@ $(function() {
|
|
|
96
96
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a7d2043cf3c354812fa5e4cdf7f60ff20"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a7d2043cf3c354812fa5e4cdf7f60ff20">SVF::MTAResultValidator::rthdToChildrenMap</a></div><div class="ttdeci">Map< NodeID, Set< NodeID > > rthdToChildrenMap</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00125">MTAResultValidator.h:125</a></div></div>
|
|
97
97
|
<div class="ttc" id="classSVF_1_1RaceResultValidator_html_afdd89e26a7c168762bfe85746252827f"><div class="ttname"><a href="classSVF_1_1RaceResultValidator.html#afdd89e26a7c168762bfe85746252827f">SVF::RaceResultValidator::getOutput</a></div><div class="ttdeci">std::string getOutput(const char *scenario, bool analysisRes, bool expectedRes)</div><div class="ttdoc">Get the validation result string of a single validation scenario. </div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00368">MTAResultValidator.h:368</a></div></div>
|
|
98
98
|
<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>
|
|
99
|
-
<div class="ttc" id="namespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
99
|
+
<div class="ttc" id="namespaceSVF_html_adefcb50414ea999d70cea5ccdbcb98d7"><div class="ttname"><a href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">SVF::ConstantInt</a></div><div class="ttdeci">llvm::ConstantInt ConstantInt</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00067">BasicTypes.h:67</a></div></div>
|
|
100
100
|
<div class="ttc" id="classSVF_1_1RaceResultValidator_html_a1294cb90b073ba25a8ffc06180c09419"><div class="ttname"><a href="classSVF_1_1RaceResultValidator.html#a1294cb90b073ba25a8ffc06180c09419">SVF::RaceResultValidator::selectedValidationScenarios</a></div><div class="ttdeci">RC_FLAG selectedValidationScenarios</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00387">MTAResultValidator.h:387</a></div></div>
|
|
101
101
|
<div class="ttc" id="classSVF_1_1RaceResultValidator_1_1AccessPair_html_aafb0a0cd068e1632f0d643233cad8ad9"><div class="ttname"><a href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#aafb0a0cd068e1632f0d643233cad8ad9">SVF::RaceResultValidator::AccessPair::flags</a></div><div class="ttdeci">RC_FLAG flags</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00205">MTAResultValidator.h:205</a></div></div>
|
|
102
102
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a6a55f1f8598998a3ffbbc67d32eaf8c4"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a6a55f1f8598998a3ffbbc67d32eaf8c4">SVF::SVFUtil::sucMsg</a></div><div class="ttdeci">std::string sucMsg(std::string msg)</div><div class="ttdoc">Returns successful message by converting a string into green string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00054">SVFUtil.cpp:54</a></div></div>
|
|
103
103
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a7fc576e83fa259d0ab06d54c3537c4ac"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a7fc576e83fa259d0ab06d54c3537c4ac">SVF::MTAResultValidator::vthdTorthdMap</a></div><div class="ttdeci">Map< NodeID, NodeID > vthdTorthdMap</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00122">MTAResultValidator.h:122</a></div></div>
|
|
104
|
-
<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#
|
|
104
|
+
<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#l00106">SVFBasicTypes.h:106</a></div></div>
|
|
105
105
|
<div class="ttc" id="classSVF_1_1RaceResultValidator_html_ac57ae430ee5b6868fe810172ec658853"><div class="ttname"><a href="classSVF_1_1RaceResultValidator.html#ac57ae430ee5b6868fe810172ec658853">SVF::RaceResultValidator::RC_FLAG</a></div><div class="ttdeci">int RC_FLAG</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00171">MTAResultValidator.h:171</a></div></div>
|
|
106
106
|
<div class="ttc" id="classSVF_1_1RaceResultValidator_1_1AccessPair_html"><div class="ttname"><a href="classSVF_1_1RaceResultValidator_1_1AccessPair.html">SVF::RaceResultValidator::AccessPair</a></div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00176">MTAResultValidator.h:176</a></div></div>
|
|
107
107
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a3c3eacff786230d093d27615ff360ed4"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a3c3eacff786230d093d27615ff360ed4">SVF::MTAResultValidator::collectInterleavingTargets</a></div><div class="ttdeci">bool collectInterleavingTargets()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00285">MTAResultValidator.cpp:285</a></div></div>
|
|
@@ -116,13 +116,13 @@ $(function() {
|
|
|
116
116
|
<div class="ttc" id="classSVF_1_1RaceResultValidator_html_aec8b923a0da580113a13bf94ffb3ebd7"><div class="ttname"><a href="classSVF_1_1RaceResultValidator.html#aec8b923a0da580113a13bf94ffb3ebd7">SVF::RaceResultValidator::init</a></div><div class="ttdeci">void init(SVFModule *M)</div><div class="ttdoc">Initialization. </div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00215">MTAResultValidator.h:215</a></div></div>
|
|
117
117
|
<div class="ttc" id="classSVF_1_1MHP_html_ac30f283cb2ad020a054ee6525ca94025"><div class="ttname"><a href="classSVF_1_1MHP.html#ac30f283cb2ad020a054ee6525ca94025">SVF::MHP::ThreadStmtToThreadInterleav</a></div><div class="ttdeci">Map< CxtThreadStmt, NodeBS > ThreadStmtToThreadInterleav</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00055">MHP.h:55</a></div></div>
|
|
118
118
|
<div class="ttc" id="classSVF_1_1RaceResultValidator_html_ab8a261120a7f6520d22a6f5cdf2257e9"><div class="ttname"><a href="classSVF_1_1RaceResultValidator.html#ab8a261120a7f6520d22a6f5cdf2257e9">SVF::RaceResultValidator::analyze</a></div><div class="ttdeci">void analyze()</div><div class="ttdoc">Analysis. </div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00223">MTAResultValidator.h:223</a></div></div>
|
|
119
|
-
<div class="ttc" id="namespaceSVF_html_ab700523619b089b952498f39a7f5b6b1"><div class="ttname"><a href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">SVF::CallStrCxt</a></div><div class="ttdeci">std::vector< u32_t > CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
119
|
+
<div class="ttc" id="namespaceSVF_html_ab700523619b089b952498f39a7f5b6b1"><div class="ttname"><a href="namespaceSVF.html#ab700523619b089b952498f39a7f5b6b1">SVF::CallStrCxt</a></div><div class="ttdeci">std::vector< u32_t > CallStrCxt</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00126">SVFBasicTypes.h:126</a></div></div>
|
|
120
120
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_ac4a7773211a9c842639ac25b1a504c7e"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ac4a7773211a9c842639ac25b1a504c7e">SVF::MTAResultValidator::threadStmtToInterLeaving</a></div><div class="ttdeci">MHP::ThreadStmtToThreadInterleav threadStmtToInterLeaving</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00128">MTAResultValidator.h:128</a></div></div>
|
|
121
|
-
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
121
|
+
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00048">BasicTypes.h:48</a></div></div>
|
|
122
122
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a8d54a1e8d1703d0c9ba541bcf997e900"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a8d54a1e8d1703d0c9ba541bcf997e900">SVF::MTAResultValidator::mod</a></div><div class="ttdeci">SVFModule * mod</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00142">MTAResultValidator.h:142</a></div></div>
|
|
123
123
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_aa0ca978e95529568edc4bdac1ffac110"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#aa0ca978e95529568edc4bdac1ffac110">SVF::MTAResultValidator::tdAPI</a></div><div class="ttdeci">ThreadAPI * tdAPI</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00134">MTAResultValidator.h:134</a></div></div>
|
|
124
124
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_afb110fec926967ba334bf2635d58a339"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#afb110fec926967ba334bf2635d58a339">SVF::MTAResultValidator::getCxtArg</a></div><div class="ttdeci">CallStrCxt getCxtArg(const Instruction *inst, unsigned int arg_num)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00085">MTAResultValidator.cpp:85</a></div></div>
|
|
125
|
-
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
125
|
+
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00051">BasicTypes.h:51</a></div></div>
|
|
126
126
|
<div class="ttc" id="classSVF_1_1RaceResultValidator_1_1AccessPair_html_a7dd2f8afab59ee4d107a6bfdb6c151ea"><div class="ttname"><a href="classSVF_1_1RaceResultValidator_1_1AccessPair.html#a7dd2f8afab59ee4d107a6bfdb6c151ea">SVF::RaceResultValidator::AccessPair::AccessPair</a></div><div class="ttdeci">AccessPair(const Instruction *I1, const Instruction *I2, const RC_FLAG flags)</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00180">MTAResultValidator.h:180</a></div></div>
|
|
127
127
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a245c967245e5a693eaf7f60782143d7a"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a245c967245e5a693eaf7f60782143d7a">SVF::MTAResultValidator::vthdToCxt</a></div><div class="ttdeci">vthdToCxtMap vthdToCxt</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00137">MTAResultValidator.h:137</a></div></div>
|
|
128
128
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a1c34f6a65688a3261ec27a35e9b9601b"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a1c34f6a65688a3261ec27a35e9b9601b">SVF::MTAResultValidator::INTERLEV_UNSOUND</a></div><div class="ttdeci">static const INTERLEV_FLAG INTERLEV_UNSOUND</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00147">MTAResultValidator.h:147</a></div></div>
|
|
@@ -154,7 +154,7 @@ $(function() {
|
|
|
154
154
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_ab386260dd6bbaeacde10e5c81f07502c"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ab386260dd6bbaeacde10e5c81f07502c">SVF::MTAResultValidator::rthdTovthdMap</a></div><div class="ttdeci">Map< NodeID, NodeID > rthdTovthdMap</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00123">MTAResultValidator.h:123</a></div></div>
|
|
155
155
|
<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>
|
|
156
156
|
<div class="ttc" id="classSVF_1_1RaceResultValidator_html_a64f61b58f59eba5f3e7c69f90edc68df"><div class="ttname"><a href="classSVF_1_1RaceResultValidator.html#a64f61b58f59eba5f3e7c69f90edc68df">SVF::RaceResultValidator::release</a></div><div class="ttdeci">void release()</div><div class="ttdoc">Release resource. </div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00229">MTAResultValidator.h:229</a></div></div>
|
|
157
|
-
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#
|
|
157
|
+
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00344">Casting.h:344</a></div></div>
|
|
158
158
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_afd9f0901b8474c35011eeb57e9bd15e9"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#afd9f0901b8474c35011eeb57e9bd15e9">SVF::MTAResultValidator::~MTAResultValidator</a></div><div class="ttdeci">~MTAResultValidator()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00034">MTAResultValidator.h:34</a></div></div>
|
|
159
159
|
<div class="ttc" id="classSVF_1_1RaceResultValidator_html_a749793355ab8390a1e6577d7b05efddf"><div class="ttname"><a href="classSVF_1_1RaceResultValidator.html#a749793355ab8390a1e6577d7b05efddf">SVF::RaceResultValidator::hasValidationTarget</a></div><div class="ttdeci">bool hasValidationTarget() const</div><div class="ttdoc">Check if the input program has validation target. </div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00234">MTAResultValidator.h:234</a></div></div>
|
|
160
160
|
<div class="ttc" id="classSVF_1_1RaceResultValidator_html_abd3ad42a71357dfd1483e6e0d18d5ebd"><div class="ttname"><a href="classSVF_1_1RaceResultValidator.html#abd3ad42a71357dfd1483e6e0d18d5ebd">SVF::RaceResultValidator::M</a></div><div class="ttdeci">SVFModule * M</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00385">MTAResultValidator.h:385</a></div></div>
|
|
@@ -165,7 +165,7 @@ $(function() {
|
|
|
165
165
|
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a5d4bb92f5df30417f414397f8e58cf01"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a5d4bb92f5df30417f414397f8e58cf01">SVF::SVFUtil::errMsg</a></div><div class="ttdeci">std::string errMsg(std::string msg)</div><div class="ttdoc">Print error message by converting a string into red string output. </div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00076">SVFUtil.cpp:76</a></div></div>
|
|
166
166
|
<div class="ttc" id="cJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
167
167
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_a6b3592525d5275d583c0726744d1f857"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#a6b3592525d5275d583c0726744d1f857">SVF::MTAResultValidator::mhp</a></div><div class="ttdeci">MHP * mhp</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00136">MTAResultValidator.h:136</a></div></div>
|
|
168
|
-
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
168
|
+
<div class="ttc" id="namespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00050">BasicTypes.h:50</a></div></div>
|
|
169
169
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_ae709b039a68f5600271c40903b1c0dbe"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#ae709b039a68f5600271c40903b1c0dbe">SVF::MTAResultValidator::TCT_ACCESS</a></div><div class="ttdeci">static constexpr char const * TCT_ACCESS</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00132">MTAResultValidator.h:132</a></div></div>
|
|
170
170
|
<div class="ttc" id="classSVF_1_1RaceResultValidator_html_aeb24aa510c7073ef71062e89a11fe00a"><div class="ttname"><a href="classSVF_1_1RaceResultValidator.html#aeb24aa510c7073ef71062e89a11fe00a">SVF::RaceResultValidator::protectedByCommonLocks</a></div><div class="ttdeci">virtual bool protectedByCommonLocks(const Instruction *I1, const Instruction *I2)</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8h_source.html#l00255">MTAResultValidator.h:255</a></div></div>
|
|
171
171
|
<div class="ttc" id="classSVF_1_1MTAResultValidator_html_abdf31e8fca824b56a53788de525042a6"><div class="ttname"><a href="classSVF_1_1MTAResultValidator.html#abdf31e8fca824b56a53788de525042a6">SVF::MTAResultValidator::collectTCTTargets</a></div><div class="ttdeci">bool collectTCTTargets()</div><div class="ttdef"><b>Definition:</b> <a href="MTAResultValidator_8cpp_source.html#l00250">MTAResultValidator.cpp:250</a></div></div>
|
|
@@ -72,7 +72,7 @@ $(function() {
|
|
|
72
72
|
<div class="ttc" id="classSVF_1_1MTAStat_html_a12f6bd291b206c18001f5d4775251481"><div class="ttname"><a href="classSVF_1_1MTAStat.html#a12f6bd291b206c18001f5d4775251481">SVF::MTAStat::performTCTStat</a></div><div class="ttdeci">void performTCTStat(TCT *tct)</div><div class="ttdoc">Statistics for thread creation tree. </div><div class="ttdef"><b>Definition:</b> <a href="MTAStat_8cpp_source.html#l00094">MTAStat.cpp:94</a></div></div>
|
|
73
73
|
<div class="ttc" id="MHP_8h_html"><div class="ttname"><a href="MHP_8h.html">MHP.h</a></div></div>
|
|
74
74
|
<div class="ttc" id="classSVF_1_1GenericGraph_html_a8c8d16036008f87c7811586047599858"><div class="ttname"><a href="classSVF_1_1GenericGraph.html#a8c8d16036008f87c7811586047599858">SVF::GenericGraph::getTotalNodeNum</a></div><div class="ttdeci">u32_t getTotalNodeNum() const</div><div class="ttdoc">Get total number of node/edge. </div><div class="ttdef"><b>Definition:</b> <a href="GenericGraph_8h_source.html#l00418">GenericGraph.h:418</a></div></div>
|
|
75
|
-
<div class="ttc" id="namespaceSVF_html_a032e8478a7b6a8bb0b7755c98a7bce91"><div class="ttname"><a href="namespaceSVF.html#a032e8478a7b6a8bb0b7755c98a7bce91">SVF::const_inst_iterator</a></div><div class="ttdeci">llvm::const_inst_iterator const_inst_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#
|
|
75
|
+
<div class="ttc" id="namespaceSVF_html_a032e8478a7b6a8bb0b7755c98a7bce91"><div class="ttname"><a href="namespaceSVF.html#a032e8478a7b6a8bb0b7755c98a7bce91">SVF::const_inst_iterator</a></div><div class="ttdeci">llvm::const_inst_iterator const_inst_iterator</div><div class="ttdef"><b>Definition:</b> <a href="SVF-FE_2BasicTypes_8h_source.html#l00188">BasicTypes.h:188</a></div></div>
|
|
76
76
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a8721610a39212613ad55bbd46a35c576"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a8721610a39212613ad55bbd46a35c576">SVF::ThreadCallGraph::getForkEdgeBegin</a></div><div class="ttdeci">ForkEdgeSet::const_iterator getForkEdgeBegin(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00208">ThreadCallGraph.h:208</a></div></div>
|
|
77
77
|
<div class="ttc" id="classSVF_1_1MHP_html_ab7d9fe837844197b7acdc0493a50aaa5"><div class="ttname"><a href="classSVF_1_1MHP.html#ab7d9fe837844197b7acdc0493a50aaa5">SVF::MHP::interleavingQueriesTime</a></div><div class="ttdeci">double interleavingQueriesTime</div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00286">MHP.h:286</a></div></div>
|
|
78
78
|
<div class="ttc" id="classSVF_1_1MTAStat_html_a21f01e6b0362de2c2ad12d5689c26940"><div class="ttname"><a href="classSVF_1_1MTAStat.html#a21f01e6b0362de2c2ad12d5689c26940">SVF::MTAStat::performAnnotationStat</a></div><div class="ttdeci">void performAnnotationStat(MTAAnnotator *anno)</div><div class="ttdoc">Statistics for annotation. </div><div class="ttdef"><b>Definition:</b> <a href="MTAStat_8cpp_source.html#l00178">MTAStat.cpp:178</a></div></div>
|
|
@@ -82,7 +82,7 @@ $(function() {
|
|
|
82
82
|
<div class="ttc" id="classSVF_1_1TCT_html_a54cceb577b4fb89c1d84011ec4d2fe2c"><div class="ttname"><a href="classSVF_1_1TCT.html#a54cceb577b4fb89c1d84011ec4d2fe2c">SVF::TCT::getMakredProcs</a></div><div class="ttdeci">const FunSet & getMakredProcs() const</div><div class="ttdoc">Get marked candidate functions. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00228">TCT.h:228</a></div></div>
|
|
83
83
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a1ebbd26c17cff1c1a1bee9caa9a8f825"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a1ebbd26c17cff1c1a1bee9caa9a8f825">SVF::ThreadCallGraph::forksitesEnd</a></div><div class="ttdeci">CallSiteSet::const_iterator forksitesEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00277">ThreadCallGraph.h:277</a></div></div>
|
|
84
84
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a811d7d13c05c71bd816621a9a8765365"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a811d7d13c05c71bd816621a9a8765365">SVF::ThreadCallGraph::getJoinEdgeEnd</a></div><div class="ttdeci">JoinEdgeSet::const_iterator getJoinEdgeEnd(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00234">ThreadCallGraph.h:234</a></div></div>
|
|
85
|
-
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
85
|
+
<div class="ttc" id="classSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00093">BasicTypes.h:93</a></div></div>
|
|
86
86
|
<div class="ttc" id="classSVF_1_1SVFStat_html_a11c34e8ba16769d218432d9504ba26a0"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a11c34e8ba16769d218432d9504ba26a0">SVF::SVFStat::PTNumStatMap</a></div><div class="ttdeci">NUMStatMap PTNumStatMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00074">SVFStat.h:74</a></div></div>
|
|
87
87
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a8351e7ab445cb7faf0209d1fbc63fce1"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a8351e7ab445cb7faf0209d1fbc63fce1">SVF::ThreadCallGraph::getForkEdgeEnd</a></div><div class="ttdeci">ForkEdgeSet::const_iterator getForkEdgeEnd(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00214">ThreadCallGraph.h:214</a></div></div>
|
|
88
88
|
<div class="ttc" id="classSVF_1_1TCT_html_af03bfeae7e09a9f62d96ba59632e588f"><div class="ttname"><a href="classSVF_1_1TCT.html#af03bfeae7e09a9f62d96ba59632e588f">SVF::TCT::getTCTNodeNum</a></div><div class="ttdeci">u32_t getTCTNodeNum() const</div><div class="ttdoc">Get Statistics. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00241">TCT.h:241</a></div></div>
|
|
@@ -94,7 +94,7 @@ $(function() {
|
|
|
94
94
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_af848d7cb8a9f756ff45cca45adbf3b84"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#af848d7cb8a9f756ff45cca45adbf3b84">SVF::ThreadCallGraph::getJoinEdgeBegin</a></div><div class="ttdeci">JoinEdgeSet::const_iterator getJoinEdgeBegin(const CallICFGNode *cs) const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00228">ThreadCallGraph.h:228</a></div></div>
|
|
95
95
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a3df63f936d488166109d73bdcf0437d5"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a3df63f936d488166109d73bdcf0437d5">SVF::LockAnalysis::getNumOfCxtLocks</a></div><div class="ttdeci">u32_t getNumOfCxtLocks()</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00317">LockAnalysis.h:317</a></div></div>
|
|
96
96
|
<div class="ttc" id="classSVF_1_1MTAAnnotator_html_aa1572c2a9f260ff66c9da661fd669a5f"><div class="ttname"><a href="classSVF_1_1MTAAnnotator.html#aa1572c2a9f260ff66c9da661fd669a5f">SVF::MTAAnnotator::numOfAliasLd</a></div><div class="ttdeci">u32_t numOfAliasLd</div><div class="ttdef"><b>Definition:</b> <a href="MTAAnnotator_8h_source.html#l00100">MTAAnnotator.h:100</a></div></div>
|
|
97
|
-
<div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
97
|
+
<div class="ttc" id="namespaceSVF_html_ad42bff8d0a7d60a085aa32d10f4955af"><div class="ttname"><a href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">SVF::u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00081">SVFBasicTypes.h:81</a></div></div>
|
|
98
98
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a37f2e076713a9aeb0e4313fb05dfb92e"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a37f2e076713a9aeb0e4313fb05dfb92e">SVF::ThreadCallGraph::forksitesBegin</a></div><div class="ttdeci">CallSiteSet::const_iterator forksitesBegin() const</div><div class="ttdoc">Fork sites iterators. </div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00273">ThreadCallGraph.h:273</a></div></div>
|
|
99
99
|
<div class="ttc" id="classSVF_1_1MHP_html_ab8bd382e0c70b0feb2a291ecc4043106"><div class="ttname"><a href="classSVF_1_1MHP.html#ab8bd382e0c70b0feb2a291ecc4043106">SVF::MHP::numOfMHPQueries</a></div><div class="ttdeci">u32_t numOfMHPQueries</div><div class="ttdoc">Number of queries are answered as may-happen-in-parallel. </div><div class="ttdef"><b>Definition:</b> <a href="MHP_8h_source.html#l00284">MHP.h:284</a></div></div>
|
|
100
100
|
<div class="ttc" id="classSVF_1_1MTAAnnotator_html_a3c07f9964623b3895b1bab59a63dccfb"><div class="ttname"><a href="classSVF_1_1MTAAnnotator.html#a3c07f9964623b3895b1bab59a63dccfb">SVF::MTAAnnotator::numOfNonLocalSt</a></div><div class="ttdeci">u32_t numOfNonLocalSt</div><div class="ttdef"><b>Definition:</b> <a href="MTAAnnotator_8h_source.html#l00097">MTAAnnotator.h:97</a></div></div>
|
|
@@ -107,11 +107,11 @@ $(function() {
|
|
|
107
107
|
<div class="ttc" id="classSVF_1_1MTAStat_html_a51e1ba35f81d89e210a937942f516839"><div class="ttname"><a href="classSVF_1_1MTAStat.html#a51e1ba35f81d89e210a937942f516839">SVF::MTAStat::AnnotationTime</a></div><div class="ttdeci">double AnnotationTime</div><div class="ttdef"><b>Definition:</b> <a href="MTAStat_8h_source.html#l00068">MTAStat.h:68</a></div></div>
|
|
108
108
|
<div class="ttc" id="classSVF_1_1SVFStat_html_a178fcefed6ffffc78bbe9b23e0e1babe"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a178fcefed6ffffc78bbe9b23e0e1babe">SVF::SVFStat::printStat</a></div><div class="ttdeci">virtual void printStat(std::string str="")</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00066">SVFStat.cpp:66</a></div></div>
|
|
109
109
|
<div class="ttc" id="classSVF_1_1SVFStat_html_a07b6f8cb424b84b468c4518140fa3a41"><div class="ttname"><a href="classSVF_1_1SVFStat.html#a07b6f8cb424b84b468c4518140fa3a41">SVF::SVFStat::generalNumMap</a></div><div class="ttdeci">NUMStatMap generalNumMap</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00073">SVFStat.h:73</a></div></div>
|
|
110
|
-
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
110
|
+
<div class="ttc" id="namespaceSVF_html_a5faee14fa1dd41447bc73ac365fe33c1"><div class="ttname"><a href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">SVF::Function</a></div><div class="ttdeci">llvm::Function Function</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00048">BasicTypes.h:48</a></div></div>
|
|
111
111
|
<div class="ttc" id="SVF-FE_2BasicTypes_8h_html"><div class="ttname"><a href="SVF-FE_2BasicTypes_8h.html">BasicTypes.h</a></div></div>
|
|
112
112
|
<div class="ttc" id="classSVF_1_1MTAAnnotator_html"><div class="ttname"><a href="classSVF_1_1MTAAnnotator.html">SVF::MTAAnnotator</a></div><div class="ttdef"><b>Definition:</b> <a href="MTAAnnotator_8h_source.html#l00021">MTAAnnotator.h:21</a></div></div>
|
|
113
113
|
<div class="ttc" id="classSVF_1_1MTAAnnotator_html_a71178ddc585c9ca7c9e5c3b52378cd7d"><div class="ttname"><a href="classSVF_1_1MTAAnnotator.html#a71178ddc585c9ca7c9e5c3b52378cd7d">SVF::MTAAnnotator::numOfAliasSt</a></div><div class="ttdeci">u32_t numOfAliasSt</div><div class="ttdef"><b>Definition:</b> <a href="MTAAnnotator_8h_source.html#l00099">MTAAnnotator.h:99</a></div></div>
|
|
114
|
-
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
114
|
+
<div class="ttc" id="namespaceSVF_html_a7875172ff434b2210eea7cecfbbd959e"><div class="ttname"><a href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">SVF::Instruction</a></div><div class="ttdeci">llvm::Instruction Instruction</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00051">BasicTypes.h:51</a></div></div>
|
|
115
115
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a733bf08c7a496435ad09a41e6b0343ff"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a733bf08c7a496435ad09a41e6b0343ff">SVF::ThreadCallGraph::getNumOfJoinsite</a></div><div class="ttdeci">u32_t getNumOfJoinsite() const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00313">ThreadCallGraph.h:313</a></div></div>
|
|
116
116
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_ad648ad9cda4070f9aec1addef0067627"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#ad648ad9cda4070f9aec1addef0067627">SVF::LockAnalysis::numOfTotalQueries</a></div><div class="ttdeci">u32_t numOfTotalQueries</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00515">LockAnalysis.h:515</a></div></div>
|
|
117
117
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_a853ab1a953ddcf76841016a833e43f3d"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#a853ab1a953ddcf76841016a833e43f3d">SVF::LockAnalysis::lockQueriesTime</a></div><div class="ttdeci">double lockQueriesTime</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00517">LockAnalysis.h:517</a></div></div>
|
|
@@ -131,7 +131,7 @@ $(function() {
|
|
|
131
131
|
<div class="ttc" id="Options_8h_html"><div class="ttname"><a href="Options_8h.html">Options.h</a></div></div>
|
|
132
132
|
<div class="ttc" id="classSVF_1_1MTAAnnotator_html_a3a53e90b4f361d1298983bc89795b3d2"><div class="ttname"><a href="classSVF_1_1MTAAnnotator.html#a3a53e90b4f361d1298983bc89795b3d2">SVF::MTAAnnotator::numOfMHPSt</a></div><div class="ttdeci">u32_t numOfMHPSt</div><div class="ttdef"><b>Definition:</b> <a href="MTAAnnotator_8h_source.html#l00101">MTAAnnotator.h:101</a></div></div>
|
|
133
133
|
<div class="ttc" id="classSVF_1_1MTAAnnotator_html_aa0149b932b4148b14b36e2c5cf9b614b"><div class="ttname"><a href="classSVF_1_1MTAAnnotator.html#aa0149b932b4148b14b36e2c5cf9b614b">SVF::MTAAnnotator::numOfAllSt</a></div><div class="ttdeci">u32_t numOfAllSt</div><div class="ttdef"><b>Definition:</b> <a href="MTAAnnotator_8h_source.html#l00095">MTAAnnotator.h:95</a></div></div>
|
|
134
|
-
<div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#
|
|
134
|
+
<div class="ttc" id="classSVF_1_1SVFFunction_html_ac4ae917ae35ac6fca652fe2dd90a8ac2"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ac4ae917ae35ac6fca652fe2dd90a8ac2">SVF::SVFFunction::getLLVMFun</a></div><div class="ttdeci">Function * getLLVMFun() const</div><div class="ttdef"><b>Definition:</b> <a href="Util_2BasicTypes_8h_source.html#l00119">BasicTypes.h:119</a></div></div>
|
|
135
135
|
<div class="ttc" id="classSVF_1_1MTAStat_html_a6464eb27715b598bab0217258860a04b"><div class="ttname"><a href="classSVF_1_1MTAStat.html#a6464eb27715b598bab0217258860a04b">SVF::MTAStat::performMHPPairStat</a></div><div class="ttdeci">void performMHPPairStat(MHP *mhp, LockAnalysis *lsa)</div><div class="ttdoc">Statistics for MHP statement pairs. </div><div class="ttdef"><b>Definition:</b> <a href="MTAStat_8cpp_source.html#l00114">MTAStat.cpp:114</a></div></div>
|
|
136
136
|
<div class="ttc" id="classSVF_1_1TCT_html_a1602d02773578bca73dcbd29b95c67d0"><div class="ttname"><a href="classSVF_1_1TCT.html#a1602d02773578bca73dcbd29b95c67d0">SVF::TCT::getThreadCallGraph</a></div><div class="ttdeci">ThreadCallGraph * getThreadCallGraph() const</div><div class="ttdoc">Get TCG. </div><div class="ttdef"><b>Definition:</b> <a href="TCT_8h_source.html#l00188">TCT.h:188</a></div></div>
|
|
137
137
|
<div class="ttc" id="TCT_8h_html"><div class="ttname"><a href="TCT_8h.html">TCT.h</a></div></div>
|
|
@@ -140,7 +140,7 @@ $(function() {
|
|
|
140
140
|
<div class="ttc" id="classSVF_1_1ThreadCallGraph_html_a50502f398e5eac9c6da3e26ea6052057"><div class="ttname"><a href="classSVF_1_1ThreadCallGraph.html#a50502f398e5eac9c6da3e26ea6052057">SVF::ThreadCallGraph::joinsitesEnd</a></div><div class="ttdeci">CallSiteSet::const_iterator joinsitesEnd() const</div><div class="ttdef"><b>Definition:</b> <a href="ThreadCallGraph_8h_source.html#l00289">ThreadCallGraph.h:289</a></div></div>
|
|
141
141
|
<div class="ttc" id="classSVF_1_1Options_html_aa78f442ee8d7272e98396fd86dea4993"><div class="ttname"><a href="classSVF_1_1Options.html#aa78f442ee8d7272e98396fd86dea4993">SVF::Options::AllPairMHP</a></div><div class="ttdeci">static const llvm::cl::opt< bool > AllPairMHP</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00189">Options.h:189</a></div></div>
|
|
142
142
|
<div class="ttc" id="classSVF_1_1SVFModule_html_a58d03edb6ff85f4943135478f113df31"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a58d03edb6ff85f4943135478f113df31">SVF::SVFModule::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00164">SVFModule.h:164</a></div></div>
|
|
143
|
-
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#
|
|
143
|
+
<div class="ttc" id="namespaceSVF_1_1SVFUtil_html_a8182be247907420db00837cef9bcfa70"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a8182be247907420db00837cef9bcfa70">SVF::SVFUtil::dyn_cast</a></div><div class="ttdeci">LLVM_NODISCARD std::enable_if<!is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)</div><div class="ttdef"><b>Definition:</b> <a href="Casting_8h_source.html#l00344">Casting.h:344</a></div></div>
|
|
144
144
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html_adadee129c04b82576b4ca3c7594cdcb2"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html#adadee129c04b82576b4ca3c7594cdcb2">SVF::LockAnalysis::lockTime</a></div><div class="ttdeci">double lockTime</div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00514">LockAnalysis.h:514</a></div></div>
|
|
145
145
|
<div class="ttc" id="classSVF_1_1SVFModule_html_a709371b13dcf500277f8bc275bdb23c7"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a709371b13dcf500277f8bc275bdb23c7">SVF::SVFModule::iterator</a></div><div class="ttdeci">FunctionSetType::iterator iterator</div><div class="ttdoc">Iterators type def. </div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00051">SVFModule.h:51</a></div></div>
|
|
146
146
|
<div class="ttc" id="classSVF_1_1MTAAnnotator_html_ad53ac0cec797f84d3bc14bdb6bab1ab3"><div class="ttname"><a href="classSVF_1_1MTAAnnotator.html#ad53ac0cec797f84d3bc14bdb6bab1ab3">SVF::MTAAnnotator::numOfNonLocalLd</a></div><div class="ttdeci">u32_t numOfNonLocalLd</div><div class="ttdef"><b>Definition:</b> <a href="MTAAnnotator_8h_source.html#l00098">MTAAnnotator.h:98</a></div></div>
|
|
@@ -74,7 +74,7 @@ $(function() {
|
|
|
74
74
|
<div class="ttc" id="classSVF_1_1MTAStat_html_a030671ec358a93e3c2887f048dcfcce8"><div class="ttname"><a href="classSVF_1_1MTAStat.html#a030671ec358a93e3c2887f048dcfcce8">SVF::MTAStat::FSMPTATime</a></div><div class="ttdeci">double FSMPTATime</div><div class="ttdef"><b>Definition:</b> <a href="MTAStat_8h_source.html#l00067">MTAStat.h:67</a></div></div>
|
|
75
75
|
<div class="ttc" id="classSVF_1_1MTAStat_html_a3298dd910e731fdabc87bbcf65371a4a"><div class="ttname"><a href="classSVF_1_1MTAStat.html#a3298dd910e731fdabc87bbcf65371a4a">SVF::MTAStat::TCTTime</a></div><div class="ttdeci">double TCTTime</div><div class="ttdef"><b>Definition:</b> <a href="MTAStat_8h_source.html#l00065">MTAStat.h:65</a></div></div>
|
|
76
76
|
<div class="ttc" id="classSVF_1_1MTAStat_html_a51e1ba35f81d89e210a937942f516839"><div class="ttname"><a href="classSVF_1_1MTAStat.html#a51e1ba35f81d89e210a937942f516839">SVF::MTAStat::AnnotationTime</a></div><div class="ttdeci">double AnnotationTime</div><div class="ttdef"><b>Definition:</b> <a href="MTAStat_8h_source.html#l00068">MTAStat.h:68</a></div></div>
|
|
77
|
-
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#
|
|
77
|
+
<div class="ttc" id="namespaceSVF_html_af739db846e47ba6b2fd15eaad31ab7fb"><div class="ttname"><a href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">SVF::Set</a></div><div class="ttdeci">std::unordered_set< Key, Hash, KeyEqual, Allocator > Set</div><div class="ttdef"><b>Definition:</b> <a href="SVFBasicTypes_8h_source.html#l00101">SVFBasicTypes.h:101</a></div></div>
|
|
78
78
|
<div class="ttc" id="classSVF_1_1MTAAnnotator_html"><div class="ttname"><a href="classSVF_1_1MTAAnnotator.html">SVF::MTAAnnotator</a></div><div class="ttdef"><b>Definition:</b> <a href="MTAAnnotator_8h_source.html#l00021">MTAAnnotator.h:21</a></div></div>
|
|
79
79
|
<div class="ttc" id="classSVF_1_1LockAnalysis_html"><div class="ttname"><a href="classSVF_1_1LockAnalysis.html">SVF::LockAnalysis</a></div><div class="ttdef"><b>Definition:</b> <a href="LockAnalysis_8h_source.html#l00045">LockAnalysis.h:45</a></div></div>
|
|
80
80
|
<div class="ttc" id="classSVF_1_1MTAStat_html_a424ec97192aa5681f9f92a0a6f3ee8a8"><div class="ttname"><a href="classSVF_1_1MTAStat.html#a424ec97192aa5681f9f92a0a6f3ee8a8">SVF::MTAStat::InstSet</a></div><div class="ttdeci">Set< const Instruction * > InstSet</div><div class="ttdef"><b>Definition:</b> <a href="MTAStat_8h_source.html#l00050">MTAStat.h:50</a></div></div>
|