Skip to content

Commit

Permalink
[clang][deps] Modules don't contribute to search path usage
Browse files Browse the repository at this point in the history
To reduce the number of modules we build in explicit builds (which use strict context hash), we prune unused header search paths. This essentially merges parts of the dependency graph.

Determining whether a search path was used to discover a module (through implicit module maps) proved to be somewhat complicated. Initial support landed in D102923, while D113676 attempts to fix some bugs.

However, now that we don't use implicit module maps in explicit builds (since D120465), we don't need to consider such search paths as used anymore. Modules are no longer discovered through the header search mechanism, so we can drop such search paths (provided they are not needed for other reasons).

This patch removes whatever support for detecting such usage we had, since it's buggy and not required anymore.

Depends on D120465.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D121295
  • Loading branch information
jansvoboda11 committed Mar 16, 2022
1 parent e3deb7d commit 77924d6
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 5 deletions.
1 change: 1 addition & 0 deletions clang/include/clang/Lex/HeaderSearch.h
Expand Up @@ -561,6 +561,7 @@ class HeaderSearch {

/// Determine which HeaderSearchOptions::UserEntries have been successfully
/// used so far and mark their index with 'true' in the resulting bit vector.
/// Note: implicit module maps don't contribute to entry usage.
std::vector<bool> computeUserEntryUsage() const;

/// This method returns a HeaderMap for the specified
Expand Down
3 changes: 0 additions & 3 deletions clang/lib/Lex/HeaderSearch.cpp
Expand Up @@ -365,9 +365,6 @@ Module *HeaderSearch::lookupModule(StringRef ModuleName, StringRef SearchName,
break;
}

if (Module)
noteLookupUsage(It.Idx, ImportLoc);

return Module;
}

Expand Down
4 changes: 2 additions & 2 deletions clang/test/Preprocessor/search-path-usage.m
Expand Up @@ -129,7 +129,7 @@
#endif
#endif

// Check that search paths with module maps are reported.
// Check that search paths with module maps are NOT reported.
//
// RUN: mkdir %t/modulemap_abs
// RUN: sed "s|DIR|%/S/Inputs/search-path-usage|g" \
Expand All @@ -142,5 +142,5 @@
// RUN: -DMODMAP_ABS -verify
#ifdef MODMAP_ABS
@import b; // \
// expected-remark-re {{search path used: '{{.*}}/modulemap_abs'}}
// expected-no-diagnostics
#endif

0 comments on commit 77924d6

Please sign in to comment.