gitextract_sogryq7m/ ├── .clang-format ├── .clang-tidy ├── .git-blame-ignore-revs ├── .github/ │ └── workflows/ │ ├── clang-format.yml │ ├── docker.yml │ ├── hash_map.yml │ ├── linux.yml │ ├── mac.yml │ └── svf.yml ├── .gitignore ├── .travis.yml ├── CMakeLists.txt ├── Changelog ├── Dockerfile ├── LICENSE ├── README.md ├── dg.spec.rpkg ├── doc/ │ ├── CDA.md │ ├── DDA.md │ ├── PTA.md │ ├── README.md │ ├── SVF.md │ ├── compiling.md │ ├── compiling_ubuntu_trusty.md │ ├── compiling_ubuntu_xenial.md │ ├── downloading.md │ ├── llvm-slicer.md │ └── tools.md ├── include/ │ └── dg/ │ ├── ADT/ │ │ ├── Bits.h │ │ ├── Bitvector.h │ │ ├── DGContainer.h │ │ ├── DisjunctiveIntervalMap.h │ │ ├── HashMap.h │ │ ├── HashMapImpl.h │ │ ├── IntervalsList.h │ │ ├── Map.h │ │ ├── NumberSet.h │ │ ├── Queue.h │ │ ├── STLHashMap.h │ │ ├── SetQueue.h │ │ └── TslHopscotchHashMap.h │ ├── AnalysisOptions.h │ ├── BBlock.h │ ├── BBlockBase.h │ ├── BBlocksBuilder.h │ ├── BFS.h │ ├── CallGraph/ │ │ └── CallGraph.h │ ├── ControlDependence/ │ │ └── ControlDependenceAnalysisOptions.h │ ├── DFS.h │ ├── DG2Dot.h │ ├── DGParameters.h │ ├── DataDependence/ │ │ ├── DataDependence.h │ │ ├── DataDependenceAnalysisImpl.h │ │ └── DataDependenceAnalysisOptions.h │ ├── DependenceGraph.h │ ├── Dominators/ │ │ ├── DominanceFrontiers.h │ │ └── PostDominanceFrontiers.h │ ├── MemorySSA/ │ │ ├── Definitions.h │ │ ├── DefinitionsMap.h │ │ ├── MemorySSA.h │ │ └── ModRef.h │ ├── MemoryState.h │ ├── Node.h │ ├── NodesWalk.h │ ├── Offset.h │ ├── PointerAnalysis/ │ │ ├── MemoryObject.h │ │ ├── PSNode.h │ │ ├── Pointer.h │ │ ├── PointerAnalysis.h │ │ ├── PointerAnalysisFI.h │ │ ├── PointerAnalysisFS.h │ │ ├── PointerAnalysisFSInv.h │ │ ├── PointerAnalysisOptions.h │ │ ├── PointerGraph.h │ │ ├── PointerGraphOptimizations.h │ │ ├── PointerGraphValidator.h │ │ ├── PointsToMapping.h │ │ ├── PointsToSet.h │ │ └── PointsToSets/ │ │ ├── AlignedPointerIdPointsToSet.h │ │ ├── AlignedSmallOffsetsPointsToSet.h │ │ ├── LookupTable.h │ │ ├── OffsetsSetPointsToSet.h │ │ ├── PointerIdPointsToSet.h │ │ ├── SeparateOffsetsPointsToSet.h │ │ ├── SimplePointsToSet.h │ │ └── SmallOffsetsPointsToSet.h │ ├── ReadWriteGraph/ │ │ ├── DefSite.h │ │ ├── RWBBlock.h │ │ ├── RWNode.h │ │ ├── RWSubgraph.h │ │ └── ReadWriteGraph.h │ ├── SCC.h │ ├── Slicing.h │ ├── SubgraphBase.h │ ├── SubgraphNode.h │ ├── SystemDependenceGraph/ │ │ ├── DGArgumentPair.h │ │ ├── DGBBlock.h │ │ ├── DGElement.h │ │ ├── DGNode.h │ │ ├── DGNodeCall.h │ │ ├── DGParameters.h │ │ ├── DepDGElement.h │ │ ├── DependenceGraph.h │ │ └── SystemDependenceGraph.h │ ├── ValueRelations/ │ │ ├── Bucket.h │ │ ├── Relations.h │ │ └── RelationsGraph.h │ ├── legacy/ │ │ ├── Analysis.h │ │ ├── BFS.h │ │ ├── DFS.h │ │ ├── DataFlowAnalysis.h │ │ └── NodesWalk.h │ ├── llvm/ │ │ ├── CallGraph/ │ │ │ └── CallGraph.h │ │ ├── ControlDependence/ │ │ │ ├── ControlDependence.h │ │ │ ├── LLVMControlDependenceAnalysisImpl.h │ │ │ └── LLVMControlDependenceAnalysisOptions.h │ │ ├── DataDependence/ │ │ │ ├── DataDependence.h │ │ │ └── LLVMDataDependenceAnalysisOptions.h │ │ ├── Dominators/ │ │ │ └── Dominators.h │ │ ├── LLVMAnalysisOptions.h │ │ ├── LLVMDG2Dot.h │ │ ├── LLVMDGAssemblyAnnotationWriter.h │ │ ├── LLVMDependenceGraph.h │ │ ├── LLVMDependenceGraphBuilder.h │ │ ├── LLVMNode.h │ │ ├── LLVMSlicer.h │ │ ├── PointerAnalysis/ │ │ │ ├── DGPointerAnalysis.h │ │ │ ├── LLVMPointerAnalysisOptions.h │ │ │ ├── LLVMPointsToSet.h │ │ │ ├── PointerAnalysis.h │ │ │ ├── PointerGraph.h │ │ │ └── SVFPointerAnalysis.h │ │ ├── SystemDependenceGraph/ │ │ │ ├── SDG2Dot.h │ │ │ ├── SystemDependenceGraph.h │ │ │ └── SystemDependenceGraphBuilder.h │ │ ├── ThreadRegions/ │ │ │ ├── ControlFlowGraph.h │ │ │ ├── MayHappenInParallel.h │ │ │ └── ThreadRegion.h │ │ └── ValueRelations/ │ │ ├── GraphBuilder.h │ │ ├── GraphElements.h │ │ ├── RelationsAnalyzer.h │ │ ├── StructureAnalyzer.h │ │ ├── StructureElements.h │ │ ├── UniquePtrVector.h │ │ ├── ValueRelations.h │ │ └── getValName.h │ └── util/ │ ├── TimeMeasure.h │ ├── cow_shared_ptr.h │ ├── debug.h │ └── iterators.h ├── lib/ │ ├── BBlockBase.cpp │ ├── CMakeLists.txt │ ├── ControlDependence/ │ │ ├── CDGraph.h │ │ ├── ControlClosure.h │ │ ├── DOD.h │ │ ├── DODNTSCD.h │ │ ├── NTSCD.cpp │ │ └── NTSCD.h │ ├── Debug.cpp │ ├── MemorySSA/ │ │ ├── Definitions.cpp │ │ ├── MemorySSA.cpp │ │ └── ModRef.cpp │ ├── Offset.cpp │ ├── PointerAnalysis/ │ │ ├── Pointer.cpp │ │ ├── PointerAnalysis.cpp │ │ ├── PointerGraph.cpp │ │ ├── PointerGraphOptimizations.cpp │ │ ├── PointerGraphValidator.cpp │ │ └── PointsToSet.cpp │ ├── ReadWriteGraph/ │ │ └── ReadWriteGraph.cpp │ ├── SystemDependenceGraph/ │ │ └── DependenceGraph.cpp │ ├── ValueRelations/ │ │ └── Relations.cpp │ └── llvm/ │ ├── ControlDependence/ │ │ ├── ControlClosure.h │ │ ├── ControlDependence.cpp │ │ ├── DOD.h │ │ ├── GraphBuilder.h │ │ ├── IGraphBuilder.h │ │ ├── InterproceduralCD.cpp │ │ ├── InterproceduralCD.h │ │ ├── NTSCD.h │ │ ├── SCD.cpp │ │ ├── SCD.h │ │ └── legacy/ │ │ ├── Block.cpp │ │ ├── Block.h │ │ ├── Function.cpp │ │ ├── Function.h │ │ ├── GraphBuilder.cpp │ │ ├── GraphBuilder.h │ │ ├── NTSCD.cpp │ │ ├── NTSCD.h │ │ └── TarjanAnalysis.h │ ├── DataDependenceAnalysis/ │ │ └── LLVMDataDependenceAnalysis.cpp │ ├── DefUse/ │ │ ├── DefUse.cpp │ │ └── DefUse.h │ ├── Dominators/ │ │ └── PostDominators.cpp │ ├── ForkJoin/ │ │ ├── ForkJoin.cpp │ │ └── ForkJoin.h │ ├── GraphBuilder.h │ ├── LLVMDGVerifier.cpp │ ├── LLVMDGVerifier.h │ ├── LLVMDependenceGraph.cpp │ ├── LLVMNode.cpp │ ├── PointerAnalysis/ │ │ ├── Block.cpp │ │ ├── Calls.cpp │ │ ├── Constants.cpp │ │ ├── Globals.cpp │ │ ├── Instructions.cpp │ │ ├── Interprocedural.cpp │ │ ├── PointerAnalysis.cpp │ │ ├── PointerGraph.cpp │ │ ├── PointerGraphValidator.cpp │ │ ├── PointerGraphValidator.h │ │ ├── Structure.cpp │ │ └── Threads.cpp │ ├── ReadWriteGraph/ │ │ ├── Calls.cpp │ │ ├── Instructions.cpp │ │ ├── LLVMReadWriteGraphBuilder.cpp │ │ └── LLVMReadWriteGraphBuilder.h │ ├── SummaryEdges.cpp │ ├── SystemDependenceGraph/ │ │ ├── Dependencies.cpp │ │ ├── SDG2Dot.cpp │ │ └── SystemDependenceGraph.cpp │ ├── ThreadRegions/ │ │ ├── Graphs/ │ │ │ ├── BlockGraph.cpp │ │ │ ├── BlockGraph.h │ │ │ ├── ControlFlowGraph.cpp │ │ │ ├── CriticalSectionsBuilder.cpp │ │ │ ├── CriticalSectionsBuilder.h │ │ │ ├── FunctionGraph.cpp │ │ │ ├── FunctionGraph.h │ │ │ ├── GraphBuilder.cpp │ │ │ ├── GraphBuilder.h │ │ │ ├── ThreadRegionsBuilder.cpp │ │ │ └── ThreadRegionsBuilder.h │ │ ├── MayHappenInParallel.cpp │ │ ├── Nodes/ │ │ │ ├── CallFuncPtrNode.cpp │ │ │ ├── CallFuncPtrNode.h │ │ │ ├── CallNode.cpp │ │ │ ├── CallNode.h │ │ │ ├── CallReturnNode.cpp │ │ │ ├── CallReturnNode.h │ │ │ ├── EntryNode.cpp │ │ │ ├── EntryNode.h │ │ │ ├── ExitNode.cpp │ │ │ ├── ExitNode.h │ │ │ ├── ForkNode.cpp │ │ │ ├── ForkNode.h │ │ │ ├── GeneralNode.cpp │ │ │ ├── GeneralNode.h │ │ │ ├── JoinNode.cpp │ │ │ ├── JoinNode.h │ │ │ ├── LockNode.cpp │ │ │ ├── LockNode.h │ │ │ ├── Node.cpp │ │ │ ├── Node.h │ │ │ ├── NodeIterator.cpp │ │ │ ├── NodeIterator.h │ │ │ ├── Nodes.h │ │ │ ├── ReturnNode.cpp │ │ │ ├── ReturnNode.h │ │ │ ├── UnlockNode.cpp │ │ │ └── UnlockNode.h │ │ └── ThreadRegion.cpp │ ├── ValueRelations/ │ │ ├── GraphBuilder.cpp │ │ ├── GraphElements.cpp │ │ ├── RelationsAnalyzer.cpp │ │ ├── StructureAnalyzer.cpp │ │ └── ValueRelations.cpp │ └── llvm-utils.h ├── misc/ │ └── benchexec/ │ ├── README.md │ ├── dgtool.py │ ├── llvm-slicer-tests.xml │ └── slicing-tests.set ├── tests/ │ ├── CMakeLists.txt │ ├── adt-test.cpp │ ├── bitvector-test.cpp │ ├── catch-main.cpp │ ├── catch2/ │ │ └── catch.hpp │ ├── cmd-args.py │ ├── disjunctive-intervals-map-test.cpp │ ├── fuzzing/ │ │ ├── CMakeLists.txt │ │ ├── bitvector1.cpp │ │ ├── disjunctive-map1.cpp │ │ └── numbers-set1.cpp │ ├── llvm-dg-test.cpp │ ├── nodes-walk-test.cpp │ ├── numbers-set-test.cpp │ ├── points-to-set-test.cpp │ ├── points-to-test.cpp │ ├── ptset-benchmark.cpp │ ├── rdmap-test.cpp │ ├── readwritegraph-test.cpp │ ├── slicing/ │ │ ├── CMakeLists.txt │ │ ├── sources/ │ │ │ ├── a_ptr.c │ │ │ ├── alias_of_return.c │ │ │ ├── atomic1.c │ │ │ ├── atomic2.c │ │ │ ├── atomic3.c │ │ │ ├── bitcast1.c │ │ │ ├── bitcast2.c │ │ │ ├── bitcast3.c │ │ │ ├── bitcast4.c │ │ │ ├── bitcast5.c │ │ │ ├── bitcast6.c │ │ │ ├── control-regression1.c │ │ │ ├── cyclic-realloc.c │ │ │ ├── dynalloc1.c │ │ │ ├── dynalloc2.c │ │ │ ├── dynalloc3.c │ │ │ ├── dynalloc4.c │ │ │ ├── dynalloc5.c │ │ │ ├── dynalloc6.c │ │ │ ├── dynalloc7.c │ │ │ ├── foo.c │ │ │ ├── fptoui1.c │ │ │ ├── funcarray1.c │ │ │ ├── funcarray2.c │ │ │ ├── funcarray3.c │ │ │ ├── funcptr-regression1.c │ │ │ ├── funcptr1.c │ │ │ ├── funcptr10.c │ │ │ ├── funcptr11.c │ │ │ ├── funcptr12.c │ │ │ ├── funcptr13.c │ │ │ ├── funcptr14.c │ │ │ ├── funcptr15.c │ │ │ ├── funcptr16.c │ │ │ ├── funcptr2.c │ │ │ ├── funcptr3.c │ │ │ ├── funcptr4.c │ │ │ ├── funcptr5.c │ │ │ ├── funcptr6.c │ │ │ ├── funcptr7.c │ │ │ ├── funcptr8.c │ │ │ ├── funcptr9.c │ │ │ ├── get_int.c │ │ │ ├── get_output.c │ │ │ ├── get_ptr.c │ │ │ ├── glob_ptr-a.c │ │ │ ├── glob_ptr.c │ │ │ ├── global-init.c │ │ │ ├── global1.c │ │ │ ├── global10.c │ │ │ ├── global2.c │ │ │ ├── global3.c │ │ │ ├── global4.c │ │ │ ├── global5.c │ │ │ ├── global6.c │ │ │ ├── global7.c │ │ │ ├── global8.c │ │ │ ├── global9.c │ │ │ ├── globalptr1.c │ │ │ ├── globalptr2.c │ │ │ ├── globalptr3.c │ │ │ ├── globalptr4.c │ │ │ ├── interprocedural1.c │ │ │ ├── interprocedural2.c │ │ │ ├── interprocedural3.c │ │ │ ├── interprocedural4.c │ │ │ ├── interprocedural5.c │ │ │ ├── interprocedural6.c │ │ │ ├── interprocedural7.c │ │ │ ├── interprocedural8-a.c │ │ │ ├── interprocedural8.c │ │ │ ├── interprocedural8.output │ │ │ ├── interprocedural9.c │ │ │ ├── list1.c │ │ │ ├── list2.c │ │ │ ├── list3.c │ │ │ ├── list4.c │ │ │ ├── list5.c │ │ │ ├── list6.c │ │ │ ├── list7.c │ │ │ ├── list8.c │ │ │ ├── llvmmemcpy.c │ │ │ ├── llvmmemcpy2.c │ │ │ ├── loop1.c │ │ │ ├── loop2.c │ │ │ ├── loop3.c │ │ │ ├── loop4.c │ │ │ ├── loop5.c │ │ │ ├── malloc-redef.c │ │ │ ├── memcpy1.c │ │ │ ├── memcpy2.c │ │ │ ├── memcpy3.c │ │ │ ├── memcpy4.c │ │ │ ├── memcpy5.c │ │ │ ├── memcpy6.c │ │ │ ├── memset1.c │ │ │ ├── negoffset1.c │ │ │ ├── negoffset2.c │ │ │ ├── negoffset3.c │ │ │ ├── phi1.c │ │ │ ├── phi2.c │ │ │ ├── phi3.c │ │ │ ├── phi4.c │ │ │ ├── pointers1.c │ │ │ ├── pointers2.c │ │ │ ├── pointers3.c │ │ │ ├── pointers4.c │ │ │ ├── pointers5.c │ │ │ ├── pointers6.c │ │ │ ├── pointers7.c │ │ │ ├── pta-inv-infinite-loop.c │ │ │ ├── pta_fs_regression1.c │ │ │ ├── pta_regression2.c │ │ │ ├── ptr-9.c │ │ │ ├── ptr.c │ │ │ ├── ptrarray1.c │ │ │ ├── ptrarray2.c │ │ │ ├── ptrtoint1.c │ │ │ ├── ptrtoint2.c │ │ │ ├── ptrtoint3.c │ │ │ ├── ptrtoint4.c │ │ │ ├── ptrtoint5.c │ │ │ ├── ptrtoint6.c │ │ │ ├── ptrtoint7.c │ │ │ ├── realloc1.c │ │ │ ├── realloc2.c │ │ │ ├── realloc3.c │ │ │ ├── recursive1.c │ │ │ ├── recursive2.c │ │ │ ├── recursive3.c │ │ │ ├── recursive4.c │ │ │ ├── recursive5.c │ │ │ ├── regression1.c │ │ │ ├── sum1.c │ │ │ ├── sum2.c │ │ │ ├── sum3.c │ │ │ ├── switch1.c │ │ │ ├── switch2.c │ │ │ ├── test1.c │ │ │ ├── test2.c │ │ │ ├── test22.c │ │ │ ├── test222.c │ │ │ ├── test3.c │ │ │ ├── test4.c │ │ │ ├── test5.c │ │ │ ├── test6.c │ │ │ ├── test7.c │ │ │ ├── test8.c │ │ │ ├── threads1.c │ │ │ ├── undefcall1_true-unreach-call.c │ │ │ ├── undefcall2_true-unreach-call.c │ │ │ ├── unknown-interproc.c │ │ │ ├── unknown-interproc2-a.c │ │ │ ├── unknown-interproc2.c │ │ │ ├── unknown-interproc3.c │ │ │ ├── unknownptr1.c │ │ │ ├── unknownptr10-a.c │ │ │ ├── unknownptr10.c │ │ │ ├── unknownptr11.c │ │ │ ├── unknownptr2.c │ │ │ ├── unknownptr3.c │ │ │ ├── unknownptr4.c │ │ │ ├── unknownptr5.c │ │ │ ├── unknownptr6.c │ │ │ ├── unknownptr7.c │ │ │ ├── unknownptr8.c │ │ │ ├── unknownptr9.c │ │ │ ├── unknownptrfoo.c │ │ │ ├── unknownptrfoo2.c │ │ │ ├── vararg1.c │ │ │ ├── vararg2.c │ │ │ ├── vararg3.c │ │ │ ├── vararg4.c │ │ │ └── wl_list.c │ │ ├── test-runner.py │ │ ├── test_assert.c │ │ ├── test_assert.h │ │ └── tests.py │ ├── slicing-stress.sh │ ├── thread-regions-test-files/ │ │ ├── pthread_exit.c │ │ └── simple.c │ ├── thread-regions-test.cpp │ └── value-relations-test.cpp └── tools/ ├── CMakeLists.txt ├── dgtool ├── git-version.h.in ├── include/ │ └── dg/ │ └── tools/ │ ├── llvm-slicer-opts.h │ ├── llvm-slicer-preprocess.h │ ├── llvm-slicer-utils.h │ └── llvm-slicer.h ├── llvm-cda-bench.cpp ├── llvm-cda-dump.cpp ├── llvm-cda-stress.cpp ├── llvm-cg-dump.cpp ├── llvm-dda-dump.cpp ├── llvm-dg-dump.cpp ├── llvm-ntscd-dump.cpp ├── llvm-pta-ben.cpp ├── llvm-pta-compare.cpp ├── llvm-pta-dump.cpp ├── llvm-sdg-dump.cpp ├── llvm-slicer-crit.cpp ├── llvm-slicer-metadata.cpp ├── llvm-slicer-opts.cpp ├── llvm-slicer-preprocess.cpp ├── llvm-slicer-utils.cpp ├── llvm-slicer.cpp ├── llvm-thread-regions-dump.cpp ├── llvm-to-source.cpp ├── llvm-vr-dump.cpp ├── llvmdda-dump ├── llvmdg-show ├── pta-show └── sliced-diff.sh