[all-commits] [llvm/llvm-project] da00c6: [C++20] [Modules] Introduce reduced BMI (#75894)

Chuanqi Xu via All-commits all-commits at lists.llvm.org
Thu Mar 7 18:13:12 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: da00c60dae0040185dc45039c4397f6e746548e9
      https://github.com/llvm/llvm-project/commit/da00c60dae0040185dc45039c4397f6e746548e9
  Author: Chuanqi Xu <yedeng.yd at linux.alibaba.com>
  Date:   2024-03-08 (Fri, 08 Mar 2024)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/include/clang/Frontend/FrontendActions.h
    M clang/include/clang/Frontend/FrontendOptions.h
    M clang/include/clang/Serialization/ASTWriter.h
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/lib/Frontend/FrontendActions.cpp
    M clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
    M clang/lib/Serialization/ASTWriter.cpp
    M clang/lib/Serialization/ASTWriterDecl.cpp
    M clang/lib/Serialization/GeneratePCH.cpp
    M clang/test/CXX/basic/basic.link/p10-ex2.cpp
    M clang/test/CXX/basic/basic.lookup/basic.lookup.argdep/p4-friend-in-reachable-class.cpp
    M clang/test/Modules/InheritDefaultArguments.cppm
    M clang/test/Modules/Reachability-Private.cpp
    M clang/test/Modules/Reachability-func-default-arg.cpp
    M clang/test/Modules/Reachability-func-ret.cpp
    M clang/test/Modules/Reachability-template-default-arg.cpp
    M clang/test/Modules/Reachability-template-instantiation.cpp
    M clang/test/Modules/Reachability-using-templates.cpp
    M clang/test/Modules/Reachability-using.cpp
    M clang/test/Modules/concept.cppm
    M clang/test/Modules/concept_differ.cppm
    M clang/test/Modules/ctor.arg.dep.cppm
    M clang/test/Modules/cxx20-10-1-ex1.cpp
    M clang/test/Modules/cxx20-10-1-ex2.cpp
    M clang/test/Modules/cxx20-10-2-ex2.cpp
    M clang/test/Modules/cxx20-10-2-ex5.cpp
    M clang/test/Modules/cxx20-10-3-ex1.cpp
    M clang/test/Modules/cxx20-10-3-ex2.cpp
    M clang/test/Modules/cxx20-10-5-ex1.cpp
    M clang/test/Modules/cxx20-import-diagnostics-a.cpp
    M clang/test/Modules/cxx20-import-diagnostics-b.cpp
    M clang/test/Modules/cxx20-module-file-info-macros.cpp
    M clang/test/Modules/deduction-guide.cppm
    M clang/test/Modules/deduction-guide2.cppm
    M clang/test/Modules/deduction-guide3.cppm
    M clang/test/Modules/derived_class.cpp
    M clang/test/Modules/duplicated-module-file-eq-module-name.cppm
    M clang/test/Modules/enum-class.cppm
    M clang/test/Modules/explicitly-specialized-template.cpp
    M clang/test/Modules/export-language-linkage.cppm
    M clang/test/Modules/ftime-trace.cppm
    M clang/test/Modules/inconsistent-deduction-guide-linkage.cppm
    M clang/test/Modules/inconsistent-export.cppm
    M clang/test/Modules/inherited_arg.cppm
    M clang/test/Modules/instantiation-argdep-lookup.cppm
    M clang/test/Modules/lambdas.cppm
    M clang/test/Modules/merge-concepts-cxx-modules.cpp
    M clang/test/Modules/merge-constrained-friends.cpp
    M clang/test/Modules/merge-lambdas.cppm
    M clang/test/Modules/merge-requires-with-lambdas.cppm
    M clang/test/Modules/merge-var-template-spec-cxx-modules.cppm
    M clang/test/Modules/mismatch-diagnostics.cpp
    M clang/test/Modules/module-init-duplicated-import.cppm
    M clang/test/Modules/named-modules-adl-2.cppm
    M clang/test/Modules/named-modules-adl-3.cppm
    M clang/test/Modules/named-modules-adl.cppm
    M clang/test/Modules/no-duplicate-codegen-in-GMF.cppm
    M clang/test/Modules/pair-unambiguous-ctor.cppm
    M clang/test/Modules/partial_specialization.cppm
    M clang/test/Modules/placement-new-reachable.cpp
    M clang/test/Modules/polluted-operator.cppm
    M clang/test/Modules/pr54457.cppm
    M clang/test/Modules/pr56916.cppm
    M clang/test/Modules/pr58532.cppm
    M clang/test/Modules/pr58716.cppm
    M clang/test/Modules/pr59719.cppm
    M clang/test/Modules/pr59780.cppm
    M clang/test/Modules/pr59999.cppm
    M clang/test/Modules/pr60036.cppm
    M clang/test/Modules/pr60085.cppm
    M clang/test/Modules/pr60275.cppm
    M clang/test/Modules/pr60486.cppm
    M clang/test/Modules/pr60693.cppm
    M clang/test/Modules/pr60775.cppm
    M clang/test/Modules/pr60890.cppm
    M clang/test/Modules/pr61065.cppm
    M clang/test/Modules/pr61065_2.cppm
    M clang/test/Modules/pr61067.cppm
    M clang/test/Modules/pr61317.cppm
    M clang/test/Modules/pr61783.cppm
    M clang/test/Modules/pr61892.cppm
    M clang/test/Modules/pr62158.cppm
    M clang/test/Modules/pr62359.cppm
    M clang/test/Modules/pr62589.cppm
    M clang/test/Modules/pr62705.cppm
    M clang/test/Modules/pr62796.cppm
    M clang/test/Modules/pr62943.cppm
    M clang/test/Modules/pr63544.cppm
    M clang/test/Modules/pr63595.cppm
    M clang/test/Modules/pr67627.cppm
    M clang/test/Modules/pr67893.cppm
    M clang/test/Modules/predefined.cpp
    M clang/test/Modules/preferred_name.cppm
    M clang/test/Modules/redefinition-merges.cppm
    M clang/test/Modules/redundant-template-default-arg.cpp
    M clang/test/Modules/redundant-template-default-arg2.cpp
    M clang/test/Modules/redundant-template-default-arg3.cpp
    M clang/test/Modules/search-partitions.cpp
    M clang/test/Modules/seperated-member-function-definition-for-template-class.cppm
    M clang/test/Modules/template-function-specialization.cpp
    M clang/test/Modules/template-lambdas.cppm
    M clang/test/Modules/template-pack.cppm
    M clang/test/Modules/template_default_argument.cpp
    M clang/unittests/Sema/SemaNoloadLookupTest.cpp
    M clang/unittests/Serialization/ForceCheckFileInputTest.cpp
    M clang/unittests/Serialization/NoCommentsTest.cpp
    M clang/unittests/Serialization/VarDeclConstantInitTest.cpp

  Log Message:
  -----------
  [C++20] [Modules] Introduce reduced BMI (#75894)

Close https://github.com/llvm/llvm-project/issues/71034

See

https://discourse.llvm.org/t/rfc-c-20-modules-introduce-thin-bmi-and-decls-hash/74755

This patch introduces reduced BMI, which doesn't contain the definitions
of functions and variables if its definitions won't contribute to the
ABI.

Testing is a big part of the patch. We want to make sure the reduced BMI
contains the same behavior with the existing and relatively stable
fatBMI. This is pretty helpful for further reduction.

The user interfaces part it left to following patches to ease the
reviewing.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list