[all-commits] [llvm/llvm-project] ed07fe: [clang][modules][deps] Transitive module maps are ...

Jan Svoboda via All-commits all-commits at lists.llvm.org
Thu Dec 1 20:16:32 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ed07fe71d7bbdd13b113a2073f47e701e41a1001
      https://github.com/llvm/llvm-project/commit/ed07fe71d7bbdd13b113a2073f47e701e41a1001
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2022-12-01 (Thu, 01 Dec 2022)

  Changed paths:
    M clang/lib/Serialization/ASTWriter.cpp
    A clang/test/ClangScanDeps/modules-transitive.c

  Log Message:
  -----------
  [clang][modules][deps] Transitive module maps are not affecting

Currently, the algorithm for gathering affecting module maps includes those defining transitive dependencies. This seems like an over-approximation, since those don't change the semantics of current module build.

(With this patch, `ModulesToProcess` only ever holds modules whose headers will be serialized into the current PCM.)

Reviewed By: Bigcheese

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


  Commit: f99e5a9106f08ad92a22c3b114d2052e5c502924
      https://github.com/llvm/llvm-project/commit/f99e5a9106f08ad92a22c3b114d2052e5c502924
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2022-12-01 (Thu, 01 Dec 2022)

  Changed paths:
    M clang/lib/Serialization/ASTWriter.cpp
    A clang/test/ClangScanDeps/modules-extern-submodule.c

  Log Message:
  -----------
  [clang][modules][deps] Parent module maps are affecting

Currently, the algorithm for gathering affecting module maps includes only those defining modules that include some headers. This is not entirely correct, though. Some module maps might be "importing" module maps for `extern` submodules. Such parent module maps are affecting - they do change semantics of the compilation. This patch adds parent module maps into the set of affecting module maps.

Depends on D137197.

Reviewed By: Bigcheese

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


  Commit: 83973cf157f7850eb133a4bbfa0f8b7958bad215
      https://github.com/llvm/llvm-project/commit/83973cf157f7850eb133a4bbfa0f8b7958bad215
  Author: Jan Svoboda <jan_svoboda at apple.com>
  Date:   2022-12-01 (Thu, 01 Dec 2022)

  Changed paths:
    M clang/lib/Serialization/ASTWriter.cpp
    A clang/test/ClangScanDeps/modules-extern-unrelated.m

  Log Message:
  -----------
  [clang][modules][deps] Including module maps are affecting

With this patch, we mark module maps that include an affecting `extern` module map as also affecting. This is a generalization of D137197: now we don't require the importing module map to describe parent of the extern module.

Depends on D137198.

Reviewed By: Bigcheese

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


Compare: https://github.com/llvm/llvm-project/compare/997d7d193149...83973cf157f7


More information about the All-commits mailing list