svf-tools 1.0.749 → 1.0.751
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/AccessPath_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenSCD_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/AndersenWaveDiff_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/Andersen_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/Andersen_8h_source.html +2 -2
- package/SVF-doxygen/html/html/CFBasicBlockG_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/CFBasicBlockG_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 +5 -5
- package/SVF-doxygen/html/html/CFLBase_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/CHGBuilder_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/CHG_8cpp.html +4 -4
- package/SVF-doxygen/html/html/CHG_8cpp_source.html +11 -11
- package/SVF-doxygen/html/html/CHG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CallGraphBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/ConsG_8cpp_source.html +19 -19
- package/SVF-doxygen/html/html/ConsG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ContextDDA_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/ContextDDA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/CxtStmt_8h_source.html +6 -6
- package/SVF-doxygen/html/html/DCHG_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/DCHG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/DDAClient_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/DDAPass_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/DDAPass_8h_source.html +1 -1
- package/SVF-doxygen/html/html/DDAStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DDAVFSolver_8h_source.html +5 -5
- package/SVF-doxygen/html/html/DoubleFreeChecker_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/DoubleFreeChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/ExtAPI_8cpp_source.html +22 -22
- package/SVF-doxygen/html/html/ExtAPI_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FSMPTA_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/FileChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/FlowDDA_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/FlowDDA_8h_source.html +3 -3
- package/SVF-doxygen/html/html/FlowSensitiveStat_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/FlowSensitive_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/ICFGBuilder_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/ICFGBuilder_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ICFGEdge_8h_source.html +3 -3
- package/SVF-doxygen/html/html/ICFGNode_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ICFG_8cpp_source.html +15 -15
- package/SVF-doxygen/html/html/ICFG_8h_source.html +2 -2
- package/SVF-doxygen/html/html/IRGraph_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/IRGraph_8h_source.html +2 -2
- package/SVF-doxygen/html/html/LLVMLoopAnalysis_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/LLVMModule_8cpp.html +1 -60
- package/SVF-doxygen/html/html/LLVMModule_8cpp_source.html +1194 -1254
- package/SVF-doxygen/html/html/LLVMModule_8h_source.html +38 -38
- package/SVF-doxygen/html/html/LLVMUtil_8cpp.html +0 -8
- package/SVF-doxygen/html/html/LLVMUtil_8cpp_source.html +25 -44
- package/SVF-doxygen/html/html/LLVMUtil_8h_source.html +3 -3
- package/SVF-doxygen/html/html/LeakChecker_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/LeakChecker_8h_source.html +1 -1
- package/SVF-doxygen/html/html/LockAnalysis_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/LockAnalysis_8h_source.html +5 -5
- package/SVF-doxygen/html/html/LockResultValidator_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/LockResultValidator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MHP_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/MHP_8h_source.html +4 -4
- package/SVF-doxygen/html/html/MSSAMuChi_8h_source.html +5 -5
- package/SVF-doxygen/html/html/MTAAnnotator_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/MTAAnnotator_8h_source.html +2 -2
- package/SVF-doxygen/html/html/MTAResultValidator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/MTAStat_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/MTA_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/MemPartition_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/MemPartition_8h_source.html +1 -1
- package/SVF-doxygen/html/html/MemRegion_8cpp_source.html +20 -20
- package/SVF-doxygen/html/html/MemRegion_8h_source.html +5 -5
- package/SVF-doxygen/html/html/MemSSA_8cpp_source.html +27 -27
- package/SVF-doxygen/html/html/MemSSA_8h_source.html +4 -4
- package/SVF-doxygen/html/html/NodeIDAllocator_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PAGBuilderFromFile_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/PCG_8cpp_source.html +13 -13
- package/SVF-doxygen/html/html/PCG_8h_source.html +3 -3
- package/SVF-doxygen/html/html/PTACallGraph_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/PTACallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8cpp_source.html +5 -5
- package/SVF-doxygen/html/html/PointerAnalysisImpl_8h_source.html +4 -4
- package/SVF-doxygen/html/html/PointerAnalysis_8cpp_source.html +21 -21
- package/SVF-doxygen/html/html/PointerAnalysis_8h_source.html +2 -2
- package/SVF-doxygen/html/html/ProgSlice_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ProgSlice_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFBugReport_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFBugReport_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SVFFileSystem_8cpp_source.html +35 -35
- package/SVF-doxygen/html/html/SVFFileSystem_8h_source.html +33 -33
- package/SVF-doxygen/html/html/SVFGBuilder_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGNode_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGOPT_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFGOPT_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFGReadWrite_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SVFGStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/SVFG_8cpp_source.html +8 -8
- package/SVF-doxygen/html/html/SVFG_8h_source.html +1 -1
- package/SVF-doxygen/html/html/SVFIR2ConsExeState_8cpp_source.html +70 -70
- package/SVF-doxygen/html/html/SVFIR2ConsExeState_8h_source.html +11 -11
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8cpp_source.html +69 -69
- package/SVF-doxygen/html/html/SVFIR2ItvExeState_8h_source.html +11 -11
- package/SVF-doxygen/html/html/SVFIR2Relation_8cpp_source.html +38 -38
- package/SVF-doxygen/html/html/SVFIRBuilder_8cpp_source.html +22 -22
- package/SVF-doxygen/html/html/SVFIRBuilder_8h_source.html +21 -21
- package/SVF-doxygen/html/html/SVFIRExtAPI_8cpp_source.html +21 -21
- package/SVF-doxygen/html/html/SVFIR_8cpp_source.html +23 -23
- package/SVF-doxygen/html/html/SVFIR_8h_source.html +18 -18
- package/SVF-doxygen/html/html/SVFModule_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SVFModule_8h_source.html +4 -4
- package/SVF-doxygen/html/html/SVFStat_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SVFStatements_8cpp_source.html +46 -46
- package/SVF-doxygen/html/html/SVFStatements_8h_source.html +1116 -1114
- package/SVF-doxygen/html/html/SVFType_8h.html +23 -25
- package/SVF-doxygen/html/html/SVFType_8h_source.html +134 -137
- package/SVF-doxygen/html/html/SVFUtil_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/SVFUtil_8h_source.html +7 -7
- package/SVF-doxygen/html/html/SVFValue_8cpp_source.html +126 -247
- package/SVF-doxygen/html/html/SVFValue_8h.html +1 -1
- package/SVF-doxygen/html/html/SVFValue_8h_source.html +1061 -1103
- package/SVF-doxygen/html/html/SVFVariables_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SVFVariables_8h_source.html +3 -3
- package/SVF-doxygen/html/html/SaberCheckerAPI_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SaberCondAllocator_8cpp_source.html +26 -26
- package/SVF-doxygen/html/html/SaberCondAllocator_8h_source.html +8 -8
- package/SVF-doxygen/html/html/SaberSVFGBuilder_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/SrcSnkDDA_8cpp_source.html +3 -3
- package/SVF-doxygen/html/html/SrcSnkDDA_8h_source.html +1 -1
- package/SVF-doxygen/html/html/Steensgaard_8cpp_source.html +10 -10
- package/SVF-doxygen/html/html/Steensgaard_8h_source.html +2 -2
- package/SVF-doxygen/html/html/SymbolTableBuilder_8cpp_source.html +6 -6
- package/SVF-doxygen/html/html/SymbolTableInfo_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/SymbolTableInfo_8h_source.html +2 -2
- package/SVF-doxygen/html/html/TCT_8cpp_source.html +17 -17
- package/SVF-doxygen/html/html/TCT_8h_source.html +7 -7
- package/SVF-doxygen/html/html/ThreadAPI_8cpp_source.html +9 -9
- package/SVF-doxygen/html/html/ThreadAPI_8h_source.html +5 -5
- package/SVF-doxygen/html/html/ThreadCallGraph_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/ThreadCallGraph_8h_source.html +1 -1
- package/SVF-doxygen/html/html/TypeAnalysis_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/VFGNode_8h_source.html +14 -14
- package/SVF-doxygen/html/html/VFG_8cpp_source.html +24 -24
- package/SVF-doxygen/html/html/VFG_8h_source.html +18 -18
- package/SVF-doxygen/html/html/VersionedFlowSensitiveStat_8cpp_source.html +1 -1
- package/SVF-doxygen/html/html/VersionedFlowSensitive_8cpp_source.html +2 -2
- package/SVF-doxygen/html/html/WPAPass_8cpp_source.html +7 -7
- package/SVF-doxygen/html/html/WPAPass_8h_source.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1AccessPath.html +2 -2
- 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_1AddrStmt.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1AliasDDAClient.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1Andersen.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1AndersenBase.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AndersenSCD.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AndersenStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1AndersenWaveDiff.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1AssignStmt.html +51 -51
- package/SVF-doxygen/html/html/classSVF_1_1BVDataPTAImpl.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPStmt.html +70 -70
- package/SVF-doxygen/html/html/classSVF_1_1BinaryOPVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1BranchStmt.html +53 -53
- package/SVF-doxygen/html/html/classSVF_1_1BranchVFGNode.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CFBasicBlockNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CFLAlias.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1CFLBase.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CHGBuilder.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1CHGraph.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1CallCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallCHI.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallGraphBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1CallICFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CallMU.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1CallPE.html +40 -40
- package/SVF-doxygen/html/html/classSVF_1_1CallSite.html +95 -95
- package/SVF-doxygen/html/html/classSVF_1_1CmpStmt.html +99 -99
- package/SVF-doxygen/html/html/classSVF_1_1CmpVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CondPTAImpl.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1ConstraintGraph.html +17 -17
- package/SVF-doxygen/html/html/classSVF_1_1ContextDDA.html +10 -10
- package/SVF-doxygen/html/html/classSVF_1_1CopyStmt.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1CxtStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CxtThread.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1CxtThreadStmt.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DCHGraph.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1DDAClient.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1DDAPass.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1DDAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DDAVFSolver.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1DistinctMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1DoubleFreeChecker.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ExtAPI.html +21 -21
- package/SVF-doxygen/html/html/classSVF_1_1FIObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1FlowDDA.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitive.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1FlowSensitiveStat.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ForkJoinAnalysis.html +16 -16
- 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 +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1GepStmt.html +56 -56
- package/SVF-doxygen/html/html/classSVF_1_1GepValVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ICFG.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1ICFGBuilder.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1IRGraph.html +3 -3
- 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 +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1IntraCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1IntraDisjointMRG.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1IntraICFGNode.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1IntraPHIVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1LLVMLoopAnalysis.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1LLVMModuleSet.html +1168 -1215
- package/SVF-doxygen/html/html/classSVF_1_1LeakChecker.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1LoadStmt.html +23 -23
- package/SVF-doxygen/html/html/classSVF_1_1LockAnalysis.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1LockResultValidator.html +8 -8
- package/SVF-doxygen/html/html/classSVF_1_1MHP.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1MHPValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MRGenerator.html +19 -19
- package/SVF-doxygen/html/html/classSVF_1_1MSSAPHISVFGNode.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MTA.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1MTAAnnotator.html +5 -5
- package/SVF-doxygen/html/html/classSVF_1_1MTAResultValidator.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTASVFGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1MTAStat.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1MemObj.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1MemSSA.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1MemSSAStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1MultiOpndStmt.html +48 -48
- package/SVF-doxygen/html/html/classSVF_1_1NodeIDAllocator_1_1Clusterer.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1ObjVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PAGBuilderFromFile.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PCG.html +13 -13
- package/SVF-doxygen/html/html/classSVF_1_1PHIVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1PTACallGraph.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1PhiStmt.html +48 -48
- package/SVF-doxygen/html/html/classSVF_1_1PointerAnalysis.html +20 -20
- package/SVF-doxygen/html/html/classSVF_1_1ProgSlice.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1RaceResultValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RaceValidator.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1RetCFGEdge.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetICFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1RetPE.html +40 -40
- package/SVF-doxygen/html/html/classSVF_1_1SVFArgument-members.html +35 -36
- package/SVF-doxygen/html/html/classSVF_1_1SVFArgument.html +34 -71
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock-members.html +37 -38
- package/SVF-doxygen/html/html/classSVF_1_1SVFBasicBlock.html +139 -178
- package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue-members.html +38 -39
- package/SVF-doxygen/html/html/classSVF_1_1SVFBlackHoleValue.html +19 -58
- package/SVF-doxygen/html/html/classSVF_1_1SVFBugEvent.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst-members.html +42 -43
- package/SVF-doxygen/html/html/classSVF_1_1SVFCallInst.html +70 -71
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstant-members.html +34 -35
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstant.html +21 -59
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData-members.html +36 -37
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantData.html +27 -66
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP-members.html +38 -39
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantFP.html +25 -66
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt-members.html +40 -41
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantInt.html +31 -79
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr-members.html +38 -39
- package/SVF-doxygen/html/html/classSVF_1_1SVFConstantNullPtr.html +19 -58
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction-members.html +41 -42
- package/SVF-doxygen/html/html/classSVF_1_1SVFFunction.html +206 -241
- package/SVF-doxygen/html/html/classSVF_1_1SVFG.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1SVFGBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1SVFGOPT.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFGStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue-members.html +39 -40
- package/SVF-doxygen/html/html/classSVF_1_1SVFGlobalValue.html +37 -73
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ConsExeState.html +57 -57
- package/SVF-doxygen/html/html/classSVF_1_1SVFIR2ItvExeState.html +59 -59
- package/SVF-doxygen/html/html/classSVF_1_1SVFIRBuilder.html +39 -39
- package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction-members.html +37 -38
- package/SVF-doxygen/html/html/classSVF_1_1SVFInstruction.html +60 -101
- package/SVF-doxygen/html/html/classSVF_1_1SVFLoopAndDomInfo.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue-members.html +36 -37
- package/SVF-doxygen/html/html/classSVF_1_1SVFMetadataAsValue.html +19 -55
- package/SVF-doxygen/html/html/classSVF_1_1SVFModule.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue-members.html +34 -35
- package/SVF-doxygen/html/html/classSVF_1_1SVFOtherValue.html +15 -53
- package/SVF-doxygen/html/html/classSVF_1_1SVFStat.html +7 -7
- package/SVF-doxygen/html/html/classSVF_1_1SVFStmt.html +43 -41
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue-members.html +32 -33
- package/SVF-doxygen/html/html/classSVF_1_1SVFValue.html +44 -51
- package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst-members.html +47 -48
- package/SVF-doxygen/html/html/classSVF_1_1SVFVirtualCallInst.html +56 -57
- package/SVF-doxygen/html/html/classSVF_1_1SaberCondAllocator.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1SaberSVFGBuilder.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1SelectStmt.html +40 -40
- package/SVF-doxygen/html/html/classSVF_1_1SrcSnkDDA.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1Steensgaard.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1StoreStmt.html +22 -22
- package/SVF-doxygen/html/html/classSVF_1_1SymbolTableBuilder.html +6 -6
- package/SVF-doxygen/html/html/classSVF_1_1TCT.html +18 -18
- package/SVF-doxygen/html/html/classSVF_1_1TDForkPE.html +26 -26
- package/SVF-doxygen/html/html/classSVF_1_1TDJoinPE.html +25 -25
- package/SVF-doxygen/html/html/classSVF_1_1ThreadAPI.html +9 -9
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraph.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1ThreadCallGraphBuilder.html +3 -3
- package/SVF-doxygen/html/html/classSVF_1_1TypeAnalysis.html +4 -4
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPStmt.html +46 -46
- package/SVF-doxygen/html/html/classSVF_1_1UnaryOPVFGNode.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VFG.html +24 -24
- package/SVF-doxygen/html/html/classSVF_1_1ValVar.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitive.html +2 -2
- package/SVF-doxygen/html/html/classSVF_1_1VersionedFlowSensitiveStat.html +1 -1
- package/SVF-doxygen/html/html/classSVF_1_1WPAPass.html +5 -5
- package/SVF-doxygen/html/html/functions_func_p.html +2 -16
- package/SVF-doxygen/html/html/functions_func_t.html +1 -1
- package/SVF-doxygen/html/html/functions_p.html +0 -14
- package/SVF-doxygen/html/html/functions_t.html +1 -1
- package/SVF-doxygen/html/html/globals_func.html +0 -3
- package/SVF-doxygen/html/html/globals_s.html +3 -6
- package/SVF-doxygen/html/html/namespaceSVF.html +29 -96
- package/SVF-doxygen/html/html/namespaceSVF_1_1LLVMUtil.html +4 -4
- package/SVF-doxygen/html/html/namespaceSVF_1_1SVFUtil.html +6 -6
- package/SVF-doxygen/html/html/namespacemembers_d.html +2 -5
- package/SVF-doxygen/html/html/namespacemembers_func_d.html +2 -5
- package/SVF-doxygen/html/html/search/all_10.js +325 -325
- package/SVF-doxygen/html/html/search/all_11.js +208 -208
- package/SVF-doxygen/html/html/search/all_12.js +545 -546
- package/SVF-doxygen/html/html/search/all_13.js +189 -189
- package/SVF-doxygen/html/html/search/all_14.js +66 -66
- package/SVF-doxygen/html/html/search/all_15.js +170 -170
- package/SVF-doxygen/html/html/search/all_16.js +60 -60
- package/SVF-doxygen/html/html/search/all_17.js +1 -1
- package/SVF-doxygen/html/html/search/all_18.js +1 -1
- package/SVF-doxygen/html/html/search/all_19.js +10 -10
- package/SVF-doxygen/html/html/search/all_1a.js +169 -169
- package/SVF-doxygen/html/html/search/all_4.js +26 -27
- package/SVF-doxygen/html/html/search/all_5.js +156 -156
- package/SVF-doxygen/html/html/search/all_6.js +223 -223
- package/SVF-doxygen/html/html/search/all_7.js +1012 -1012
- package/SVF-doxygen/html/html/search/all_8.js +192 -192
- package/SVF-doxygen/html/html/search/all_9.js +597 -597
- package/SVF-doxygen/html/html/search/all_a.js +47 -47
- package/SVF-doxygen/html/html/search/all_b.js +26 -26
- package/SVF-doxygen/html/html/search/all_c.js +113 -113
- package/SVF-doxygen/html/html/search/all_d.js +196 -196
- package/SVF-doxygen/html/html/search/all_e.js +206 -206
- package/SVF-doxygen/html/html/search/all_f.js +122 -122
- package/SVF-doxygen/html/html/search/classes_0.js +26 -26
- package/SVF-doxygen/html/html/search/classes_1.js +9 -9
- package/SVF-doxygen/html/html/search/classes_10.js +73 -73
- package/SVF-doxygen/html/html/search/classes_11.js +15 -15
- package/SVF-doxygen/html/html/search/classes_12.js +2 -2
- package/SVF-doxygen/html/html/search/classes_13.js +10 -10
- package/SVF-doxygen/html/html/search/classes_14.js +14 -14
- package/SVF-doxygen/html/html/search/classes_15.js +1 -1
- package/SVF-doxygen/html/html/search/classes_2.js +76 -76
- package/SVF-doxygen/html/html/search/classes_3.js +35 -35
- package/SVF-doxygen/html/html/search/classes_4.js +10 -10
- package/SVF-doxygen/html/html/search/classes_5.js +28 -28
- package/SVF-doxygen/html/html/search/classes_6.js +98 -98
- package/SVF-doxygen/html/html/search/classes_7.js +33 -33
- package/SVF-doxygen/html/html/search/classes_8.js +56 -56
- package/SVF-doxygen/html/html/search/classes_9.js +1 -1
- package/SVF-doxygen/html/html/search/classes_a.js +12 -12
- package/SVF-doxygen/html/html/search/classes_b.js +29 -29
- package/SVF-doxygen/html/html/search/classes_c.js +6 -6
- package/SVF-doxygen/html/html/search/classes_d.js +19 -19
- package/SVF-doxygen/html/html/search/classes_e.js +36 -36
- package/SVF-doxygen/html/html/search/classes_f.js +25 -25
- package/SVF-doxygen/html/html/search/defines_0.js +3 -3
- package/SVF-doxygen/html/html/search/defines_1.js +2 -2
- package/SVF-doxygen/html/html/search/defines_2.js +30 -30
- package/SVF-doxygen/html/html/search/defines_3.js +20 -20
- package/SVF-doxygen/html/html/search/defines_4.js +3 -3
- package/SVF-doxygen/html/html/search/defines_5.js +4 -4
- package/SVF-doxygen/html/html/search/defines_6.js +2 -2
- package/SVF-doxygen/html/html/search/defines_7.js +5 -5
- package/SVF-doxygen/html/html/search/defines_8.js +13 -13
- package/SVF-doxygen/html/html/search/defines_9.js +9 -9
- package/SVF-doxygen/html/html/search/defines_a.js +2 -2
- package/SVF-doxygen/html/html/search/defines_b.js +2 -2
- package/SVF-doxygen/html/html/search/defines_c.js +2 -2
- package/SVF-doxygen/html/html/search/defines_d.js +6 -6
- package/SVF-doxygen/html/html/search/defines_e.js +3 -3
- package/SVF-doxygen/html/html/search/enums_0.js +3 -3
- package/SVF-doxygen/html/html/search/enums_1.js +1 -1
- package/SVF-doxygen/html/html/search/enums_10.js +1 -1
- package/SVF-doxygen/html/html/search/enums_11.js +1 -1
- package/SVF-doxygen/html/html/search/enums_2.js +8 -8
- package/SVF-doxygen/html/html/search/enums_3.js +1 -1
- package/SVF-doxygen/html/html/search/enums_4.js +4 -4
- package/SVF-doxygen/html/html/search/enums_5.js +1 -1
- package/SVF-doxygen/html/html/search/enums_6.js +2 -2
- package/SVF-doxygen/html/html/search/enums_7.js +2 -2
- package/SVF-doxygen/html/html/search/enums_8.js +4 -4
- package/SVF-doxygen/html/html/search/enums_9.js +1 -1
- package/SVF-doxygen/html/html/search/enums_a.js +2 -2
- package/SVF-doxygen/html/html/search/enums_b.js +7 -7
- package/SVF-doxygen/html/html/search/enums_c.js +1 -1
- package/SVF-doxygen/html/html/search/enums_d.js +4 -4
- package/SVF-doxygen/html/html/search/enums_e.js +2 -2
- package/SVF-doxygen/html/html/search/enums_f.js +4 -4
- package/SVF-doxygen/html/html/search/enumvalues_0.js +14 -14
- package/SVF-doxygen/html/html/search/enumvalues_1.js +13 -13
- package/SVF-doxygen/html/html/search/enumvalues_10.js +35 -35
- package/SVF-doxygen/html/html/search/enumvalues_11.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_12.js +10 -10
- package/SVF-doxygen/html/html/search/enumvalues_13.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_14.js +1 -1
- package/SVF-doxygen/html/html/search/enumvalues_15.js +3 -3
- package/SVF-doxygen/html/html/search/enumvalues_2.js +40 -40
- package/SVF-doxygen/html/html/search/enumvalues_3.js +13 -13
- package/SVF-doxygen/html/html/search/enumvalues_4.js +34 -34
- package/SVF-doxygen/html/html/search/enumvalues_5.js +48 -48
- package/SVF-doxygen/html/html/search/enumvalues_6.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_7.js +9 -9
- package/SVF-doxygen/html/html/search/enumvalues_8.js +23 -23
- package/SVF-doxygen/html/html/search/enumvalues_9.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_a.js +17 -17
- package/SVF-doxygen/html/html/search/enumvalues_b.js +11 -11
- package/SVF-doxygen/html/html/search/enumvalues_c.js +6 -6
- package/SVF-doxygen/html/html/search/enumvalues_d.js +17 -17
- package/SVF-doxygen/html/html/search/enumvalues_e.js +11 -11
- package/SVF-doxygen/html/html/search/enumvalues_f.js +45 -45
- package/SVF-doxygen/html/html/search/files_0.js +13 -13
- package/SVF-doxygen/html/html/search/files_1.js +7 -7
- package/SVF-doxygen/html/html/search/files_10.js +8 -8
- package/SVF-doxygen/html/html/search/files_11.js +8 -8
- package/SVF-doxygen/html/html/search/files_12.js +2 -2
- package/SVF-doxygen/html/html/search/files_2.js +50 -50
- package/SVF-doxygen/html/html/search/files_3.js +14 -14
- package/SVF-doxygen/html/html/search/files_4.js +4 -4
- package/SVF-doxygen/html/html/search/files_5.js +13 -13
- package/SVF-doxygen/html/html/search/files_6.js +9 -9
- package/SVF-doxygen/html/html/search/files_7.js +14 -14
- package/SVF-doxygen/html/html/search/files_8.js +13 -13
- package/SVF-doxygen/html/html/search/files_9.js +18 -18
- package/SVF-doxygen/html/html/search/files_a.js +3 -3
- package/SVF-doxygen/html/html/search/files_b.js +2 -2
- package/SVF-doxygen/html/html/search/files_c.js +19 -19
- package/SVF-doxygen/html/html/search/files_d.js +4 -4
- package/SVF-doxygen/html/html/search/files_e.js +62 -62
- package/SVF-doxygen/html/html/search/files_f.js +8 -8
- package/SVF-doxygen/html/html/search/functions_0.js +351 -351
- package/SVF-doxygen/html/html/search/functions_1.js +80 -80
- package/SVF-doxygen/html/html/search/functions_10.js +121 -121
- package/SVF-doxygen/html/html/search/functions_11.js +281 -282
- package/SVF-doxygen/html/html/search/functions_12.js +55 -55
- package/SVF-doxygen/html/html/search/functions_13.js +38 -38
- package/SVF-doxygen/html/html/search/functions_14.js +71 -71
- package/SVF-doxygen/html/html/search/functions_15.js +29 -29
- package/SVF-doxygen/html/html/search/functions_16.js +2 -2
- package/SVF-doxygen/html/html/search/functions_17.js +169 -169
- package/SVF-doxygen/html/html/search/functions_2.js +251 -251
- package/SVF-doxygen/html/html/search/functions_3.js +71 -72
- package/SVF-doxygen/html/html/search/functions_4.js +55 -55
- package/SVF-doxygen/html/html/search/functions_5.js +55 -55
- package/SVF-doxygen/html/html/search/functions_6.js +832 -832
- package/SVF-doxygen/html/html/search/functions_7.js +144 -144
- package/SVF-doxygen/html/html/search/functions_8.js +417 -417
- package/SVF-doxygen/html/html/search/functions_9.js +29 -29
- package/SVF-doxygen/html/html/search/functions_a.js +2 -2
- package/SVF-doxygen/html/html/search/functions_b.js +23 -23
- package/SVF-doxygen/html/html/search/functions_c.js +75 -75
- package/SVF-doxygen/html/html/search/functions_d.js +35 -35
- package/SVF-doxygen/html/html/search/functions_e.js +56 -56
- package/SVF-doxygen/html/html/search/functions_f.js +143 -143
- package/SVF-doxygen/html/html/search/namespaces_0.js +1 -1
- package/SVF-doxygen/html/html/search/namespaces_1.js +7 -7
- package/SVF-doxygen/html/html/search/related_0.js +2 -2
- package/SVF-doxygen/html/html/search/related_1.js +1 -1
- package/SVF-doxygen/html/html/search/related_2.js +2 -2
- package/SVF-doxygen/html/html/search/related_3.js +2 -2
- package/SVF-doxygen/html/html/search/related_4.js +2 -2
- package/SVF-doxygen/html/html/search/related_5.js +1 -1
- package/SVF-doxygen/html/html/search/related_6.js +2 -2
- package/SVF-doxygen/html/html/search/related_7.js +4 -4
- package/SVF-doxygen/html/html/search/related_8.js +2 -2
- package/SVF-doxygen/html/html/search/related_9.js +4 -4
- package/SVF-doxygen/html/html/search/related_a.js +19 -19
- package/SVF-doxygen/html/html/search/related_b.js +4 -4
- package/SVF-doxygen/html/html/search/related_c.js +1 -1
- package/SVF-doxygen/html/html/search/related_d.js +11 -11
- package/SVF-doxygen/html/html/search/related_e.js +2 -2
- package/SVF-doxygen/html/html/search/related_f.js +2 -2
- package/SVF-doxygen/html/html/search/typedefs_0.js +18 -18
- package/SVF-doxygen/html/html/search/typedefs_1.js +25 -25
- package/SVF-doxygen/html/html/search/typedefs_10.js +60 -60
- package/SVF-doxygen/html/html/search/typedefs_11.js +13 -13
- package/SVF-doxygen/html/html/search/typedefs_12.js +11 -11
- package/SVF-doxygen/html/html/search/typedefs_13.js +35 -35
- package/SVF-doxygen/html/html/search/typedefs_14.js +8 -8
- package/SVF-doxygen/html/html/search/typedefs_2.js +126 -126
- package/SVF-doxygen/html/html/search/typedefs_3.js +39 -39
- package/SVF-doxygen/html/html/search/typedefs_4.js +16 -16
- package/SVF-doxygen/html/html/search/typedefs_5.js +41 -41
- package/SVF-doxygen/html/html/search/typedefs_6.js +52 -52
- package/SVF-doxygen/html/html/search/typedefs_7.js +40 -40
- package/SVF-doxygen/html/html/search/typedefs_8.js +1 -1
- package/SVF-doxygen/html/html/search/typedefs_9.js +6 -6
- package/SVF-doxygen/html/html/search/typedefs_a.js +29 -29
- package/SVF-doxygen/html/html/search/typedefs_b.js +29 -29
- package/SVF-doxygen/html/html/search/typedefs_c.js +40 -40
- package/SVF-doxygen/html/html/search/typedefs_d.js +15 -15
- package/SVF-doxygen/html/html/search/typedefs_e.js +52 -52
- package/SVF-doxygen/html/html/search/typedefs_f.js +14 -14
- package/SVF-doxygen/html/html/search/variables_0.js +146 -146
- package/SVF-doxygen/html/html/search/variables_1.js +74 -74
- package/SVF-doxygen/html/html/search/variables_10.js +97 -97
- package/SVF-doxygen/html/html/search/variables_11.js +46 -46
- package/SVF-doxygen/html/html/search/variables_12.js +93 -93
- package/SVF-doxygen/html/html/search/variables_13.js +77 -77
- package/SVF-doxygen/html/html/search/variables_14.js +14 -14
- package/SVF-doxygen/html/html/search/variables_15.js +48 -48
- package/SVF-doxygen/html/html/search/variables_16.js +9 -9
- package/SVF-doxygen/html/html/search/variables_17.js +1 -1
- package/SVF-doxygen/html/html/search/variables_18.js +2 -2
- package/SVF-doxygen/html/html/search/variables_2.js +35 -35
- package/SVF-doxygen/html/html/search/variables_3.js +148 -148
- package/SVF-doxygen/html/html/search/variables_4.js +56 -56
- package/SVF-doxygen/html/html/search/variables_5.js +40 -40
- package/SVF-doxygen/html/html/search/variables_6.js +67 -67
- package/SVF-doxygen/html/html/search/variables_7.js +33 -33
- package/SVF-doxygen/html/html/search/variables_8.js +7 -7
- package/SVF-doxygen/html/html/search/variables_9.js +77 -77
- package/SVF-doxygen/html/html/search/variables_a.js +4 -4
- package/SVF-doxygen/html/html/search/variables_b.js +10 -10
- package/SVF-doxygen/html/html/search/variables_c.js +45 -45
- package/SVF-doxygen/html/html/search/variables_d.js +56 -56
- package/SVF-doxygen/html/html/search/variables_e.js +123 -123
- package/SVF-doxygen/html/html/search/variables_f.js +33 -33
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01ConstraintGraph_01_5_01_4.html +2 -2
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01IRGraph_01_5_01_4.html +3 -3
- package/SVF-doxygen/html/html/structSVF_1_1DOTGraphTraits_3_01PTACallGraph_01_5_01_4.html +1 -1
- package/SVF-doxygen/html/html/structSVF_1_1Hash_3_01NodePair_01_4.html +11 -11
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CallSite_01_4.html +7 -7
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtProc_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1CxtStmt_01_4.html +1 -1
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1NodePair_01_4.html +11 -11
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01SVF_1_1SparseBitVector_3_01N_01_4_01_4.html +7 -7
- package/SVF-doxygen/html/html/structstd_1_1hash_3_01std_1_1vector_3_01T_01_4_01_4.html +13 -13
- package/SVF-doxygen/html/html/svf-ex_8cpp.html +2 -2
- package/SVF-doxygen/html/html/svf-ex_8cpp_source.html +4 -4
- package/SVF-doxygen/html/html/svf-llvm_2tools_2MTA_2MTAResultValidator_8h_source.html +3 -3
- package/SVF-doxygen/html/html/svf_2include_2MTA_2MTAResultValidator_8h_source.html +3 -3
- package/package.json +1 -1
- package/svf/include/SVFIR/SVFStatements.h +12 -9
- package/svf/include/SVFIR/SVFType.h +0 -6
- package/svf/include/SVFIR/SVFValue.h +2 -31
- package/svf/lib/SVFIR/SVFValue.cpp +0 -95
- package/svf-llvm/lib/LLVMModule.cpp +0 -58
- package/svf-llvm/lib/LLVMUtil.cpp +13 -28
|
@@ -548,11 +548,11 @@ Friends</h2></td></tr>
|
|
|
548
548
|
|
|
549
549
|
<p>Constructor. </p>
|
|
550
550
|
|
|
551
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
552
|
-
<div class="fragment"><div class="line"><a name="
|
|
553
|
-
<div class="line"><a name="
|
|
554
|
-
<div class="line"><a name="
|
|
555
|
-
<div class="line"><a name="
|
|
551
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00075">75</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
552
|
+
<div class="fragment"><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  : <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>(<a class="code" href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SymbolTableInfo::SymbolInfo</a>()),</div>
|
|
553
|
+
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>(<a class="code" href="classSVF_1_1SVFModule.html#ab930bb5449538c4d0da1297a103788a1">SVFModule::getSVFModule</a>()), <a class="code" href="classSVF_1_1LLVMModuleSet.html#ad06a92bf8bc556de742e0ffdf79ffafe">cxts</a>(<span class="keyword">nullptr</span>)</div>
|
|
554
|
+
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> {</div>
|
|
555
|
+
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> }</div>
|
|
556
556
|
</div><!-- fragment -->
|
|
557
557
|
</div>
|
|
558
558
|
</div>
|
|
@@ -941,99 +941,99 @@ Friends</h2></td></tr>
|
|
|
941
941
|
</table>
|
|
942
942
|
</div><div class="memdoc">
|
|
943
943
|
|
|
944
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
945
|
-
<div class="fragment"><div class="line"><a name="
|
|
946
|
-
<div class="line"><a name="
|
|
947
|
-
<div class="line"><a name="
|
|
948
|
-
<div class="line"><a name="
|
|
949
|
-
<div class="line"><a name="
|
|
950
|
-
<div class="line"><a name="
|
|
951
|
-
<div class="line"><a name="
|
|
952
|
-
<div class="line"><a name="
|
|
953
|
-
<div class="line"><a name="
|
|
954
|
-
<div class="line"><a name="
|
|
955
|
-
<div class="line"><a name="
|
|
956
|
-
<div class="line"><a name="
|
|
957
|
-
<div class="line"><a name="
|
|
958
|
-
<div class="line"><a name="
|
|
959
|
-
<div class="line"><a name="
|
|
960
|
-
<div class="line"><a name="
|
|
961
|
-
<div class="line"><a name="
|
|
962
|
-
<div class="line"><a name="
|
|
963
|
-
<div class="line"><a name="
|
|
964
|
-
<div class="line"><a name="
|
|
965
|
-
<div class="line"><a name="
|
|
966
|
-
<div class="line"><a name="
|
|
967
|
-
<div class="line"><a name="
|
|
968
|
-
<div class="line"><a name="
|
|
969
|
-
<div class="line"><a name="
|
|
970
|
-
<div class="line"><a name="
|
|
971
|
-
<div class="line"><a name="
|
|
972
|
-
<div class="line"><a name="
|
|
973
|
-
<div class="line"><a name="
|
|
974
|
-
<div class="line"><a name="
|
|
975
|
-
<div class="line"><a name="
|
|
976
|
-
<div class="line"><a name="
|
|
977
|
-
<div class="line"><a name="
|
|
978
|
-
<div class="line"><a name="
|
|
979
|
-
<div class="line"><a name="
|
|
980
|
-
<div class="line"><a name="
|
|
981
|
-
<div class="line"><a name="
|
|
982
|
-
<div class="line"><a name="
|
|
983
|
-
<div class="line"><a name="
|
|
984
|
-
<div class="line"><a name="
|
|
985
|
-
<div class="line"><a name="
|
|
986
|
-
<div class="line"><a name="
|
|
987
|
-
<div class="line"><a name="
|
|
988
|
-
<div class="line"><a name="
|
|
989
|
-
<div class="line"><a name="
|
|
990
|
-
<div class="line"><a name="
|
|
991
|
-
<div class="line"><a name="
|
|
992
|
-
<div class="line"><a name="
|
|
993
|
-
<div class="line"><a name="
|
|
994
|
-
<div class="line"><a name="
|
|
995
|
-
<div class="line"><a name="
|
|
996
|
-
<div class="line"><a name="
|
|
997
|
-
<div class="line"><a name="
|
|
998
|
-
<div class="line"><a name="
|
|
999
|
-
<div class="line"><a name="
|
|
1000
|
-
<div class="line"><a name="
|
|
1001
|
-
<div class="line"><a name="
|
|
1002
|
-
<div class="line"><a name="
|
|
1003
|
-
<div class="line"><a name="
|
|
1004
|
-
<div class="line"><a name="
|
|
1005
|
-
<div class="line"><a name="
|
|
1006
|
-
<div class="line"><a name="
|
|
1007
|
-
<div class="line"><a name="
|
|
1008
|
-
<div class="line"><a name="
|
|
1009
|
-
<div class="line"><a name="
|
|
1010
|
-
<div class="line"><a name="
|
|
1011
|
-
<div class="line"><a name="
|
|
1012
|
-
<div class="line"><a name="
|
|
1013
|
-
<div class="line"><a name="
|
|
1014
|
-
<div class="line"><a name="
|
|
1015
|
-
<div class="line"><a name="
|
|
1016
|
-
<div class="line"><a name="
|
|
1017
|
-
<div class="line"><a name="
|
|
1018
|
-
<div class="line"><a name="
|
|
1019
|
-
<div class="line"><a name="
|
|
1020
|
-
<div class="line"><a name="
|
|
1021
|
-
<div class="line"><a name="
|
|
1022
|
-
<div class="line"><a name="
|
|
1023
|
-
<div class="line"><a name="
|
|
1024
|
-
<div class="line"><a name="
|
|
1025
|
-
<div class="line"><a name="
|
|
1026
|
-
<div class="line"><a name="
|
|
1027
|
-
<div class="line"><a name="
|
|
1028
|
-
<div class="line"><a name="
|
|
1029
|
-
<div class="line"><a name="
|
|
1030
|
-
<div class="line"><a name="
|
|
1031
|
-
<div class="line"><a name="
|
|
1032
|
-
<div class="line"><a name="
|
|
1033
|
-
<div class="line"><a name="
|
|
1034
|
-
<div class="line"><a name="
|
|
1035
|
-
<div class="line"><a name="
|
|
1036
|
-
<div class="line"><a name="
|
|
944
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00650">650</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
945
|
+
<div class="fragment"><div class="line"><a name="l00651"></a><span class="lineno"> 651</span> {</div>
|
|
946
|
+
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  std::vector<const Function*> ctor_funcs;</div>
|
|
947
|
+
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  std::vector<const Function*> dtor_funcs;</div>
|
|
948
|
+
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* orgMain = 0;</div>
|
|
949
|
+
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>* mainMod = <span class="keyword">nullptr</span>;</div>
|
|
950
|
+
<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  </div>
|
|
951
|
+
<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div>
|
|
952
|
+
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  {</div>
|
|
953
|
+
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  <span class="comment">// Collect ctor and dtor functions</span></div>
|
|
954
|
+
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>& global : mod.globals())</div>
|
|
955
|
+
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  {</div>
|
|
956
|
+
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keywordflow">if</span> (global.getName().equals(<a class="code" href="LLVMModule_8cpp.html#aa18802f2f60ef8030c66a42f20f285af">SVF_GLOBAL_CTORS</a>) && global.hasInitializer())</div>
|
|
957
|
+
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  {</div>
|
|
958
|
+
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  ctor_funcs = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0b46a2a5ff2165d17993a071d9cc82c1">getLLVMGlobalFunctions</a>(&global);</div>
|
|
959
|
+
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  }</div>
|
|
960
|
+
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (global.getName().equals(<a class="code" href="LLVMModule_8cpp.html#a9fd6e28e6ed93f65a20a348ab0646320">SVF_GLOBAL_DTORS</a>) && global.hasInitializer())</div>
|
|
961
|
+
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  {</div>
|
|
962
|
+
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  dtor_funcs = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0b46a2a5ff2165d17993a071d9cc82c1">getLLVMGlobalFunctions</a>(&global);</div>
|
|
963
|
+
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  }</div>
|
|
964
|
+
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  }</div>
|
|
965
|
+
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  </div>
|
|
966
|
+
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  <span class="comment">// Find main function</span></div>
|
|
967
|
+
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> &func : mod)</div>
|
|
968
|
+
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  {</div>
|
|
969
|
+
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  <span class="keyword">auto</span> funName = func.getName();</div>
|
|
970
|
+
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  </div>
|
|
971
|
+
<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  assert(!funName.equals(<a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>) && <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a> <span class="stringliteral">" already defined"</span>);</div>
|
|
972
|
+
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  </div>
|
|
973
|
+
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  <span class="keywordflow">if</span> (funName.equals(<span class="stringliteral">"main"</span>))</div>
|
|
974
|
+
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  {</div>
|
|
975
|
+
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  orgMain = &func;</div>
|
|
976
|
+
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  mainMod = &mod;</div>
|
|
977
|
+
<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  }</div>
|
|
978
|
+
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  }</div>
|
|
979
|
+
<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  }</div>
|
|
980
|
+
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  </div>
|
|
981
|
+
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="comment">// Only create svf.main when the original main function is found, and also</span></div>
|
|
982
|
+
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <span class="comment">// there are global contructor or destructor functions.</span></div>
|
|
983
|
+
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  <span class="keywordflow">if</span> (orgMain && <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">getModuleNum</a>() > 0 &&</div>
|
|
984
|
+
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  (ctor_funcs.size() > 0 || dtor_funcs.size() > 0))</div>
|
|
985
|
+
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  {</div>
|
|
986
|
+
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  assert(mainMod && <span class="stringliteral">"Module with main function not found."</span>);</div>
|
|
987
|
+
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>& M = *mainMod;</div>
|
|
988
|
+
<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  <span class="comment">// char **</span></div>
|
|
989
|
+
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* i8ptr2 = PointerType::getInt8PtrTy(M.getContext())->getPointerTo();</div>
|
|
990
|
+
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* i32 = IntegerType::getInt32Ty(M.getContext());</div>
|
|
991
|
+
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="comment">// define void @svf.main(i32, i8**, i8**)</span></div>
|
|
992
|
+
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span> <span class="preprocessor">#if (LLVM_VERSION_MAJOR >= 9)</span></div>
|
|
993
|
+
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  FunctionCallee svfmainFn = M.getOrInsertFunction(</div>
|
|
994
|
+
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>,</div>
|
|
995
|
+
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  Type::getVoidTy(M.getContext()),</div>
|
|
996
|
+
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  i32,i8ptr2,i8ptr2</div>
|
|
997
|
+
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  );</div>
|
|
998
|
+
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* svfmain = SVFUtil::dyn_cast<Function>(svfmainFn.getCallee());</div>
|
|
999
|
+
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="preprocessor">#else</span></div>
|
|
1000
|
+
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* svfmain = SVFUtil::dyn_cast<Function>(M.getOrInsertFunction(</div>
|
|
1001
|
+
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <a class="code" href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a>,</div>
|
|
1002
|
+
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  Type::getVoidTy(M.getContext()),</div>
|
|
1003
|
+
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  i32,i8ptr2,i8ptr2</div>
|
|
1004
|
+
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  ));</div>
|
|
1005
|
+
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="preprocessor">#endif</span></div>
|
|
1006
|
+
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>  svfmain->setCallingConv(llvm::CallingConv::C);</div>
|
|
1007
|
+
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* block = BasicBlock::Create(M.getContext(), <span class="stringliteral">"entry"</span>, svfmain);</div>
|
|
1008
|
+
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  <a class="code" href="namespaceSVF.html#a94824519e439aeef1568d415b6f7331c">IRBuilder</a> Builder(block);</div>
|
|
1009
|
+
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="comment">// emit "call void @ctor()". ctor_funcs is sorted so the functions are</span></div>
|
|
1010
|
+
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  <span class="comment">// emitted in the order of priority</span></div>
|
|
1011
|
+
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& ctor : ctor_funcs)</div>
|
|
1012
|
+
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  {</div>
|
|
1013
|
+
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  <span class="keyword">auto</span> target = M.getOrInsertFunction(</div>
|
|
1014
|
+
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  ctor->getName(),</div>
|
|
1015
|
+
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  Type::getVoidTy(M.getContext())</div>
|
|
1016
|
+
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  );</div>
|
|
1017
|
+
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  Builder.CreateCall(target);</div>
|
|
1018
|
+
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  }</div>
|
|
1019
|
+
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <span class="comment">// main() should be called after all ctor functions and before dtor</span></div>
|
|
1020
|
+
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="comment">// functions.</span></div>
|
|
1021
|
+
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  Function::arg_iterator arg_it = svfmain->arg_begin();</div>
|
|
1022
|
+
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* args[] = {arg_it, arg_it + 1, arg_it + 2};</div>
|
|
1023
|
+
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <span class="keywordtype">size_t</span> cnt = orgMain->arg_size();</div>
|
|
1024
|
+
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  assert(cnt <= 3 && <span class="stringliteral">"Too many arguments for main()"</span>);</div>
|
|
1025
|
+
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  Builder.CreateCall(orgMain, llvm::ArrayRef<Value*>(args, args + cnt));</div>
|
|
1026
|
+
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="comment">// emit "call void @dtor()". dtor_funcs is sorted so the functions are</span></div>
|
|
1027
|
+
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <span class="comment">// emitted in the order of priority</span></div>
|
|
1028
|
+
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span>& dtor : dtor_funcs)</div>
|
|
1029
|
+
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  {</div>
|
|
1030
|
+
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  <span class="keyword">auto</span> target = M.getOrInsertFunction(dtor->getName(), Type::getVoidTy(M.getContext()));</div>
|
|
1031
|
+
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  Builder.CreateCall(target);</div>
|
|
1032
|
+
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  }</div>
|
|
1033
|
+
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <span class="comment">// return;</span></div>
|
|
1034
|
+
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  Builder.CreateRetVoid();</div>
|
|
1035
|
+
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  }</div>
|
|
1036
|
+
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> }</div>
|
|
1037
1037
|
</div><!-- fragment -->
|
|
1038
1038
|
</div>
|
|
1039
1039
|
</div>
|
|
@@ -1063,51 +1063,51 @@ Friends</h2></td></tr>
|
|
|
1063
1063
|
|
|
1064
1064
|
<p>Create SVFTypes. </p>
|
|
1065
1065
|
|
|
1066
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
1067
|
-
<div class="fragment"><div class="line"><a name="
|
|
1068
|
-
<div class="line"><a name="
|
|
1069
|
-
<div class="line"><a name="
|
|
1070
|
-
<div class="line"><a name="
|
|
1071
|
-
<div class="line"><a name="
|
|
1072
|
-
<div class="line"><a name="
|
|
1073
|
-
<div class="line"><a name="
|
|
1074
|
-
<div class="line"><a name="
|
|
1075
|
-
<div class="line"><a name="
|
|
1076
|
-
<div class="line"><a name="
|
|
1077
|
-
<div class="line"><a name="
|
|
1078
|
-
<div class="line"><a name="
|
|
1079
|
-
<div class="line"><a name="
|
|
1080
|
-
<div class="line"><a name="
|
|
1081
|
-
<div class="line"><a name="
|
|
1082
|
-
<div class="line"><a name="
|
|
1083
|
-
<div class="line"><a name="
|
|
1084
|
-
<div class="line"><a name="
|
|
1085
|
-
<div class="line"><a name="
|
|
1086
|
-
<div class="line"><a name="
|
|
1087
|
-
<div class="line"><a name="
|
|
1088
|
-
<div class="line"><a name="
|
|
1089
|
-
<div class="line"><a name="
|
|
1090
|
-
<div class="line"><a name="
|
|
1091
|
-
<div class="line"><a name="
|
|
1092
|
-
<div class="line"><a name="
|
|
1093
|
-
<div class="line"><a name="
|
|
1094
|
-
<div class="line"><a name="
|
|
1095
|
-
<div class="line"><a name="
|
|
1096
|
-
<div class="line"><a name="
|
|
1097
|
-
<div class="line"><a name="
|
|
1098
|
-
<div class="line"><a name="
|
|
1099
|
-
<div class="line"><a name="
|
|
1100
|
-
<div class="line"><a name="
|
|
1101
|
-
<div class="line"><a name="
|
|
1102
|
-
<div class="line"><a name="
|
|
1103
|
-
<div class="line"><a name="
|
|
1104
|
-
<div class="line"><a name="
|
|
1105
|
-
<div class="line"><a name="
|
|
1106
|
-
<div class="line"><a name="
|
|
1107
|
-
<div class="line"><a name="
|
|
1108
|
-
<div class="line"><a name="
|
|
1109
|
-
<div class="line"><a name="
|
|
1110
|
-
<div class="line"><a name="
|
|
1066
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01097">1097</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
1067
|
+
<div class="fragment"><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span> {</div>
|
|
1068
|
+
<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>  assert(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.find(T) == <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.end() &&</div>
|
|
1069
|
+
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>  <span class="stringliteral">"SVFType has been added before"</span>);</div>
|
|
1070
|
+
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>  </div>
|
|
1071
|
+
<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>  <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* svftype;</div>
|
|
1072
|
+
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* pt = SVFUtil::dyn_cast<PointerType>(T))</div>
|
|
1073
|
+
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>  svftype = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFPointerType.html">SVFPointerType</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">LLVMUtil::getPtrElementType</a>(pt)));</div>
|
|
1074
|
+
<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a3d9e7f32dc17fe8d40f8d6a011403b91">IntegerType</a>* intT = SVFUtil::dyn_cast<IntegerType>(T))</div>
|
|
1075
|
+
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  {</div>
|
|
1076
|
+
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  <span class="keyword">auto</span> svfIntT = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFIntegerType.html">SVFIntegerType</a>();</div>
|
|
1077
|
+
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>  <span class="keywordtype">unsigned</span> signWidth = intT->getBitWidth();</div>
|
|
1078
|
+
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>  assert(signWidth < INT16_MAX && <span class="stringliteral">"Integer width too big"</span>);</div>
|
|
1079
|
+
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  svfIntT->setSignAndWidth(intT->getSignBit() ? -signWidth : signWidth);</div>
|
|
1080
|
+
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>  svftype = svfIntT;</div>
|
|
1081
|
+
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>  }</div>
|
|
1082
|
+
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">FunctionType</a>* ft = SVFUtil::dyn_cast<FunctionType>(T))</div>
|
|
1083
|
+
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>  svftype = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFFunctionType.html">SVFFunctionType</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ft->getReturnType()));</div>
|
|
1084
|
+
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a>* st = SVFUtil::dyn_cast<StructType>(T))</div>
|
|
1085
|
+
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>  {</div>
|
|
1086
|
+
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  <span class="keyword">auto</span> svfst = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFStructType.html">SVFStructType</a>();</div>
|
|
1087
|
+
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>  <span class="keywordflow">if</span> (st->hasName())</div>
|
|
1088
|
+
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>  svfst->setName(st->getName().str());</div>
|
|
1089
|
+
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>  svftype = svfst;</div>
|
|
1090
|
+
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>  }</div>
|
|
1091
|
+
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span> at = SVFUtil::dyn_cast<ArrayType>(T))</div>
|
|
1092
|
+
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  {</div>
|
|
1093
|
+
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>  <span class="keyword">auto</span> svfat = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFArrayType.html">SVFArrayType</a>();</div>
|
|
1094
|
+
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>  svfat->setNumOfElement(at->getNumElements());</div>
|
|
1095
|
+
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>  svfat->setTypeOfElement(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(at->getElementType()));</div>
|
|
1096
|
+
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>  svftype = svfat;</div>
|
|
1097
|
+
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>  }</div>
|
|
1098
|
+
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>  <span class="keywordflow">else</span></div>
|
|
1099
|
+
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>  {</div>
|
|
1100
|
+
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> <a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>;</div>
|
|
1101
|
+
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>  <span class="keyword">auto</span> ot = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFOtherType.html">SVFOtherType</a>(T->isSingleValueType());</div>
|
|
1102
|
+
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>  llvm::raw_string_ostream(<a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>) << *T;</div>
|
|
1103
|
+
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>  ot->setRepr(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(<a class="code" href="cJSON_8h.html#a503753140aa27b00f99a3501280b2746">buffer</a>));</div>
|
|
1104
|
+
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  svftype = ot;</div>
|
|
1105
|
+
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>  }</div>
|
|
1106
|
+
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  </div>
|
|
1107
|
+
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a91083d9504ae5d220b28e0b3e461d4aa">addTypeInfo</a>(svftype);</div>
|
|
1108
|
+
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>[T] = svftype;</div>
|
|
1109
|
+
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>  <span class="keywordflow">return</span> svftype;</div>
|
|
1110
|
+
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span> }</div>
|
|
1111
1111
|
</div><!-- fragment -->
|
|
1112
1112
|
</div>
|
|
1113
1113
|
</div>
|
|
@@ -1134,20 +1134,20 @@ Friends</h2></td></tr>
|
|
|
1134
1134
|
</table>
|
|
1135
1135
|
</div><div class="memdoc">
|
|
1136
1136
|
|
|
1137
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
1138
|
-
<div class="fragment"><div class="line"><a name="
|
|
1139
|
-
<div class="line"><a name="
|
|
1140
|
-
<div class="line"><a name="
|
|
1141
|
-
<div class="line"><a name="
|
|
1142
|
-
<div class="line"><a name="
|
|
1143
|
-
<div class="line"><a name="
|
|
1144
|
-
<div class="line"><a name="
|
|
1145
|
-
<div class="line"><a name="
|
|
1146
|
-
<div class="line"><a name="
|
|
1147
|
-
<div class="line"><a name="
|
|
1148
|
-
<div class="line"><a name="
|
|
1149
|
-
<div class="line"><a name="
|
|
1150
|
-
<div class="line"><a name="
|
|
1137
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00138">138</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
1138
|
+
<div class="fragment"><div class="line"><a name="l00139"></a><span class="lineno"> 139</span> {</div>
|
|
1139
|
+
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a3204400c52ec55da70418471d5c9bad5">preProcessed</a>==<span class="keyword">false</span>)</div>
|
|
1140
|
+
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a8b5f24c873db1f6a0614d1dac48bb4bb">prePassSchedule</a>();</div>
|
|
1141
|
+
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div>
|
|
1142
|
+
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#ac7c646a78c989807c52263fc35fb3628">buildFunToFunMap</a>();</div>
|
|
1143
|
+
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#aaab03cb6ff665bc008c67b866ba81e47">buildGlobalDefToRepMap</a>();</div>
|
|
1144
|
+
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div>
|
|
1145
|
+
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a3a718b0a27c2d13878c0718af97ad73d">Options::SVFMain</a>())</div>
|
|
1146
|
+
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a8af6b911b728713f66f7c809d5c0fbf1">addSVFMain</a>();</div>
|
|
1147
|
+
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  </div>
|
|
1148
|
+
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4ca8c4678a7fefe26372fc1f4b2880fd">createSVFDataStructure</a>();</div>
|
|
1149
|
+
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#ac6a5540354696f4c9170e0a5832ba70e">initSVFFunction</a>();</div>
|
|
1150
|
+
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span> }</div>
|
|
1151
1151
|
</div><!-- fragment -->
|
|
1152
1152
|
</div>
|
|
1153
1153
|
</div>
|
|
@@ -1177,87 +1177,87 @@ Friends</h2></td></tr>
|
|
|
1177
1177
|
<p>Fun decl --> def</p>
|
|
1178
1178
|
<p>Fun def --> decls</p>
|
|
1179
1179
|
|
|
1180
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
1181
|
-
<div class="fragment"><div class="line"><a name="
|
|
1182
|
-
<div class="line"><a name="
|
|
1183
|
-
<div class="line"><a name="
|
|
1184
|
-
<div class="line"><a name="
|
|
1185
|
-
<div class="line"><a name="
|
|
1186
|
-
<div class="line"><a name="
|
|
1187
|
-
<div class="line"><a name="
|
|
1188
|
-
<div class="line"><a name="
|
|
1189
|
-
<div class="line"><a name="
|
|
1190
|
-
<div class="line"><a name="
|
|
1191
|
-
<div class="line"><a name="
|
|
1192
|
-
<div class="line"><a name="
|
|
1193
|
-
<div class="line"><a name="
|
|
1194
|
-
<div class="line"><a name="
|
|
1195
|
-
<div class="line"><a name="
|
|
1196
|
-
<div class="line"><a name="
|
|
1197
|
-
<div class="line"><a name="
|
|
1198
|
-
<div class="line"><a name="
|
|
1199
|
-
<div class="line"><a name="
|
|
1200
|
-
<div class="line"><a name="
|
|
1201
|
-
<div class="line"><a name="
|
|
1202
|
-
<div class="line"><a name="
|
|
1203
|
-
<div class="line"><a name="
|
|
1204
|
-
<div class="line"><a name="
|
|
1205
|
-
<div class="line"><a name="
|
|
1206
|
-
<div class="line"><a name="
|
|
1207
|
-
<div class="line"><a name="
|
|
1208
|
-
<div class="line"><a name="
|
|
1209
|
-
<div class="line"><a name="
|
|
1210
|
-
<div class="line"><a name="
|
|
1211
|
-
<div class="line"><a name="
|
|
1212
|
-
<div class="line"><a name="
|
|
1213
|
-
<div class="line"><a name="
|
|
1214
|
-
<div class="line"><a name="
|
|
1215
|
-
<div class="line"><a name="
|
|
1216
|
-
<div class="line"><a name="
|
|
1217
|
-
<div class="line"><a name="
|
|
1218
|
-
<div class="line"><a name="
|
|
1219
|
-
<div class="line"><a name="
|
|
1220
|
-
<div class="line"><a name="
|
|
1221
|
-
<div class="line"><a name="
|
|
1222
|
-
<div class="line"><a name="
|
|
1223
|
-
<div class="line"><a name="
|
|
1224
|
-
<div class="line"><a name="
|
|
1225
|
-
<div class="line"><a name="
|
|
1226
|
-
<div class="line"><a name="
|
|
1227
|
-
<div class="line"><a name="
|
|
1228
|
-
<div class="line"><a name="
|
|
1180
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00745">745</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
1181
|
+
<div class="fragment"><div class="line"><a name="l00746"></a><span class="lineno"> 746</span> {</div>
|
|
1182
|
+
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const Function*></a> funDecls, funDefs;</div>
|
|
1183
|
+
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  <a class="code" href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">OrderedSet<string></a> declNames, defNames, intersectNames;</div>
|
|
1184
|
+
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<string, const Function*></a> NameToFunDefMapTy;</div>
|
|
1185
|
+
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<string, Set<const Function*></a>> NameToFunDeclsMapTy;</div>
|
|
1186
|
+
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  </div>
|
|
1187
|
+
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>& mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div>
|
|
1188
|
+
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  {</div>
|
|
1189
|
+
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>& fun : mod.functions())</div>
|
|
1190
|
+
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  {</div>
|
|
1191
|
+
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  <span class="keywordflow">if</span> (fun.isDeclaration())</div>
|
|
1192
|
+
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  {</div>
|
|
1193
|
+
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  funDecls.insert(&fun);</div>
|
|
1194
|
+
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  declNames.insert(fun.getName().str());</div>
|
|
1195
|
+
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  }</div>
|
|
1196
|
+
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keywordflow">else</span></div>
|
|
1197
|
+
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  {</div>
|
|
1198
|
+
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  funDefs.insert(&fun);</div>
|
|
1199
|
+
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  defNames.insert(fun.getName().str());</div>
|
|
1200
|
+
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  }</div>
|
|
1201
|
+
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  }</div>
|
|
1202
|
+
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  }</div>
|
|
1203
|
+
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <span class="comment">// Find the intersectNames</span></div>
|
|
1204
|
+
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  std::set_intersection(</div>
|
|
1205
|
+
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  declNames.begin(), declNames.end(), defNames.begin(), defNames.end(),</div>
|
|
1206
|
+
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  std::inserter(intersectNames, intersectNames.end()));</div>
|
|
1207
|
+
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  </div>
|
|
1208
|
+
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  NameToFunDefMapTy nameToFunDefMap;</div>
|
|
1209
|
+
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fdef : funDefs)</div>
|
|
1210
|
+
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  {</div>
|
|
1211
|
+
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <span class="keywordtype">string</span> funName = fdef->getName().str();</div>
|
|
1212
|
+
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="keywordflow">if</span> (intersectNames.find(funName) != intersectNames.end())</div>
|
|
1213
|
+
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>  {</div>
|
|
1214
|
+
<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  nameToFunDefMap.emplace(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(funName), fdef);</div>
|
|
1215
|
+
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  }</div>
|
|
1216
|
+
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  }</div>
|
|
1217
|
+
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  </div>
|
|
1218
|
+
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  NameToFunDeclsMapTy nameToFunDeclsMap;</div>
|
|
1219
|
+
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fdecl : funDecls)</div>
|
|
1220
|
+
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  {</div>
|
|
1221
|
+
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <span class="keywordtype">string</span> funName = fdecl->getName().str();</div>
|
|
1222
|
+
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  <span class="keywordflow">if</span> (intersectNames.find(funName) != intersectNames.end())</div>
|
|
1223
|
+
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  {</div>
|
|
1224
|
+
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  <span class="comment">// pair with key funName will be created automatically if it does</span></div>
|
|
1225
|
+
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  <span class="comment">// not exist</span></div>
|
|
1226
|
+
<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  nameToFunDeclsMap[<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(funName)].insert(fdecl);</div>
|
|
1227
|
+
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  }</div>
|
|
1228
|
+
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  }</div>
|
|
1229
|
+
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  </div>
|
|
1230
|
+
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fdecl : funDecls)</div>
|
|
1231
|
+
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  {</div>
|
|
1232
|
+
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  <span class="keywordtype">string</span> funName = fdecl->getName().str();</div>
|
|
1233
|
+
<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  NameToFunDefMapTy::iterator mit;</div>
|
|
1234
|
+
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  <span class="keywordflow">if</span> (intersectNames.find(funName) != intersectNames.end() &&</div>
|
|
1235
|
+
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  (mit = nameToFunDefMap.find(funName)) != nameToFunDefMap.end())</div>
|
|
1236
|
+
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  {</div>
|
|
1237
|
+
<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">FunDeclToDefMap</a>[fdecl] = mit->second;</div>
|
|
1238
|
+
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  }</div>
|
|
1239
|
+
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  }</div>
|
|
1240
|
+
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  </div>
|
|
1241
|
+
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fdef : funDefs)</div>
|
|
1242
|
+
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  {</div>
|
|
1243
|
+
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  <span class="keywordtype">string</span> funName = fdef->getName().str();</div>
|
|
1244
|
+
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  <span class="keywordflow">if</span> (intersectNames.find(funName) == intersectNames.end())</div>
|
|
1245
|
+
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  <span class="keywordflow">continue</span>;</div>
|
|
1246
|
+
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  NameToFunDeclsMapTy::iterator mit = nameToFunDeclsMap.find(funName);</div>
|
|
1247
|
+
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <span class="keywordflow">if</span> (mit == nameToFunDeclsMap.end())</div>
|
|
1248
|
+
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  <span class="keywordflow">continue</span>;</div>
|
|
1249
|
+
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  </div>
|
|
1250
|
+
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  std::vector<const Function*>& decls = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">FunDefToDeclsMap</a>[fdef];</div>
|
|
1251
|
+
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="keyword">const</span> <span class="keyword">auto</span>& declsSet = mit->second;</div>
|
|
1252
|
+
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  <span class="comment">// Reserve space for decls to avoid more than 1 reallocation</span></div>
|
|
1253
|
+
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  decls.reserve(decls.size() + declsSet.size());</div>
|
|
1229
1254
|
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  </div>
|
|
1230
|
-
<div class="line"><a name="
|
|
1231
|
-
<div class="line"><a name="
|
|
1232
|
-
<div class="line"><a name="
|
|
1233
|
-
<div class="line"><a name="
|
|
1234
|
-
<div class="line"><a name="
|
|
1235
|
-
<div class="line"><a name="
|
|
1236
|
-
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  {</div>
|
|
1237
|
-
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">FunDeclToDefMap</a>[fdecl] = mit->second;</div>
|
|
1238
|
-
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  }</div>
|
|
1239
|
-
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  }</div>
|
|
1240
|
-
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  </div>
|
|
1241
|
-
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fdef : funDefs)</div>
|
|
1242
|
-
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  {</div>
|
|
1243
|
-
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  <span class="keywordtype">string</span> funName = fdef->getName().str();</div>
|
|
1244
|
-
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  <span class="keywordflow">if</span> (intersectNames.find(funName) == intersectNames.end())</div>
|
|
1245
|
-
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  <span class="keywordflow">continue</span>;</div>
|
|
1246
|
-
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  NameToFunDeclsMapTy::iterator mit = nameToFunDeclsMap.find(funName);</div>
|
|
1247
|
-
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  <span class="keywordflow">if</span> (mit == nameToFunDeclsMap.end())</div>
|
|
1248
|
-
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <span class="keywordflow">continue</span>;</div>
|
|
1249
|
-
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  </div>
|
|
1250
|
-
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  std::vector<const Function*>& decls = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">FunDefToDeclsMap</a>[fdef];</div>
|
|
1251
|
-
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  <span class="keyword">const</span> <span class="keyword">auto</span>& declsSet = mit->second;</div>
|
|
1252
|
-
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="comment">// Reserve space for decls to avoid more than 1 reallocation</span></div>
|
|
1253
|
-
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  decls.reserve(decls.size() + declsSet.size());</div>
|
|
1254
|
-
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  </div>
|
|
1255
|
-
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* decl : declsSet)</div>
|
|
1256
|
-
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  {</div>
|
|
1257
|
-
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  decls.push_back(decl);</div>
|
|
1258
|
-
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  }</div>
|
|
1259
|
-
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  }</div>
|
|
1260
|
-
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span> }</div>
|
|
1255
|
+
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* decl : declsSet)</div>
|
|
1256
|
+
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  {</div>
|
|
1257
|
+
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  decls.push_back(decl);</div>
|
|
1258
|
+
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  }</div>
|
|
1259
|
+
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  }</div>
|
|
1260
|
+
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> }</div>
|
|
1261
1261
|
</div><!-- fragment -->
|
|
1262
1262
|
</div>
|
|
1263
1263
|
</div>
|
|
@@ -1284,47 +1284,47 @@ Friends</h2></td></tr>
|
|
|
1284
1284
|
</table>
|
|
1285
1285
|
</div><div class="memdoc">
|
|
1286
1286
|
|
|
1287
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
1288
|
-
<div class="fragment"><div class="line"><a name="
|
|
1289
|
-
<div class="line"><a name="
|
|
1290
|
-
<div class="line"><a name="
|
|
1291
|
-
<div class="line"><a name="
|
|
1292
|
-
<div class="line"><a name="
|
|
1293
|
-
<div class="line"><a name="
|
|
1294
|
-
<div class="line"><a name="
|
|
1295
|
-
<div class="line"><a name="
|
|
1296
|
-
<div class="line"><a name="
|
|
1297
|
-
<div class="line"><a name="
|
|
1298
|
-
<div class="line"><a name="
|
|
1299
|
-
<div class="line"><a name="
|
|
1300
|
-
<div class="line"><a name="
|
|
1301
|
-
<div class="line"><a name="
|
|
1302
|
-
<div class="line"><a name="
|
|
1303
|
-
<div class="line"><a name="
|
|
1304
|
-
<div class="line"><a name="
|
|
1305
|
-
<div class="line"><a name="
|
|
1306
|
-
<div class="line"><a name="
|
|
1307
|
-
<div class="line"><a name="
|
|
1308
|
-
<div class="line"><a name="
|
|
1309
|
-
<div class="line"><a name="
|
|
1310
|
-
<div class="line"><a name="
|
|
1311
|
-
<div class="line"><a name="
|
|
1312
|
-
<div class="line"><a name="
|
|
1313
|
-
<div class="line"><a name="
|
|
1314
|
-
<div class="line"><a name="
|
|
1315
|
-
<div class="line"><a name="
|
|
1316
|
-
<div class="line"><a name="
|
|
1317
|
-
<div class="line"><a name="
|
|
1318
|
-
<div class="line"><a name="
|
|
1319
|
-
<div class="line"><a name="
|
|
1320
|
-
<div class="line"><a name="
|
|
1321
|
-
<div class="line"><a name="
|
|
1322
|
-
<div class="line"><a name="
|
|
1323
|
-
<div class="line"><a name="
|
|
1324
|
-
<div class="line"><a name="
|
|
1325
|
-
<div class="line"><a name="
|
|
1326
|
-
<div class="line"><a name="
|
|
1327
|
-
<div class="line"><a name="
|
|
1287
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00832">832</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
1288
|
+
<div class="fragment"><div class="line"><a name="l00833"></a><span class="lineno"> 833</span> {</div>
|
|
1289
|
+
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  <span class="keyword">typedef</span> <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<string, Set<GlobalVariable*></a>> NameToGlobalsMapTy;</div>
|
|
1290
|
+
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  NameToGlobalsMapTy nameToGlobalsMap;</div>
|
|
1291
|
+
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div>
|
|
1292
|
+
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  {</div>
|
|
1293
|
+
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <span class="comment">// Collect ctor and dtor functions</span></div>
|
|
1294
|
+
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>& global : mod.globals())</div>
|
|
1295
|
+
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  {</div>
|
|
1296
|
+
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  <span class="keywordflow">if</span> (global.hasPrivateLinkage())</div>
|
|
1297
|
+
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  <span class="keywordflow">continue</span>;</div>
|
|
1298
|
+
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  <span class="keywordtype">string</span> <a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a> = global.getName().str();</div>
|
|
1299
|
+
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  <span class="keywordflow">if</span> (<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>.empty())</div>
|
|
1300
|
+
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <span class="keywordflow">continue</span>;</div>
|
|
1301
|
+
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  nameToGlobalsMap[<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(<a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a>)].insert(&global);</div>
|
|
1302
|
+
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  }</div>
|
|
1303
|
+
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  }</div>
|
|
1304
|
+
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  </div>
|
|
1305
|
+
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& pair : nameToGlobalsMap)</div>
|
|
1306
|
+
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  {</div>
|
|
1307
|
+
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<GlobalVariable*></a> &globals = pair.second;</div>
|
|
1308
|
+
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  </div>
|
|
1309
|
+
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <span class="keyword">const</span> <span class="keyword">auto</span> repIt =</div>
|
|
1310
|
+
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  std::find_if(globals.begin(), globals.end(),</div>
|
|
1311
|
+
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  [](<a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* g)</div>
|
|
1312
|
+
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  {</div>
|
|
1313
|
+
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  return g->hasInitializer();</div>
|
|
1314
|
+
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  });</div>
|
|
1315
|
+
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* rep =</div>
|
|
1316
|
+
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  repIt != globals.end()</div>
|
|
1317
|
+
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  ? *repIt</div>
|
|
1318
|
+
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  <span class="comment">// When there is no initializer, just pick the first one.</span></div>
|
|
1319
|
+
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  : (assert(!globals.empty() && <span class="stringliteral">"Empty global set"</span>),</div>
|
|
1320
|
+
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  *globals.begin());</div>
|
|
1321
|
+
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  </div>
|
|
1322
|
+
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>* cur : globals)</div>
|
|
1323
|
+
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  {</div>
|
|
1324
|
+
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae2a1fa0b908cf372c50af90e62c4bf2b">GlobalDefToRepMap</a>[cur] = rep;</div>
|
|
1325
|
+
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  }</div>
|
|
1326
|
+
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  }</div>
|
|
1327
|
+
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span> }</div>
|
|
1328
1328
|
</div><!-- fragment -->
|
|
1329
1329
|
</div>
|
|
1330
1330
|
</div>
|
|
@@ -1352,30 +1352,30 @@ Friends</h2></td></tr>
|
|
|
1352
1352
|
</table>
|
|
1353
1353
|
</div><div class="memdoc">
|
|
1354
1354
|
|
|
1355
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
1356
|
-
<div class="fragment"><div class="line"><a name="
|
|
1357
|
-
<div class="line"><a name="
|
|
1358
|
-
<div class="line"><a name="
|
|
1359
|
-
<div class="line"><a name="
|
|
1360
|
-
<div class="line"><a name="
|
|
1361
|
-
<div class="line"><a name="
|
|
1362
|
-
<div class="line"><a name="
|
|
1363
|
-
<div class="line"><a name="
|
|
1364
|
-
<div class="line"><a name="
|
|
1365
|
-
<div class="line"><a name="
|
|
1366
|
-
<div class="line"><a name="
|
|
1367
|
-
<div class="line"><a name="
|
|
1368
|
-
<div class="line"><a name="
|
|
1369
|
-
<div class="line"><a name="
|
|
1370
|
-
<div class="line"><a name="
|
|
1371
|
-
<div class="line"><a name="
|
|
1372
|
-
<div class="line"><a name="
|
|
1373
|
-
<div class="line"><a name="
|
|
1374
|
-
<div class="line"><a name="
|
|
1375
|
-
<div class="line"><a name="
|
|
1376
|
-
<div class="line"><a name="
|
|
1377
|
-
<div class="line"><a name="
|
|
1378
|
-
<div class="line"><a name="
|
|
1355
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00098">98</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
1356
|
+
<div class="fragment"><div class="line"><a name="l00099"></a><span class="lineno"> 99</span> {</div>
|
|
1357
|
+
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keywordtype">double</span> startSVFModuleTime = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVFStat::getClk</a>(<span class="keyword">true</span>);</div>
|
|
1358
|
+
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
|
|
1359
|
+
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html">LLVMModuleSet</a>* mset = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">getLLVMModuleSet</a>();</div>
|
|
1360
|
+
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div>
|
|
1361
|
+
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  mset-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a298966366b02d0a34f409c2c77da3789">loadModules</a>(moduleNameVec);</div>
|
|
1362
|
+
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  mset-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a8820d1df9098db6eadf3a9c67e380e55">loadExtAPIModules</a>();</div>
|
|
1363
|
+
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  </div>
|
|
1364
|
+
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">if</span> (!moduleNameVec.empty())</div>
|
|
1365
|
+
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  {</div>
|
|
1366
|
+
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <a class="code" href="classSVF_1_1SVFModule.html#ab930bb5449538c4d0da1297a103788a1">SVFModule::getSVFModule</a>()-><a class="code" href="classSVF_1_1SVFModule.html#acaba1ff38ed1fdd8a9a1251a1b36be92">setModuleIdentifier</a>(moduleNameVec.front());</div>
|
|
1367
|
+
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div>
|
|
1368
|
+
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  </div>
|
|
1369
|
+
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  mset-><a class="code" href="classSVF_1_1LLVMModuleSet.html#af8edfe08027020f14b81b44362c6018e">build</a>();</div>
|
|
1370
|
+
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div>
|
|
1371
|
+
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordtype">double</span> endSVFModuleTime = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVFStat::getClk</a>(<span class="keyword">true</span>);</div>
|
|
1372
|
+
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <a class="code" href="classSVF_1_1SVFStat.html#aa4950ec26b66a085ad38ac154b789db5">SVFStat::timeOfBuildingLLVMModule</a> =</div>
|
|
1373
|
+
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  (endSVFModuleTime - startSVFModuleTime) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div>
|
|
1374
|
+
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div>
|
|
1375
|
+
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  mset-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a15e97e3f2ba62d3fe444bb17cd637dbd">buildSymbolTable</a>();</div>
|
|
1376
|
+
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="comment">// Don't releaseLLVMModuleSet() here, as IRBuilder might still need LLVMMoudleSet</span></div>
|
|
1377
|
+
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFModule.html#ab930bb5449538c4d0da1297a103788a1">SVFModule::getSVFModule</a>();</div>
|
|
1378
|
+
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> }</div>
|
|
1379
1379
|
</div><!-- fragment -->
|
|
1380
1380
|
</div>
|
|
1381
1381
|
</div>
|
|
@@ -1403,22 +1403,22 @@ Friends</h2></td></tr>
|
|
|
1403
1403
|
</table>
|
|
1404
1404
|
</div><div class="memdoc">
|
|
1405
1405
|
|
|
1406
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
1407
|
-
<div class="fragment"><div class="line"><a name="
|
|
1408
|
-
<div class="line"><a name="
|
|
1409
|
-
<div class="line"><a name="
|
|
1410
|
-
<div class="line"><a name="
|
|
1411
|
-
<div class="line"><a name="
|
|
1412
|
-
<div class="line"><a name="
|
|
1413
|
-
<div class="line"><a name="
|
|
1414
|
-
<div class="line"><a name="
|
|
1415
|
-
<div class="line"><a name="
|
|
1416
|
-
<div class="line"><a name="
|
|
1417
|
-
<div class="line"><a name="
|
|
1418
|
-
<div class="line"><a name="
|
|
1419
|
-
<div class="line"><a name="
|
|
1420
|
-
<div class="line"><a name="
|
|
1421
|
-
<div class="line"><a name="
|
|
1406
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00081">81</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
1407
|
+
<div class="fragment"><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> {</div>
|
|
1408
|
+
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html">LLVMModuleSet</a>* mset = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">getLLVMModuleSet</a>();</div>
|
|
1409
|
+
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
|
|
1410
|
+
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <span class="keywordtype">double</span> startSVFModuleTime = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVFStat::getClk</a>(<span class="keyword">true</span>);</div>
|
|
1411
|
+
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <a class="code" href="classSVF_1_1SVFModule.html#ab930bb5449538c4d0da1297a103788a1">SVFModule::getSVFModule</a>()-><a class="code" href="classSVF_1_1SVFModule.html#acaba1ff38ed1fdd8a9a1251a1b36be92">setModuleIdentifier</a>(mod.getModuleIdentifier());</div>
|
|
1412
|
+
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  mset-><a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>.emplace_back(mod);</div>
|
|
1413
|
+
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div>
|
|
1414
|
+
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  mset-><a class="code" href="classSVF_1_1LLVMModuleSet.html#af8edfe08027020f14b81b44362c6018e">build</a>();</div>
|
|
1415
|
+
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keywordtype">double</span> endSVFModuleTime = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVFStat::getClk</a>(<span class="keyword">true</span>);</div>
|
|
1416
|
+
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <a class="code" href="classSVF_1_1SVFStat.html#aa4950ec26b66a085ad38ac154b789db5">SVFStat::timeOfBuildingLLVMModule</a> = (endSVFModuleTime - startSVFModuleTime)/<a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div>
|
|
1417
|
+
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div>
|
|
1418
|
+
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  mset-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a15e97e3f2ba62d3fe444bb17cd637dbd">buildSymbolTable</a>();</div>
|
|
1419
|
+
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  <span class="comment">// Don't releaseLLVMModuleSet() here, as IRBuilder might still need LLVMMoudleSet</span></div>
|
|
1420
|
+
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1SVFModule.html#ab930bb5449538c4d0da1297a103788a1">SVFModule::getSVFModule</a>();</div>
|
|
1421
|
+
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> }</div>
|
|
1422
1422
|
</div><!-- fragment -->
|
|
1423
1423
|
</div>
|
|
1424
1424
|
</div>
|
|
@@ -1446,19 +1446,19 @@ Friends</h2></td></tr>
|
|
|
1446
1446
|
</div><div class="memdoc">
|
|
1447
1447
|
<p>building symbol table</p>
|
|
1448
1448
|
|
|
1449
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
1450
|
-
<div class="fragment"><div class="line"><a name="
|
|
1451
|
-
<div class="line"><a name="
|
|
1452
|
-
<div class="line"><a name="
|
|
1453
|
-
<div class="line"><a name="
|
|
1454
|
-
<div class="line"><a name="
|
|
1455
|
-
<div class="line"><a name="
|
|
1456
|
-
<div class="line"><a name="
|
|
1457
|
-
<div class="line"><a name="
|
|
1458
|
-
<div class="line"><a name="
|
|
1459
|
-
<div class="line"><a name="
|
|
1460
|
-
<div class="line"><a name="
|
|
1461
|
-
<div class="line"><a name="
|
|
1449
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00123">123</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
1450
|
+
<div class="fragment"><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> {</div>
|
|
1451
|
+
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordtype">double</span> startSymInfoTime = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVFStat::getClk</a>(<span class="keyword">true</span>);</div>
|
|
1452
|
+
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">if</span> (!<a class="code" href="classSVF_1_1SVFModule.html#a1357c876eccedd58b3abe68875b3a570">SVFModule::pagReadFromTXT</a>())</div>
|
|
1453
|
+
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  {</div>
|
|
1454
|
+
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <a class="code" href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a>(<a class="code" href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <a class="code" href="namespaceSVF_1_1SVFUtil.html#a4550f2fb815882edfb666ac818792064">SVFUtil::pasMsg</a>(<span class="stringliteral">"Building Symbol table ...\n"</span>));</div>
|
|
1455
|
+
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <a class="code" href="classSVF_1_1SymbolTableBuilder.html">SymbolTableBuilder</a> builder(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>);</div>
|
|
1456
|
+
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  builder.buildMemModel(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>);</div>
|
|
1457
|
+
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  }</div>
|
|
1458
|
+
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  <span class="keywordtype">double</span> endSymInfoTime = <a class="code" href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVFStat::getClk</a>(<span class="keyword">true</span>);</div>
|
|
1459
|
+
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <a class="code" href="classSVF_1_1SVFStat.html#ae89293bc063bdc74a988e9c37c70321e">SVFStat::timeOfBuildingSymbolTable</a> =</div>
|
|
1460
|
+
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  (endSymInfoTime - startSymInfoTime) / <a class="code" href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a>;</div>
|
|
1461
|
+
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span> }</div>
|
|
1462
1462
|
</div><!-- fragment -->
|
|
1463
1463
|
</div>
|
|
1464
1464
|
</div>
|
|
@@ -1492,59 +1492,59 @@ Friends</h2></td></tr>
|
|
|
1492
1492
|
<p>Array's flatten field infor is the same as its element's flatten infor.</p>
|
|
1493
1493
|
<p>Flatten arrays, map each array element index <code>i</code> to flattened index <code>(i * nfE * totalElemNum)/outArrayElemNum</code> nfE>1 if the array element is a struct with more than one field.</p>
|
|
1494
1494
|
|
|
1495
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
1496
|
-
<div class="fragment"><div class="line"><a name="
|
|
1497
|
-
<div class="line"><a name="
|
|
1498
|
-
<div class="line"><a name="
|
|
1499
|
-
<div class="line"><a name="
|
|
1500
|
-
<div class="line"><a name="
|
|
1501
|
-
<div class="line"><a name="
|
|
1502
|
-
<div class="line"><a name="
|
|
1503
|
-
<div class="line"><a name="
|
|
1504
|
-
<div class="line"><a name="
|
|
1505
|
-
<div class="line"><a name="
|
|
1506
|
-
<div class="line"><a name="
|
|
1507
|
-
<div class="line"><a name="
|
|
1508
|
-
<div class="line"><a name="
|
|
1509
|
-
<div class="line"><a name="
|
|
1510
|
-
<div class="line"><a name="
|
|
1511
|
-
<div class="line"><a name="
|
|
1512
|
-
<div class="line"><a name="
|
|
1513
|
-
<div class="line"><a name="
|
|
1514
|
-
<div class="line"><a name="
|
|
1515
|
-
<div class="line"><a name="
|
|
1516
|
-
<div class="line"><a name="
|
|
1517
|
-
<div class="line"><a name="
|
|
1518
|
-
<div class="line"><a name="
|
|
1519
|
-
<div class="line"><a name="
|
|
1520
|
-
<div class="line"><a name="
|
|
1521
|
-
<div class="line"><a name="
|
|
1522
|
-
<div class="line"><a name="
|
|
1523
|
-
<div class="line"><a name="
|
|
1524
|
-
<div class="line"><a name="
|
|
1525
|
-
<div class="line"><a name="
|
|
1526
|
-
<div class="line"><a name="
|
|
1527
|
-
<div class="line"><a name="
|
|
1528
|
-
<div class="line"><a name="
|
|
1529
|
-
<div class="line"><a name="
|
|
1530
|
-
<div class="line"><a name="
|
|
1531
|
-
<div class="line"><a name="
|
|
1532
|
-
<div class="line"><a name="
|
|
1533
|
-
<div class="line"><a name="
|
|
1534
|
-
<div class="line"><a name="
|
|
1535
|
-
<div class="line"><a name="
|
|
1536
|
-
<div class="line"><a name="
|
|
1537
|
-
<div class="line"><a name="
|
|
1538
|
-
<div class="line"><a name="
|
|
1539
|
-
<div class="line"><a name="
|
|
1540
|
-
<div class="line"><a name="
|
|
1541
|
-
<div class="line"><a name="
|
|
1542
|
-
<div class="line"><a name="
|
|
1543
|
-
<div class="line"><a name="
|
|
1544
|
-
<div class="line"><a name="
|
|
1545
|
-
<div class="line"><a name="
|
|
1546
|
-
<div class="line"><a name="
|
|
1547
|
-
<div class="line"><a name="
|
|
1495
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01146">1146</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
1496
|
+
<div class="fragment"><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span> {</div>
|
|
1497
|
+
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>  <a class="code" href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">u64_t</a> totalElemNum = ty->getNumElements();</div>
|
|
1498
|
+
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* elemTy = ty->getElementType();</div>
|
|
1499
|
+
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>  <span class="keywordflow">while</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">ArrayType</a>* aty = SVFUtil::dyn_cast<ArrayType>(elemTy))</div>
|
|
1500
|
+
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>  {</div>
|
|
1501
|
+
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>  totalElemNum *= aty->getNumElements();</div>
|
|
1502
|
+
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>  elemTy = aty->getElementType();</div>
|
|
1503
|
+
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>  }</div>
|
|
1504
|
+
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>  </div>
|
|
1505
|
+
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo = <span class="keyword">new</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>(totalElemNum);</div>
|
|
1506
|
+
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elemSvfType = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(elemTy);</div>
|
|
1507
|
+
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>  </div>
|
|
1508
|
+
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>  <span class="keywordflow">if</span> (totalElemNum == 0)</div>
|
|
1509
|
+
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>  {</div>
|
|
1510
|
+
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c">addFldWithType</a>(0, elemSvfType, 0);</div>
|
|
1511
|
+
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(1, 1);</div>
|
|
1512
|
+
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemSvfType);</div>
|
|
1513
|
+
<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(elemSvfType);</div>
|
|
1514
|
+
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>  <span class="keywordflow">return</span> stInfo;</div>
|
|
1515
|
+
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>  }</div>
|
|
1516
|
+
<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>  </div>
|
|
1517
|
+
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* elemStInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">collectTypeInfo</a>(elemTy);</div>
|
|
1518
|
+
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nfF = elemStInfo-><a class="code" href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0">getNumOfFlattenFields</a>();</div>
|
|
1519
|
+
<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nfE = elemStInfo-><a class="code" href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">getNumOfFlattenElements</a>();</div>
|
|
1520
|
+
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0; j < nfF; j++)</div>
|
|
1521
|
+
<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>  {</div>
|
|
1522
|
+
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* fieldTy = elemStInfo-><a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>()[j];</div>
|
|
1523
|
+
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(fieldTy);</div>
|
|
1524
|
+
<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>  }</div>
|
|
1525
|
+
<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>  </div>
|
|
1526
|
+
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> outArrayElemNum = ty->getNumElements();</div>
|
|
1527
|
+
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < outArrayElemNum; ++i)</div>
|
|
1528
|
+
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>  {</div>
|
|
1529
|
+
<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>  <span class="keyword">auto</span> idx = (i * nfE * totalElemNum) / outArrayElemNum;</div>
|
|
1530
|
+
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c">addFldWithType</a>(0, elemSvfType, idx);</div>
|
|
1531
|
+
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>  }</div>
|
|
1532
|
+
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>  </div>
|
|
1533
|
+
<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < totalElemNum; ++i)</div>
|
|
1534
|
+
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>  {</div>
|
|
1535
|
+
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0; j < nfE; ++j)</div>
|
|
1536
|
+
<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>  {</div>
|
|
1537
|
+
<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* et = elemStInfo-><a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>()[j];</div>
|
|
1538
|
+
<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(et);</div>
|
|
1539
|
+
<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>  }</div>
|
|
1540
|
+
<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>  }</div>
|
|
1541
|
+
<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>  </div>
|
|
1542
|
+
<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>  assert(stInfo-><a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().size() == nfE * totalElemNum &&</div>
|
|
1543
|
+
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>  <span class="stringliteral">"typeForArray size incorrect!!!"</span>);</div>
|
|
1544
|
+
<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(nfF, nfE * totalElemNum);</div>
|
|
1545
|
+
<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>  </div>
|
|
1546
|
+
<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>  <span class="keywordflow">return</span> stInfo;</div>
|
|
1547
|
+
<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span> }</div>
|
|
1548
1548
|
</div><!-- fragment -->
|
|
1549
1549
|
</div>
|
|
1550
1550
|
</div>
|
|
@@ -1576,18 +1576,18 @@ Friends</h2></td></tr>
|
|
|
1576
1576
|
<p>Collect simple type (non-aggregate) info </p>
|
|
1577
1577
|
<p>Only one field</p>
|
|
1578
1578
|
|
|
1579
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
1580
|
-
<div class="fragment"><div class="line"><a name="
|
|
1581
|
-
<div class="line"><a name="
|
|
1582
|
-
<div class="line"><a name="
|
|
1583
|
-
<div class="line"><a name="
|
|
1584
|
-
<div class="line"><a name="
|
|
1585
|
-
<div class="line"><a name="
|
|
1586
|
-
<div class="line"><a name="
|
|
1587
|
-
<div class="line"><a name="
|
|
1588
|
-
<div class="line"><a name="
|
|
1589
|
-
<div class="line"><a name="
|
|
1590
|
-
<div class="line"><a name="
|
|
1579
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01266">1266</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
1580
|
+
<div class="fragment"><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span> {</div>
|
|
1581
|
+
<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo = <span class="keyword">new</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>(1);</div>
|
|
1582
|
+
<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>  <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* svfType = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ty);</div>
|
|
1583
|
+
<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c">addFldWithType</a>(0, svfType, 0);</div>
|
|
1584
|
+
<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>  </div>
|
|
1585
|
+
<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(svfType);</div>
|
|
1586
|
+
<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(svfType);</div>
|
|
1587
|
+
<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(1,1);</div>
|
|
1588
|
+
<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>  </div>
|
|
1589
|
+
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>  <span class="keywordflow">return</span> stInfo;</div>
|
|
1590
|
+
<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> }</div>
|
|
1591
1591
|
</div><!-- fragment -->
|
|
1592
1592
|
</div>
|
|
1593
1593
|
</div>
|
|
@@ -1629,56 +1629,56 @@ Friends</h2></td></tr>
|
|
|
1629
1629
|
<p>Fill in struct_info for T. Given a Struct type, we recursively extend and record its fields and types. </p>
|
|
1630
1630
|
<p>The struct info should not be processed before</p>
|
|
1631
1631
|
|
|
1632
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
1633
|
-
<div class="fragment"><div class="line"><a name="
|
|
1634
|
-
<div class="line"><a name="
|
|
1635
|
-
<div class="line"><a name="
|
|
1636
|
-
<div class="line"><a name="
|
|
1637
|
-
<div class="line"><a name="
|
|
1638
|
-
<div class="line"><a name="
|
|
1639
|
-
<div class="line"><a name="
|
|
1640
|
-
<div class="line"><a name="
|
|
1641
|
-
<div class="line"><a name="
|
|
1642
|
-
<div class="line"><a name="
|
|
1643
|
-
<div class="line"><a name="
|
|
1644
|
-
<div class="line"><a name="
|
|
1645
|
-
<div class="line"><a name="
|
|
1646
|
-
<div class="line"><a name="
|
|
1647
|
-
<div class="line"><a name="
|
|
1648
|
-
<div class="line"><a name="
|
|
1649
|
-
<div class="line"><a name="
|
|
1650
|
-
<div class="line"><a name="
|
|
1651
|
-
<div class="line"><a name="
|
|
1652
|
-
<div class="line"><a name="
|
|
1653
|
-
<div class="line"><a name="
|
|
1654
|
-
<div class="line"><a name="
|
|
1655
|
-
<div class="line"><a name="
|
|
1656
|
-
<div class="line"><a name="
|
|
1657
|
-
<div class="line"><a name="
|
|
1658
|
-
<div class="line"><a name="
|
|
1659
|
-
<div class="line"><a name="
|
|
1660
|
-
<div class="line"><a name="
|
|
1661
|
-
<div class="line"><a name="
|
|
1662
|
-
<div class="line"><a name="
|
|
1663
|
-
<div class="line"><a name="
|
|
1664
|
-
<div class="line"><a name="
|
|
1665
|
-
<div class="line"><a name="
|
|
1666
|
-
<div class="line"><a name="
|
|
1667
|
-
<div class="line"><a name="
|
|
1668
|
-
<div class="line"><a name="
|
|
1669
|
-
<div class="line"><a name="
|
|
1670
|
-
<div class="line"><a name="
|
|
1671
|
-
<div class="line"><a name="
|
|
1672
|
-
<div class="line"><a name="
|
|
1673
|
-
<div class="line"><a name="
|
|
1674
|
-
<div class="line"><a name="
|
|
1675
|
-
<div class="line"><a name="
|
|
1676
|
-
<div class="line"><a name="
|
|
1677
|
-
<div class="line"><a name="
|
|
1678
|
-
<div class="line"><a name="
|
|
1679
|
-
<div class="line"><a name="
|
|
1680
|
-
<div class="line"><a name="
|
|
1681
|
-
<div class="line"><a name="
|
|
1632
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01209">1209</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
1633
|
+
<div class="fragment"><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span> {</div>
|
|
1634
|
+
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo = <span class="keyword">new</span> <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>(1);</div>
|
|
1635
|
+
<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>  </div>
|
|
1636
|
+
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>  <span class="comment">// Number of fields after flattening the struct</span></div>
|
|
1637
|
+
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>  numFields = 0;</div>
|
|
1638
|
+
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>  <span class="comment">// The offset when considering array stride info</span></div>
|
|
1639
|
+
<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> strideOffset = 0;</div>
|
|
1640
|
+
<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1d008c0666c145622b81d427be64c52d">Type</a>* elemTy : structTy->elements())</div>
|
|
1641
|
+
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>  {</div>
|
|
1642
|
+
<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elemSvfTy = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(elemTy);</div>
|
|
1643
|
+
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>  <span class="comment">// offset with int_32 (s32_t) is large enough and won't overflow</span></div>
|
|
1644
|
+
<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c">addFldWithType</a>(numFields, elemSvfTy, strideOffset);</div>
|
|
1645
|
+
<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>  </div>
|
|
1646
|
+
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>  <span class="keywordflow">if</span> (SVFUtil::isa<StructType, ArrayType>(elemTy))</div>
|
|
1647
|
+
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>  {</div>
|
|
1648
|
+
<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* subStInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">collectTypeInfo</a>(elemTy);</div>
|
|
1649
|
+
<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nfF = subStInfo-><a class="code" href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0">getNumOfFlattenFields</a>();</div>
|
|
1650
|
+
<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nfE = subStInfo-><a class="code" href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">getNumOfFlattenElements</a>();</div>
|
|
1651
|
+
<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>  <span class="comment">// Copy ST's info, whose element 0 is the size of ST itself.</span></div>
|
|
1652
|
+
<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> j = 0; j < nfF; ++j)</div>
|
|
1653
|
+
<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>  {</div>
|
|
1654
|
+
<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* elemTy = subStInfo-><a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>()[j];</div>
|
|
1655
|
+
<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemTy);</div>
|
|
1656
|
+
<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>  }</div>
|
|
1657
|
+
<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>  numFields += nfF;</div>
|
|
1658
|
+
<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>  strideOffset += nfE;</div>
|
|
1659
|
+
<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> tpj = 0; tpj < nfE; ++tpj)</div>
|
|
1660
|
+
<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>  {</div>
|
|
1661
|
+
<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* ty = subStInfo-><a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>()[tpj];</div>
|
|
1662
|
+
<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(ty);</div>
|
|
1663
|
+
<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>  }</div>
|
|
1664
|
+
<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>  </div>
|
|
1665
|
+
<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>  }</div>
|
|
1666
|
+
<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>  <span class="keywordflow">else</span></div>
|
|
1667
|
+
<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>  {</div>
|
|
1668
|
+
<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>  <span class="comment">// Simple type</span></div>
|
|
1669
|
+
<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>  numFields += 1;</div>
|
|
1670
|
+
<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>  strideOffset += 1;</div>
|
|
1671
|
+
<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#ac0a9f85f90524abfd519d3cd2ac95a56">getFlattenFieldTypes</a>().push_back(elemSvfTy);</div>
|
|
1672
|
+
<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().push_back(elemSvfTy);</div>
|
|
1673
|
+
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>  }</div>
|
|
1674
|
+
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>  }</div>
|
|
1675
|
+
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>  </div>
|
|
1676
|
+
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>  assert(stInfo-><a class="code" href="classSVF_1_1StInfo.html#a03bfeee0406c7e54557e74f3a8e848b7">getFlattenElementTypes</a>().size() == strideOffset &&</div>
|
|
1677
|
+
<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>  <span class="stringliteral">"typeForStruct size incorrect!"</span>);</div>
|
|
1678
|
+
<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>  stInfo-><a class="code" href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">setNumOfFieldsAndElems</a>(numFields,strideOffset);</div>
|
|
1679
|
+
<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>  </div>
|
|
1680
|
+
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>  <span class="keywordflow">return</span> stInfo;</div>
|
|
1681
|
+
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> }</div>
|
|
1682
1682
|
</div><!-- fragment -->
|
|
1683
1683
|
</div>
|
|
1684
1684
|
</div>
|
|
@@ -1708,37 +1708,37 @@ Friends</h2></td></tr>
|
|
|
1708
1708
|
|
|
1709
1709
|
<p>Collect a type info. </p>
|
|
1710
1710
|
|
|
1711
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
1712
|
-
<div class="fragment"><div class="line"><a name="
|
|
1713
|
-
<div class="line"><a name="
|
|
1714
|
-
<div class="line"><a name="
|
|
1715
|
-
<div class="line"><a name="
|
|
1716
|
-
<div class="line"><a name="
|
|
1717
|
-
<div class="line"><a name="
|
|
1718
|
-
<div class="line"><a name="
|
|
1719
|
-
<div class="line"><a name="
|
|
1720
|
-
<div class="line"><a name="
|
|
1721
|
-
<div class="line"><a name="
|
|
1722
|
-
<div class="line"><a name="
|
|
1723
|
-
<div class="line"><a name="
|
|
1724
|
-
<div class="line"><a name="
|
|
1725
|
-
<div class="line"><a name="
|
|
1726
|
-
<div class="line"><a name="
|
|
1727
|
-
<div class="line"><a name="
|
|
1728
|
-
<div class="line"><a name="
|
|
1729
|
-
<div class="line"><a name="
|
|
1730
|
-
<div class="line"><a name="
|
|
1731
|
-
<div class="line"><a name="
|
|
1732
|
-
<div class="line"><a name="
|
|
1733
|
-
<div class="line"><a name="
|
|
1734
|
-
<div class="line"><a name="
|
|
1735
|
-
<div class="line"><a name="
|
|
1736
|
-
<div class="line"><a name="
|
|
1737
|
-
<div class="line"><a name="
|
|
1738
|
-
<div class="line"><a name="
|
|
1739
|
-
<div class="line"><a name="
|
|
1740
|
-
<div class="line"><a name="
|
|
1741
|
-
<div class="line"><a name="
|
|
1711
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01065">1065</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
1712
|
+
<div class="fragment"><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span> {</div>
|
|
1713
|
+
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>  Type2TypeInfoMap::iterator tit = <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.find(T);</div>
|
|
1714
|
+
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>  <span class="keywordflow">if</span> (tit != <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.end())</div>
|
|
1715
|
+
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>  {</div>
|
|
1716
|
+
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>  <span class="keywordflow">return</span> tit->second;</div>
|
|
1717
|
+
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  }</div>
|
|
1718
|
+
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  <span class="comment">// No such StInfo for T, create it now.</span></div>
|
|
1719
|
+
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stInfo;</div>
|
|
1720
|
+
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">ArrayType</a>* aty = SVFUtil::dyn_cast<ArrayType>(T))</div>
|
|
1721
|
+
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  {</div>
|
|
1722
|
+
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29">collectArrayInfo</a>(aty);</div>
|
|
1723
|
+
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>  }</div>
|
|
1724
|
+
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">StructType</a>* sty = SVFUtil::dyn_cast<StructType>(T))</div>
|
|
1725
|
+
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  {</div>
|
|
1726
|
+
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> nf;</div>
|
|
1727
|
+
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258">collectStructInfo</a>(sty, nf);</div>
|
|
1728
|
+
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  <span class="keywordflow">if</span> (nf > <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a>)</div>
|
|
1729
|
+
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  {</div>
|
|
1730
|
+
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a0c1143eff451edf8ea47d4487a8d3a55">maxStruct</a> = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(sty);</div>
|
|
1731
|
+
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#abb8550c9ef856e45cb7675c3796f9a35">maxStSize</a> = nf;</div>
|
|
1732
|
+
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  }</div>
|
|
1733
|
+
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  }</div>
|
|
1734
|
+
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  <span class="keywordflow">else</span></div>
|
|
1735
|
+
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  {</div>
|
|
1736
|
+
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  stInfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2">collectSimpleTypeInfo</a>(T);</div>
|
|
1737
|
+
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  }</div>
|
|
1738
|
+
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">Type2TypeInfo</a>.emplace(T, stInfo);</div>
|
|
1739
|
+
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5552135a27684cbe4d2a5ed346f64644">symInfo</a>-><a class="code" href="classSVF_1_1SymbolTableInfo.html#a72be32d606db86090067159de44e01ec">addStInfo</a>(stInfo);</div>
|
|
1740
|
+
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  <span class="keywordflow">return</span> stInfo;</div>
|
|
1741
|
+
<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span> }</div>
|
|
1742
1742
|
</div><!-- fragment -->
|
|
1743
1743
|
</div>
|
|
1744
1744
|
</div>
|
|
@@ -1774,76 +1774,76 @@ Friends</h2></td></tr>
|
|
|
1774
1774
|
<p>GlobalAlias</p>
|
|
1775
1775
|
<p>GlobalIFunc</p>
|
|
1776
1776
|
|
|
1777
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
1778
|
-
<div class="fragment"><div class="line"><a name="
|
|
1779
|
-
<div class="line"><a name="
|
|
1780
|
-
<div class="line"><a name="
|
|
1781
|
-
<div class="line"><a name="
|
|
1782
|
-
<div class="line"><a name="
|
|
1783
|
-
<div class="line"><a name="
|
|
1784
|
-
<div class="line"><a name="
|
|
1785
|
-
<div class="line"><a name="
|
|
1786
|
-
<div class="line"><a name="
|
|
1787
|
-
<div class="line"><a name="
|
|
1788
|
-
<div class="line"><a name="
|
|
1789
|
-
<div class="line"><a name="
|
|
1790
|
-
<div class="line"><a name="
|
|
1791
|
-
<div class="line"><a name="
|
|
1792
|
-
<div class="line"><a name="
|
|
1793
|
-
<div class="line"><a name="
|
|
1794
|
-
<div class="line"><a name="
|
|
1795
|
-
<div class="line"><a name="
|
|
1796
|
-
<div class="line"><a name="
|
|
1797
|
-
<div class="line"><a name="
|
|
1798
|
-
<div class="line"><a name="
|
|
1799
|
-
<div class="line"><a name="
|
|
1800
|
-
<div class="line"><a name="
|
|
1801
|
-
<div class="line"><a name="
|
|
1802
|
-
<div class="line"><a name="
|
|
1803
|
-
<div class="line"><a name="
|
|
1804
|
-
<div class="line"><a name="
|
|
1805
|
-
<div class="line"><a name="
|
|
1806
|
-
<div class="line"><a name="
|
|
1807
|
-
<div class="line"><a name="
|
|
1808
|
-
<div class="line"><a name="
|
|
1809
|
-
<div class="line"><a name="
|
|
1810
|
-
<div class="line"><a name="
|
|
1811
|
-
<div class="line"><a name="
|
|
1812
|
-
<div class="line"><a name="
|
|
1813
|
-
<div class="line"><a name="
|
|
1814
|
-
<div class="line"><a name="
|
|
1815
|
-
<div class="line"><a name="
|
|
1816
|
-
<div class="line"><a name="
|
|
1817
|
-
<div class="line"><a name="
|
|
1818
|
-
<div class="line"><a name="
|
|
1819
|
-
<div class="line"><a name="
|
|
1820
|
-
<div class="line"><a name="
|
|
1821
|
-
<div class="line"><a name="
|
|
1822
|
-
<div class="line"><a name="
|
|
1823
|
-
<div class="line"><a name="
|
|
1824
|
-
<div class="line"><a name="
|
|
1825
|
-
<div class="line"><a name="
|
|
1826
|
-
<div class="line"><a name="
|
|
1827
|
-
<div class="line"><a name="
|
|
1828
|
-
<div class="line"><a name="
|
|
1829
|
-
<div class="line"><a name="
|
|
1830
|
-
<div class="line"><a name="
|
|
1831
|
-
<div class="line"><a name="
|
|
1832
|
-
<div class="line"><a name="
|
|
1833
|
-
<div class="line"><a name="
|
|
1834
|
-
<div class="line"><a name="
|
|
1835
|
-
<div class="line"><a name="
|
|
1836
|
-
<div class="line"><a name="
|
|
1837
|
-
<div class="line"><a name="
|
|
1838
|
-
<div class="line"><a name="
|
|
1839
|
-
<div class="line"><a name="
|
|
1840
|
-
<div class="line"><a name="
|
|
1841
|
-
<div class="line"><a name="
|
|
1842
|
-
<div class="line"><a name="
|
|
1843
|
-
<div class="line"><a name="
|
|
1844
|
-
<div class="line"><a name="
|
|
1845
|
-
<div class="line"><a name="
|
|
1846
|
-
<div class="line"><a name="
|
|
1777
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00153">153</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
1778
|
+
<div class="fragment"><div class="line"><a name="l00154"></a><span class="lineno"> 154</span> {</div>
|
|
1779
|
+
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(IntegerType::getInt8Ty(<a class="code" href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">getContext</a>()));</div>
|
|
1780
|
+
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const Function*></a> candidateDecls;</div>
|
|
1781
|
+
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const Function*></a> candidateDefs;</div>
|
|
1782
|
+
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  </div>
|
|
1783
|
+
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>& mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div>
|
|
1784
|
+
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  {</div>
|
|
1785
|
+
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  std::vector<Function*> removedFuncList;</div>
|
|
1786
|
+
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>& func : mod.functions())</div>
|
|
1787
|
+
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  {</div>
|
|
1788
|
+
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">if</span> (func.isDeclaration())</div>
|
|
1789
|
+
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  {</div>
|
|
1790
|
+
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  candidateDecls.insert(&func);</div>
|
|
1791
|
+
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  }</div>
|
|
1792
|
+
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">else</span></div>
|
|
1793
|
+
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  {</div>
|
|
1794
|
+
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">if</span> (mod.getName().str() == <a class="code" href="classSVF_1_1Options.html#a2ed1e6f7911ae5cfbf79213e4d07531e">Options::ExtAPIInput</a>() && <a class="code" href="classSVF_1_1LLVMModuleSet.html#a377cefaad4b688ab6edf94ba4abe00ee">FunDefToDeclsMap</a>[&func].empty() && func.getName().str() != <span class="stringliteral">"svf__main"</span>)</div>
|
|
1795
|
+
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  {</div>
|
|
1796
|
+
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  removedFuncList.push_back(&func);</div>
|
|
1797
|
+
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">continue</span>;</div>
|
|
1798
|
+
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  }</div>
|
|
1799
|
+
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordflow">else</span></div>
|
|
1800
|
+
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  {</div>
|
|
1801
|
+
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  candidateDefs.insert(&func);</div>
|
|
1802
|
+
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  }</div>
|
|
1803
|
+
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  }</div>
|
|
1804
|
+
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  }</div>
|
|
1805
|
+
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func : removedFuncList)</div>
|
|
1806
|
+
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  {</div>
|
|
1807
|
+
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  mod.getFunctionList().remove(func);</div>
|
|
1808
|
+
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  }</div>
|
|
1809
|
+
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  }</div>
|
|
1810
|
+
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func: candidateDefs)</div>
|
|
1811
|
+
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  {</div>
|
|
1812
|
+
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a024f5de163fde6f63cb2d762b4b28d8a">createSVFFunction</a>(func);</div>
|
|
1813
|
+
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  }</div>
|
|
1814
|
+
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  </div>
|
|
1815
|
+
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func: candidateDecls)</div>
|
|
1816
|
+
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  {</div>
|
|
1817
|
+
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a024f5de163fde6f63cb2d762b4b28d8a">createSVFFunction</a>(func);</div>
|
|
1818
|
+
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  }</div>
|
|
1819
|
+
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  </div>
|
|
1820
|
+
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>& mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div>
|
|
1821
|
+
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  {</div>
|
|
1822
|
+
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">GlobalVariable</a>& global : mod.globals())</div>
|
|
1823
|
+
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  {</div>
|
|
1824
|
+
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a>* svfglobal = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a>(</div>
|
|
1825
|
+
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  global.getName().str(), <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(global.getType()));</div>
|
|
1826
|
+
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-><a class="code" href="classSVF_1_1SVFModule.html#a0bc5a63d8c10da51766007cf40b095e5">addGlobalSet</a>(svfglobal);</div>
|
|
1827
|
+
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a7de84e7817406867b173e1591e0681ac">addGlobalValueMap</a>(&global, svfglobal);</div>
|
|
1828
|
+
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div>
|
|
1829
|
+
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  </div>
|
|
1830
|
+
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a0fd33072b099f61eaa642e94ed0c03fc">GlobalAlias</a>& alias : mod.aliases())</div>
|
|
1831
|
+
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  {</div>
|
|
1832
|
+
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a>* svfalias = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a>(</div>
|
|
1833
|
+
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  alias.getName().str(), <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(alias.getType()));</div>
|
|
1834
|
+
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-><a class="code" href="classSVF_1_1SVFModule.html#aa6627399cf4d30d576f76f681d83449d">addAliasSet</a>(svfalias);</div>
|
|
1835
|
+
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a7de84e7817406867b173e1591e0681ac">addGlobalValueMap</a>(&alias, svfalias);</div>
|
|
1836
|
+
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  }</div>
|
|
1837
|
+
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  </div>
|
|
1838
|
+
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#aacffd97ab4cb45aeae2e67ec479889aa">GlobalIFunc</a>& ifunc : mod.ifuncs())</div>
|
|
1839
|
+
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  {</div>
|
|
1840
|
+
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a>* svfifunc = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a>(</div>
|
|
1841
|
+
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  ifunc.getName().str(), <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ifunc.getType()));</div>
|
|
1842
|
+
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-><a class="code" href="classSVF_1_1SVFModule.html#aa6627399cf4d30d576f76f681d83449d">addAliasSet</a>(svfifunc);</div>
|
|
1843
|
+
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a7de84e7817406867b173e1591e0681ac">addGlobalValueMap</a>(&ifunc, svfifunc);</div>
|
|
1844
|
+
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  }</div>
|
|
1845
|
+
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  }</div>
|
|
1846
|
+
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> }</div>
|
|
1847
1847
|
</div><!-- fragment -->
|
|
1848
1848
|
</div>
|
|
1849
1849
|
</div>
|
|
@@ -1871,84 +1871,70 @@ Friends</h2></td></tr>
|
|
|
1871
1871
|
</table>
|
|
1872
1872
|
</div><div class="memdoc">
|
|
1873
1873
|
|
|
1874
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
1875
|
-
<div class="fragment"><div class="line"><a name="
|
|
1876
|
-
<div class="line"><a name="
|
|
1877
|
-
<div class="line"><a name="
|
|
1878
|
-
<div class="line"><a name="
|
|
1879
|
-
<div class="line"><a name="
|
|
1880
|
-
<div class="line"><a name="
|
|
1881
|
-
<div class="line"><a name="
|
|
1882
|
-
<div class="line"><a name="
|
|
1883
|
-
<div class="line"><a name="
|
|
1884
|
-
<div class="line"><a name="
|
|
1885
|
-
<div class="line"><a name="
|
|
1886
|
-
<div class="line"><a name="
|
|
1887
|
-
<div class="line"><a name="
|
|
1888
|
-
<div class="line"><a name="
|
|
1889
|
-
<div class="line"><a name="
|
|
1890
|
-
<div class="line"><a name="
|
|
1891
|
-
<div class="line"><a name="
|
|
1892
|
-
<div class="line"><a name="
|
|
1893
|
-
<div class="line"><a name="
|
|
1894
|
-
<div class="line"><a name="
|
|
1895
|
-
<div class="line"><a name="
|
|
1896
|
-
<div class="line"><a name="
|
|
1897
|
-
<div class="line"><a name="
|
|
1898
|
-
<div class="line"><a name="
|
|
1899
|
-
<div class="line"><a name="
|
|
1900
|
-
<div class="line"><a name="
|
|
1901
|
-
<div class="line"><a name="
|
|
1902
|
-
<div class="line"><a name="
|
|
1903
|
-
<div class="line"><a name="
|
|
1904
|
-
<div class="line"><a name="
|
|
1905
|
-
<div class="line"><a name="
|
|
1906
|
-
<div class="line"><a name="
|
|
1907
|
-
<div class="line"><a name="
|
|
1908
|
-
<div class="line"><a name="
|
|
1909
|
-
<div class="line"><a name="
|
|
1910
|
-
<div class="line"><a name="
|
|
1911
|
-
<div class="line"><a name="
|
|
1912
|
-
<div class="line"><a name="
|
|
1874
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00234">234</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
1875
|
+
<div class="fragment"><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> {</div>
|
|
1876
|
+
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svfFunc = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>(</div>
|
|
1877
|
+
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(func->getType()),</div>
|
|
1878
|
+
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  SVFUtil::cast<SVFFunctionType>(</div>
|
|
1879
|
+
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(func->getFunctionType())),</div>
|
|
1880
|
+
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  func->isDeclaration(), <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4638a12f5481dff947b59cf8353e619b">LLVMUtil::isIntrinsicFun</a>(func),</div>
|
|
1881
|
+
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  func->hasAddressTaken(), func->isVarArg(), <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html">SVFLoopAndDomInfo</a>);</div>
|
|
1882
|
+
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  svfFunc-><a class="code" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName</a>(func->getName().str());</div>
|
|
1883
|
+
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-><a class="code" href="classSVF_1_1SVFModule.html#a8a0fe93cc13b799fc28540fb312573c6">addFunctionSet</a>(svfFunc);</div>
|
|
1884
|
+
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab671d5bb9ca5761e2b438a4d4da229cf">addFunctionMap</a>(func, svfFunc);</div>
|
|
1885
|
+
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  </div>
|
|
1886
|
+
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>& arg : func->args())</div>
|
|
1887
|
+
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  {</div>
|
|
1888
|
+
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>* svfarg = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFArgument.html">SVFArgument</a>(</div>
|
|
1889
|
+
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(arg.getType()), svfFunc, arg.getArgNo(),</div>
|
|
1890
|
+
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a428bd75b33fab60988d8758090712f29">LLVMUtil::isArgOfUncalledFunction</a>(&arg));</div>
|
|
1891
|
+
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="comment">// Setting up arg name</span></div>
|
|
1892
|
+
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keywordflow">if</span> (arg.hasName())</div>
|
|
1893
|
+
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  svfarg-><a class="code" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName</a>(arg.getName().str());</div>
|
|
1894
|
+
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">else</span></div>
|
|
1895
|
+
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  svfarg-><a class="code" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName</a>(std::to_string(arg.getArgNo()));</div>
|
|
1896
|
+
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  </div>
|
|
1897
|
+
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  svfFunc-><a class="code" href="classSVF_1_1SVFFunction.html#ad865b8440a6e0d5d212798d2213e1e9c">addArgument</a>(svfarg);</div>
|
|
1898
|
+
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5595ec3f7582934dc499770825bf5373">addArgumentMap</a>(&arg, svfarg);</div>
|
|
1899
|
+
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  }</div>
|
|
1900
|
+
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  </div>
|
|
1901
|
+
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>& bb : *func)</div>
|
|
1902
|
+
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  {</div>
|
|
1903
|
+
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* svfBB =</div>
|
|
1904
|
+
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(bb.getType()), svfFunc);</div>
|
|
1905
|
+
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keywordflow">if</span> (bb.hasName())</div>
|
|
1906
|
+
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  svfBB-><a class="code" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName</a>(bb.getName().str());</div>
|
|
1907
|
+
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  svfFunc-><a class="code" href="classSVF_1_1SVFFunction.html#a0d5031bd11b6372803082111ec2cb4f6">addBasicBlock</a>(svfBB);</div>
|
|
1908
|
+
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a3eaadb33cd21d0bd868526b5ddb051d9">addBasicBlockMap</a>(&bb, svfBB);</div>
|
|
1909
|
+
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>& inst : bb)</div>
|
|
1910
|
+
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  {</div>
|
|
1911
|
+
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfInst = <span class="keyword">nullptr</span>;</div>
|
|
1912
|
+
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* call = SVFUtil::dyn_cast<CallBase>(&inst))</div>
|
|
1913
|
+
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  {</div>
|
|
1914
|
+
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#ab1b4c565ae6be788b934defc21a5cfaf">LLVMUtil::isVirtualCallSite</a>(call))</div>
|
|
1915
|
+
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  svfInst = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFVirtualCallInst.html">SVFVirtualCallInst</a>(</div>
|
|
1916
|
+
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(call->getType()), svfBB,</div>
|
|
1917
|
+
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  call->getFunctionType()->isVarArg(),</div>
|
|
1918
|
+
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  inst.isTerminator());</div>
|
|
1919
|
+
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  <span class="keywordflow">else</span></div>
|
|
1920
|
+
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  svfInst = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFCallInst.html">SVFCallInst</a>(</div>
|
|
1921
|
+
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(call->getType()), svfBB,</div>
|
|
1922
|
+
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  call->getFunctionType()->isVarArg(),</div>
|
|
1923
|
+
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  inst.isTerminator());</div>
|
|
1924
|
+
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  }</div>
|
|
1925
|
+
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordflow">else</span></div>
|
|
1913
1926
|
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  {</div>
|
|
1914
|
-
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> 
|
|
1915
|
-
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> 
|
|
1916
|
-
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> 
|
|
1917
|
-
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span> 
|
|
1918
|
-
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span> 
|
|
1919
|
-
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> 
|
|
1920
|
-
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> 
|
|
1921
|
-
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span> 
|
|
1922
|
-
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> 
|
|
1923
|
-
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> 
|
|
1924
|
-
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> 
|
|
1925
|
-
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keywordflow">else</span></div>
|
|
1926
|
-
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  {</div>
|
|
1927
|
-
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  svfInst =</div>
|
|
1928
|
-
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(inst.getType()),</div>
|
|
1929
|
-
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  svfBB, inst.isTerminator(),</div>
|
|
1930
|
-
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  SVFUtil::isa<ReturnInst>(inst));</div>
|
|
1931
|
-
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  }</div>
|
|
1932
|
-
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  </div>
|
|
1933
|
-
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="comment">// Set instruction's string representation</span></div>
|
|
1934
|
-
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">if</span> (inst.hasName() && !inst.getName().empty())</div>
|
|
1935
|
-
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  {</div>
|
|
1936
|
-
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  svfInst-><a class="code" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName</a>(inst.getName().str());</div>
|
|
1937
|
-
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  }</div>
|
|
1938
|
-
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">else</span></div>
|
|
1939
|
-
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  {</div>
|
|
1940
|
-
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a7b8b93fec1dc8c63c0a5837a85b99129">LLVMUtil::llvmToString</a>(inst);</div>
|
|
1941
|
-
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="keyword">auto</span> it = str.begin(), ite = str.end();</div>
|
|
1942
|
-
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">while</span> (it != ite && std::isspace(*it))</div>
|
|
1943
|
-
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  ++it;</div>
|
|
1944
|
-
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="comment">// 0xf (15) is the max length a local string can hold</span></div>
|
|
1945
|
-
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  svfInst-><a class="code" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName</a>({it, std::min(it + 0xf, ite)});</div>
|
|
1946
|
-
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  }</div>
|
|
1947
|
-
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  svfBB-><a class="code" href="classSVF_1_1SVFBasicBlock.html#ac1b15d8f9c2499add8dbc889ae5cab65">addInstruction</a>(svfInst);</div>
|
|
1948
|
-
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a172084437a8450314a17f7085a32b5d2">addInstructionMap</a>(&inst, svfInst);</div>
|
|
1949
|
-
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div>
|
|
1950
|
-
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  }</div>
|
|
1951
|
-
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> }</div>
|
|
1927
|
+
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  svfInst =</div>
|
|
1928
|
+
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(inst.getType()),</div>
|
|
1929
|
+
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  svfBB, inst.isTerminator(),</div>
|
|
1930
|
+
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  SVFUtil::isa<ReturnInst>(inst));</div>
|
|
1931
|
+
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  }</div>
|
|
1932
|
+
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  </div>
|
|
1933
|
+
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  svfBB-><a class="code" href="classSVF_1_1SVFBasicBlock.html#ac1b15d8f9c2499add8dbc889ae5cab65">addInstruction</a>(svfInst);</div>
|
|
1934
|
+
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a172084437a8450314a17f7085a32b5d2">addInstructionMap</a>(&inst, svfInst);</div>
|
|
1935
|
+
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  }</div>
|
|
1936
|
+
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  }</div>
|
|
1937
|
+
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> }</div>
|
|
1952
1938
|
</div><!-- fragment -->
|
|
1953
1939
|
</div>
|
|
1954
1940
|
</div>
|
|
@@ -1968,30 +1954,30 @@ Friends</h2></td></tr>
|
|
|
1968
1954
|
</table>
|
|
1969
1955
|
</div><div class="memdoc">
|
|
1970
1956
|
|
|
1971
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
1972
|
-
<div class="fragment"><div class="line"><a name="
|
|
1973
|
-
<div class="line"><a name="
|
|
1974
|
-
<div class="line"><a name="
|
|
1975
|
-
<div class="line"><a name="
|
|
1976
|
-
<div class="line"><a name="
|
|
1977
|
-
<div class="line"><a name="
|
|
1978
|
-
<div class="line"><a name="
|
|
1979
|
-
<div class="line"><a name="
|
|
1980
|
-
<div class="line"><a name="
|
|
1981
|
-
<div class="line"><a name="
|
|
1982
|
-
<div class="line"><a name="
|
|
1983
|
-
<div class="line"><a name="
|
|
1984
|
-
<div class="line"><a name="
|
|
1985
|
-
<div class="line"><a name="
|
|
1986
|
-
<div class="line"><a name="
|
|
1987
|
-
<div class="line"><a name="
|
|
1988
|
-
<div class="line"><a name="
|
|
1989
|
-
<div class="line"><a name="
|
|
1990
|
-
<div class="line"><a name="
|
|
1991
|
-
<div class="line"><a name="
|
|
1992
|
-
<div class="line"><a name="
|
|
1993
|
-
<div class="line"><a name="
|
|
1994
|
-
<div class="line"><a name="
|
|
1957
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00875">875</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
1958
|
+
<div class="fragment"><div class="line"><a name="l00876"></a><span class="lineno"> 876</span> {</div>
|
|
1959
|
+
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>& mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div>
|
|
1960
|
+
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  {</div>
|
|
1961
|
+
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> moduleName = mod.getName().str();</div>
|
|
1962
|
+
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> OutputFilename;</div>
|
|
1963
|
+
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  std::size_t pos = moduleName.rfind(<span class="charliteral">'.'</span>);</div>
|
|
1964
|
+
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  <span class="keywordflow">if</span> (pos != std::string::npos)</div>
|
|
1965
|
+
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  OutputFilename = moduleName.substr(0, pos) + suffix;</div>
|
|
1966
|
+
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>  <span class="keywordflow">else</span></div>
|
|
1967
|
+
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  OutputFilename = moduleName + suffix;</div>
|
|
1968
|
+
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  </div>
|
|
1969
|
+
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  std::error_code EC;</div>
|
|
1970
|
+
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  <a class="code" href="namespaceSVF.html#a1c7c7ac12791c0ae386283c0a4f127ba">raw_fd_ostream</a> OS(OutputFilename.c_str(), EC, llvm::sys::fs::OF_None);</div>
|
|
1971
|
+
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  </div>
|
|
1972
|
+
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span> <span class="preprocessor">#if (LLVM_VERSION_MAJOR >= 7)</span></div>
|
|
1973
|
+
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  WriteBitcodeToFile(mod, OS);</div>
|
|
1974
|
+
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span> <span class="preprocessor">#else</span></div>
|
|
1975
|
+
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  WriteBitcodeToFile(&mod, OS);</div>
|
|
1976
|
+
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span> <span class="preprocessor">#endif</span></div>
|
|
1977
|
+
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  </div>
|
|
1978
|
+
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  OS.flush();</div>
|
|
1979
|
+
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  }</div>
|
|
1980
|
+
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> }</div>
|
|
1995
1981
|
</div><!-- fragment -->
|
|
1996
1982
|
</div>
|
|
1997
1983
|
</div>
|
|
@@ -2184,94 +2170,94 @@ Friends</h2></td></tr>
|
|
|
2184
2170
|
</table>
|
|
2185
2171
|
</div><div class="memdoc">
|
|
2186
2172
|
|
|
2187
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
2188
|
-
<div class="fragment"><div class="line"><a name="
|
|
2189
|
-
<div class="line"><a name="
|
|
2190
|
-
<div class="line"><a name="
|
|
2191
|
-
<div class="line"><a name="
|
|
2192
|
-
<div class="line"><a name="
|
|
2193
|
-
<div class="line"><a name="
|
|
2194
|
-
<div class="line"><a name="
|
|
2195
|
-
<div class="line"><a name="
|
|
2196
|
-
<div class="line"><a name="
|
|
2197
|
-
<div class="line"><a name="
|
|
2198
|
-
<div class="line"><a name="
|
|
2199
|
-
<div class="line"><a name="
|
|
2200
|
-
<div class="line"><a name="
|
|
2201
|
-
<div class="line"><a name="
|
|
2202
|
-
<div class="line"><a name="
|
|
2203
|
-
<div class="line"><a name="
|
|
2204
|
-
<div class="line"><a name="
|
|
2205
|
-
<div class="line"><a name="
|
|
2206
|
-
<div class="line"><a name="
|
|
2207
|
-
<div class="line"><a name="
|
|
2208
|
-
<div class="line"><a name="
|
|
2209
|
-
<div class="line"><a name="
|
|
2210
|
-
<div class="line"><a name="
|
|
2211
|
-
<div class="line"><a name="
|
|
2212
|
-
<div class="line"><a name="
|
|
2213
|
-
<div class="line"><a name="
|
|
2214
|
-
<div class="line"><a name="
|
|
2215
|
-
<div class="line"><a name="
|
|
2216
|
-
<div class="line"><a name="
|
|
2217
|
-
<div class="line"><a name="
|
|
2218
|
-
<div class="line"><a name="
|
|
2219
|
-
<div class="line"><a name="
|
|
2220
|
-
<div class="line"><a name="
|
|
2221
|
-
<div class="line"><a name="
|
|
2222
|
-
<div class="line"><a name="
|
|
2223
|
-
<div class="line"><a name="
|
|
2224
|
-
<div class="line"><a name="
|
|
2225
|
-
<div class="line"><a name="
|
|
2226
|
-
<div class="line"><a name="
|
|
2227
|
-
<div class="line"><a name="
|
|
2228
|
-
<div class="line"><a name="
|
|
2229
|
-
<div class="line"><a name="
|
|
2230
|
-
<div class="line"><a name="
|
|
2231
|
-
<div class="line"><a name="
|
|
2232
|
-
<div class="line"><a name="
|
|
2233
|
-
<div class="line"><a name="
|
|
2234
|
-
<div class="line"><a name="
|
|
2235
|
-
<div class="line"><a name="
|
|
2236
|
-
<div class="line"><a name="
|
|
2237
|
-
<div class="line"><a name="
|
|
2238
|
-
<div class="line"><a name="
|
|
2239
|
-
<div class="line"><a name="
|
|
2240
|
-
<div class="line"><a name="
|
|
2241
|
-
<div class="line"><a name="
|
|
2242
|
-
<div class="line"><a name="
|
|
2243
|
-
<div class="line"><a name="
|
|
2244
|
-
<div class="line"><a name="
|
|
2245
|
-
<div class="line"><a name="
|
|
2246
|
-
<div class="line"><a name="
|
|
2247
|
-
<div class="line"><a name="
|
|
2248
|
-
<div class="line"><a name="
|
|
2249
|
-
<div class="line"><a name="
|
|
2250
|
-
<div class="line"><a name="
|
|
2251
|
-
<div class="line"><a name="
|
|
2252
|
-
<div class="line"><a name="
|
|
2253
|
-
<div class="line"><a name="
|
|
2254
|
-
<div class="line"><a name="
|
|
2255
|
-
<div class="line"><a name="
|
|
2256
|
-
<div class="line"><a name="
|
|
2257
|
-
<div class="line"><a name="
|
|
2258
|
-
<div class="line"><a name="
|
|
2259
|
-
<div class="line"><a name="
|
|
2260
|
-
<div class="line"><a name="
|
|
2261
|
-
<div class="line"><a name="
|
|
2262
|
-
<div class="line"><a name="
|
|
2263
|
-
<div class="line"><a name="
|
|
2264
|
-
<div class="line"><a name="
|
|
2265
|
-
<div class="line"><a name="
|
|
2266
|
-
<div class="line"><a name="
|
|
2267
|
-
<div class="line"><a name="
|
|
2268
|
-
<div class="line"><a name="
|
|
2269
|
-
<div class="line"><a name="
|
|
2270
|
-
<div class="line"><a name="
|
|
2271
|
-
<div class="line"><a name="
|
|
2272
|
-
<div class="line"><a name="
|
|
2273
|
-
<div class="line"><a name="
|
|
2274
|
-
<div class="line"><a name="
|
|
2173
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00561">561</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
2174
|
+
<div class="fragment"><div class="line"><a name="l00562"></a><span class="lineno"> 562</span> {</div>
|
|
2175
|
+
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="comment">// This function is used to extract constructor and destructor functions</span></div>
|
|
2176
|
+
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="comment">// sorted by their priority from @llvm.global_ctors or @llvm.global_dtors.</span></div>
|
|
2177
|
+
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="comment">// For example, given following @llvm.global_ctors, the returning sorted</span></div>
|
|
2178
|
+
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="comment">// function list should be [ctor3, ctor1, ctor2].</span></div>
|
|
2179
|
+
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="comment">// ------------------------------------------------------------------</span></div>
|
|
2180
|
+
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="comment">// ; Each struct in the array is {priority, function, associated data}</span></div>
|
|
2181
|
+
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="comment">//</span></div>
|
|
2182
|
+
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="comment">// @llvm.global_ctors = appending global [2 x { i32, void ()*, i8* }]</span></div>
|
|
2183
|
+
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <span class="comment">// [{ i32, void ()*, i8* } { i32 1234, void ()* @ctor1.cpp, i8* null },</span></div>
|
|
2184
|
+
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="comment">// { i32, void ()*, i8* } { i32 2345, void ()* @ctor2.cpp, i8* null },</span></div>
|
|
2185
|
+
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="comment">// { i32, void ()*, i8* } { i32 345, void ()* @ctor3.cpp, i8* null }]</span></div>
|
|
2186
|
+
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <span class="comment">// ------------------------------------------------------------------</span></div>
|
|
2187
|
+
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <span class="comment">// TODO: According to LLVM language reference, if the third field is</span></div>
|
|
2188
|
+
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="comment">// non-null, and points to a global variable or function, the initializer</span></div>
|
|
2189
|
+
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  <span class="comment">// function will only run if the associated data from the current module is</span></div>
|
|
2190
|
+
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="comment">// not discarded. However the associated data is currently ignored.</span></div>
|
|
2191
|
+
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  </div>
|
|
2192
|
+
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  </div>
|
|
2193
|
+
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="comment">// This class is used for the priority queue that sorts the functions by</span></div>
|
|
2194
|
+
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="comment">// their priority. Each object of this class stands for an item in the</span></div>
|
|
2195
|
+
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="comment">// function array.</span></div>
|
|
2196
|
+
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keyword">class </span>LLVMGlobalFunction</div>
|
|
2197
|
+
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  {</div>
|
|
2198
|
+
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keyword">public</span>:</div>
|
|
2199
|
+
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> priority;</div>
|
|
2200
|
+
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func;</div>
|
|
2201
|
+
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  LLVMGlobalFunction() {};</div>
|
|
2202
|
+
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  LLVMGlobalFunction(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> _priority, <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* _func)</div>
|
|
2203
|
+
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  : priority(_priority), func(_func) {};</div>
|
|
2204
|
+
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="keywordtype">bool</span> <a class="code" href="namespaceSVF.html#aedd9d023a68dddd66314be63bb8e48d2">operator></a>(<span class="keyword">const</span> LLVMGlobalFunction &other)<span class="keyword"> const</span></div>
|
|
2205
|
+
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> <span class="keyword"> </span>{</div>
|
|
2206
|
+
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  <span class="keywordflow">if</span> (priority != other.priority)</div>
|
|
2207
|
+
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  {</div>
|
|
2208
|
+
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keywordflow">return</span> priority > other.priority;</div>
|
|
2209
|
+
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  }</div>
|
|
2210
|
+
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keywordflow">else</span></div>
|
|
2211
|
+
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  {</div>
|
|
2212
|
+
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  <span class="keywordflow">return</span> func > other.func;</div>
|
|
2213
|
+
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  }</div>
|
|
2214
|
+
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  }</div>
|
|
2215
|
+
<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  };</div>
|
|
2216
|
+
<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  </div>
|
|
2217
|
+
<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  std::priority_queue<LLVMGlobalFunction, std::vector<LLVMGlobalFunction>,</div>
|
|
2218
|
+
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  greater<LLVMGlobalFunction>></div>
|
|
2219
|
+
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  queue;</div>
|
|
2220
|
+
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  std::vector<const Function* > result;</div>
|
|
2221
|
+
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  </div>
|
|
2222
|
+
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <span class="comment">// The @llvm.global_ctors/dtors global variable is an array of struct. Each</span></div>
|
|
2223
|
+
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  <span class="comment">// struct has three fields: {i32 priority, void ()* @ctor/dtor, i8* @data}.</span></div>
|
|
2224
|
+
<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="comment">// First get the array here.</span></div>
|
|
2225
|
+
<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5ae718cba37d8e34d2946530dc098c8e">ConstantArray</a> *globalFuncArray =</div>
|
|
2226
|
+
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  SVFUtil::dyn_cast<ConstantArray>(global->getInitializer()))</div>
|
|
2227
|
+
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  {</div>
|
|
2228
|
+
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  <span class="comment">// Get each struct in the array.</span></div>
|
|
2229
|
+
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <span class="keywordflow">for</span> (<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i < globalFuncArray->getNumOperands(); ++i)</div>
|
|
2230
|
+
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  {</div>
|
|
2231
|
+
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="keywordflow">if</span> (</div>
|
|
2232
|
+
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">ConstantStruct</a> *globalFuncItem =</div>
|
|
2233
|
+
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  SVFUtil::dyn_cast<ConstantStruct>(</div>
|
|
2234
|
+
<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  globalFuncArray->getOperand(i)))</div>
|
|
2235
|
+
<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  {</div>
|
|
2236
|
+
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  </div>
|
|
2237
|
+
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="comment">// Extract priority and function from the struct</span></div>
|
|
2238
|
+
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>* priority = SVFUtil::dyn_cast<ConstantInt>(</div>
|
|
2239
|
+
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  globalFuncItem->getOperand(0));</div>
|
|
2240
|
+
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = SVFUtil::dyn_cast<Function>(</div>
|
|
2241
|
+
<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  globalFuncItem->getOperand(1));</div>
|
|
2242
|
+
<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  </div>
|
|
2243
|
+
<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  <span class="keywordflow">if</span> (priority && func)</div>
|
|
2244
|
+
<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  {</div>
|
|
2245
|
+
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  queue.push(LLVMGlobalFunction(priority</div>
|
|
2246
|
+
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  ->getZExtValue(),</div>
|
|
2247
|
+
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  func));</div>
|
|
2248
|
+
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  }</div>
|
|
2249
|
+
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  }</div>
|
|
2250
|
+
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  }</div>
|
|
2251
|
+
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  }</div>
|
|
2252
|
+
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  </div>
|
|
2253
|
+
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  <span class="comment">// Generate a sorted vector of functions from the priority queue.</span></div>
|
|
2254
|
+
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  <span class="keywordflow">while</span> (!queue.empty())</div>
|
|
2255
|
+
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  {</div>
|
|
2256
|
+
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  result.push_back(queue.top().func);</div>
|
|
2257
|
+
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  queue.pop();</div>
|
|
2258
|
+
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  }</div>
|
|
2259
|
+
<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="keywordflow">return</span> result;</div>
|
|
2260
|
+
<div class="line"><a name="l00648"></a><span class="lineno"> 648</span> }</div>
|
|
2275
2261
|
</div><!-- fragment -->
|
|
2276
2262
|
</div>
|
|
2277
2263
|
</div>
|
|
@@ -2355,16 +2341,16 @@ Friends</h2></td></tr>
|
|
|
2355
2341
|
|
|
2356
2342
|
<p>Get LLVM Type. </p>
|
|
2357
2343
|
|
|
2358
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
2359
|
-
<div class="fragment"><div class="line"><a name="
|
|
2360
|
-
<div class="line"><a name="
|
|
2361
|
-
<div class="line"><a name="
|
|
2362
|
-
<div class="line"><a name="
|
|
2363
|
-
<div class="line"><a name="
|
|
2364
|
-
<div class="line"><a name="
|
|
2365
|
-
<div class="line"><a name="
|
|
2366
|
-
<div class="line"><a name="
|
|
2367
|
-
<div class="line"><a name="
|
|
2344
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01031">1031</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
2345
|
+
<div class="fragment"><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> {</div>
|
|
2346
|
+
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  <span class="keywordflow">for</span>(LLVMType2SVFTypeMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.begin(), eit = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.end(); it!=eit; ++it)</div>
|
|
2347
|
+
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  {</div>
|
|
2348
|
+
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  <span class="keywordflow">if</span> (it->second == T)</div>
|
|
2349
|
+
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  <span class="keywordflow">return</span> it->first;</div>
|
|
2350
|
+
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  }</div>
|
|
2351
|
+
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  assert(<span class="keyword">false</span> && <span class="stringliteral">"can't find the corresponding LLVM Type"</span>);</div>
|
|
2352
|
+
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  abort();</div>
|
|
2353
|
+
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span> }</div>
|
|
2368
2354
|
</div><!-- fragment -->
|
|
2369
2355
|
</div>
|
|
2370
2356
|
</div>
|
|
@@ -2540,44 +2526,21 @@ Friends</h2></td></tr>
|
|
|
2540
2526
|
</table>
|
|
2541
2527
|
</div><div class="memdoc">
|
|
2542
2528
|
|
|
2543
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
2544
|
-
<div class="fragment"><div class="line"><a name="
|
|
2545
|
-
<div class="line"><a name="
|
|
2546
|
-
<div class="line"><a name="
|
|
2547
|
-
<div class="line"><a name="
|
|
2548
|
-
<div class="line"><a name="
|
|
2549
|
-
<div class="line"><a name="
|
|
2550
|
-
<div class="line"><a name="
|
|
2551
|
-
<div class="line"><a name="
|
|
2552
|
-
<div class="line"><a name="
|
|
2553
|
-
<div class="line"><a name="
|
|
2554
|
-
<div class="line"><a name="
|
|
2555
|
-
<div class="line"><a name="
|
|
2556
|
-
<div class="line"><a name="
|
|
2557
|
-
<div class="line"><a name="
|
|
2558
|
-
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> str = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a7b8b93fec1dc8c63c0a5837a85b99129">LLVMUtil::llvmToString</a>(*oc);</div>
|
|
2559
|
-
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  <span class="keyword">const</span> <span class="keywordtype">char</span>* spaceChars = <span class="stringliteral">" \t\n\v\f\r"</span>;</div>
|
|
2560
|
-
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  <span class="keywordtype">size_t</span> space = str.find_first_of(spaceChars);</div>
|
|
2561
|
-
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  <span class="keyword">const</span> <span class="keywordtype">int</span> maxLen = 62; <span class="comment">// Arbitrary chosen small number that fits string</span></div>
|
|
2562
|
-
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  <span class="comment">// within one line</span></div>
|
|
2563
|
-
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  <span class="keywordflow">if</span> (space != str.npos &&</div>
|
|
2564
|
-
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  (space = str.find_first_of(spaceChars, space + 1)) != str.npos)</div>
|
|
2565
|
-
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  {</div>
|
|
2566
|
-
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>  <span class="keywordtype">size_t</span> <a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a> = str.find(<span class="charliteral">'@'</span>, space);</div>
|
|
2567
|
-
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  str.erase(space, <a class="code" href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a> - space);</div>
|
|
2568
|
-
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  }</div>
|
|
2569
|
-
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (str.size() > maxLen)</div>
|
|
2570
|
-
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  {</div>
|
|
2571
|
-
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  <span class="keywordtype">int</span> extra = str.size() - maxLen;</div>
|
|
2572
|
-
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  <span class="keywordtype">int</span> half = maxLen / 2;</div>
|
|
2573
|
-
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  str[half++] = <span class="charliteral">'~'</span>;</div>
|
|
2574
|
-
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  str.erase(half, half + extra);</div>
|
|
2575
|
-
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  }</div>
|
|
2576
|
-
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  svfoc-><a class="code" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(str));</div>
|
|
2577
|
-
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  </div>
|
|
2578
|
-
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  <span class="keywordflow">return</span> svfoc;</div>
|
|
2579
|
-
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  }</div>
|
|
2580
|
-
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span> }</div>
|
|
2529
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00973">973</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
2530
|
+
<div class="fragment"><div class="line"><a name="l00974"></a><span class="lineno"> 974</span> {</div>
|
|
2531
|
+
<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  LLVMConst2SVFConstMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.find(oc);</div>
|
|
2532
|
+
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.end())</div>
|
|
2533
|
+
<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  {</div>
|
|
2534
|
+
<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  <span class="keywordflow">return</span> it->second;</div>
|
|
2535
|
+
<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  }</div>
|
|
2536
|
+
<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  <span class="keywordflow">else</span></div>
|
|
2537
|
+
<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  {</div>
|
|
2538
|
+
<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  <a class="code" href="classSVF_1_1SVFConstant.html">SVFConstant</a>* svfoc = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstant.html">SVFConstant</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(oc->getType()));</div>
|
|
2539
|
+
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-><a class="code" href="classSVF_1_1SVFModule.html#ae64d24569942d7c4b18d2198be4839f3">addConstant</a>(svfoc);</div>
|
|
2540
|
+
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a5badf03aeb1ebda02bc186bbb58a892a">addOtherConstantMap</a>(oc,svfoc);</div>
|
|
2541
|
+
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  <span class="keywordflow">return</span> svfoc;</div>
|
|
2542
|
+
<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  }</div>
|
|
2543
|
+
<div class="line"><a name="l00987"></a><span class="lineno"> 987</span> }</div>
|
|
2581
2544
|
</div><!-- fragment -->
|
|
2582
2545
|
</div>
|
|
2583
2546
|
</div>
|
|
@@ -2664,49 +2627,49 @@ Friends</h2></td></tr>
|
|
|
2664
2627
|
</div><div class="memdoc">
|
|
2665
2628
|
<p>bitwidth == 1 : cint has value from getZExtValue() because <code>bool true</code> will be translated to -1 using sign extension (i.e., getSExtValue). bitwidth <=64 1 : cint has value from getSExtValue() bitwidth >64 1 : cint has value 0 because it represents an invalid int</p>
|
|
2666
2629
|
|
|
2667
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
2668
|
-
<div class="fragment"><div class="line"><a name="
|
|
2669
|
-
<div class="line"><a name="
|
|
2670
|
-
<div class="line"><a name="
|
|
2671
|
-
<div class="line"><a name="
|
|
2672
|
-
<div class="line"><a name="
|
|
2673
|
-
<div class="line"><a name="
|
|
2674
|
-
<div class="line"><a name="
|
|
2675
|
-
<div class="line"><a name="
|
|
2676
|
-
<div class="line"><a name="
|
|
2677
|
-
<div class="line"><a name="
|
|
2678
|
-
<div class="line"><a name="
|
|
2679
|
-
<div class="line"><a name="
|
|
2680
|
-
<div class="line"><a name="
|
|
2681
|
-
<div class="line"><a name="
|
|
2682
|
-
<div class="line"><a name="
|
|
2683
|
-
<div class="line"><a name="
|
|
2684
|
-
<div class="line"><a name="
|
|
2685
|
-
<div class="line"><a name="
|
|
2686
|
-
<div class="line"><a name="
|
|
2687
|
-
<div class="line"><a name="
|
|
2688
|
-
<div class="line"><a name="
|
|
2689
|
-
<div class="line"><a name="
|
|
2690
|
-
<div class="line"><a name="
|
|
2691
|
-
<div class="line"><a name="
|
|
2692
|
-
<div class="line"><a name="
|
|
2693
|
-
<div class="line"><a name="
|
|
2694
|
-
<div class="line"><a name="
|
|
2695
|
-
<div class="line"><a name="
|
|
2696
|
-
<div class="line"><a name="
|
|
2697
|
-
<div class="line"><a name="
|
|
2698
|
-
<div class="line"><a name="
|
|
2699
|
-
<div class="line"><a name="
|
|
2700
|
-
<div class="line"><a name="
|
|
2701
|
-
<div class="line"><a name="
|
|
2702
|
-
<div class="line"><a name="
|
|
2703
|
-
<div class="line"><a name="
|
|
2704
|
-
<div class="line"><a name="
|
|
2705
|
-
<div class="line"><a name="
|
|
2706
|
-
<div class="line"><a name="
|
|
2707
|
-
<div class="line"><a name="
|
|
2708
|
-
<div class="line"><a name="
|
|
2709
|
-
<div class="line"><a name="
|
|
2630
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00926">926</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
2631
|
+
<div class="fragment"><div class="line"><a name="l00927"></a><span class="lineno"> 927</span> {</div>
|
|
2632
|
+
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  LLVMConst2SVFConstMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.find(cd);</div>
|
|
2633
|
+
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">LLVMConst2SVFConst</a>.end())</div>
|
|
2634
|
+
<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  {</div>
|
|
2635
|
+
<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  assert(SVFUtil::isa<SVFConstantData>(it->second) && <span class="stringliteral">"not a SVFConstantData type!"</span>);</div>
|
|
2636
|
+
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  <span class="keywordflow">return</span> SVFUtil::cast<SVFConstantData>(it->second);</div>
|
|
2637
|
+
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  }</div>
|
|
2638
|
+
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  <span class="keywordflow">else</span></div>
|
|
2639
|
+
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  {</div>
|
|
2640
|
+
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  <a class="code" href="classSVF_1_1SVFConstantData.html">SVFConstantData</a>* svfcd = <span class="keyword">nullptr</span>;</div>
|
|
2641
|
+
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#adefcb50414ea999d70cea5ccdbcb98d7">ConstantInt</a>* cint = SVFUtil::dyn_cast<ConstantInt>(cd))</div>
|
|
2642
|
+
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  {</div>
|
|
2643
|
+
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  <span class="keywordflow">if</span>(cint->getBitWidth() == 1)</div>
|
|
2644
|
+
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cint->getType()), cint->getZExtValue(), cint->getZExtValue());</div>
|
|
2645
|
+
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(cint->getBitWidth() <= 64 && cint->getBitWidth() > 1)</div>
|
|
2646
|
+
<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cint->getType()), cint->getZExtValue(), cint->getSExtValue());</div>
|
|
2647
|
+
<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  <span class="keywordflow">else</span></div>
|
|
2648
|
+
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantInt.html">SVFConstantInt</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cint->getType()), 0, 0);</div>
|
|
2649
|
+
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  }</div>
|
|
2650
|
+
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#ad49e4222ba46d9490b87a80df8b46800">ConstantFP</a>* cfp = SVFUtil::dyn_cast<ConstantFP>(cd))</div>
|
|
2651
|
+
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  {</div>
|
|
2652
|
+
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  <span class="keywordtype">double</span> dval = 0;</div>
|
|
2653
|
+
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  <span class="comment">// TODO: Why only double is considered? What about float?</span></div>
|
|
2654
|
+
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  <span class="keywordflow">if</span>(cfp->isNormalFP() && (&cfp->getValueAPF().getSemantics()== &llvm::APFloatBase::IEEEdouble()))</div>
|
|
2655
|
+
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  dval = cfp->getValueAPF().convertToDouble();</div>
|
|
2656
|
+
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantFP.html">SVFConstantFP</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cd->getType()), dval);</div>
|
|
2657
|
+
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  }</div>
|
|
2658
|
+
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(SVFUtil::isa<ConstantPointerNull>(cd))</div>
|
|
2659
|
+
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantNullPtr.html">SVFConstantNullPtr</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cd->getType()));</div>
|
|
2660
|
+
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (SVFUtil::isa<UndefValue>(cd))</div>
|
|
2661
|
+
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFBlackHoleValue.html">SVFBlackHoleValue</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cd->getType()));</div>
|
|
2662
|
+
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  <span class="keywordflow">else</span></div>
|
|
2663
|
+
<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  svfcd = <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFConstantData.html">SVFConstantData</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(cd->getType()));</div>
|
|
2664
|
+
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  </div>
|
|
2665
|
+
<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  <span class="keywordflow">if</span> (cd->hasName())</div>
|
|
2666
|
+
<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  svfcd-><a class="code" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName</a>(cd->getName().str());</div>
|
|
2667
|
+
<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  </div>
|
|
2668
|
+
<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-><a class="code" href="classSVF_1_1SVFModule.html#ae64d24569942d7c4b18d2198be4839f3">addConstant</a>(svfcd);</div>
|
|
2669
|
+
<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#af4bd487b3b6efe55bf869b869f5e8a80">addConstantDataMap</a>(cd,svfcd);</div>
|
|
2670
|
+
<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  <span class="keywordflow">return</span> svfcd;</div>
|
|
2671
|
+
<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  }</div>
|
|
2672
|
+
<div class="line"><a name="l00971"></a><span class="lineno"> 971</span> }</div>
|
|
2710
2673
|
</div><!-- fragment -->
|
|
2711
2674
|
</div>
|
|
2712
2675
|
</div>
|
|
@@ -2900,32 +2863,24 @@ Friends</h2></td></tr>
|
|
|
2900
2863
|
</table>
|
|
2901
2864
|
</div><div class="memdoc">
|
|
2902
2865
|
|
|
2903
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
2904
|
-
<div class="fragment"><div class="line"><a name="
|
|
2905
|
-
<div class="line"><a name="
|
|
2906
|
-
<div class="line"><a name="
|
|
2907
|
-
<div class="line"><a name="
|
|
2908
|
-
<div class="line"><a name="
|
|
2909
|
-
<div class="line"><a name="
|
|
2910
|
-
<div class="line"><a name="
|
|
2911
|
-
<div class="line"><a name="
|
|
2912
|
-
<div class="line"><a name="
|
|
2913
|
-
<div class="line"><a name="
|
|
2914
|
-
<div class="line"><a name="
|
|
2915
|
-
<div class="line"><a name="
|
|
2916
|
-
<div class="line"><a name="
|
|
2917
|
-
<div class="line"><a name="
|
|
2918
|
-
<div class="line"><a name="
|
|
2919
|
-
<div class="line"><a name="
|
|
2920
|
-
<div class="line"><a name="
|
|
2921
|
-
<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  <a class="code" href="LLVMModule_8cpp.html#a02ccaa6664b87aaa9ee148d352344352">shortenLongInfo</a>(str, 30);</div>
|
|
2922
|
-
<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  svfov-><a class="code" href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">setName</a>(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(str));</div>
|
|
2923
|
-
<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  }</div>
|
|
2924
|
-
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-><a class="code" href="classSVF_1_1SVFModule.html#a48d7f0643bb228701dcabb88ef541fca">addOtherValue</a>(svfov);</div>
|
|
2925
|
-
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a023ea6f179433fa4d007c98ddc38e3c5">addOtherValueMap</a>(ov,svfov);</div>
|
|
2926
|
-
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  <span class="keywordflow">return</span> svfov;</div>
|
|
2927
|
-
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  }</div>
|
|
2928
|
-
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span> }</div>
|
|
2866
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00989">989</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
2867
|
+
<div class="fragment"><div class="line"><a name="l00990"></a><span class="lineno"> 990</span> {</div>
|
|
2868
|
+
<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  LLVMValue2SVFOtherValueMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#ac3e70bd338be3a54330be5dc10321eb3">LLVMValue2SVFOtherValue</a>.find(ov);</div>
|
|
2869
|
+
<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  <span class="keywordflow">if</span>(it!=<a class="code" href="classSVF_1_1LLVMModuleSet.html#ac3e70bd338be3a54330be5dc10321eb3">LLVMValue2SVFOtherValue</a>.end())</div>
|
|
2870
|
+
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  {</div>
|
|
2871
|
+
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  <span class="keywordflow">return</span> it->second;</div>
|
|
2872
|
+
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  }</div>
|
|
2873
|
+
<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  <span class="keywordflow">else</span></div>
|
|
2874
|
+
<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  {</div>
|
|
2875
|
+
<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  <a class="code" href="classSVF_1_1SVFOtherValue.html">SVFOtherValue</a>* svfov =</div>
|
|
2876
|
+
<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  SVFUtil::isa<MetadataAsValue>(ov)</div>
|
|
2877
|
+
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  ? <span class="keyword">new</span> <a class="code" href="classSVF_1_1SVFMetadataAsValue.html">SVFMetadataAsValue</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ov->getType()))</div>
|
|
2878
|
+
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  : new <a class="code" href="classSVF_1_1SVFOtherValue.html">SVFOtherValue</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ov->getType()));</div>
|
|
2879
|
+
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">svfModule</a>-><a class="code" href="classSVF_1_1SVFModule.html#a48d7f0643bb228701dcabb88ef541fca">addOtherValue</a>(svfov);</div>
|
|
2880
|
+
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a023ea6f179433fa4d007c98ddc38e3c5">addOtherValueMap</a>(ov,svfov);</div>
|
|
2881
|
+
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  <span class="keywordflow">return</span> svfov;</div>
|
|
2882
|
+
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  }</div>
|
|
2883
|
+
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span> }</div>
|
|
2929
2884
|
</div><!-- fragment -->
|
|
2930
2885
|
</div>
|
|
2931
2886
|
</div>
|
|
@@ -2949,20 +2904,20 @@ Friends</h2></td></tr>
|
|
|
2949
2904
|
<p>Get or create <a class="el" href="classSVF_1_1SVFType.html">SVFType</a> and typeinfo </p>
|
|
2950
2905
|
<p>TODO: set the void* to every element for now (imprecise) For example, [getPointerTo(): char -—> i8*] [getPointerTo(): int -—> i8*] [getPointerTo(): struct -—> i8*]</p>
|
|
2951
2906
|
|
|
2952
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
2953
|
-
<div class="fragment"><div class="line"><a name="
|
|
2954
|
-
<div class="line"><a name="
|
|
2955
|
-
<div class="line"><a name="
|
|
2956
|
-
<div class="line"><a name="
|
|
2957
|
-
<div class="line"><a name="
|
|
2958
|
-
<div class="line"><a name="
|
|
2959
|
-
<div class="line"><a name="
|
|
2960
|
-
<div class="line"><a name="
|
|
2961
|
-
<div class="line"><a name="
|
|
2962
|
-
<div class="line"><a name="
|
|
2963
|
-
<div class="line"><a name="
|
|
2964
|
-
<div class="line"><a name="
|
|
2965
|
-
<div class="line"><a name="
|
|
2907
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01045">1045</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
2908
|
+
<div class="fragment"><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span> {</div>
|
|
2909
|
+
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  assert(T && <span class="stringliteral">"SVFType should not be null"</span>);</div>
|
|
2910
|
+
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  LLVMType2SVFTypeMap::const_iterator it = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.find(T);</div>
|
|
2911
|
+
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  <span class="keywordflow">if</span> (it != <a class="code" href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">LLVMType2SVFType</a>.end())</div>
|
|
2912
|
+
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  <span class="keywordflow">return</span> it->second;</div>
|
|
2913
|
+
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  </div>
|
|
2914
|
+
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>  <a class="code" href="classSVF_1_1SVFType.html">SVFType</a>* svfType = <a class="code" href="classSVF_1_1LLVMModuleSet.html#aab7b08db9252ef7e21e54d019f44b073">addSVFTypeInfo</a>(T);</div>
|
|
2915
|
+
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  <a class="code" href="classSVF_1_1StInfo.html">StInfo</a>* stinfo = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">collectTypeInfo</a>(T);</div>
|
|
2916
|
+
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  svfType-><a class="code" href="classSVF_1_1SVFType.html#aef5999ada62dac3cc946d832ac66948c">setTypeInfo</a>(stinfo);</div>
|
|
2917
|
+
<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  <a class="code" href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">PointerType</a>* ptrTy = PointerType::getInt8PtrTy(<a class="code" href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">getContext</a>());</div>
|
|
2918
|
+
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  svfType-><a class="code" href="classSVF_1_1SVFType.html#a3ddabbd763acaaca28cacbabe5bc7f3b">setPointerTo</a>(SVFUtil::cast<SVFPointerType>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">getSVFType</a>(ptrTy)));</div>
|
|
2919
|
+
<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  <span class="keywordflow">return</span> svfType;</div>
|
|
2920
|
+
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span> }</div>
|
|
2966
2921
|
</div><!-- fragment -->
|
|
2967
2922
|
</div>
|
|
2968
2923
|
</div>
|
|
@@ -2982,28 +2937,28 @@ Friends</h2></td></tr>
|
|
|
2982
2937
|
</table>
|
|
2983
2938
|
</div><div class="memdoc">
|
|
2984
2939
|
|
|
2985
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
2986
|
-
<div class="fragment"><div class="line"><a name="
|
|
2987
|
-
<div class="line"><a name="
|
|
2988
|
-
<div class="line"><a name="
|
|
2989
|
-
<div class="line"><a name="
|
|
2990
|
-
<div class="line"><a name="
|
|
2991
|
-
<div class="line"><a name="
|
|
2992
|
-
<div class="line"><a name="
|
|
2993
|
-
<div class="line"><a name="
|
|
2994
|
-
<div class="line"><a name="
|
|
2995
|
-
<div class="line"><a name="
|
|
2996
|
-
<div class="line"><a name="
|
|
2997
|
-
<div class="line"><a name="
|
|
2998
|
-
<div class="line"><a name="
|
|
2999
|
-
<div class="line"><a name="
|
|
3000
|
-
<div class="line"><a name="
|
|
3001
|
-
<div class="line"><a name="
|
|
3002
|
-
<div class="line"><a name="
|
|
3003
|
-
<div class="line"><a name="
|
|
3004
|
-
<div class="line"><a name="
|
|
3005
|
-
<div class="line"><a name="
|
|
3006
|
-
<div class="line"><a name="
|
|
2940
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l01008">1008</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
2941
|
+
<div class="fragment"><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span> {</div>
|
|
2942
|
+
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* fun = SVFUtil::dyn_cast<Function>(value))</div>
|
|
2943
|
+
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(fun);</div>
|
|
2944
|
+
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = SVFUtil::dyn_cast<BasicBlock>(value))</div>
|
|
2945
|
+
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab0c0f321b6bfbfab2e4ff06d81920ab9">getSVFBasicBlock</a>(bb);</div>
|
|
2946
|
+
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = SVFUtil::dyn_cast<Instruction>(value))</div>
|
|
2947
|
+
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">getSVFInstruction</a>(inst);</div>
|
|
2948
|
+
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a58cdfbc4160cae08745b67844ac29801">Argument</a>* arg = SVFUtil::dyn_cast<Argument>(value))</div>
|
|
2949
|
+
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#ad3f66b40ad360003845253f452d6a711">getSVFArgument</a>(arg);</div>
|
|
2950
|
+
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7e230c0cba2e3a7c2e5a5f2ee7d88af9">Constant</a>* cons = SVFUtil::dyn_cast<Constant>(value))</div>
|
|
2951
|
+
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  {</div>
|
|
2952
|
+
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7332f8059ea95472dcc231de884a5768">ConstantData</a>* cd = SVFUtil::dyn_cast<ConstantData>(cons))</div>
|
|
2953
|
+
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727">getSVFConstantData</a>(cd);</div>
|
|
2954
|
+
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a67f3f86344f028cacfbeb08caaf7bb0f">GlobalValue</a>* glob = SVFUtil::dyn_cast<GlobalValue>(cons))</div>
|
|
2955
|
+
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a3cbba2eb702a3481478b2590dfffa352">getSVFGlobalValue</a>(glob);</div>
|
|
2956
|
+
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  <span class="keywordflow">else</span></div>
|
|
2957
|
+
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc">getOtherSVFConstant</a>(cons);</div>
|
|
2958
|
+
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  }</div>
|
|
2959
|
+
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  <span class="keywordflow">else</span></div>
|
|
2960
|
+
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  <span class="keywordflow">return</span> <a class="code" href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965">getSVFOtherValue</a>(value);</div>
|
|
2961
|
+
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span> }</div>
|
|
3007
2962
|
</div><!-- fragment -->
|
|
3008
2963
|
</div>
|
|
3009
2964
|
</div>
|
|
@@ -3147,68 +3102,68 @@ Friends</h2></td></tr>
|
|
|
3147
3102
|
</table>
|
|
3148
3103
|
</div><div class="memdoc">
|
|
3149
3104
|
|
|
3150
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
3151
|
-
<div class="fragment"><div class="line"><a name="
|
|
3152
|
-
<div class="line"><a name="
|
|
3153
|
-
<div class="line"><a name="
|
|
3154
|
-
<div class="line"><a name="
|
|
3155
|
-
<div class="line"><a name="
|
|
3156
|
-
<div class="line"><a name="
|
|
3157
|
-
<div class="line"><a name="
|
|
3158
|
-
<div class="line"><a name="
|
|
3159
|
-
<div class="line"><a name="
|
|
3160
|
-
<div class="line"><a name="
|
|
3161
|
-
<div class="line"><a name="
|
|
3162
|
-
<div class="line"><a name="
|
|
3163
|
-
<div class="line"><a name="
|
|
3164
|
-
<div class="line"><a name="
|
|
3165
|
-
<div class="line"><a name="
|
|
3166
|
-
<div class="line"><a name="
|
|
3167
|
-
<div class="line"><a name="
|
|
3168
|
-
<div class="line"><a name="
|
|
3169
|
-
<div class="line"><a name="
|
|
3170
|
-
<div class="line"><a name="
|
|
3171
|
-
<div class="line"><a name="
|
|
3172
|
-
<div class="line"><a name="
|
|
3173
|
-
<div class="line"><a name="
|
|
3174
|
-
<div class="line"><a name="
|
|
3175
|
-
<div class="line"><a name="
|
|
3176
|
-
<div class="line"><a name="
|
|
3177
|
-
<div class="line"><a name="
|
|
3178
|
-
<div class="line"><a name="
|
|
3179
|
-
<div class="line"><a name="
|
|
3180
|
-
<div class="line"><a name="
|
|
3181
|
-
<div class="line"><a name="
|
|
3182
|
-
<div class="line"><a name="
|
|
3183
|
-
<div class="line"><a name="
|
|
3184
|
-
<div class="line"><a name="
|
|
3185
|
-
<div class="line"><a name="
|
|
3186
|
-
<div class="line"><a name="
|
|
3187
|
-
<div class="line"><a name="
|
|
3188
|
-
<div class="line"><a name="
|
|
3189
|
-
<div class="line"><a name="
|
|
3190
|
-
<div class="line"><a name="
|
|
3191
|
-
<div class="line"><a name="
|
|
3192
|
-
<div class="line"><a name="
|
|
3193
|
-
<div class="line"><a name="
|
|
3194
|
-
<div class="line"><a name="
|
|
3195
|
-
<div class="line"><a name="
|
|
3196
|
-
<div class="line"><a name="
|
|
3197
|
-
<div class="line"><a name="
|
|
3198
|
-
<div class="line"><a name="
|
|
3199
|
-
<div class="line"><a name="
|
|
3200
|
-
<div class="line"><a name="
|
|
3201
|
-
<div class="line"><a name="
|
|
3202
|
-
<div class="line"><a name="
|
|
3203
|
-
<div class="line"><a name="
|
|
3204
|
-
<div class="line"><a name="
|
|
3205
|
-
<div class="line"><a name="
|
|
3206
|
-
<div class="line"><a name="
|
|
3207
|
-
<div class="line"><a name="
|
|
3208
|
-
<div class="line"><a name="
|
|
3209
|
-
<div class="line"><a name="
|
|
3210
|
-
<div class="line"><a name="
|
|
3211
|
-
<div class="line"><a name="
|
|
3105
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00370">370</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
3106
|
+
<div class="fragment"><div class="line"><a name="l00371"></a><span class="lineno"> 371</span> {</div>
|
|
3107
|
+
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">if</span> (fun->isDeclaration())</div>
|
|
3108
|
+
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">return</span>;</div>
|
|
3109
|
+
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="comment">//process and stored dt & df</span></div>
|
|
3110
|
+
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <a class="code" href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">DominatorTree</a> dt;</div>
|
|
3111
|
+
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <a class="code" href="namespaceSVF.html#ab44d20f806be99699895260b14a942d7">DominanceFrontier</a> df;</div>
|
|
3112
|
+
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  dt.recalculate(<span class="keyword">const_cast<</span><a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&<span class="keyword">></span>(*fun));</div>
|
|
3113
|
+
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  df.analyze(dt);</div>
|
|
3114
|
+
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <a class="code" href="namespaceSVF.html#a77e088bfe47c0b0ddcbbe0693dec6fe5">LoopInfo</a> loopInfo = <a class="code" href="namespaceSVF.html#a77e088bfe47c0b0ddcbbe0693dec6fe5">LoopInfo</a>(dt);</div>
|
|
3115
|
+
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <a class="code" href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">PostDominatorTree</a> pdt = <a class="code" href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">PostDominatorTree</a>(<span class="keyword">const_cast<</span><a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>&<span class="keyword">></span>(*fun));</div>
|
|
3116
|
+
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html">SVFLoopAndDomInfo</a>* ld = svffun->getLoopAndDomInfo();</div>
|
|
3117
|
+
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  </div>
|
|
3118
|
+
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <a class="code" href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">Map<const SVFBasicBlock*,Set<const SVFBasicBlock*></a>> & dfBBsMap = ld-><a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ae37546be7304c66b4eca2654d995eaa7">getDomFrontierMap</a>();</div>
|
|
3119
|
+
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keywordflow">for</span> (DominanceFrontierBase::const_iterator dfIter = df.begin(), eDfIter = df.end(); dfIter != eDfIter; dfIter++)</div>
|
|
3120
|
+
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  {</div>
|
|
3121
|
+
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* keyBB = dfIter->first;</div>
|
|
3122
|
+
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keyword">const</span> std::set<BasicBlock* >& domSet = dfIter->second;</div>
|
|
3123
|
+
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <a class="code" href="namespaceSVF.html#af739db846e47ba6b2fd15eaad31ab7fb">Set<const SVFBasicBlock*></a>& valueBasicBlocks = dfBBsMap[<a class="code" href="classSVF_1_1LLVMModuleSet.html#ab0c0f321b6bfbfab2e4ff06d81920ab9">getSVFBasicBlock</a>(keyBB)];</div>
|
|
3124
|
+
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bbValue:domSet)</div>
|
|
3125
|
+
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  {</div>
|
|
3126
|
+
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  valueBasicBlocks.insert(<a class="code" href="classSVF_1_1LLVMModuleSet.html#ab0c0f321b6bfbfab2e4ff06d81920ab9">getSVFBasicBlock</a>(bbValue));</div>
|
|
3127
|
+
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  }</div>
|
|
3128
|
+
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  }</div>
|
|
3129
|
+
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  std::vector<const SVFBasicBlock*> reachableBBs;</div>
|
|
3130
|
+
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a9bd6f54920929e5ad35102ba2f2223da">LLVMUtil::getFunReachableBBs</a>(fun, reachableBBs);</div>
|
|
3131
|
+
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  ld-><a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#acc409e328f641a2c9512beeb727f58c7">setReachableBBs</a>(reachableBBs);</div>
|
|
3132
|
+
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  </div>
|
|
3133
|
+
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keywordflow">for</span> (Function::const_iterator bit = fun->begin(), beit = fun->end(); bit!=beit; ++bit)</div>
|
|
3134
|
+
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  {</div>
|
|
3135
|
+
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a> &bb = *bit;</div>
|
|
3136
|
+
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* svfBB = <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab0c0f321b6bfbfab2e4ff06d81920ab9">getSVFBasicBlock</a>(&bb);</div>
|
|
3137
|
+
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a827d09974dc7bf0849f96823cc2fee89">DomTreeNode</a>* dtNode = dt.getNode(&bb))</div>
|
|
3138
|
+
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  {</div>
|
|
3139
|
+
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ad478ac88bc07cf4d6d0ad3517b2c4ab3">SVFLoopAndDomInfo::BBSet</a>& bbSet = ld-><a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#a2fc6b806a436d8fa65863f6cef99e716">getDomTreeMap</a>()[svfBB];</div>
|
|
3140
|
+
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> domBB : *dtNode)</div>
|
|
3141
|
+
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  {</div>
|
|
3142
|
+
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keyword">const</span> <span class="keyword">auto</span>* domSVFBB = <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab0c0f321b6bfbfab2e4ff06d81920ab9">getSVFBasicBlock</a>(domBB->getBlock());</div>
|
|
3143
|
+
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  bbSet.insert(domSVFBB);</div>
|
|
3144
|
+
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  }</div>
|
|
3145
|
+
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  }</div>
|
|
3146
|
+
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  </div>
|
|
3147
|
+
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF.html#a827d09974dc7bf0849f96823cc2fee89">DomTreeNode</a>* pdtNode = pdt.getNode(&bb))</div>
|
|
3148
|
+
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  {</div>
|
|
3149
|
+
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ad478ac88bc07cf4d6d0ad3517b2c4ab3">SVFLoopAndDomInfo::BBSet</a>& bbSet = ld-><a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#ad07f95e790b5c3a50c864155aa20a083">getPostDomTreeMap</a>()[svfBB];</div>
|
|
3150
|
+
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span> domBB : *pdtNode)</div>
|
|
3151
|
+
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  {</div>
|
|
3152
|
+
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keyword">const</span> <span class="keyword">auto</span>* domSVFBB = <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab0c0f321b6bfbfab2e4ff06d81920ab9">getSVFBasicBlock</a>(domBB->getBlock());</div>
|
|
3153
|
+
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  bbSet.insert(domSVFBB);</div>
|
|
3154
|
+
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  }</div>
|
|
3155
|
+
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  }</div>
|
|
3156
|
+
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  </div>
|
|
3157
|
+
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">Loop</a>* loop = loopInfo.getLoopFor(&bb))</div>
|
|
3158
|
+
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  {</div>
|
|
3159
|
+
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* loopBlock : loop->getBlocks())</div>
|
|
3160
|
+
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  {</div>
|
|
3161
|
+
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* loopbb = <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab0c0f321b6bfbfab2e4ff06d81920ab9">getSVFBasicBlock</a>(loopBlock);</div>
|
|
3162
|
+
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  ld-><a class="code" href="classSVF_1_1SVFLoopAndDomInfo.html#aed2f125f7b8c21092b23d9727568ba50">addToBB2LoopMap</a>(svfBB, loopbb);</div>
|
|
3163
|
+
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  }</div>
|
|
3164
|
+
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  }</div>
|
|
3165
|
+
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  }</div>
|
|
3166
|
+
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span> }</div>
|
|
3212
3167
|
</div><!-- fragment -->
|
|
3213
3168
|
</div>
|
|
3214
3169
|
</div>
|
|
@@ -3236,57 +3191,57 @@ Friends</h2></td></tr>
|
|
|
3236
3191
|
</table>
|
|
3237
3192
|
</div><div class="memdoc">
|
|
3238
3193
|
|
|
3239
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
3240
|
-
<div class="fragment"><div class="line"><a name="
|
|
3241
|
-
<div class="line"><a name="
|
|
3242
|
-
<div class="line"><a name="
|
|
3243
|
-
<div class="line"><a name="
|
|
3244
|
-
<div class="line"><a name="
|
|
3245
|
-
<div class="line"><a name="
|
|
3246
|
-
<div class="line"><a name="
|
|
3247
|
-
<div class="line"><a name="
|
|
3248
|
-
<div class="line"><a name="
|
|
3249
|
-
<div class="line"><a name="
|
|
3250
|
-
<div class="line"><a name="
|
|
3251
|
-
<div class="line"><a name="
|
|
3252
|
-
<div class="line"><a name="
|
|
3253
|
-
<div class="line"><a name="
|
|
3254
|
-
<div class="line"><a name="
|
|
3255
|
-
<div class="line"><a name="
|
|
3256
|
-
<div class="line"><a name="
|
|
3257
|
-
<div class="line"><a name="
|
|
3258
|
-
<div class="line"><a name="
|
|
3259
|
-
<div class="line"><a name="
|
|
3260
|
-
<div class="line"><a name="
|
|
3261
|
-
<div class="line"><a name="
|
|
3262
|
-
<div class="line"><a name="
|
|
3263
|
-
<div class="line"><a name="
|
|
3264
|
-
<div class="line"><a name="
|
|
3265
|
-
<div class="line"><a name="
|
|
3266
|
-
<div class="line"><a name="
|
|
3267
|
-
<div class="line"><a name="
|
|
3268
|
-
<div class="line"><a name="
|
|
3269
|
-
<div class="line"><a name="
|
|
3270
|
-
<div class="line"><a name="
|
|
3271
|
-
<div class="line"><a name="
|
|
3272
|
-
<div class="line"><a name="
|
|
3273
|
-
<div class="line"><a name="
|
|
3274
|
-
<div class="line"><a name="
|
|
3275
|
-
<div class="line"><a name="
|
|
3276
|
-
<div class="line"><a name="
|
|
3277
|
-
<div class="line"><a name="
|
|
3278
|
-
<div class="line"><a name="
|
|
3279
|
-
<div class="line"><a name="
|
|
3280
|
-
<div class="line"><a name="
|
|
3281
|
-
<div class="line"><a name="
|
|
3282
|
-
<div class="line"><a name="
|
|
3283
|
-
<div class="line"><a name="
|
|
3284
|
-
<div class="line"><a name="
|
|
3285
|
-
<div class="line"><a name="
|
|
3286
|
-
<div class="line"><a name="
|
|
3287
|
-
<div class="line"><a name="
|
|
3288
|
-
<div class="line"><a name="
|
|
3289
|
-
<div class="line"><a name="
|
|
3194
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00317">317</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
3195
|
+
<div class="fragment"><div class="line"><a name="l00318"></a><span class="lineno"> 318</span> {</div>
|
|
3196
|
+
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordflow">for</span> (Function::const_iterator bit = func->begin(), ebit = func->end(); bit != ebit; ++bit)</div>
|
|
3197
|
+
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  {</div>
|
|
3198
|
+
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">BasicBlock</a>* bb = &*bit;</div>
|
|
3199
|
+
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* svfbb = <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab0c0f321b6bfbfab2e4ff06d81920ab9">getSVFBasicBlock</a>(bb);</div>
|
|
3200
|
+
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">succ_const_iterator</a> succ_it = succ_begin(bb); succ_it != succ_end(bb); succ_it++)</div>
|
|
3201
|
+
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  {</div>
|
|
3202
|
+
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* svf_scc_bb = <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab0c0f321b6bfbfab2e4ff06d81920ab9">getSVFBasicBlock</a>(*succ_it);</div>
|
|
3203
|
+
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  svfbb-><a class="code" href="classSVF_1_1SVFBasicBlock.html#abfe3a1ce5fa364d9db7cd2d0e6a144ff">addSuccBasicBlock</a>(svf_scc_bb);</div>
|
|
3204
|
+
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  }</div>
|
|
3205
|
+
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#a5c943191dc4e242704943e5f594ae99e">const_pred_iterator</a> pred_it = pred_begin(bb); pred_it != pred_end(bb); pred_it++)</div>
|
|
3206
|
+
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  {</div>
|
|
3207
|
+
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keyword">const</span> <a class="code" href="classSVF_1_1SVFBasicBlock.html">SVFBasicBlock</a>* svf_pred_bb = <a class="code" href="classSVF_1_1LLVMModuleSet.html#ab0c0f321b6bfbfab2e4ff06d81920ab9">getSVFBasicBlock</a>(*pred_it);</div>
|
|
3208
|
+
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  svfbb-><a class="code" href="classSVF_1_1SVFBasicBlock.html#a38f8fdd93ef7222f408cbbb2a98a1cd5">addPredBasicBlock</a>(svf_pred_bb);</div>
|
|
3209
|
+
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  }</div>
|
|
3210
|
+
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordflow">for</span> (BasicBlock::const_iterator iit = bb->begin(), eiit = bb->end(); iit != eiit; ++iit)</div>
|
|
3211
|
+
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  {</div>
|
|
3212
|
+
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a7875172ff434b2210eea7cecfbbd959e">Instruction</a>* inst = &*iit;</div>
|
|
3213
|
+
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordflow">if</span>(<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a1f4624771922dc8c2447ad7433588c73">CallBase</a>* call = SVFUtil::dyn_cast<CallBase>(inst))</div>
|
|
3214
|
+
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  {</div>
|
|
3215
|
+
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <a class="code" href="classSVF_1_1SVFInstruction.html">SVFInstruction</a>* svfinst = <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">getSVFInstruction</a>(call);</div>
|
|
3216
|
+
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <a class="code" href="classSVF_1_1SVFCallInst.html">SVFCallInst</a>* svfcall = SVFUtil::cast<SVFCallInst>(svfinst);</div>
|
|
3217
|
+
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keyword">auto</span> called_llvmval = call->getCalledOperand()->stripPointerCasts();</div>
|
|
3218
|
+
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keywordflow">if</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* called_llvmfunc = SVFUtil::dyn_cast<Function>(called_llvmval))</div>
|
|
3219
|
+
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  {</div>
|
|
3220
|
+
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* llvmfunc_def = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">LLVMUtil::getDefFunForMultipleModule</a>(called_llvmfunc);</div>
|
|
3221
|
+
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* callee = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(llvmfunc_def);</div>
|
|
3222
|
+
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  svfcall-><a class="code" href="classSVF_1_1SVFCallInst.html#a6dd304f555d2d2388c4430e57b0d2b91">setCalledOperand</a>(callee);</div>
|
|
3223
|
+
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  }</div>
|
|
3224
|
+
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="keywordflow">else</span></div>
|
|
3225
|
+
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  {</div>
|
|
3226
|
+
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  svfcall-><a class="code" href="classSVF_1_1SVFCallInst.html#a6dd304f555d2d2388c4430e57b0d2b91">setCalledOperand</a>(<a class="code" href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">getSVFValue</a>(called_llvmval));</div>
|
|
3227
|
+
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  }</div>
|
|
3228
|
+
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1SVFVirtualCallInst.html">SVFVirtualCallInst</a>* virtualCall = SVFUtil::dyn_cast<SVFVirtualCallInst>(svfcall))</div>
|
|
3229
|
+
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  {</div>
|
|
3230
|
+
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  virtualCall->setVtablePtr(<a class="code" href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">getSVFValue</a>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a3a23aa54459a068e16c96e5b5eb72f77">LLVMUtil::getVCallVtblPtr</a>(call)));</div>
|
|
3231
|
+
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  virtualCall->setFunIdxInVtable(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a718c8ec79f36cef5df2f4530541f2770">LLVMUtil::getVCallIdx</a>(call));</div>
|
|
3232
|
+
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  virtualCall->setFunNameOfVirtualCall(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a41e64f3318e2bf368eebe9a104ef6ad9">LLVMUtil::getFunNameOfVCallSite</a>(call));</div>
|
|
3233
|
+
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  }</div>
|
|
3234
|
+
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="keywordflow">for</span>(<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < call->arg_size(); i++)</div>
|
|
3235
|
+
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  {</div>
|
|
3236
|
+
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <a class="code" href="classSVF_1_1SVFValue.html">SVFValue</a>* svfval = <a class="code" href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">getSVFValue</a>(call->getArgOperand(i));</div>
|
|
3237
|
+
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  svfcall-><a class="code" href="classSVF_1_1SVFCallInst.html#ac979b49b449b97b2a23f195cb107ec77">addArgument</a>(svfval);</div>
|
|
3238
|
+
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  }</div>
|
|
3239
|
+
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  }</div>
|
|
3240
|
+
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="namespaceSVF_1_1LLVMUtil.html#afbd60d5443c7fa1448813d00bb5d0fa7">LLVMUtil::getNextInsts</a>(inst, <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">getSVFInstruction</a>(inst)->getSuccInstructions());</div>
|
|
3241
|
+
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a4c94a6c02fb89c1a1604c87414956acd">LLVMUtil::getPrevInsts</a>(inst, <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">getSVFInstruction</a>(inst)->getPredInstructions());</div>
|
|
3242
|
+
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  }</div>
|
|
3243
|
+
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  }</div>
|
|
3244
|
+
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> }</div>
|
|
3290
3245
|
</div><!-- fragment -->
|
|
3291
3246
|
</div>
|
|
3292
3247
|
</div>
|
|
@@ -3314,22 +3269,22 @@ Friends</h2></td></tr>
|
|
|
3314
3269
|
</div><div class="memdoc">
|
|
3315
3270
|
<p>Function</p>
|
|
3316
3271
|
|
|
3317
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
3318
|
-
<div class="fragment"><div class="line"><a name="
|
|
3319
|
-
<div class="line"><a name="
|
|
3320
|
-
<div class="line"><a name="
|
|
3321
|
-
<div class="line"><a name="
|
|
3322
|
-
<div class="line"><a name="
|
|
3323
|
-
<div class="line"><a name="
|
|
3324
|
-
<div class="line"><a name="
|
|
3325
|
-
<div class="line"><a name="
|
|
3326
|
-
<div class="line"><a name="
|
|
3327
|
-
<div class="line"><a name="
|
|
3328
|
-
<div class="line"><a name="
|
|
3329
|
-
<div class="line"><a name="
|
|
3330
|
-
<div class="line"><a name="
|
|
3331
|
-
<div class="line"><a name="
|
|
3332
|
-
<div class="line"><a name="
|
|
3272
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00299">299</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
3273
|
+
<div class="fragment"><div class="line"><a name="l00300"></a><span class="lineno"> 300</span> {</div>
|
|
3274
|
+
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a>& mod : <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>)</div>
|
|
3275
|
+
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  {</div>
|
|
3276
|
+
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>& f : mod.functions())</div>
|
|
3277
|
+
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  {</div>
|
|
3278
|
+
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svffun = <a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(&f);</div>
|
|
3279
|
+
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a20162d2894d6a12ba29410311fba4002">initSVFBasicBlock</a>(&f);</div>
|
|
3280
|
+
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  </div>
|
|
3281
|
+
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordflow">if</span> (!<a class="code" href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVFUtil::isExtCall</a>(svffun))</div>
|
|
3282
|
+
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  {</div>
|
|
3283
|
+
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a8ba9092747108e0289014d52465a692d">initDomTree</a>(svffun, &f);</div>
|
|
3284
|
+
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  }</div>
|
|
3285
|
+
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  }</div>
|
|
3286
|
+
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  }</div>
|
|
3287
|
+
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span> }</div>
|
|
3333
3288
|
</div><!-- fragment -->
|
|
3334
3289
|
</div>
|
|
3335
3290
|
</div>
|
|
@@ -3356,29 +3311,29 @@ Friends</h2></td></tr>
|
|
|
3356
3311
|
</table>
|
|
3357
3312
|
</div><div class="memdoc">
|
|
3358
3313
|
|
|
3359
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
3360
|
-
<div class="fragment"><div class="line"><a name="
|
|
3361
|
-
<div class="line"><a name="
|
|
3362
|
-
<div class="line"><a name="
|
|
3363
|
-
<div class="line"><a name="
|
|
3364
|
-
<div class="line"><a name="
|
|
3365
|
-
<div class="line"><a name="
|
|
3366
|
-
<div class="line"><a name="
|
|
3367
|
-
<div class="line"><a name="
|
|
3368
|
-
<div class="line"><a name="
|
|
3369
|
-
<div class="line"><a name="
|
|
3370
|
-
<div class="line"><a name="
|
|
3371
|
-
<div class="line"><a name="
|
|
3372
|
-
<div class="line"><a name="
|
|
3373
|
-
<div class="line"><a name="
|
|
3374
|
-
<div class="line"><a name="
|
|
3375
|
-
<div class="line"><a name="
|
|
3376
|
-
<div class="line"><a name="
|
|
3377
|
-
<div class="line"><a name="
|
|
3378
|
-
<div class="line"><a name="
|
|
3379
|
-
<div class="line"><a name="
|
|
3380
|
-
<div class="line"><a name="
|
|
3381
|
-
<div class="line"><a name="
|
|
3314
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00537">537</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
3315
|
+
<div class="fragment"><div class="line"><a name="l00538"></a><span class="lineno"> 538</span> {</div>
|
|
3316
|
+
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="comment">// has external bc</span></div>
|
|
3317
|
+
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1Options.html#a2ed1e6f7911ae5cfbf79213e4d07531e">Options::ExtAPIInput</a>().size() > 0)</div>
|
|
3318
|
+
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  {</div>
|
|
3319
|
+
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> extModuleName = <a class="code" href="classSVF_1_1Options.html#a2ed1e6f7911ae5cfbf79213e4d07531e">Options::ExtAPIInput</a>();</div>
|
|
3320
|
+
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keywordflow">if</span> (!<a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8a8c32a09340f491fffffcb07dd7a41">LLVMUtil::isIRFile</a>(extModuleName))</div>
|
|
3321
|
+
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  {</div>
|
|
3322
|
+
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <span class="stringliteral">"not an external IR file: "</span> << extModuleName << std::endl;</div>
|
|
3323
|
+
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  abort();</div>
|
|
3324
|
+
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  }</div>
|
|
3325
|
+
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <a class="code" href="namespaceSVF.html#a86863d104a3930b3a806935d92ddbf30">SMDiagnostic</a> Err;</div>
|
|
3326
|
+
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  std::unique_ptr<Module> mod = parseIRFile(extModuleName, Err, *<a class="code" href="classSVF_1_1LLVMModuleSet.html#ad06a92bf8bc556de742e0ffdf79ffafe">cxts</a>);</div>
|
|
3327
|
+
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keywordflow">if</span> (mod == <span class="keyword">nullptr</span>)</div>
|
|
3328
|
+
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  {</div>
|
|
3329
|
+
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <span class="stringliteral">"load external module: "</span> << extModuleName << <span class="stringliteral">"failed!!\n\n"</span>;</div>
|
|
3330
|
+
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  Err.print(<span class="stringliteral">"SVFModuleLoader"</span>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">llvm::errs</a>());</div>
|
|
3331
|
+
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  abort();</div>
|
|
3332
|
+
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  }</div>
|
|
3333
|
+
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>.emplace_back(*mod);</div>
|
|
3334
|
+
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae365189769640adb919a23c36978e5e2">owned_modules</a>.emplace_back(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(mod));</div>
|
|
3335
|
+
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  }</div>
|
|
3336
|
+
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span> }</div>
|
|
3382
3337
|
</div><!-- fragment -->
|
|
3383
3338
|
</div>
|
|
3384
3339
|
</div>
|
|
@@ -3406,60 +3361,60 @@ Friends</h2></td></tr>
|
|
|
3406
3361
|
</table>
|
|
3407
3362
|
</div><div class="memdoc">
|
|
3408
3363
|
|
|
3409
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
3410
|
-
<div class="fragment"><div class="line"><a name="
|
|
3411
|
-
<div class="line"><a name="
|
|
3412
|
-
<div class="line"><a name="
|
|
3413
|
-
<div class="line"><a name="
|
|
3414
|
-
<div class="line"><a name="
|
|
3415
|
-
<div class="line"><a name="
|
|
3416
|
-
<div class="line"><a name="
|
|
3417
|
-
<div class="line"><a name="
|
|
3418
|
-
<div class="line"><a name="
|
|
3419
|
-
<div class="line"><a name="
|
|
3420
|
-
<div class="line"><a name="
|
|
3421
|
-
<div class="line"><a name="
|
|
3422
|
-
<div class="line"><a name="
|
|
3423
|
-
<div class="line"><a name="
|
|
3424
|
-
<div class="line"><a name="
|
|
3425
|
-
<div class="line"><a name="
|
|
3426
|
-
<div class="line"><a name="
|
|
3427
|
-
<div class="line"><a name="
|
|
3428
|
-
<div class="line"><a name="
|
|
3429
|
-
<div class="line"><a name="
|
|
3430
|
-
<div class="line"><a name="
|
|
3431
|
-
<div class="line"><a name="
|
|
3432
|
-
<div class="line"><a name="
|
|
3433
|
-
<div class="line"><a name="
|
|
3434
|
-
<div class="line"><a name="
|
|
3435
|
-
<div class="line"><a name="
|
|
3436
|
-
<div class="line"><a name="
|
|
3437
|
-
<div class="line"><a name="
|
|
3438
|
-
<div class="line"><a name="
|
|
3439
|
-
<div class="line"><a name="
|
|
3440
|
-
<div class="line"><a name="
|
|
3441
|
-
<div class="line"><a name="
|
|
3442
|
-
<div class="line"><a name="
|
|
3443
|
-
<div class="line"><a name="
|
|
3444
|
-
<div class="line"><a name="
|
|
3445
|
-
<div class="line"><a name="
|
|
3446
|
-
<div class="line"><a name="
|
|
3447
|
-
<div class="line"><a name="
|
|
3448
|
-
<div class="line"><a name="
|
|
3449
|
-
<div class="line"><a name="
|
|
3450
|
-
<div class="line"><a name="
|
|
3451
|
-
<div class="line"><a name="
|
|
3452
|
-
<div class="line"><a name="
|
|
3453
|
-
<div class="line"><a name="
|
|
3454
|
-
<div class="line"><a name="
|
|
3455
|
-
<div class="line"><a name="
|
|
3456
|
-
<div class="line"><a name="
|
|
3457
|
-
<div class="line"><a name="
|
|
3458
|
-
<div class="line"><a name="
|
|
3459
|
-
<div class="line"><a name="
|
|
3460
|
-
<div class="line"><a name="
|
|
3461
|
-
<div class="line"><a name="
|
|
3462
|
-
<div class="line"><a name="
|
|
3364
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00482">482</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
3365
|
+
<div class="fragment"><div class="line"><a name="l00483"></a><span class="lineno"> 483</span> {</div>
|
|
3366
|
+
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  </div>
|
|
3367
|
+
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="comment">// We read SVFIR from LLVM IR</span></div>
|
|
3368
|
+
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keywordflow">if</span>(<a class="code" href="classSVF_1_1Options.html#a53f783c80f368bcdca6c7620229d6f8e">Options::Graphtxt</a>().<a class="code" href="classSVF_1_1LLVMModuleSet.html#ae19e38054c55d5822dfc83a12f12aa60">empty</a>())</div>
|
|
3369
|
+
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  {</div>
|
|
3370
|
+
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="keywordflow">if</span>(moduleNameVec.empty())</div>
|
|
3371
|
+
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  {</div>
|
|
3372
|
+
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVFUtil::outs</a>() << <span class="stringliteral">"no LLVM bc file is found!\n"</span>;</div>
|
|
3373
|
+
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  exit(0);</div>
|
|
3374
|
+
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  }</div>
|
|
3375
|
+
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="comment">//assert(!moduleNameVec.empty() && "no LLVM bc file is found!");</span></div>
|
|
3376
|
+
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  }</div>
|
|
3377
|
+
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="comment">// We read SVFIR from a user-defined txt instead of parsing SVFIR from LLVM IR</span></div>
|
|
3378
|
+
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="keywordflow">else</span></div>
|
|
3379
|
+
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <a class="code" href="classSVF_1_1SVFModule.html#a7af3076a26060090377d1f74293560fe">SVFModule::setPagFromTXT</a>(<a class="code" href="classSVF_1_1Options.html#a53f783c80f368bcdca6c7620229d6f8e">Options::Graphtxt</a>());</div>
|
|
3380
|
+
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  </div>
|
|
3381
|
+
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <span class="comment">//</span></div>
|
|
3382
|
+
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="comment">// To avoid the following type bugs (t1 != t3) when parsing multiple modules,</span></div>
|
|
3383
|
+
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="comment">// We should use only one LLVMContext object for multiple modules in the same thread.</span></div>
|
|
3384
|
+
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="comment">// No such problem if only one module is processed by SVF.</span></div>
|
|
3385
|
+
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="comment">// ------------------------------------------------------------------</span></div>
|
|
3386
|
+
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="comment">// LLVMContext ctxa,ctxb;</span></div>
|
|
3387
|
+
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="comment">// IntegerType * t1 = IntegerType::get(ctxa,32);</span></div>
|
|
3388
|
+
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="comment">// IntegerType * t2 = IntegerType::get(ctxa,32);</span></div>
|
|
3389
|
+
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="comment">// assert(t1 == t2);</span></div>
|
|
3390
|
+
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="comment">// IntegerType * t3 = IntegerType::get(ctxb,32);</span></div>
|
|
3391
|
+
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="comment">// IntegerType * t4 = IntegerType::get(ctxb,32);</span></div>
|
|
3392
|
+
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="comment">// assert(t3 == t4);</span></div>
|
|
3393
|
+
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="comment">// assert(t1 != t3);</span></div>
|
|
3394
|
+
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="comment">// ------------------------------------------------------------------</span></div>
|
|
3395
|
+
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="comment">//</span></div>
|
|
3396
|
+
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#ad06a92bf8bc556de742e0ffdf79ffafe">cxts</a> = std::make_unique<LLVMContext>();</div>
|
|
3397
|
+
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  </div>
|
|
3398
|
+
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a>& moduleName : moduleNameVec)</div>
|
|
3399
|
+
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  {</div>
|
|
3400
|
+
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="keywordflow">if</span> (!<a class="code" href="namespaceSVF_1_1LLVMUtil.html#ad8a8c32a09340f491fffffcb07dd7a41">LLVMUtil::isIRFile</a>(moduleName))</div>
|
|
3401
|
+
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  {</div>
|
|
3402
|
+
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <span class="stringliteral">"not an IR file: "</span> << moduleName << std::endl;</div>
|
|
3403
|
+
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  abort();</div>
|
|
3404
|
+
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  }</div>
|
|
3405
|
+
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  </div>
|
|
3406
|
+
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <a class="code" href="namespaceSVF.html#a86863d104a3930b3a806935d92ddbf30">SMDiagnostic</a> Err;</div>
|
|
3407
|
+
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  std::unique_ptr<Module> mod = parseIRFile(moduleName, Err, *<a class="code" href="classSVF_1_1LLVMModuleSet.html#ad06a92bf8bc556de742e0ffdf79ffafe">cxts</a>);</div>
|
|
3408
|
+
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="keywordflow">if</span> (mod == <span class="keyword">nullptr</span>)</div>
|
|
3409
|
+
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  {</div>
|
|
3410
|
+
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">SVFUtil::errs</a>() << <span class="stringliteral">"load module: "</span> << moduleName << <span class="stringliteral">"failed!!\n\n"</span>;</div>
|
|
3411
|
+
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  Err.print(<span class="stringliteral">"SVFModuleLoader"</span>, <a class="code" href="namespaceSVF_1_1SVFUtil.html#ab65033f068bfbeb0a1c52dcec3beb6bc">llvm::errs</a>());</div>
|
|
3412
|
+
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  abort();</div>
|
|
3413
|
+
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  }</div>
|
|
3414
|
+
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">modules</a>.emplace_back(*mod);</div>
|
|
3415
|
+
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#ae365189769640adb919a23c36978e5e2">owned_modules</a>.emplace_back(<a class="code" href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">std::move</a>(mod));</div>
|
|
3416
|
+
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  }</div>
|
|
3417
|
+
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> }</div>
|
|
3463
3418
|
</div><!-- fragment -->
|
|
3464
3419
|
</div>
|
|
3465
3420
|
</div>
|
|
@@ -3491,27 +3446,27 @@ Friends</h2></td></tr>
|
|
|
3491
3446
|
<p><a class="el" href="classSVF_1_1BreakConstantGEPs.html">BreakConstantGEPs</a> Pass</p>
|
|
3492
3447
|
<p><a class="el" href="classSVF_1_1MergeFunctionRets.html">MergeFunctionRets</a> Pass</p>
|
|
3493
3448
|
|
|
3494
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
3495
|
-
<div class="fragment"><div class="line"><a name="
|
|
3496
|
-
<div class="line"><a name="
|
|
3497
|
-
<div class="line"><a name="
|
|
3498
|
-
<div class="line"><a name="
|
|
3499
|
-
<div class="line"><a name="
|
|
3500
|
-
<div class="line"><a name="
|
|
3501
|
-
<div class="line"><a name="
|
|
3502
|
-
<div class="line"><a name="
|
|
3503
|
-
<div class="line"><a name="
|
|
3504
|
-
<div class="line"><a name="
|
|
3505
|
-
<div class="line"><a name="
|
|
3506
|
-
<div class="line"><a name="
|
|
3507
|
-
<div class="line"><a name="
|
|
3508
|
-
<div class="line"><a name="
|
|
3509
|
-
<div class="line"><a name="
|
|
3510
|
-
<div class="line"><a name="
|
|
3511
|
-
<div class="line"><a name="
|
|
3512
|
-
<div class="line"><a name="
|
|
3513
|
-
<div class="line"><a name="
|
|
3514
|
-
<div class="line"><a name="
|
|
3449
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00437">437</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
3450
|
+
<div class="fragment"><div class="line"><a name="l00438"></a><span class="lineno"> 438</span> {</div>
|
|
3451
|
+
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  std::unique_ptr<BreakConstantGEPs> p1 = std::make_unique<BreakConstantGEPs>();</div>
|
|
3452
|
+
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &M : <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4091b12bdfe4423d8114612a199bc480">getLLVMModules</a>())</div>
|
|
3453
|
+
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  {</div>
|
|
3454
|
+
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  p1->runOnModule(M);</div>
|
|
3455
|
+
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  }</div>
|
|
3456
|
+
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  </div>
|
|
3457
|
+
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  std::unique_ptr<UnifyFunctionExitNodes> p2 =</div>
|
|
3458
|
+
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  std::make_unique<UnifyFunctionExitNodes>();</div>
|
|
3459
|
+
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">Module</a> &M : <a class="code" href="classSVF_1_1LLVMModuleSet.html#a4091b12bdfe4423d8114612a199bc480">getLLVMModules</a>())</div>
|
|
3460
|
+
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  {</div>
|
|
3461
|
+
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> = M.begin(), E = M.end(); <a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a> != E; ++<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>)</div>
|
|
3462
|
+
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  {</div>
|
|
3463
|
+
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a> &fun = *<a class="code" href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a>;</div>
|
|
3464
|
+
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">if</span> (fun.isDeclaration())</div>
|
|
3465
|
+
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keywordflow">continue</span>;</div>
|
|
3466
|
+
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  p2->runOnFunction(fun);</div>
|
|
3467
|
+
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  }</div>
|
|
3468
|
+
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  }</div>
|
|
3469
|
+
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span> }</div>
|
|
3515
3470
|
</div><!-- fragment -->
|
|
3516
3471
|
</div>
|
|
3517
3472
|
</div>
|
|
@@ -3539,26 +3494,26 @@ Friends</h2></td></tr>
|
|
|
3539
3494
|
</table>
|
|
3540
3495
|
</div><div class="memdoc">
|
|
3541
3496
|
|
|
3542
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
3543
|
-
<div class="fragment"><div class="line"><a name="
|
|
3544
|
-
<div class="line"><a name="
|
|
3545
|
-
<div class="line"><a name="
|
|
3546
|
-
<div class="line"><a name="
|
|
3547
|
-
<div class="line"><a name="
|
|
3548
|
-
<div class="line"><a name="
|
|
3549
|
-
<div class="line"><a name="
|
|
3550
|
-
<div class="line"><a name="
|
|
3551
|
-
<div class="line"><a name="
|
|
3552
|
-
<div class="line"><a name="
|
|
3553
|
-
<div class="line"><a name="
|
|
3554
|
-
<div class="line"><a name="
|
|
3555
|
-
<div class="line"><a name="
|
|
3556
|
-
<div class="line"><a name="
|
|
3557
|
-
<div class="line"><a name="
|
|
3558
|
-
<div class="line"><a name="
|
|
3559
|
-
<div class="line"><a name="
|
|
3560
|
-
<div class="line"><a name="
|
|
3561
|
-
<div class="line"><a name="
|
|
3497
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00461">461</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
3498
|
+
<div class="fragment"><div class="line"><a name="l00462"></a><span class="lineno"> 462</span> {</div>
|
|
3499
|
+
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html">LLVMModuleSet</a>* mset = <a class="code" href="classSVF_1_1LLVMModuleSet.html#acf40310917909e4234282c0695a43160">getLLVMModuleSet</a>();</div>
|
|
3500
|
+
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  mset-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a298966366b02d0a34f409c2c77da3789">loadModules</a>(moduleNameVec);</div>
|
|
3501
|
+
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  mset-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a8820d1df9098db6eadf3a9c67e380e55">loadExtAPIModules</a>();</div>
|
|
3502
|
+
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  mset-><a class="code" href="classSVF_1_1LLVMModuleSet.html#a8b5f24c873db1f6a0614d1dac48bb4bb">prePassSchedule</a>();</div>
|
|
3503
|
+
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  </div>
|
|
3504
|
+
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> preProcessSuffix = <span class="stringliteral">".pre.bc"</span>;</div>
|
|
3505
|
+
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="comment">// Get the existing module names, remove old extention, add preProcessSuffix</span></div>
|
|
3506
|
+
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="keywordflow">for</span> (<a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> i = 0; i < moduleNameVec.size(); i++)</div>
|
|
3507
|
+
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  {</div>
|
|
3508
|
+
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <a class="code" href="namespaceSVF.html#ad42bff8d0a7d60a085aa32d10f4955af">u32_t</a> lastIndex = moduleNameVec[i].find_last_of(<span class="stringliteral">"."</span>);</div>
|
|
3509
|
+
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <a class="code" href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">std::string</a> rawName = moduleNameVec[i].substr(0, lastIndex);</div>
|
|
3510
|
+
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  moduleNameVec[i] = (rawName + preProcessSuffix);</div>
|
|
3511
|
+
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  }</div>
|
|
3512
|
+
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  </div>
|
|
3513
|
+
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  mset-><a class="code" href="classSVF_1_1LLVMModuleSet.html#af37b9976b282c875cac7bb1777da635c">dumpModulesToFile</a>(preProcessSuffix);</div>
|
|
3514
|
+
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a3204400c52ec55da70418471d5c9bad5">preProcessed</a> = <span class="keyword">true</span>;</div>
|
|
3515
|
+
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">releaseLLVMModuleSet</a>();</div>
|
|
3516
|
+
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> }</div>
|
|
3562
3517
|
</div><!-- fragment -->
|
|
3563
3518
|
</div>
|
|
3564
3519
|
</div>
|
|
@@ -3627,31 +3582,31 @@ Friends</h2></td></tr>
|
|
|
3627
3582
|
</table>
|
|
3628
3583
|
</div><div class="memdoc">
|
|
3629
3584
|
|
|
3630
|
-
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#
|
|
3631
|
-
<div class="fragment"><div class="line"><a name="
|
|
3632
|
-
<div class="line"><a name="
|
|
3633
|
-
<div class="line"><a name="
|
|
3634
|
-
<div class="line"><a name="
|
|
3635
|
-
<div class="line"><a name="
|
|
3636
|
-
<div class="line"><a name="
|
|
3637
|
-
<div class="line"><a name="
|
|
3638
|
-
<div class="line"><a name="
|
|
3639
|
-
<div class="line"><a name="
|
|
3640
|
-
<div class="line"><a name="
|
|
3641
|
-
<div class="line"><a name="
|
|
3642
|
-
<div class="line"><a name="
|
|
3643
|
-
<div class="line"><a name="
|
|
3644
|
-
<div class="line"><a name="
|
|
3645
|
-
<div class="line"><a name="
|
|
3646
|
-
<div class="line"><a name="
|
|
3647
|
-
<div class="line"><a name="
|
|
3648
|
-
<div class="line"><a name="
|
|
3649
|
-
<div class="line"><a name="
|
|
3650
|
-
<div class="line"><a name="
|
|
3651
|
-
<div class="line"><a name="
|
|
3652
|
-
<div class="line"><a name="
|
|
3653
|
-
<div class="line"><a name="
|
|
3654
|
-
<div class="line"><a name="
|
|
3585
|
+
<p class="definition">Definition at line <a class="el" href="LLVMModule_8cpp_source.html#l00900">900</a> of file <a class="el" href="LLVMModule_8cpp_source.html">LLVMModule.cpp</a>.</p>
|
|
3586
|
+
<div class="fragment"><div class="line"><a name="l00901"></a><span class="lineno"> 901</span> {</div>
|
|
3587
|
+
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  <a class="code" href="classSVF_1_1LLVMModuleSet.html#a7f8e61cf5d838d7a2e862bc6955f16be">SVFValue2LLVMValue</a>[svfvalue] = val;</div>
|
|
3588
|
+
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  </div>
|
|
3589
|
+
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a07c785d931cef3c61e3dab4c615770be">LLVMUtil::isPtrInUncalledFunction</a>(val))</div>
|
|
3590
|
+
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  svfvalue->setPtrInUncalledFunction();</div>
|
|
3591
|
+
<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  <span class="keywordflow">if</span> (<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">LLVMUtil::isConstDataOrAggData</a>(val))</div>
|
|
3592
|
+
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  svfvalue->setConstDataOrAggData();</div>
|
|
3593
|
+
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  </div>
|
|
3594
|
+
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFGlobalValue.html">SVFGlobalValue</a>* glob = SVFUtil::dyn_cast<SVFGlobalValue>(svfvalue))</div>
|
|
3595
|
+
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  {</div>
|
|
3596
|
+
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">Value</a>* llvmVal = <a class="code" href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">LLVMUtil::getGlobalRep</a>(val);</div>
|
|
3597
|
+
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  assert(SVFUtil::isa<GlobalValue>(llvmVal) && <span class="stringliteral">"not a GlobalValue?"</span>);</div>
|
|
3598
|
+
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  glob->setDefGlobalForMultipleModule(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a3cbba2eb702a3481478b2590dfffa352">getSVFGlobalValue</a>(SVFUtil::cast<GlobalValue>(llvmVal)));</div>
|
|
3599
|
+
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  }</div>
|
|
3600
|
+
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  <span class="keywordflow">if</span> (<a class="code" href="classSVF_1_1SVFFunction.html">SVFFunction</a>* svffun = SVFUtil::dyn_cast<SVFFunction>(svfvalue))</div>
|
|
3601
|
+
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  {</div>
|
|
3602
|
+
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <span class="keyword">const</span> <a class="code" href="namespaceSVF.html#a5faee14fa1dd41447bc73ac365fe33c1">Function</a>* func = SVFUtil::cast<Function>(val);</div>
|
|
3603
|
+
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  svffun->setIsNotRet(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a651b6a1cf3665277d2241220bb145aed">LLVMUtil::functionDoesNotRet</a>(func));</div>
|
|
3604
|
+
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  svffun->setIsUncalledFunction(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">LLVMUtil::isUncalledFunction</a>(func));</div>
|
|
3605
|
+
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  svffun->setDefFunForMultipleModule(<a class="code" href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">getSVFFunction</a>(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">LLVMUtil::getDefFunForMultipleModule</a>(func)));</div>
|
|
3606
|
+
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  }</div>
|
|
3607
|
+
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  </div>
|
|
3608
|
+
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  svfvalue->setSourceLoc(<a class="code" href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">LLVMUtil::getSourceLoc</a>(val));</div>
|
|
3609
|
+
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span> }</div>
|
|
3655
3610
|
</div><!-- fragment -->
|
|
3656
3611
|
</div>
|
|
3657
3612
|
</div>
|
|
@@ -4156,7 +4111,7 @@ Friends</h2></td></tr>
|
|
|
4156
4111
|
<div class="ttc" id="anamespaceSVF_html_a827d09974dc7bf0849f96823cc2fee89"><div class="ttname"><a href="namespaceSVF.html#a827d09974dc7bf0849f96823cc2fee89">SVF::DomTreeNode</a></div><div class="ttdeci">llvm::DomTreeNode DomTreeNode</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00132">BasicTypes.h:132</a></div></div>
|
|
4157
4112
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_af2c555af91679d9e6d3009547ee11486"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#af2c555af91679d9e6d3009547ee11486">SVF::LLVMModuleSet::Type2TypeInfo</a></div><div class="ttdeci">Type2TypeInfoMap Type2TypeInfo</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00088">LLVMModule.h:88</a></div></div>
|
|
4158
4113
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ae265a7f3cc7367d62013e0f15cf3d233"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae265a7f3cc7367d62013e0f15cf3d233">SVF::LLVMModuleSet::getModuleNum</a></div><div class="ttdeci">u32_t getModuleNum() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00121">LLVMModule.h:121</a></div></div>
|
|
4159
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aaab03cb6ff665bc008c67b866ba81e47"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aaab03cb6ff665bc008c67b866ba81e47">SVF::LLVMModuleSet::buildGlobalDefToRepMap</a></div><div class="ttdeci">void buildGlobalDefToRepMap()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4114
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aaab03cb6ff665bc008c67b866ba81e47"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aaab03cb6ff665bc008c67b866ba81e47">SVF::LLVMModuleSet::buildGlobalDefToRepMap</a></div><div class="ttdeci">void buildGlobalDefToRepMap()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00832">LLVMModule.cpp:832</a></div></div>
|
|
4160
4115
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8e4add30bd0ce00d3f2aa2e31c64fef8"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8e4add30bd0ce00d3f2aa2e31c64fef8">SVF::LLVMUtil::getSourceLoc</a></div><div class="ttdeci">const std::string getSourceLoc(const Value *val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00471">LLVMUtil.cpp:471</a></div></div>
|
|
4161
4116
|
<div class="ttc" id="aLLVMModule_8cpp_html_a9fd6e28e6ed93f65a20a348ab0646320"><div class="ttname"><a href="LLVMModule_8cpp.html#a9fd6e28e6ed93f65a20a348ab0646320">SVF_GLOBAL_DTORS</a></div><div class="ttdeci">#define SVF_GLOBAL_DTORS</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00070">LLVMModule.cpp:70</a></div></div>
|
|
4162
4117
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_aef5999ada62dac3cc946d832ac66948c"><div class="ttname"><a href="classSVF_1_1SVFType.html#aef5999ada62dac3cc946d832ac66948c">SVF::SVFType::setTypeInfo</a></div><div class="ttdeci">void setTypeInfo(StInfo *ti)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00302">SVFType.h:302</a></div></div>
|
|
@@ -4165,18 +4120,18 @@ Friends</h2></td></tr>
|
|
|
4165
4120
|
<div class="ttc" id="anamespaceSVF_html_aecbb42b8e9d17fa0189c50dda9fd5fdd"><div class="ttname"><a href="namespaceSVF.html#aecbb42b8e9d17fa0189c50dda9fd5fdd">SVF::DominatorTree</a></div><div class="ttdeci">llvm::DominatorTree DominatorTree</div><div class="ttdoc">LLVM Dominators.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00131">BasicTypes.h:131</a></div></div>
|
|
4166
4121
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a0c1143eff451edf8ea47d4487a8d3a55"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a0c1143eff451edf8ea47d4487a8d3a55">SVF::SymbolTableInfo::maxStruct</a></div><div class="ttdeci">const SVFType * maxStruct</div><div class="ttdoc">The struct type with the most fields.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00340">SymbolTableInfo.h:340</a></div></div>
|
|
4167
4122
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a9fd7f0170bffa7c1b927cdb0de98fd15"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a9fd7f0170bffa7c1b927cdb0de98fd15">SVF::LLVMModuleSet::LLVMFunc2SVFFunc</a></div><div class="ttdeci">LLVMFun2SVFFunMap LLVMFunc2SVFFunc</div><div class="ttdoc">Map an LLVM Function to an SVF Function.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00080">LLVMModule.h:80</a></div></div>
|
|
4168
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aab7b08db9252ef7e21e54d019f44b073"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aab7b08db9252ef7e21e54d019f44b073">SVF::LLVMModuleSet::addSVFTypeInfo</a></div><div class="ttdeci">SVFType * addSVFTypeInfo(const Type *t)</div><div class="ttdoc">Create SVFTypes.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4169
|
-
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_ac1b15d8f9c2499add8dbc889ae5cab65"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ac1b15d8f9c2499add8dbc889ae5cab65">SVF::SVFBasicBlock::addInstruction</a></div><div class="ttdeci">void addInstruction(const SVFInstruction *inst)</div><div class="ttdoc">Function where this BasicBlock is.</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4123
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aab7b08db9252ef7e21e54d019f44b073"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aab7b08db9252ef7e21e54d019f44b073">SVF::LLVMModuleSet::addSVFTypeInfo</a></div><div class="ttdeci">SVFType * addSVFTypeInfo(const Type *t)</div><div class="ttdoc">Create SVFTypes.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01097">LLVMModule.cpp:1097</a></div></div>
|
|
4124
|
+
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_ac1b15d8f9c2499add8dbc889ae5cab65"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#ac1b15d8f9c2499add8dbc889ae5cab65">SVF::SVFBasicBlock::addInstruction</a></div><div class="ttdeci">void addInstruction(const SVFInstruction *inst)</div><div class="ttdoc">Function where this BasicBlock is.</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00502">SVFValue.h:502</a></div></div>
|
|
4170
4125
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a4091b12bdfe4423d8114612a199bc480"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a4091b12bdfe4423d8114612a199bc480">SVF::LLVMModuleSet::getLLVMModules</a></div><div class="ttdeci">const std::vector< std::reference_wrapper< Module > > & getLLVMModules() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00126">LLVMModule.h:126</a></div></div>
|
|
4171
4126
|
<div class="ttc" id="anamespaceSVF_html_a94824519e439aeef1568d415b6f7331c"><div class="ttname"><a href="namespaceSVF.html#a94824519e439aeef1568d415b6f7331c">SVF::IRBuilder</a></div><div class="ttdeci">llvm::IRBuilder IRBuilder</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00072">BasicTypes.h:72</a></div></div>
|
|
4172
4127
|
<div class="ttc" id="aCommandLine_8h_html_a2429346d37bd4c40889bd7c6d319d9da"><div class="ttname"><a href="CommandLine_8h.html#a2429346d37bd4c40889bd7c6d319d9da">u32_t</a></div><div class="ttdeci">unsigned u32_t</div><div class="ttdef"><b>Definition:</b> <a href="CommandLine_8h_source.html#l00018">CommandLine.h:18</a></div></div>
|
|
4173
4128
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_acde6292e719c80f93d3d1c344ab442cd"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#acde6292e719c80f93d3d1c344ab442cd">SVF::LLVMModuleSet::modules</a></div><div class="ttdeci">std::vector< std::reference_wrapper< Module > > modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00071">LLVMModule.h:71</a></div></div>
|
|
4174
|
-
<div class="ttc" id="aclassSVF_1_1SVFCallInst_html"><div class="ttname"><a href="classSVF_1_1SVFCallInst.html">SVF::SVFCallInst</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4129
|
+
<div class="ttc" id="aclassSVF_1_1SVFCallInst_html"><div class="ttname"><a href="classSVF_1_1SVFCallInst.html">SVF::SVFCallInst</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00655">SVFValue.h:655</a></div></div>
|
|
4175
4130
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a7de84e7817406867b173e1591e0681ac"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a7de84e7817406867b173e1591e0681ac">SVF::LLVMModuleSet::addGlobalValueMap</a></div><div class="ttdeci">void addGlobalValueMap(const GlobalValue *glob, SVFGlobalValue *svfglob)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00165">LLVMModule.h:165</a></div></div>
|
|
4176
4131
|
<div class="ttc" id="anamespaceSVF_html_a6ec0236303089a01fd9da36a8bb84e0a"><div class="ttname"><a href="namespaceSVF.html#a6ec0236303089a01fd9da36a8bb84e0a">SVF::FunctionType</a></div><div class="ttdeci">llvm::FunctionType FunctionType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00096">BasicTypes.h:96</a></div></div>
|
|
4177
4132
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ad647d73d2e1bda61348eff658e32f481"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ad647d73d2e1bda61348eff658e32f481">SVF::LLVMModuleSet::getModuleRef</a></div><div class="ttdeci">Module & getModuleRef(u32_t idx) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00136">LLVMModule.h:136</a></div></div>
|
|
4178
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ac7c646a78c989807c52263fc35fb3628"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac7c646a78c989807c52263fc35fb3628">SVF::LLVMModuleSet::buildFunToFunMap</a></div><div class="ttdeci">void buildFunToFunMap()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4179
|
-
<div class="ttc" id="aclassSVF_1_1SVFCallInst_html_a6dd304f555d2d2388c4430e57b0d2b91"><div class="ttname"><a href="classSVF_1_1SVFCallInst.html#a6dd304f555d2d2388c4430e57b0d2b91">SVF::SVFCallInst::setCalledOperand</a></div><div class="ttdeci">void setCalledOperand(const SVFValue *v)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4133
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ac7c646a78c989807c52263fc35fb3628"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac7c646a78c989807c52263fc35fb3628">SVF::LLVMModuleSet::buildFunToFunMap</a></div><div class="ttdeci">void buildFunToFunMap()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00745">LLVMModule.cpp:745</a></div></div>
|
|
4134
|
+
<div class="ttc" id="aclassSVF_1_1SVFCallInst_html_a6dd304f555d2d2388c4430e57b0d2b91"><div class="ttname"><a href="classSVF_1_1SVFCallInst.html#a6dd304f555d2d2388c4430e57b0d2b91">SVF::SVFCallInst::setCalledOperand</a></div><div class="ttdeci">void setCalledOperand(const SVFValue *v)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00673">SVFValue.h:673</a></div></div>
|
|
4180
4135
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a91083d9504ae5d220b28e0b3e461d4aa"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a91083d9504ae5d220b28e0b3e461d4aa">SVF::SymbolTableInfo::addTypeInfo</a></div><div class="ttdeci">void addTypeInfo(const SVFType *ty)</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8h_source.html#l00345">SymbolTableInfo.h:345</a></div></div>
|
|
4181
4136
|
<div class="ttc" id="aclassSVF_1_1SVFPointerType_html"><div class="ttname"><a href="classSVF_1_1SVFPointerType.html">SVF::SVFPointerType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00332">SVFType.h:332</a></div></div>
|
|
4182
4137
|
<div class="ttc" id="anamespaceSVF_html_a77e088bfe47c0b0ddcbbe0693dec6fe5"><div class="ttname"><a href="namespaceSVF.html#a77e088bfe47c0b0ddcbbe0693dec6fe5">SVF::LoopInfo</a></div><div class="ttdeci">llvm::LoopInfo LoopInfo</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00139">BasicTypes.h:139</a></div></div>
|
|
@@ -4184,41 +4139,40 @@ Friends</h2></td></tr>
|
|
|
4184
4139
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ae2a1fa0b908cf372c50af90e62c4bf2b"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae2a1fa0b908cf372c50af90e62c4bf2b">SVF::LLVMModuleSet::GlobalDefToRepMap</a></div><div class="ttdeci">GlobalDefToRepMapTy GlobalDefToRepMap</div><div class="ttdoc">Global definition to a rep definition map.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00078">LLVMModule.h:78</a></div></div>
|
|
4185
4140
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a6e670254385050b9a5e612f881b07b9c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a6e670254385050b9a5e612f881b07b9c">SVF::LLVMModuleSet::getDefinition</a></div><div class="ttdeci">const Function * getDefinition(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00260">LLVMModule.h:260</a></div></div>
|
|
4186
4141
|
<div class="ttc" id="anamespaceSVF_html_a23bf614858f168b6ad76e0233cec9965"><div class="ttname"><a href="namespaceSVF.html#a23bf614858f168b6ad76e0233cec9965">SVF::BasicBlock</a></div><div class="ttdeci">llvm::BasicBlock BasicBlock</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00084">BasicTypes.h:84</a></div></div>
|
|
4187
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_af37b9976b282c875cac7bb1777da635c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#af37b9976b282c875cac7bb1777da635c">SVF::LLVMModuleSet::dumpModulesToFile</a></div><div class="ttdeci">void dumpModulesToFile(const std::string &suffix)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4142
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_af37b9976b282c875cac7bb1777da635c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#af37b9976b282c875cac7bb1777da635c">SVF::LLVMModuleSet::dumpModulesToFile</a></div><div class="ttdeci">void dumpModulesToFile(const std::string &suffix)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00875">LLVMModule.cpp:875</a></div></div>
|
|
4188
4143
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ad3f66b40ad360003845253f452d6a711"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ad3f66b40ad360003845253f452d6a711">SVF::LLVMModuleSet::getSVFArgument</a></div><div class="ttdeci">SVFArgument * getSVFArgument(const Argument *arg) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00216">LLVMModule.h:216</a></div></div>
|
|
4189
4144
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html_a8325774df9d65d78ef6a66fef59b9a97"><div class="ttname"><a href="classSVF_1_1SVFValue.html#a8325774df9d65d78ef6a66fef59b9a97">SVF::SVFValue::setName</a></div><div class="ttdeci">void setName(const std::string &n)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00220">SVFValue.h:220</a></div></div>
|
|
4190
4145
|
<div class="ttc" id="anamespaceSVF_html_a3d9e7f32dc17fe8d40f8d6a011403b91"><div class="ttname"><a href="namespaceSVF.html#a3d9e7f32dc17fe8d40f8d6a011403b91">SVF::IntegerType</a></div><div class="ttdeci">llvm::IntegerType IntegerType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00095">BasicTypes.h:95</a></div></div>
|
|
4191
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aaa23ad390e9148ba6302fea8d4595080"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aaa23ad390e9148ba6302fea8d4595080">SVF::LLVMModuleSet::LLVMModuleSet</a></div><div class="ttdeci">LLVMModuleSet()</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4192
|
-
<div class="ttc" id="aLLVMModule_8cpp_html_a02ccaa6664b87aaa9ee148d352344352"><div class="ttname"><a href="LLVMModule_8cpp.html#a02ccaa6664b87aaa9ee148d352344352">shortenLongInfo</a></div><div class="ttdeci">static void shortenLongInfo(std::string &info, unsigned bestLen=15)</div><div class="ttdoc">Helper function to summarize a long string.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00076">LLVMModule.cpp:76</a></div></div>
|
|
4146
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aaa23ad390e9148ba6302fea8d4595080"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aaa23ad390e9148ba6302fea8d4595080">SVF::LLVMModuleSet::LLVMModuleSet</a></div><div class="ttdeci">LLVMModuleSet()</div><div class="ttdoc">Constructor.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00075">LLVMModule.cpp:75</a></div></div>
|
|
4193
4147
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ac59b07cafcbacc950eefea4082425b63"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac59b07cafcbacc950eefea4082425b63">SVF::LLVMModuleSet::llvmModuleSet</a></div><div class="ttdeci">static LLVMModuleSet * llvmModuleSet</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00065">LLVMModule.h:65</a></div></div>
|
|
4194
4148
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_af4bd487b3b6efe55bf869b869f5e8a80"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#af4bd487b3b6efe55bf869b869f5e8a80">SVF::LLVMModuleSet::addConstantDataMap</a></div><div class="ttdeci">void addConstantDataMap(const ConstantData *cd, SVFConstantData *svfcd)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00170">LLVMModule.h:170</a></div></div>
|
|
4195
4149
|
<div class="ttc" id="anamespaceSVF_html_aa962cc1d782cc46553251e96b64a754b"><div class="ttname"><a href="namespaceSVF.html#aa962cc1d782cc46553251e96b64a754b">SVF::PointerType</a></div><div class="ttdeci">llvm::PointerType PointerType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00094">BasicTypes.h:94</a></div></div>
|
|
4196
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a15e97e3f2ba62d3fe444bb17cd637dbd"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a15e97e3f2ba62d3fe444bb17cd637dbd">SVF::LLVMModuleSet::buildSymbolTable</a></div><div class="ttdeci">void buildSymbolTable() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4150
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a15e97e3f2ba62d3fe444bb17cd637dbd"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a15e97e3f2ba62d3fe444bb17cd637dbd">SVF::LLVMModuleSet::buildSymbolTable</a></div><div class="ttdeci">void buildSymbolTable() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00123">LLVMModule.cpp:123</a></div></div>
|
|
4197
4151
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html_a7af3076a26060090377d1f74293560fe"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a7af3076a26060090377d1f74293560fe">SVF::SVFModule::setPagFromTXT</a></div><div class="ttdeci">static void setPagFromTXT(const std::string &txt)</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00084">SVFModule.h:84</a></div></div>
|
|
4198
|
-
<div class="ttc" id="aSVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
4152
|
+
<div class="ttc" id="aSVFType_8h_html_a1aeda3370621dc00e9a0fe8e7aabc736"><div class="ttname"><a href="SVFType_8h.html#a1aeda3370621dc00e9a0fe8e7aabc736">TIMEINTERVAL</a></div><div class="ttdeci">#define TIMEINTERVAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00571">SVFType.h:571</a></div></div>
|
|
4199
4153
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a3eaadb33cd21d0bd868526b5ddb051d9"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a3eaadb33cd21d0bd868526b5ddb051d9">SVF::LLVMModuleSet::addBasicBlockMap</a></div><div class="ttdeci">void addBasicBlockMap(const BasicBlock *bb, SVFBasicBlock *svfBB)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00150">LLVMModule.h:150</a></div></div>
|
|
4200
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a0ef17c1d5e6a95c597d2334ea577a965"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965">SVF::LLVMModuleSet::getSVFOtherValue</a></div><div class="ttdeci">SVFOtherValue * getSVFOtherValue(const Value *ov)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4154
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a0ef17c1d5e6a95c597d2334ea577a965"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a0ef17c1d5e6a95c597d2334ea577a965">SVF::LLVMModuleSet::getSVFOtherValue</a></div><div class="ttdeci">SVFOtherValue * getSVFOtherValue(const Value *ov)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00989">LLVMModule.cpp:989</a></div></div>
|
|
4201
4155
|
<div class="ttc" id="aclassSVF_1_1StInfo_html_a518c82138fcadc6634980566c1c0f762"><div class="ttname"><a href="classSVF_1_1StInfo.html#a518c82138fcadc6634980566c1c0f762">SVF::StInfo::getNumOfFlattenElements</a></div><div class="ttdeci">u32_t getNumOfFlattenElements() const</div><div class="ttdoc">Return number of elements after flattenning (including array elements)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00225">SVFType.h:225</a></div></div>
|
|
4202
4156
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a2c61d741afbcfa853b505cd391f29f9b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a2c61d741afbcfa853b505cd391f29f9b">SVF::LLVMUtil::isUncalledFunction</a></div><div class="ttdeci">bool isUncalledFunction(const Function *fun)</div><div class="ttdoc">whether this is a function without any possible caller?</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00144">LLVMUtil.cpp:144</a></div></div>
|
|
4203
|
-
<div class="ttc" id="aclassSVF_1_1SVFConstantData_html"><div class="ttname"><a href="classSVF_1_1SVFConstantData.html">SVF::SVFConstantData</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4204
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a5f0bd932f3129a9c565f3a09711f7b99"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">SVF::LLVMModuleSet::getSVFType</a></div><div class="ttdeci">SVFType * getSVFType(const Type *T)</div><div class="ttdoc">Get or create SVFType and typeinfo.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4157
|
+
<div class="ttc" id="aclassSVF_1_1SVFConstantData_html"><div class="ttname"><a href="classSVF_1_1SVFConstantData.html">SVF::SVFConstantData</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00893">SVFValue.h:893</a></div></div>
|
|
4158
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a5f0bd932f3129a9c565f3a09711f7b99"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a5f0bd932f3129a9c565f3a09711f7b99">SVF::LLVMModuleSet::getSVFType</a></div><div class="ttdeci">SVFType * getSVFType(const Type *T)</div><div class="ttdoc">Get or create SVFType and typeinfo.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01045">LLVMModule.cpp:1045</a></div></div>
|
|
4205
4159
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html_a0bc5a63d8c10da51766007cf40b095e5"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a0bc5a63d8c10da51766007cf40b095e5">SVF::SVFModule::addGlobalSet</a></div><div class="ttdeci">void addGlobalSet(SVFGlobalValue *glob)</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00111">SVFModule.h:111</a></div></div>
|
|
4206
|
-
<div class="ttc" id="aclassSVF_1_1SVFMetadataAsValue_html"><div class="ttname"><a href="classSVF_1_1SVFMetadataAsValue.html">SVF::SVFMetadataAsValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4160
|
+
<div class="ttc" id="aclassSVF_1_1SVFMetadataAsValue_html"><div class="ttname"><a href="classSVF_1_1SVFMetadataAsValue.html">SVF::SVFMetadataAsValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01047">SVFValue.h:1047</a></div></div>
|
|
4207
4161
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a4b94c96898dbbc71bc1cee04786cf3dc"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a4b94c96898dbbc71bc1cee04786cf3dc">SVF::LLVMModuleSet::LLVMConst2SVFConst</a></div><div class="ttdeci">LLVMConst2SVFConstMap LLVMConst2SVFConst</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00084">LLVMModule.h:84</a></div></div>
|
|
4208
4162
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a2f8e91c075d90be66412a079fe73e936"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a2f8e91c075d90be66412a079fe73e936">SVF::LLVMModuleSet::releaseLLVMModuleSet</a></div><div class="ttdeci">static void releaseLLVMModuleSet()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00105">LLVMModule.h:105</a></div></div>
|
|
4209
4163
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a50fc24901350df9db890ba16a9b87e33"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a50fc24901350df9db890ba16a9b87e33">SVF::LLVMModuleSet::getSVFFunction</a></div><div class="ttdeci">SVFFunction * getSVFFunction(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00195">LLVMModule.h:195</a></div></div>
|
|
4210
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a946d1251501c7e0e33a9210838951258"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258">SVF::LLVMModuleSet::collectStructInfo</a></div><div class="ttdeci">StInfo * collectStructInfo(const StructType *structTy, u32_t &numFields)</div><div class="ttdoc">Collect the struct info and set the number of fields after flattening.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4164
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a946d1251501c7e0e33a9210838951258"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a946d1251501c7e0e33a9210838951258">SVF::LLVMModuleSet::collectStructInfo</a></div><div class="ttdeci">StInfo * collectStructInfo(const StructType *structTy, u32_t &numFields)</div><div class="ttdoc">Collect the struct info and set the number of fields after flattening.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01209">LLVMModule.cpp:1209</a></div></div>
|
|
4211
4165
|
<div class="ttc" id="anamespaceSVF_html_a90b263fd2f541eca78135078114cabda"><div class="ttname"><a href="namespaceSVF.html#a90b263fd2f541eca78135078114cabda">SVF::Value</a></div><div class="ttdeci">llvm::Value Value</div><div class="ttdoc">LLVM Basic classes.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00080">BasicTypes.h:80</a></div></div>
|
|
4212
4166
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html_ae64d24569942d7c4b18d2198be4839f3"><div class="ttname"><a href="classSVF_1_1SVFModule.html#ae64d24569942d7c4b18d2198be4839f3">SVF::SVFModule::addConstant</a></div><div class="ttdeci">void addConstant(SVFConstant *cd)</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00121">SVFModule.h:121</a></div></div>
|
|
4213
4167
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8afb7ab3ee4632e78d546e549110e74c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8afb7ab3ee4632e78d546e549110e74c">SVF::LLVMModuleSet::getModule</a></div><div class="ttdeci">Module * getModule(u32_t idx) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00131">LLVMModule.h:131</a></div></div>
|
|
4214
|
-
<div class="ttc" id="aclassSVF_1_1SVFBlackHoleValue_html"><div class="ttname"><a href="classSVF_1_1SVFBlackHoleValue.html">SVF::SVFBlackHoleValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4215
|
-
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_abfe3a1ce5fa364d9db7cd2d0e6a144ff"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#abfe3a1ce5fa364d9db7cd2d0e6a144ff">SVF::SVFBasicBlock::addSuccBasicBlock</a></div><div class="ttdeci">void addSuccBasicBlock(const SVFBasicBlock *succ)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4168
|
+
<div class="ttc" id="aclassSVF_1_1SVFBlackHoleValue_html"><div class="ttname"><a href="classSVF_1_1SVFBlackHoleValue.html">SVF::SVFBlackHoleValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01005">SVFValue.h:1005</a></div></div>
|
|
4169
|
+
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_abfe3a1ce5fa364d9db7cd2d0e6a144ff"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#abfe3a1ce5fa364d9db7cd2d0e6a144ff">SVF::SVFBasicBlock::addSuccBasicBlock</a></div><div class="ttdeci">void addSuccBasicBlock(const SVFBasicBlock *succ)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00507">SVFValue.h:507</a></div></div>
|
|
4216
4170
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a41e64f3318e2bf368eebe9a104ef6ad9"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a41e64f3318e2bf368eebe9a104ef6ad9">SVF::LLVMUtil::getFunNameOfVCallSite</a></div><div class="ttdeci">std::string getFunNameOfVCallSite(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01002">LLVMUtil.cpp:1002</a></div></div>
|
|
4217
|
-
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_ad865b8440a6e0d5d212798d2213e1e9c"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ad865b8440a6e0d5d212798d2213e1e9c">SVF::SVFFunction::addArgument</a></div><div class="ttdeci">void addArgument(SVFArgument *arg)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4171
|
+
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_ad865b8440a6e0d5d212798d2213e1e9c"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#ad865b8440a6e0d5d212798d2213e1e9c">SVF::SVFFunction::addArgument</a></div><div class="ttdeci">void addArgument(SVFArgument *arg)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00303">SVFValue.h:303</a></div></div>
|
|
4218
4172
|
<div class="ttc" id="aclassSVF_1_1StInfo_html_ae5fad367673315da57a604e64b5889f0"><div class="ttname"><a href="classSVF_1_1StInfo.html#ae5fad367673315da57a604e64b5889f0">SVF::StInfo::getNumOfFlattenFields</a></div><div class="ttdeci">u32_t getNumOfFlattenFields() const</div><div class="ttdoc">Return the number of fields after flattenning (ignoring array elements)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00231">SVFType.h:231</a></div></div>
|
|
4219
4173
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a651b6a1cf3665277d2241220bb145aed"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a651b6a1cf3665277d2241220bb145aed">SVF::LLVMUtil::functionDoesNotRet</a></div><div class="ttdeci">bool functionDoesNotRet(const Function *fun)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00106">LLVMUtil.cpp:106</a></div></div>
|
|
4220
4174
|
<div class="ttc" id="acJSON_8h_html_a25d22ecc7e656d2c59332072684e8766"><div class="ttname"><a href="cJSON_8h.html#a25d22ecc7e656d2c59332072684e8766">name</a></div><div class="ttdeci">const char *const name</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00264">cJSON.h:264</a></div></div>
|
|
4221
|
-
<div class="ttc" id="aSVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
4175
|
+
<div class="ttc" id="aSVFType_8h_html_a2c64190a065f342897573a3ef4973adb"><div class="ttname"><a href="SVFType_8h.html#a2c64190a065f342897573a3ef4973adb">DGENERAL</a></div><div class="ttdeci">#define DGENERAL</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00549">SVFType.h:549</a></div></div>
|
|
4222
4176
|
<div class="ttc" id="anamespaceSVF_html_a366625858f450a1ea5f985a3c83e0f14"><div class="ttname"><a href="namespaceSVF.html#a366625858f450a1ea5f985a3c83e0f14">SVF::u64_t</a></div><div class="ttdeci">unsigned long long u64_t</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00053">SVFType.h:53</a></div></div>
|
|
4223
4177
|
<div class="ttc" id="anamespaceSVF_html_a5c943191dc4e242704943e5f594ae99e"><div class="ttname"><a href="namespaceSVF.html#a5c943191dc4e242704943e5f594ae99e">SVF::const_pred_iterator</a></div><div class="ttdeci">llvm::const_pred_iterator const_pred_iterator</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00247">BasicTypes.h:247</a></div></div>
|
|
4224
4178
|
<div class="ttc" id="aclassSVF_1_1Options_html_a2ed1e6f7911ae5cfbf79213e4d07531e"><div class="ttname"><a href="classSVF_1_1Options.html#a2ed1e6f7911ae5cfbf79213e4d07531e">SVF::Options::ExtAPIInput</a></div><div class="ttdeci">static const Option< std::string > ExtAPIInput</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00251">Options.h:251</a></div></div>
|
|
@@ -4233,18 +4187,18 @@ Friends</h2></td></tr>
|
|
|
4233
4187
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ab0c0f321b6bfbfab2e4ff06d81920ab9"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ab0c0f321b6bfbfab2e4ff06d81920ab9">SVF::LLVMModuleSet::getSVFBasicBlock</a></div><div class="ttdeci">SVFBasicBlock * getSVFBasicBlock(const BasicBlock *bb) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00202">LLVMModule.h:202</a></div></div>
|
|
4234
4188
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a0f9b36699b99dfcfe3c1588bfab6b97c"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a0f9b36699b99dfcfe3c1588bfab6b97c">SVF::LLVMModuleSet::LLVMBB2SVFBB</a></div><div class="ttdeci">LLVMBB2SVFBBMap LLVMBB2SVFBB</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00081">LLVMModule.h:81</a></div></div>
|
|
4235
4189
|
<div class="ttc" id="anamespaceSVF_html_a09f5fa3bc44bf53612a085e3a611cc4e"><div class="ttname"><a href="namespaceSVF.html#a09f5fa3bc44bf53612a085e3a611cc4e">SVF::GlobalVariable</a></div><div class="ttdeci">llvm::GlobalVariable GlobalVariable</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00128">BasicTypes.h:128</a></div></div>
|
|
4236
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a0b46a2a5ff2165d17993a071d9cc82c1"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a0b46a2a5ff2165d17993a071d9cc82c1">SVF::LLVMModuleSet::getLLVMGlobalFunctions</a></div><div class="ttdeci">std::vector< const Function * > getLLVMGlobalFunctions(const GlobalVariable *global)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4190
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a0b46a2a5ff2165d17993a071d9cc82c1"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a0b46a2a5ff2165d17993a071d9cc82c1">SVF::LLVMModuleSet::getLLVMGlobalFunctions</a></div><div class="ttdeci">std::vector< const Function * > getLLVMGlobalFunctions(const GlobalVariable *global)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00561">LLVMModule.cpp:561</a></div></div>
|
|
4237
4191
|
<div class="ttc" id="aclassSVF_1_1SVFStat_html_aa4950ec26b66a085ad38ac154b789db5"><div class="ttname"><a href="classSVF_1_1SVFStat.html#aa4950ec26b66a085ad38ac154b789db5">SVF::SVFStat::timeOfBuildingLLVMModule</a></div><div class="ttdeci">static double timeOfBuildingLLVMModule</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00090">SVFStat.h:90</a></div></div>
|
|
4238
4192
|
<div class="ttc" id="anamespaceSVF_html_a0fd33072b099f61eaa642e94ed0c03fc"><div class="ttname"><a href="namespaceSVF.html#a0fd33072b099f61eaa642e94ed0c03fc">SVF::GlobalAlias</a></div><div class="ttdeci">llvm::GlobalAlias GlobalAlias</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00126">BasicTypes.h:126</a></div></div>
|
|
4239
4193
|
<div class="ttc" id="anamespaceSVF_html_aedd9d023a68dddd66314be63bb8e48d2"><div class="ttname"><a href="namespaceSVF.html#aedd9d023a68dddd66314be63bb8e48d2">SVF::operator></a></div><div class="ttdeci">IntervalValue operator>(const IntervalValue &lhs, const IntervalValue &rhs)</div><div class="ttdoc">Greater than IntervalValues.</div><div class="ttdef"><b>Definition:</b> <a href="IntervalValue_8h_source.html#l00581">IntervalValue.h:581</a></div></div>
|
|
4240
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_af8edfe08027020f14b81b44362c6018e"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#af8edfe08027020f14b81b44362c6018e">SVF::LLVMModuleSet::build</a></div><div class="ttdeci">void build()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4194
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_af8edfe08027020f14b81b44362c6018e"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#af8edfe08027020f14b81b44362c6018e">SVF::LLVMModuleSet::build</a></div><div class="ttdeci">void build()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00138">LLVMModule.cpp:138</a></div></div>
|
|
4241
4195
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html_aa6627399cf4d30d576f76f681d83449d"><div class="ttname"><a href="classSVF_1_1SVFModule.html#aa6627399cf4d30d576f76f681d83449d">SVF::SVFModule::addAliasSet</a></div><div class="ttdeci">void addAliasSet(SVFGlobalValue *alias)</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00116">SVFModule.h:116</a></div></div>
|
|
4242
4196
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ac3e70bd338be3a54330be5dc10321eb3"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac3e70bd338be3a54330be5dc10321eb3">SVF::LLVMModuleSet::LLVMValue2SVFOtherValue</a></div><div class="ttdeci">LLVMValue2SVFOtherValueMap LLVMValue2SVFOtherValue</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00085">LLVMModule.h:85</a></div></div>
|
|
4243
4197
|
<div class="ttc" id="aclassSVF_1_1SVFStat_html_ac9d390c417df6f6af6b274618b87010d"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ac9d390c417df6f6af6b274618b87010d">SVF::SVFStat::getClk</a></div><div class="ttdeci">static double getClk(bool mark=false)</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8cpp_source.html#l00047">SVFStat.cpp:47</a></div></div>
|
|
4244
4198
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ac1a9d20d62066ec4e181fad223669e32"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac1a9d20d62066ec4e181fad223669e32">SVF::LLVMModuleSet::getContext</a></div><div class="ttdeci">LLVMContext & getContext() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00312">LLVMModule.h:312</a></div></div>
|
|
4245
|
-
<div class="ttc" id="aclassSVF_1_1SVFVirtualCallInst_html"><div class="ttname"><a href="classSVF_1_1SVFVirtualCallInst.html">SVF::SVFVirtualCallInst</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4199
|
+
<div class="ttc" id="aclassSVF_1_1SVFVirtualCallInst_html"><div class="ttname"><a href="classSVF_1_1SVFVirtualCallInst.html">SVF::SVFVirtualCallInst</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00729">SVFValue.h:729</a></div></div>
|
|
4246
4200
|
<div class="ttc" id="anamespaceSVF_html_a146d286041987860388da3d8bc85cee3"><div class="ttname"><a href="namespaceSVF.html#a146d286041987860388da3d8bc85cee3">SVF::ArrayType</a></div><div class="ttdeci">llvm::ArrayType ArrayType</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00093">BasicTypes.h:93</a></div></div>
|
|
4247
|
-
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4201
|
+
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html">SVF::SVFBasicBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00484">SVFValue.h:484</a></div></div>
|
|
4248
4202
|
<div class="ttc" id="aclassSVF_1_1SVFValue_html"><div class="ttname"><a href="classSVF_1_1SVFValue.html">SVF::SVFValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00150">SVFValue.h:150</a></div></div>
|
|
4249
4203
|
<div class="ttc" id="aclassSVF_1_1SVFFunctionType_html"><div class="ttname"><a href="classSVF_1_1SVFFunctionType.html">SVF::SVFFunctionType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00385">SVFType.h:385</a></div></div>
|
|
4250
4204
|
<div class="ttc" id="acJSON_8h_html_ad4c68ea99a26b0a98ad9a79982960458"><div class="ttname"><a href="cJSON_8h.html#ad4c68ea99a26b0a98ad9a79982960458">string</a></div><div class="ttdeci">const char *const string</div><div class="ttdef"><b>Definition:</b> <a href="cJSON_8h_source.html#l00172">cJSON.h:172</a></div></div>
|
|
@@ -4252,48 +4206,48 @@ Friends</h2></td></tr>
|
|
|
4252
4206
|
<div class="ttc" id="aclassSVF_1_1SVFArrayType_html"><div class="ttname"><a href="classSVF_1_1SVFArrayType.html">SVF::SVFArrayType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00443">SVFType.h:443</a></div></div>
|
|
4253
4207
|
<div class="ttc" id="aLLVMModule_8cpp_html_a10ab7c7da3a458495d8528b9e90d714b"><div class="ttname"><a href="LLVMModule_8cpp.html#a10ab7c7da3a458495d8528b9e90d714b">SVF_MAIN_FUNC_NAME</a></div><div class="ttdeci">#define SVF_MAIN_FUNC_NAME</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00068">LLVMModule.cpp:68</a></div></div>
|
|
4254
4208
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a42439790c217254ce5404622b197b3d0"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a42439790c217254ce5404622b197b3d0">SVF::LLVMModuleSet::LLVMInst2SVFInst</a></div><div class="ttdeci">LLVMInst2SVFInstMap LLVMInst2SVFInst</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00082">LLVMModule.h:82</a></div></div>
|
|
4255
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8820d1df9098db6eadf3a9c67e380e55"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8820d1df9098db6eadf3a9c67e380e55">SVF::LLVMModuleSet::loadExtAPIModules</a></div><div class="ttdeci">void loadExtAPIModules()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4209
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8820d1df9098db6eadf3a9c67e380e55"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8820d1df9098db6eadf3a9c67e380e55">SVF::LLVMModuleSet::loadExtAPIModules</a></div><div class="ttdeci">void loadExtAPIModules()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00537">LLVMModule.cpp:537</a></div></div>
|
|
4256
4210
|
<div class="ttc" id="aclassSVF_1_1SVFType_html"><div class="ttname"><a href="classSVF_1_1SVFType.html">SVF::SVFType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00242">SVFType.h:242</a></div></div>
|
|
4257
4211
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html_a8a0fe93cc13b799fc28540fb312573c6"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a8a0fe93cc13b799fc28540fb312573c6">SVF::SVFModule::addFunctionSet</a></div><div class="ttdeci">void addFunctionSet(SVFFunction *svfFunc)</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00107">SVFModule.h:107</a></div></div>
|
|
4258
4212
|
<div class="ttc" id="aclassSVF_1_1StInfo_html"><div class="ttname"><a href="classSVF_1_1StInfo.html">SVF::StInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00132">SVFType.h:132</a></div></div>
|
|
4259
4213
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aee80b29e5246e3eaa0e30e165346101f"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aee80b29e5246e3eaa0e30e165346101f">SVF::LLVMModuleSet::FunDeclToDefMap</a></div><div class="ttdeci">FunDeclToDefMapTy FunDeclToDefMap</div><div class="ttdoc">Function declaration to function definition map.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00074">LLVMModule.h:74</a></div></div>
|
|
4260
4214
|
<div class="ttc" id="aclassSVF_1_1SVFStructType_html"><div class="ttname"><a href="classSVF_1_1SVFStructType.html">SVF::SVFStructType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00410">SVFType.h:410</a></div></div>
|
|
4261
|
-
<div class="ttc" id="aclassSVF_1_1SVFConstant_html"><div class="ttname"><a href="classSVF_1_1SVFConstant.html">SVF::SVFConstant</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4215
|
+
<div class="ttc" id="aclassSVF_1_1SVFConstant_html"><div class="ttname"><a href="classSVF_1_1SVFConstant.html">SVF::SVFConstant</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00789">SVFValue.h:789</a></div></div>
|
|
4262
4216
|
<div class="ttc" id="anamespaceSVF_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="BasicTypes_8h_source.html#l00085">BasicTypes.h:85</a></div></div>
|
|
4263
4217
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a3a23aa54459a068e16c96e5b5eb72f77"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3a23aa54459a068e16c96e5b5eb72f77">SVF::LLVMUtil::getVCallVtblPtr</a></div><div class="ttdeci">const Value * getVCallVtblPtr(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00922">LLVMUtil.cpp:922</a></div></div>
|
|
4264
4218
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a8a77403306e97ab4cb31a56d38bba5be"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a8a77403306e97ab4cb31a56d38bba5be">SVF::LLVMUtil::isConstDataOrAggData</a></div><div class="ttdeci">bool isConstDataOrAggData(const Value *val)</div><div class="ttdoc">Return true if the value refers to constant data, e.g., i32 0.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00383">LLVMUtil.h:383</a></div></div>
|
|
4265
4219
|
<div class="ttc" id="anamespaceSVF_html_a2bf58575ac7d068e0f1a4cf953b9e6cb"><div class="ttname"><a href="namespaceSVF.html#a2bf58575ac7d068e0f1a4cf953b9e6cb">SVF::StructType</a></div><div class="ttdeci">llvm::StructType StructType</div><div class="ttdoc">LLVM types.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00092">BasicTypes.h:92</a></div></div>
|
|
4266
4220
|
<div class="ttc" id="anamespaceSVF_html_a2b28f48dde0a9a91d251e654ce1f9477"><div class="ttname"><a href="namespaceSVF.html#a2b28f48dde0a9a91d251e654ce1f9477">SVF::ConstantStruct</a></div><div class="ttdeci">llvm::ConstantStruct ConstantStruct</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00104">BasicTypes.h:104</a></div></div>
|
|
4267
|
-
<div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4268
|
-
<div class="ttc" id="aclassSVF_1_1SVFOtherValue_html"><div class="ttname"><a href="classSVF_1_1SVFOtherValue.html">SVF::SVFOtherValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4221
|
+
<div class="ttc" id="aclassSVF_1_1SVFFunction_html"><div class="ttname"><a href="classSVF_1_1SVFFunction.html">SVF::SVFFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00270">SVFValue.h:270</a></div></div>
|
|
4222
|
+
<div class="ttc" id="aclassSVF_1_1SVFOtherValue_html"><div class="ttname"><a href="classSVF_1_1SVFOtherValue.html">SVF::SVFOtherValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l01027">SVFValue.h:1027</a></div></div>
|
|
4269
4223
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ad8a8c32a09340f491fffffcb07dd7a41"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ad8a8c32a09340f491fffffcb07dd7a41">SVF::LLVMUtil::isIRFile</a></div><div class="ttdeci">bool isIRFile(const std::string &filename)</div><div class="ttdoc">Check whether a file is an LLVM IR file.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00402">LLVMUtil.cpp:402</a></div></div>
|
|
4270
4224
|
<div class="ttc" id="aclassSVF_1_1Options_html_a3a718b0a27c2d13878c0718af97ad73d"><div class="ttname"><a href="classSVF_1_1Options.html#a3a718b0a27c2d13878c0718af97ad73d">SVF::Options::SVFMain</a></div><div class="ttdeci">static const Option< bool > SVFMain</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00214">Options.h:214</a></div></div>
|
|
4271
4225
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a9fe3fa15a6a0ec25864cb8439a45596e"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a9fe3fa15a6a0ec25864cb8439a45596e">SVF::LLVMModuleSet::getMainLLVMModule</a></div><div class="ttdeci">Module * getMainLLVMModule() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00307">LLVMModule.h:307</a></div></div>
|
|
4272
|
-
<div class="ttc" id="aclassSVF_1_1SVFConstantInt_html"><div class="ttname"><a href="classSVF_1_1SVFConstantInt.html">SVF::SVFConstantInt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4273
|
-
<div class="ttc" id="aclassSVF_1_1SVFConstantFP_html"><div class="ttname"><a href="classSVF_1_1SVFConstantFP.html">SVF::SVFConstantFP</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4274
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a298966366b02d0a34f409c2c77da3789"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a298966366b02d0a34f409c2c77da3789">SVF::LLVMModuleSet::loadModules</a></div><div class="ttdeci">void loadModules(const std::vector< std::string > &moduleNameVec)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4226
|
+
<div class="ttc" id="aclassSVF_1_1SVFConstantInt_html"><div class="ttname"><a href="classSVF_1_1SVFConstantInt.html">SVF::SVFConstantInt</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00922">SVFValue.h:922</a></div></div>
|
|
4227
|
+
<div class="ttc" id="aclassSVF_1_1SVFConstantFP_html"><div class="ttname"><a href="classSVF_1_1SVFConstantFP.html">SVF::SVFConstantFP</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00956">SVFValue.h:956</a></div></div>
|
|
4228
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a298966366b02d0a34f409c2c77da3789"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a298966366b02d0a34f409c2c77da3789">SVF::LLVMModuleSet::loadModules</a></div><div class="ttdeci">void loadModules(const std::vector< std::string > &moduleNameVec)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00482">LLVMModule.cpp:482</a></div></div>
|
|
4275
4229
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a32558da64f03452c502ec57d1e106427"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a32558da64f03452c502ec57d1e106427">SVF::LLVMModuleSet::hasDefinition</a></div><div class="ttdeci">bool hasDefinition(const Function *fun) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00253">LLVMModule.h:253</a></div></div>
|
|
4276
|
-
<div class="ttc" id="aclassSVF_1_1SVFGlobalValue_html"><div class="ttname"><a href="classSVF_1_1SVFGlobalValue.html">SVF::SVFGlobalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4230
|
+
<div class="ttc" id="aclassSVF_1_1SVFGlobalValue_html"><div class="ttname"><a href="classSVF_1_1SVFGlobalValue.html">SVF::SVFGlobalValue</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00812">SVFValue.h:812</a></div></div>
|
|
4277
4231
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ad06a92bf8bc556de742e0ffdf79ffafe"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ad06a92bf8bc556de742e0ffdf79ffafe">SVF::LLVMModuleSet::cxts</a></div><div class="ttdeci">std::unique_ptr< LLVMContext > cxts</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00069">LLVMModule.h:69</a></div></div>
|
|
4278
4232
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html_a1357c876eccedd58b3abe68875b3a570"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a1357c876eccedd58b3abe68875b3a570">SVF::SVFModule::pagReadFromTXT</a></div><div class="ttdeci">static bool pagReadFromTXT()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00099">SVFModule.h:99</a></div></div>
|
|
4279
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a52853bd34a394882c6fd0fc73739c9f2"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2">SVF::LLVMModuleSet::collectSimpleTypeInfo</a></div><div class="ttdeci">StInfo * collectSimpleTypeInfo(const Type *T)</div><div class="ttdoc">Collect simple type (non-aggregate) info.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4233
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a52853bd34a394882c6fd0fc73739c9f2"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a52853bd34a394882c6fd0fc73739c9f2">SVF::LLVMModuleSet::collectSimpleTypeInfo</a></div><div class="ttdeci">StInfo * collectSimpleTypeInfo(const Type *T)</div><div class="ttdoc">Collect simple type (non-aggregate) info.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01266">LLVMModule.cpp:1266</a></div></div>
|
|
4280
4234
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ae365189769640adb919a23c36978e5e2"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae365189769640adb919a23c36978e5e2">SVF::LLVMModuleSet::owned_modules</a></div><div class="ttdeci">std::vector< std::unique_ptr< Module > > owned_modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00070">LLVMModule.h:70</a></div></div>
|
|
4281
4235
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a43832e93a42ae43d44b0cc160981678f"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a43832e93a42ae43d44b0cc160981678f">SVF::LLVMModuleSet::svfModule</a></div><div class="ttdeci">SVFModule * svfModule</div><div class="ttdoc">Borrowed from singleton SVFModule::svfModule.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00068">LLVMModule.h:68</a></div></div>
|
|
4282
4236
|
<div class="ttc" id="aclassSVF_1_1StInfo_html_a1a07c2b1415c29d7d70791c6dfe602a3"><div class="ttname"><a href="classSVF_1_1StInfo.html#a1a07c2b1415c29d7d70791c6dfe602a3">SVF::StInfo::setNumOfFieldsAndElems</a></div><div class="ttdeci">void setNumOfFieldsAndElems(u32_t nf, u32_t ne)</div><div class="ttdoc">Set number of fields and elements of an aggrate.</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00218">SVFType.h:218</a></div></div>
|
|
4283
4237
|
<div class="ttc" id="aclassSVF_1_1SymbolTableInfo_html_a267169023fc4f8dd66b145f7231fec11"><div class="ttname"><a href="classSVF_1_1SymbolTableInfo.html#a267169023fc4f8dd66b145f7231fec11">SVF::SymbolTableInfo::SymbolInfo</a></div><div class="ttdeci">static SymbolTableInfo * SymbolInfo()</div><div class="ttdoc">Singleton design here to make sure we only have one instance during any analysis.</div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableInfo_8cpp_source.html#l00081">SymbolTableInfo.cpp:81</a></div></div>
|
|
4284
4238
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9e0c786488dfdc4605d4cbcf9943c85a"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9e0c786488dfdc4605d4cbcf9943c85a">SVF::LLVMUtil::getGlobalRep</a></div><div class="ttdeci">const Value * getGlobalRep(const Value *val)</div><div class="ttdoc">find the unique defined global across multiple modules</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00390">LLVMUtil.h:390</a></div></div>
|
|
4285
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8af6b911b728713f66f7c809d5c0fbf1"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8af6b911b728713f66f7c809d5c0fbf1">SVF::LLVMModuleSet::addSVFMain</a></div><div class="ttdeci">void addSVFMain()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4286
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8ba9092747108e0289014d52465a692d"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8ba9092747108e0289014d52465a692d">SVF::LLVMModuleSet::initDomTree</a></div><div class="ttdeci">void initDomTree(SVFFunction *func, const Function *f)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4239
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8af6b911b728713f66f7c809d5c0fbf1"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8af6b911b728713f66f7c809d5c0fbf1">SVF::LLVMModuleSet::addSVFMain</a></div><div class="ttdeci">void addSVFMain()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00650">LLVMModule.cpp:650</a></div></div>
|
|
4240
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8ba9092747108e0289014d52465a692d"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8ba9092747108e0289014d52465a692d">SVF::LLVMModuleSet::initDomTree</a></div><div class="ttdeci">void initDomTree(SVFFunction *func, const Function *f)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00370">LLVMModule.cpp:370</a></div></div>
|
|
4287
4241
|
<div class="ttc" id="anamespaceSVF_html_aa7a770b5dd5cd0e37d06a1088f252906"><div class="ttname"><a href="namespaceSVF.html#aa7a770b5dd5cd0e37d06a1088f252906">SVF::Module</a></div><div class="ttdeci">llvm::Module Module</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00082">BasicTypes.h:82</a></div></div>
|
|
4288
4242
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_ab1b4c565ae6be788b934defc21a5cfaf"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#ab1b4c565ae6be788b934defc21a5cfaf">SVF::LLVMUtil::isVirtualCallSite</a></div><div class="ttdeci">bool isVirtualCallSite(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00734">LLVMUtil.cpp:734</a></div></div>
|
|
4289
4243
|
<div class="ttc" id="anamespaceSVF_html_a86863d104a3930b3a806935d92ddbf30"><div class="ttname"><a href="namespaceSVF.html#a86863d104a3930b3a806935d92ddbf30">SVF::SMDiagnostic</a></div><div class="ttdeci">llvm::SMDiagnostic SMDiagnostic</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00088">BasicTypes.h:88</a></div></div>
|
|
4290
4244
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ae19e38054c55d5822dfc83a12f12aa60"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae19e38054c55d5822dfc83a12f12aa60">SVF::LLVMModuleSet::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00318">LLVMModule.h:318</a></div></div>
|
|
4291
4245
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a22ef185e767ff76c098e75126c885400"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a22ef185e767ff76c098e75126c885400">SVF::SVFUtil::isExtCall</a></div><div class="ttdeci">bool isExtCall(const SVFFunction *fun)</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00309">SVFUtil.h:309</a></div></div>
|
|
4292
4246
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a428bd75b33fab60988d8758090712f29"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a428bd75b33fab60988d8758090712f29">SVF::LLVMUtil::isArgOfUncalledFunction</a></div><div class="ttdeci">bool isArgOfUncalledFunction(const Value *val)</div><div class="ttdoc">Return true if the argument in a function does not have a caller.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00202">LLVMUtil.h:202</a></div></div>
|
|
4293
|
-
<div class="ttc" id="aclassSVF_1_1SVFCallInst_html_ac979b49b449b97b2a23f195cb107ec77"><div class="ttname"><a href="classSVF_1_1SVFCallInst.html#ac979b49b449b97b2a23f195cb107ec77">SVF::SVFCallInst::addArgument</a></div><div class="ttdeci">void addArgument(const SVFValue *a)</div><div class="ttdoc">attributes to be set only through Module builders e.g., LLVMModule</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4247
|
+
<div class="ttc" id="aclassSVF_1_1SVFCallInst_html_ac979b49b449b97b2a23f195cb107ec77"><div class="ttname"><a href="classSVF_1_1SVFCallInst.html#ac979b49b449b97b2a23f195cb107ec77">SVF::SVFCallInst::addArgument</a></div><div class="ttdeci">void addArgument(const SVFValue *a)</div><div class="ttdoc">attributes to be set only through Module builders e.g., LLVMModule</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00669">SVFValue.h:669</a></div></div>
|
|
4294
4248
|
<div class="ttc" id="anamespaceSVF_html_ab34383ee87cd45eb485fa29db482ffef"><div class="ttname"><a href="namespaceSVF.html#ab34383ee87cd45eb485fa29db482ffef">SVF::PostDominatorTree</a></div><div class="ttdeci">llvm::PostDominatorTree PostDominatorTree</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00134">BasicTypes.h:134</a></div></div>
|
|
4295
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aa8de934358332505d4805db137d8ec29"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29">SVF::LLVMModuleSet::collectArrayInfo</a></div><div class="ttdeci">StInfo * collectArrayInfo(const ArrayType *T)</div><div class="ttdoc">Collect the array info.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4296
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a4ca8c4678a7fefe26372fc1f4b2880fd"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a4ca8c4678a7fefe26372fc1f4b2880fd">SVF::LLVMModuleSet::createSVFDataStructure</a></div><div class="ttdeci">void createSVFDataStructure()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4249
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_aa8de934358332505d4805db137d8ec29"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#aa8de934358332505d4805db137d8ec29">SVF::LLVMModuleSet::collectArrayInfo</a></div><div class="ttdeci">StInfo * collectArrayInfo(const ArrayType *T)</div><div class="ttdoc">Collect the array info.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01146">LLVMModule.cpp:1146</a></div></div>
|
|
4250
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a4ca8c4678a7fefe26372fc1f4b2880fd"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a4ca8c4678a7fefe26372fc1f4b2880fd">SVF::LLVMModuleSet::createSVFDataStructure</a></div><div class="ttdeci">void createSVFDataStructure()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00153">LLVMModule.cpp:153</a></div></div>
|
|
4297
4251
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a7f8e61cf5d838d7a2e862bc6955f16be"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a7f8e61cf5d838d7a2e862bc6955f16be">SVF::LLVMModuleSet::SVFValue2LLVMValue</a></div><div class="ttdeci">SVFValue2LLVMValueMap SVFValue2LLVMValue</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00086">LLVMModule.h:86</a></div></div>
|
|
4298
4252
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a72502f7f536418621485e90ab98c2016"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a72502f7f536418621485e90ab98c2016">SVF::SVFUtil::move</a></div><div class="ttdeci">constexpr std::remove_reference< T >::type && move(T &&t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00670">SVFUtil.h:670</a></div></div>
|
|
4299
4253
|
<div class="ttc" id="anamespaceSVF_html_a1c7c7ac12791c0ae386283c0a4f127ba"><div class="ttname"><a href="namespaceSVF.html#a1c7c7ac12791c0ae386283c0a4f127ba">SVF::raw_fd_ostream</a></div><div class="ttdeci">llvm::raw_fd_ostream raw_fd_ostream</div><div class="ttdoc">LLVM outputs.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00257">BasicTypes.h:257</a></div></div>
|
|
@@ -4308,52 +4262,51 @@ Friends</h2></td></tr>
|
|
|
4308
4262
|
<div class="ttc" id="anamespaceSVF_html_a4f21e91ff8eaea5207afe5c60dbd78d7"><div class="ttname"><a href="namespaceSVF.html#a4f21e91ff8eaea5207afe5c60dbd78d7">SVF::OrderedSet</a></div><div class="ttdeci">std::set< Key, Compare, Allocator > OrderedSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00106">SVFType.h:106</a></div></div>
|
|
4309
4263
|
<div class="ttc" id="aclassSVF_1_1Options_html_a53f783c80f368bcdca6c7620229d6f8e"><div class="ttname"><a href="classSVF_1_1Options.html#a53f783c80f368bcdca6c7620229d6f8e">SVF::Options::Graphtxt</a></div><div class="ttdeci">static const Option< std::string > Graphtxt</div><div class="ttdef"><b>Definition:</b> <a href="Options_8h_source.html#l00213">Options.h:213</a></div></div>
|
|
4310
4264
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ab671d5bb9ca5761e2b438a4d4da229cf"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ab671d5bb9ca5761e2b438a4d4da229cf">SVF::LLVMModuleSet::addFunctionMap</a></div><div class="ttdeci">void addFunctionMap(const Function *func, SVFFunction *svfFunc)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00145">LLVMModule.h:145</a></div></div>
|
|
4311
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ac6a5540354696f4c9170e0a5832ba70e"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac6a5540354696f4c9170e0a5832ba70e">SVF::LLVMModuleSet::initSVFFunction</a></div><div class="ttdeci">void initSVFFunction()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4265
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ac6a5540354696f4c9170e0a5832ba70e"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ac6a5540354696f4c9170e0a5832ba70e">SVF::LLVMModuleSet::initSVFFunction</a></div><div class="ttdeci">void initSVFFunction()</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00299">LLVMModule.cpp:299</a></div></div>
|
|
4312
4266
|
<div class="ttc" id="anamespaceSVF_html_a3436a988bf80c021cd8022fb445b66d5"><div class="ttname"><a href="namespaceSVF.html#a3436a988bf80c021cd8022fb445b66d5">SVF::succ_const_iterator</a></div><div class="ttdeci">llvm::succ_const_iterator succ_const_iterator</div><div class="ttdoc">LLVM Iterators.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00269">BasicTypes.h:269</a></div></div>
|
|
4313
4267
|
<div class="ttc" id="aclassSVF_1_1SymbolTableBuilder_html"><div class="ttname"><a href="classSVF_1_1SymbolTableBuilder.html">SVF::SymbolTableBuilder</a></div><div class="ttdef"><b>Definition:</b> <a href="SymbolTableBuilder_8h_source.html#l00042">SymbolTableBuilder.h:42</a></div></div>
|
|
4314
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a25821b0feeb3b08e00ec9d444520b727"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727">SVF::LLVMModuleSet::getSVFConstantData</a></div><div class="ttdeci">SVFConstantData * getSVFConstantData(const ConstantData *cd)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4268
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a25821b0feeb3b08e00ec9d444520b727"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a25821b0feeb3b08e00ec9d444520b727">SVF::LLVMModuleSet::getSVFConstantData</a></div><div class="ttdeci">SVFConstantData * getSVFConstantData(const ConstantData *cd)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00926">LLVMModule.cpp:926</a></div></div>
|
|
4315
4269
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_aed0b0b9f035057552a6a82154fd88e61"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#aed0b0b9f035057552a6a82154fd88e61">SVF::SVFUtil::outs</a></div><div class="ttdeci">std::ostream & outs()</div><div class="ttdoc">Overwrite llvm::outs()</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8h_source.html#l00050">SVFUtil.h:50</a></div></div>
|
|
4316
4270
|
<div class="ttc" id="aclassSVF_1_1SVFIntegerType_html"><div class="ttname"><a href="classSVF_1_1SVFIntegerType.html">SVF::SVFIntegerType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00357">SVFType.h:357</a></div></div>
|
|
4317
4271
|
<div class="ttc" id="aclassSVF_1_1SVFStat_html_ae89293bc063bdc74a988e9c37c70321e"><div class="ttname"><a href="classSVF_1_1SVFStat.html#ae89293bc063bdc74a988e9c37c70321e">SVF::SVFStat::timeOfBuildingSymbolTable</a></div><div class="ttdeci">static double timeOfBuildingSymbolTable</div><div class="ttdef"><b>Definition:</b> <a href="SVFStat_8h_source.html#l00091">SVFStat.h:91</a></div></div>
|
|
4318
4272
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a3d34fcdfc98add848a34fd5259c11eb2"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a3d34fcdfc98add848a34fd5259c11eb2">SVF::LLVMUtil::getDefFunForMultipleModule</a></div><div class="ttdeci">const Function * getDefFunForMultipleModule(const Function *fun)</div><div class="ttdoc">Get the definition of a function across multiple modules.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00058">LLVMUtil.h:58</a></div></div>
|
|
4319
4273
|
<div class="ttc" id="aclassSVF_1_1SVFType_html_a3ddabbd763acaaca28cacbabe5bc7f3b"><div class="ttname"><a href="classSVF_1_1SVFType.html#a3ddabbd763acaaca28cacbabe5bc7f3b">SVF::SVFType::setPointerTo</a></div><div class="ttdeci">void setPointerTo(const SVFPointerType *ty)</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00291">SVFType.h:291</a></div></div>
|
|
4320
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a74256f36f0fdc242df9729906c34efbc"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc">SVF::LLVMModuleSet::getOtherSVFConstant</a></div><div class="ttdeci">SVFConstant * getOtherSVFConstant(const Constant *oc)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4274
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a74256f36f0fdc242df9729906c34efbc"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a74256f36f0fdc242df9729906c34efbc">SVF::LLVMModuleSet::getOtherSVFConstant</a></div><div class="ttdeci">SVFConstant * getOtherSVFConstant(const Constant *oc)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00973">LLVMModule.cpp:973</a></div></div>
|
|
4321
4275
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html">SVF::LLVMModuleSet</a></div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00043">LLVMModule.h:43</a></div></div>
|
|
4322
|
-
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a0d5031bd11b6372803082111ec2cb4f6"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a0d5031bd11b6372803082111ec2cb4f6">SVF::SVFFunction::addBasicBlock</a></div><div class="ttdeci">void addBasicBlock(const SVFBasicBlock *bb)</div><div class="ttdoc">all formal arguments of this function</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4276
|
+
<div class="ttc" id="aclassSVF_1_1SVFFunction_html_a0d5031bd11b6372803082111ec2cb4f6"><div class="ttname"><a href="classSVF_1_1SVFFunction.html#a0d5031bd11b6372803082111ec2cb4f6">SVF::SVFFunction::addBasicBlock</a></div><div class="ttdeci">void addBasicBlock(const SVFBasicBlock *bb)</div><div class="ttdoc">all formal arguments of this function</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00298">SVFValue.h:298</a></div></div>
|
|
4323
4277
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_ae74f307b6f96950ceedb2c375ef1c3a3"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#ae74f307b6f96950ceedb2c375ef1c3a3">SVF::LLVMModuleSet::getSVFInstruction</a></div><div class="ttdeci">SVFInstruction * getSVFInstruction(const Instruction *inst) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00209">LLVMModule.h:209</a></div></div>
|
|
4324
4278
|
<div class="ttc" id="anamespaceSVF_html_a67f3f86344f028cacfbeb08caaf7bb0f"><div class="ttname"><a href="namespaceSVF.html#a67f3f86344f028cacfbeb08caaf7bb0f">SVF::GlobalValue</a></div><div class="ttdeci">llvm::GlobalValue GlobalValue</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00086">BasicTypes.h:86</a></div></div>
|
|
4325
4279
|
<div class="ttc" id="anamespaceSVF_1_1SVFUtil_html_a4550f2fb815882edfb666ac818792064"><div class="ttname"><a href="namespaceSVF_1_1SVFUtil.html#a4550f2fb815882edfb666ac818792064">SVF::SVFUtil::pasMsg</a></div><div class="ttdeci">std::string pasMsg(const std::string &msg)</div><div class="ttdoc">Print each pass/phase message by converting a string into blue string output.</div><div class="ttdef"><b>Definition:</b> <a href="SVFUtil_8cpp_source.html#l00099">SVFUtil.cpp:99</a></div></div>
|
|
4326
4280
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a5badf03aeb1ebda02bc186bbb58a892a"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a5badf03aeb1ebda02bc186bbb58a892a">SVF::LLVMModuleSet::addOtherConstantMap</a></div><div class="ttdeci">void addOtherConstantMap(const Constant *cons, SVFConstant *svfcons)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00175">LLVMModule.h:175</a></div></div>
|
|
4327
4281
|
<div class="ttc" id="anamespaceSVF_html_abf85e29310b2e4df8925d00a5c081314"><div class="ttname"><a href="namespaceSVF.html#abf85e29310b2e4df8925d00a5c081314">SVF::Loop</a></div><div class="ttdeci">llvm::Loop Loop</div><div class="ttdoc">LLVM Loop.</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00138">BasicTypes.h:138</a></div></div>
|
|
4328
4282
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a9bd6f54920929e5ad35102ba2f2223da"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a9bd6f54920929e5ad35102ba2f2223da">SVF::LLVMUtil::getFunReachableBBs</a></div><div class="ttdeci">void getFunReachableBBs(const Function *svfFun, std::vector< const SVFBasicBlock * > &bbs)</div><div class="ttdoc">Get reachable basic block from function entry.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00071">LLVMUtil.cpp:71</a></div></div>
|
|
4329
|
-
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a38f8fdd93ef7222f408cbbb2a98a1cd5"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a38f8fdd93ef7222f408cbbb2a98a1cd5">SVF::SVFBasicBlock::addPredBasicBlock</a></div><div class="ttdeci">void addPredBasicBlock(const SVFBasicBlock *pred)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4283
|
+
<div class="ttc" id="aclassSVF_1_1SVFBasicBlock_html_a38f8fdd93ef7222f408cbbb2a98a1cd5"><div class="ttname"><a href="classSVF_1_1SVFBasicBlock.html#a38f8fdd93ef7222f408cbbb2a98a1cd5">SVF::SVFBasicBlock::addPredBasicBlock</a></div><div class="ttdeci">void addPredBasicBlock(const SVFBasicBlock *pred)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00512">SVFValue.h:512</a></div></div>
|
|
4330
4284
|
<div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_ad07f95e790b5c3a50c864155aa20a083"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#ad07f95e790b5c3a50c864155aa20a083">SVF::SVFLoopAndDomInfo::getPostDomTreeMap</a></div><div class="ttdeci">const Map< const SVFBasicBlock *, BBSet > & getPostDomTreeMap() const</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00105">SVFValue.h:105</a></div></div>
|
|
4331
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a7d61f479f52e1dc71a4ae7a4d62f3b6a"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a7d61f479f52e1dc71a4ae7a4d62f3b6a">SVF::LLVMModuleSet::setValueAttr</a></div><div class="ttdeci">void setValueAttr(const Value *val, SVFValue *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4285
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a7d61f479f52e1dc71a4ae7a4d62f3b6a"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a7d61f479f52e1dc71a4ae7a4d62f3b6a">SVF::LLVMModuleSet::setValueAttr</a></div><div class="ttdeci">void setValueAttr(const Value *val, SVFValue *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00900">LLVMModule.cpp:900</a></div></div>
|
|
4332
4286
|
<div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_ad478ac88bc07cf4d6d0ad3517b2c4ab3"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#ad478ac88bc07cf4d6d0ad3517b2c4ab3">SVF::SVFLoopAndDomInfo::BBSet</a></div><div class="ttdeci">Set< const SVFBasicBlock * > BBSet</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00055">SVFValue.h:55</a></div></div>
|
|
4333
4287
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a4c94a6c02fb89c1a1604c87414956acd"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4c94a6c02fb89c1a1604c87414956acd">SVF::LLVMUtil::getPrevInsts</a></div><div class="ttdeci">void getPrevInsts(const Instruction *curInst, std::vector< const SVFInstruction * > &instList)</div><div class="ttdoc">Get the previous instructions following control flow.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00306">LLVMUtil.cpp:306</a></div></div>
|
|
4334
|
-
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a7b8b93fec1dc8c63c0a5837a85b99129"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a7b8b93fec1dc8c63c0a5837a85b99129">SVF::LLVMUtil::llvmToString</a></div><div class="ttdeci">std::string llvmToString(const T &val)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00486">LLVMUtil.h:486</a></div></div>
|
|
4335
4288
|
<div class="ttc" id="aSVFFileSystem_8cpp_html_ab25baccb41e3b67ef0bfdaa1336c9649"><div class="ttname"><a href="SVFFileSystem_8cpp.html#ab25baccb41e3b67ef0bfdaa1336c9649">F</a></div><div class="ttdeci">#define F(f)</div></div>
|
|
4336
4289
|
<div class="ttc" id="aclassSVF_1_1StInfo_html_aae0736a5e99b11571af52e28500a6f9c"><div class="ttname"><a href="classSVF_1_1StInfo.html#aae0736a5e99b11571af52e28500a6f9c">SVF::StInfo::addFldWithType</a></div><div class="ttdeci">void addFldWithType(u32_t fldIdx, const SVFType *type, u32_t elemIdx)</div><div class="ttdoc">Add field index and element index and their corresponding type.</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8cpp_source.html#l00008">SVFValue.cpp:8</a></div></div>
|
|
4337
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4338
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a1f6cc76c996a0577b20b8cedd83fff92"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">SVF::LLVMModuleSet::collectTypeInfo</a></div><div class="ttdeci">StInfo * collectTypeInfo(const Type *ty)</div><div class="ttdoc">Collect a type info.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4290
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_afdd77bc1fca91f70b2ec362f1dacd392"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#afdd77bc1fca91f70b2ec362f1dacd392">SVF::LLVMModuleSet::getSVFValue</a></div><div class="ttdeci">SVFValue * getSVFValue(const Value *value)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01008">LLVMModule.cpp:1008</a></div></div>
|
|
4291
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a1f6cc76c996a0577b20b8cedd83fff92"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a1f6cc76c996a0577b20b8cedd83fff92">SVF::LLVMModuleSet::collectTypeInfo</a></div><div class="ttdeci">StInfo * collectTypeInfo(const Type *ty)</div><div class="ttdoc">Collect a type info.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l01065">LLVMModule.cpp:1065</a></div></div>
|
|
4339
4292
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a067661e0049314779a44c9600420820f"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a067661e0049314779a44c9600420820f">SVF::LLVMModuleSet::LLVMType2SVFType</a></div><div class="ttdeci">LLVMType2SVFTypeMap LLVMType2SVFType</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00087">LLVMModule.h:87</a></div></div>
|
|
4340
4293
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a4638a12f5481dff947b59cf8353e619b"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a4638a12f5481dff947b59cf8353e619b">SVF::LLVMUtil::isIntrinsicFun</a></div><div class="ttdeci">bool isIntrinsicFun(const Function *func)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00192">LLVMUtil.cpp:192</a></div></div>
|
|
4341
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8b5f24c873db1f6a0614d1dac48bb4bb"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8b5f24c873db1f6a0614d1dac48bb4bb">SVF::LLVMModuleSet::prePassSchedule</a></div><div class="ttdeci">void prePassSchedule()</div><div class="ttdoc">Invoke llvm passes to modify module.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4342
|
-
<div class="ttc" id="aclassSVF_1_1SVFArgument_html"><div class="ttname"><a href="classSVF_1_1SVFArgument.html">SVF::SVFArgument</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4294
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a8b5f24c873db1f6a0614d1dac48bb4bb"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a8b5f24c873db1f6a0614d1dac48bb4bb">SVF::LLVMModuleSet::prePassSchedule</a></div><div class="ttdeci">void prePassSchedule()</div><div class="ttdoc">Invoke llvm passes to modify module.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00437">LLVMModule.cpp:437</a></div></div>
|
|
4295
|
+
<div class="ttc" id="aclassSVF_1_1SVFArgument_html"><div class="ttname"><a href="classSVF_1_1SVFArgument.html">SVF::SVFArgument</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00853">SVFValue.h:853</a></div></div>
|
|
4343
4296
|
<div class="ttc" id="anamespaceSVF_html_ad49e4222ba46d9490b87a80df8b46800"><div class="ttname"><a href="namespaceSVF.html#ad49e4222ba46d9490b87a80df8b46800">SVF::ConstantFP</a></div><div class="ttdeci">llvm::ConstantFP ConstantFP</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00124">BasicTypes.h:124</a></div></div>
|
|
4344
4297
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_afbd60d5443c7fa1448813d00bb5d0fa7"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#afbd60d5443c7fa1448813d00bb5d0fa7">SVF::LLVMUtil::getNextInsts</a></div><div class="ttdeci">void getNextInsts(const Instruction *curInst, std::vector< const SVFInstruction * > &instList)</div><div class="ttdoc">Get the next instructions following control flow.</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l00277">LLVMUtil.cpp:277</a></div></div>
|
|
4345
4298
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a023ea6f179433fa4d007c98ddc38e3c5"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a023ea6f179433fa4d007c98ddc38e3c5">SVF::LLVMModuleSet::addOtherValueMap</a></div><div class="ttdeci">void addOtherValueMap(const Value *ov, SVFOtherValue *svfov)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00180">LLVMModule.h:180</a></div></div>
|
|
4346
4299
|
<div class="ttc" id="aclassSVF_1_1SVFOtherType_html"><div class="ttname"><a href="classSVF_1_1SVFOtherType.html">SVF::SVFOtherType</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00476">SVFType.h:476</a></div></div>
|
|
4347
|
-
<div class="ttc" id="aSVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DBUG model of each pass.</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#
|
|
4348
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a024f5de163fde6f63cb2d762b4b28d8a"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a024f5de163fde6f63cb2d762b4b28d8a">SVF::LLVMModuleSet::createSVFFunction</a></div><div class="ttdeci">void createSVFFunction(const Function *func)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4349
|
-
<div class="ttc" id="aclassSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4300
|
+
<div class="ttc" id="aSVFType_8h_html_a173ce1b9b505fdadf5613b663749d3b0"><div class="ttname"><a href="SVFType_8h.html#a173ce1b9b505fdadf5613b663749d3b0">DBOUT</a></div><div class="ttdeci">#define DBOUT(TYPE, X)</div><div class="ttdoc">LLVM debug macros, define type of your DBUG model of each pass.</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00543">SVFType.h:543</a></div></div>
|
|
4301
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a024f5de163fde6f63cb2d762b4b28d8a"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a024f5de163fde6f63cb2d762b4b28d8a">SVF::LLVMModuleSet::createSVFFunction</a></div><div class="ttdeci">void createSVFFunction(const Function *func)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00234">LLVMModule.cpp:234</a></div></div>
|
|
4302
|
+
<div class="ttc" id="aclassSVF_1_1SVFInstruction_html"><div class="ttname"><a href="classSVF_1_1SVFInstruction.html">SVF::SVFInstruction</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00587">SVFValue.h:587</a></div></div>
|
|
4350
4303
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html_a48d7f0643bb228701dcabb88ef541fca"><div class="ttname"><a href="classSVF_1_1SVFModule.html#a48d7f0643bb228701dcabb88ef541fca">SVF::SVFModule::addOtherValue</a></div><div class="ttdeci">void addOtherValue(SVFOtherValue *ov)</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00125">SVFModule.h:125</a></div></div>
|
|
4351
4304
|
<div class="ttc" id="aclassSVF_1_1SVFLoopAndDomInfo_html_acc409e328f641a2c9512beeb727f58c7"><div class="ttname"><a href="classSVF_1_1SVFLoopAndDomInfo.html#acc409e328f641a2c9512beeb727f58c7">SVF::SVFLoopAndDomInfo::setReachableBBs</a></div><div class="ttdeci">void setReachableBBs(BBList &bbs)</div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00136">SVFValue.h:136</a></div></div>
|
|
4352
4305
|
<div class="ttc" id="anamespaceSVF_html_a8234d4b959abc9123993bcff4eee34c1"><div class="ttname"><a href="namespaceSVF.html#a8234d4b959abc9123993bcff4eee34c1">SVF::Map</a></div><div class="ttdeci">std::unordered_map< Key, Value, Hash, KeyEqual, Allocator > Map</div><div class="ttdef"><b>Definition:</b> <a href="SVFType_8h_source.html#l00102">SVFType.h:102</a></div></div>
|
|
4353
4306
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a3204400c52ec55da70418471d5c9bad5"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a3204400c52ec55da70418471d5c9bad5">SVF::LLVMModuleSet::preProcessed</a></div><div class="ttdeci">static bool preProcessed</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00066">LLVMModule.h:66</a></div></div>
|
|
4354
4307
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html_ab930bb5449538c4d0da1297a103788a1"><div class="ttname"><a href="classSVF_1_1SVFModule.html#ab930bb5449538c4d0da1297a103788a1">SVF::SVFModule::getSVFModule</a></div><div class="ttdeci">static SVFModule * getSVFModule()</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8cpp_source.html#l00060">SVFModule.cpp:60</a></div></div>
|
|
4355
4308
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a852524c71831d7b2da0e9b0b6b191480"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a852524c71831d7b2da0e9b0b6b191480">SVF::LLVMModuleSet::LLVMArgument2SVFArgument</a></div><div class="ttdeci">LLVMArgument2SVFArgumentMap LLVMArgument2SVFArgument</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00083">LLVMModule.h:83</a></div></div>
|
|
4356
|
-
<div class="ttc" id="aclassSVF_1_1SVFConstantNullPtr_html"><div class="ttname"><a href="classSVF_1_1SVFConstantNullPtr.html">SVF::SVFConstantNullPtr</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#
|
|
4309
|
+
<div class="ttc" id="aclassSVF_1_1SVFConstantNullPtr_html"><div class="ttname"><a href="classSVF_1_1SVFConstantNullPtr.html">SVF::SVFConstantNullPtr</a></div><div class="ttdef"><b>Definition:</b> <a href="SVFValue_8h_source.html#l00983">SVFValue.h:983</a></div></div>
|
|
4357
4310
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_abba4111230f6009bbf50518ee36a9870"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#abba4111230f6009bbf50518ee36a9870">SVF::LLVMUtil::getPtrElementType</a></div><div class="ttdeci">static Type * getPtrElementType(const PointerType *pty)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8h_source.html#l00120">LLVMUtil.h:120</a></div></div>
|
|
4358
4311
|
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a3cbba2eb702a3481478b2590dfffa352"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a3cbba2eb702a3481478b2590dfffa352">SVF::LLVMModuleSet::getSVFGlobalValue</a></div><div class="ttdeci">SVFGlobalValue * getSVFGlobalValue(const GlobalValue *g) const</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8h_source.html#l00223">LLVMModule.h:223</a></div></div>
|
|
4359
4312
|
<div class="ttc" id="anamespaceSVF_1_1LLVMUtil_html_a718c8ec79f36cef5df2f4530541f2770"><div class="ttname"><a href="namespaceSVF_1_1LLVMUtil.html#a718c8ec79f36cef5df2f4530541f2770">SVF::LLVMUtil::getVCallIdx</a></div><div class="ttdeci">s32_t getVCallIdx(const CallBase *cs)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMUtil_8cpp_source.html#l01013">LLVMUtil.cpp:1013</a></div></div>
|
|
@@ -4366,7 +4319,7 @@ Friends</h2></td></tr>
|
|
|
4366
4319
|
<div class="ttc" id="anamespaceSVF_html_aacffd97ab4cb45aeae2e67ec479889aa"><div class="ttname"><a href="namespaceSVF.html#aacffd97ab4cb45aeae2e67ec479889aa">SVF::GlobalIFunc</a></div><div class="ttdeci">llvm::GlobalIFunc GlobalIFunc</div><div class="ttdef"><b>Definition:</b> <a href="BasicTypes_8h_source.html#l00127">BasicTypes.h:127</a></div></div>
|
|
4367
4320
|
<div class="ttc" id="aclassSVF_1_1SVFModule_html_acaba1ff38ed1fdd8a9a1251a1b36be92"><div class="ttname"><a href="classSVF_1_1SVFModule.html#acaba1ff38ed1fdd8a9a1251a1b36be92">SVF::SVFModule::setModuleIdentifier</a></div><div class="ttdeci">void setModuleIdentifier(const std::string &moduleIdentifier)</div><div class="ttdef"><b>Definition:</b> <a href="SVFModule_8h_source.html#l00089">SVFModule.h:89</a></div></div>
|
|
4368
4321
|
<div class="ttc" id="aLLVMModule_8cpp_html_aa18802f2f60ef8030c66a42f20f285af"><div class="ttname"><a href="LLVMModule_8cpp.html#aa18802f2f60ef8030c66a42f20f285af">SVF_GLOBAL_CTORS</a></div><div class="ttdeci">#define SVF_GLOBAL_CTORS</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00069">LLVMModule.cpp:69</a></div></div>
|
|
4369
|
-
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a20162d2894d6a12ba29410311fba4002"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a20162d2894d6a12ba29410311fba4002">SVF::LLVMModuleSet::initSVFBasicBlock</a></div><div class="ttdeci">void initSVFBasicBlock(const Function *func)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#
|
|
4322
|
+
<div class="ttc" id="aclassSVF_1_1LLVMModuleSet_html_a20162d2894d6a12ba29410311fba4002"><div class="ttname"><a href="classSVF_1_1LLVMModuleSet.html#a20162d2894d6a12ba29410311fba4002">SVF::LLVMModuleSet::initSVFBasicBlock</a></div><div class="ttdeci">void initSVFBasicBlock(const Function *func)</div><div class="ttdef"><b>Definition:</b> <a href="LLVMModule_8cpp_source.html#l00317">LLVMModule.cpp:317</a></div></div>
|
|
4370
4323
|
<!-- start footer part -->
|
|
4371
4324
|
<hr class="footer"/><address class="footer"><small>
|
|
4372
4325
|
Generated by  <a href="http://www.doxygen.org/index.html">
|