[all-commits] [llvm/llvm-project] a6ef36: [clang][deps] Disable implicit module maps

Jan Svoboda via All-commits all-commits at lists.llvm.org
Sat Mar 12 02:32:52 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a6ef3635461c7e689972337b281d0052331f6150
      https://github.com/llvm/llvm-project/commit/a6ef3635461c7e689972337b281d0052331f6150
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2022-03-12 (Sat, 12 Mar 2022)

  Changed paths:
    M clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h
    M clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp
    M clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp
    M clang/test/ClangScanDeps/modules-full.cpp
    M clang/test/ClangScanDeps/modules-inferred.m
    A clang/test/ClangScanDeps/modules-no-undeclared-includes.c
    M clang/test/ClangScanDeps/modules-pch.c

  Log Message:
  -----------
  [clang][deps] Disable implicit module maps

Since D113473, we don't report any module map files via `-fmodule-map-file=` in explicit builds. The ultimate goal here is to make sure Clang doesn't open/read/parse/evaluate unnecessary module maps.

However, implicit module maps still end up reading all reachable module maps. This patch disables implicit module maps in explicit builds.

Unfortunately, we still need to report some module map files that aren't encoded in PCM files of dependencies: module maps that are necessary to correctly evaluate includes in modules marked as `[no_undeclared_includes]`.

Depends on D120464.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D120465




More information about the All-commits mailing list