[all-commits] [llvm/llvm-project] 3b8f53: [clang][deps] Use top-level modules as precompiled...

Jan Svoboda via All-commits all-commits at lists.llvm.org
Wed Aug 25 01:51:47 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 3b8f536fec2f7dfd5dc69c6516c20c5b48b38409
      https://github.com/llvm/llvm-project/commit/3b8f536fec2f7dfd5dc69c6516c20c5b48b38409
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2021-08-25 (Wed, 25 Aug 2021)

  Changed paths:
    M clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp
    A clang/test/ClangScanDeps/Inputs/modules-pch-common-submodule/cdb_pch.json
    A clang/test/ClangScanDeps/Inputs/modules-pch-common-submodule/cdb_tu.json
    A clang/test/ClangScanDeps/Inputs/modules-pch-common-submodule/mod_common.h
    A clang/test/ClangScanDeps/Inputs/modules-pch-common-submodule/mod_common_sub.h
    A clang/test/ClangScanDeps/Inputs/modules-pch-common-submodule/mod_tu.h
    A clang/test/ClangScanDeps/Inputs/modules-pch-common-submodule/module.modulemap
    A clang/test/ClangScanDeps/Inputs/modules-pch-common-submodule/pch.h
    A clang/test/ClangScanDeps/Inputs/modules-pch-common-submodule/tu.c
    A clang/test/ClangScanDeps/modules-pch-common-submodule.c

  Log Message:
  -----------
  [clang][deps] Use top-level modules as precompiled dependencies

The `ASTReader` populates `Module::PresumedModuleMapFile` only for top-level modules, not submodules. To avoid generating empty `-fmodule-map-file=` arguments, make discovered modules depend on top-level precompiled modules. The granularity of submodules is not important here.

The documentation of `Module::PresumedModuleMapFile` says this field is non-empty only when building from preprocessed source. This means there can still be cases where the dependency scanner generates empty `-fmodule-map-file=` arguments. That's being addressed in separate patch: D108544.

Reviewed By: dexonsmith

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




More information about the All-commits mailing list