[clang] [C++20] [Modules] Bring Decls Hash to BMI for C++20 Module units (PR #71627)
https://github.com/ChuanqiXu9 converted_to_draft https://github.com/llvm/llvm-project/pull/71627 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [C++20] [Modules] Bring Decls Hash to BMI for C++20 Module units (PR #71627)
ChuanqiXu9 wrote: As I summarized in https://discourse.llvm.org/t/rfc-c-20-modules-introduce-thin-bmi-and-decls-hash/74755/43, people are interested in this direction, but it may be too early for us to implement it. Let's postpone this. https://github.com/llvm/llvm-project/pull/71627 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [C++20] [Modules] Bring Decls Hash to BMI for C++20 Module units (PR #71627)
ChuanqiXu9 wrote: Let's discuss the higher level problems in Let's discuss the higher level problems in https://discourse.llvm.org/t/rfc-c-20-modules-introduce-thin-bmi-and-decls-hash/74755. Especially this one is not good to review since we don't support stacked review now. https://github.com/llvm/llvm-project/pull/71627 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [C++20] [Modules] Bring Decls Hash to BMI for C++20 Module units (PR #71627)
https://github.com/ChuanqiXu9 edited https://github.com/llvm/llvm-project/pull/71627 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [C++20] [Modules] Bring Decls Hash to BMI for C++20 Module units (PR #71627)
https://github.com/ChuanqiXu9 ready_for_review https://github.com/llvm/llvm-project/pull/71627 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [C++20] [Modules] Bring Decls Hash to BMI for C++20 Module units (PR #71627)
https://github.com/ChuanqiXu9 edited https://github.com/llvm/llvm-project/pull/71627 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [C++20] [Modules] Bring Decls Hash to BMI for C++20 Module units (PR #71627)
https://github.com/ChuanqiXu9 edited https://github.com/llvm/llvm-project/pull/71627 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[clang] [C++20] [Modules] Bring Decls Hash to BMI for C++20 Module units (PR #71627)
llvmbot wrote: @llvm/pr-subscribers-clang Author: Chuanqi Xu (ChuanqiXu9) Changes Close https://github.com/llvm/llvm-project/issues/71618 This contains https://github.com/llvm/llvm-project/pull/71622 and so that it is not easy to review this until we have stacked reviews. So the main purpose of current patch now is to have a feeling about what we want to do. The motivating example is: ``` // a.cppm export module a; export int a() { return 43; } // use.cc import a; int use() { return a(); } ``` After we change the implementation of a() from return 43; to return 44;, we can avoid recompiling use.cc to use.o since the interface doesn't change. To be continued --- Patch is 157.49 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/71627.diff 122 Files Affected: - (modified) clang/include/clang/AST/ODRHash.h (+3) - (modified) clang/include/clang/Basic/DiagnosticDriverKinds.td (+2) - (modified) clang/include/clang/Driver/Options.td (+11-1) - (modified) clang/include/clang/Frontend/FrontendActions.h (+45-7) - (modified) clang/include/clang/Frontend/FrontendOptions.h (+11-1) - (modified) clang/include/clang/Serialization/ASTBitCodes.h (+3) - (modified) clang/include/clang/Serialization/ASTReader.h (+10) - (modified) clang/include/clang/Serialization/ASTWriter.h (+33-2) - (modified) clang/lib/AST/ODRHash.cpp (+2) - (modified) clang/lib/Driver/Driver.cpp (+12-2) - (modified) clang/lib/Driver/ToolChains/Clang.cpp (+6-1) - (modified) clang/lib/Frontend/CompilerInvocation.cpp (+4) - (modified) clang/lib/Frontend/FrontendActions.cpp (+82-16) - (modified) clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp (+4) - (modified) clang/lib/Serialization/ASTReader.cpp (+75) - (modified) clang/lib/Serialization/ASTWriter.cpp (+28-14) - (modified) clang/lib/Serialization/ASTWriterDecl.cpp (+167-7) - (modified) clang/lib/Serialization/GeneratePCH.cpp (+35-2) - (modified) clang/test/CXX/basic/basic.link/p10-ex2.cpp (+2-1) - (modified) clang/test/CXX/basic/basic.lookup/basic.lookup.argdep/p4-friend-in-reachable-class.cpp (+4-2) - (added) clang/test/Driver/thinBMI-output.cppm (+29) - (modified) clang/test/Modules/InheritDefaultArguments.cppm (+3) - (modified) clang/test/Modules/Reachability-Private.cpp (+10) - (modified) clang/test/Modules/Reachability-func-default-arg.cpp (+3) - (modified) clang/test/Modules/Reachability-func-ret.cpp (+3) - (modified) clang/test/Modules/Reachability-template-default-arg.cpp (+3) - (modified) clang/test/Modules/Reachability-template-instantiation.cpp (+4) - (modified) clang/test/Modules/Reachability-using-templates.cpp (+3) - (modified) clang/test/Modules/Reachability-using.cpp (+3) - (modified) clang/test/Modules/concept.cppm (+4) - (modified) clang/test/Modules/concept_differ.cppm (+5) - (modified) clang/test/Modules/ctor.arg.dep.cppm (+4) - (modified) clang/test/Modules/cxx20-10-1-ex1.cpp (+13) - (modified) clang/test/Modules/cxx20-10-1-ex2.cpp (+30-6) - (modified) clang/test/Modules/cxx20-10-2-ex2.cpp (+12) - (modified) clang/test/Modules/cxx20-10-2-ex5.cpp (+12) - (modified) clang/test/Modules/cxx20-10-3-ex1.cpp (+14) - (modified) clang/test/Modules/cxx20-10-3-ex2.cpp (+10) - (modified) clang/test/Modules/cxx20-10-5-ex1.cpp (+12) - (modified) clang/test/Modules/cxx20-import-diagnostics-a.cpp (+39) - (modified) clang/test/Modules/cxx20-import-diagnostics-b.cpp (+25) - (modified) clang/test/Modules/cxx20-module-file-info-macros.cpp (+3) - (modified) clang/test/Modules/cxx20-module-file-info.cpp (+3) - (added) clang/test/Modules/decls-hash-get-bmi-decls-hash.cppm (+35) - (added) clang/test/Modules/decls-hash-module-file-info.cppm (+35) - (modified) clang/test/Modules/deduction-guide.cppm (+3) - (modified) clang/test/Modules/deduction-guide2.cppm (+3) - (modified) clang/test/Modules/deduction-guide3.cppm (+3) - (modified) clang/test/Modules/derived_class.cpp (+3) - (modified) clang/test/Modules/duplicated-module-file-eq-module-name.cppm (+4) - (modified) clang/test/Modules/enum-class.cppm (+3) - (modified) clang/test/Modules/explicitly-specialized-template.cpp (+3) - (modified) clang/test/Modules/export-language-linkage.cppm (+5) - (modified) clang/test/Modules/ftime-trace.cppm (+9) - (modified) clang/test/Modules/inconsistent-deduction-guide-linkage.cppm (+6) - (modified) clang/test/Modules/inconsistent-export.cppm (+13) - (modified) clang/test/Modules/inherited_arg.cppm (+11) - (modified) clang/test/Modules/instantiation-argdep-lookup.cppm (+3) - (modified) clang/test/Modules/lambdas.cppm (+15) - (modified) clang/test/Modules/merge-concepts-cxx-modules.cpp (+12) - (modified) clang/test/Modules/merge-constrained-friends.cpp (+3) - (modified) clang/test/Modules/merge-lambdas.cppm (+4) - (modified) clang/test/Modules/merge-requires-with-lambdas.cppm (+19) - (modified) clang/test/Modules/merge-var-template-spec-cxx-modules.cppm (+5) - (modified)
[clang] [C++20] [Modules] Bring Decls Hash to BMI for C++20 Module units (PR #71627)
llvmbot wrote: @llvm/pr-subscribers-clang-driver Author: Chuanqi Xu (ChuanqiXu9) Changes Close https://github.com/llvm/llvm-project/issues/71618 This contains https://github.com/llvm/llvm-project/pull/71622 and so that it is not easy to review this until we have stacked reviews. So the main purpose of current patch now is to have a feeling about what we want to do. The motivating example is: ``` // a.cppm export module a; export int a() { return 43; } // use.cc import a; int use() { return a(); } ``` After we change the implementation of a() from return 43; to return 44;, we can avoid recompiling use.cc to use.o since the interface doesn't change. To be continued --- Patch is 157.49 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/71627.diff 122 Files Affected: - (modified) clang/include/clang/AST/ODRHash.h (+3) - (modified) clang/include/clang/Basic/DiagnosticDriverKinds.td (+2) - (modified) clang/include/clang/Driver/Options.td (+11-1) - (modified) clang/include/clang/Frontend/FrontendActions.h (+45-7) - (modified) clang/include/clang/Frontend/FrontendOptions.h (+11-1) - (modified) clang/include/clang/Serialization/ASTBitCodes.h (+3) - (modified) clang/include/clang/Serialization/ASTReader.h (+10) - (modified) clang/include/clang/Serialization/ASTWriter.h (+33-2) - (modified) clang/lib/AST/ODRHash.cpp (+2) - (modified) clang/lib/Driver/Driver.cpp (+12-2) - (modified) clang/lib/Driver/ToolChains/Clang.cpp (+6-1) - (modified) clang/lib/Frontend/CompilerInvocation.cpp (+4) - (modified) clang/lib/Frontend/FrontendActions.cpp (+82-16) - (modified) clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp (+4) - (modified) clang/lib/Serialization/ASTReader.cpp (+75) - (modified) clang/lib/Serialization/ASTWriter.cpp (+28-14) - (modified) clang/lib/Serialization/ASTWriterDecl.cpp (+167-7) - (modified) clang/lib/Serialization/GeneratePCH.cpp (+35-2) - (modified) clang/test/CXX/basic/basic.link/p10-ex2.cpp (+2-1) - (modified) clang/test/CXX/basic/basic.lookup/basic.lookup.argdep/p4-friend-in-reachable-class.cpp (+4-2) - (added) clang/test/Driver/thinBMI-output.cppm (+29) - (modified) clang/test/Modules/InheritDefaultArguments.cppm (+3) - (modified) clang/test/Modules/Reachability-Private.cpp (+10) - (modified) clang/test/Modules/Reachability-func-default-arg.cpp (+3) - (modified) clang/test/Modules/Reachability-func-ret.cpp (+3) - (modified) clang/test/Modules/Reachability-template-default-arg.cpp (+3) - (modified) clang/test/Modules/Reachability-template-instantiation.cpp (+4) - (modified) clang/test/Modules/Reachability-using-templates.cpp (+3) - (modified) clang/test/Modules/Reachability-using.cpp (+3) - (modified) clang/test/Modules/concept.cppm (+4) - (modified) clang/test/Modules/concept_differ.cppm (+5) - (modified) clang/test/Modules/ctor.arg.dep.cppm (+4) - (modified) clang/test/Modules/cxx20-10-1-ex1.cpp (+13) - (modified) clang/test/Modules/cxx20-10-1-ex2.cpp (+30-6) - (modified) clang/test/Modules/cxx20-10-2-ex2.cpp (+12) - (modified) clang/test/Modules/cxx20-10-2-ex5.cpp (+12) - (modified) clang/test/Modules/cxx20-10-3-ex1.cpp (+14) - (modified) clang/test/Modules/cxx20-10-3-ex2.cpp (+10) - (modified) clang/test/Modules/cxx20-10-5-ex1.cpp (+12) - (modified) clang/test/Modules/cxx20-import-diagnostics-a.cpp (+39) - (modified) clang/test/Modules/cxx20-import-diagnostics-b.cpp (+25) - (modified) clang/test/Modules/cxx20-module-file-info-macros.cpp (+3) - (modified) clang/test/Modules/cxx20-module-file-info.cpp (+3) - (added) clang/test/Modules/decls-hash-get-bmi-decls-hash.cppm (+35) - (added) clang/test/Modules/decls-hash-module-file-info.cppm (+35) - (modified) clang/test/Modules/deduction-guide.cppm (+3) - (modified) clang/test/Modules/deduction-guide2.cppm (+3) - (modified) clang/test/Modules/deduction-guide3.cppm (+3) - (modified) clang/test/Modules/derived_class.cpp (+3) - (modified) clang/test/Modules/duplicated-module-file-eq-module-name.cppm (+4) - (modified) clang/test/Modules/enum-class.cppm (+3) - (modified) clang/test/Modules/explicitly-specialized-template.cpp (+3) - (modified) clang/test/Modules/export-language-linkage.cppm (+5) - (modified) clang/test/Modules/ftime-trace.cppm (+9) - (modified) clang/test/Modules/inconsistent-deduction-guide-linkage.cppm (+6) - (modified) clang/test/Modules/inconsistent-export.cppm (+13) - (modified) clang/test/Modules/inherited_arg.cppm (+11) - (modified) clang/test/Modules/instantiation-argdep-lookup.cppm (+3) - (modified) clang/test/Modules/lambdas.cppm (+15) - (modified) clang/test/Modules/merge-concepts-cxx-modules.cpp (+12) - (modified) clang/test/Modules/merge-constrained-friends.cpp (+3) - (modified) clang/test/Modules/merge-lambdas.cppm (+4) - (modified) clang/test/Modules/merge-requires-with-lambdas.cppm (+19) - (modified) clang/test/Modules/merge-var-template-spec-cxx-modules.cppm (+5) - (modified)
[clang] [C++20] [Modules] Bring Decls Hash to BMI for C++20 Module units (PR #71627)
https://github.com/ChuanqiXu9 converted_to_draft https://github.com/llvm/llvm-project/pull/71627 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits