|
24 | 24 | #include "clang/CAS/CASOptions.h"
|
25 | 25 | #include "clang/Tooling/DependencyScanning/DependencyScanningService.h"
|
26 | 26 | #include "clang/Tooling/DependencyScanning/DependencyScanningTool.h"
|
| 27 | +#include "clang/Tooling/DependencyScanning/ModuleDepCollector.h" |
27 | 28 | #include "llvm/ADT/ArrayRef.h"
|
28 | 29 | #include "llvm/ADT/IntrusiveRefCntPtr.h"
|
29 | 30 | #include "llvm/ADT/Optional.h"
|
30 | 31 | #include "llvm/ADT/StringSet.h"
|
| 32 | +#include "llvm/ADT/DenseSet.h" |
31 | 33 | #include "llvm/CAS/CASProvidingFileSystem.h"
|
32 | 34 | #include "llvm/CAS/CASReference.h"
|
33 | 35 | #include "llvm/CAS/CachingOnDiskFileSystem.h"
|
@@ -770,9 +772,6 @@ class SwiftDependencyScanningService {
|
770 | 772 | /// encountered.
|
771 | 773 | std::vector<ModuleDependencyID> AllModules;
|
772 | 774 |
|
773 |
| - /// Set containing all of the Clang modules that have already been seen. |
774 |
| - llvm::StringSet<> alreadySeenClangModules; |
775 |
| - |
776 | 775 | /// Dependencies for modules that have already been computed.
|
777 | 776 | /// This maps a dependency kind to a map of a module's name to a Dependency
|
778 | 777 | /// object
|
@@ -844,10 +843,6 @@ class SwiftDependencyScanningService {
|
844 | 843 | return *SharedFilesystemCache;
|
845 | 844 | }
|
846 | 845 |
|
847 |
| - llvm::StringSet<>& getAlreadySeenClangModules(StringRef scanningContextHash) { |
848 |
| - return getCacheForScanningContextHash(scanningContextHash)->alreadySeenClangModules; |
849 |
| - } |
850 |
| - |
851 | 846 | bool usingCachingFS() const { return !UseClangIncludeTree && (bool)CacheFS; }
|
852 | 847 |
|
853 | 848 | llvm::cas::CachingOnDiskFileSystem &getSharedCachingFS() const {
|
@@ -944,6 +939,8 @@ class ModuleDependenciesCache {
|
944 | 939 | SwiftDependencyScanningService &globalScanningService;
|
945 | 940 | /// References to data in the `globalScanningService` for module dependencies
|
946 | 941 | ModuleDependenciesKindRefMap ModuleDependenciesMap;
|
| 942 | + /// Set containing all of the Clang modules that have already been seen. |
| 943 | + llvm::DenseSet<clang::tooling::dependencies::ModuleID> alreadySeenClangModules; |
947 | 944 | /// Name of the module under scan
|
948 | 945 | std::string mainScanModuleName;
|
949 | 946 | /// The context hash of the current scanning invocation
|
@@ -977,10 +974,13 @@ class ModuleDependenciesCache {
|
977 | 974 | SwiftDependencyScanningService &getScanService() {
|
978 | 975 | return globalScanningService;
|
979 | 976 | }
|
980 |
| - llvm::StringSet<>& getAlreadySeenClangModules() { |
981 |
| - return globalScanningService.getAlreadySeenClangModules(scannerContextHash); |
| 977 | + llvm::DenseSet<clang::tooling::dependencies::ModuleID>& getAlreadySeenClangModules() { |
| 978 | + return alreadySeenClangModules; |
982 | 979 | }
|
983 |
| - |
| 980 | + void addSeenClangModule(clang::tooling::dependencies::ModuleID newModule) { |
| 981 | + alreadySeenClangModules.insert(newModule); |
| 982 | + } |
| 983 | + |
984 | 984 | /// Look for module dependencies for a module with the given name
|
985 | 985 | ///
|
986 | 986 | /// \returns the cached result, or \c None if there is no cached entry.
|
|
0 commit comments