[clang] [C++20] [Modules] Instantiate pending instantiations when GMF ends (PR #126842)
Matheus Izvekov via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 19 02:06:30 PST 2025
================
@@ -1104,9 +1104,13 @@ void Sema::ActOnStartOfTranslationUnit() {
}
void Sema::ActOnEndOfTranslationUnitFragment(TUFragmentKind Kind) {
- // No explicit actions are required at the end of the global module fragment.
- if (Kind == TUFragmentKind::Global)
+ if (Kind == TUFragmentKind::Global) {
+ // Perform Pending Instantiations at the end of global module fragment so
+ // that the module ownership of TU-level decls won't get messed.
+ llvm::TimeTraceScope TimeScope("PerformPendingInstantiations");
+ PerformPendingInstantiations();
----------------
mizvekov wrote:
I didn't state my point clearly enough, sorry about that.
What I mean is, we can for example always set instantiation ownership to the same as the pattern, and that is just
as consistent and correct, but should be a simpler change and have higher performance, as we will still batch up pending instantiations the same as before, correct?
https://github.com/llvm/llvm-project/pull/126842
More information about the cfe-commits
mailing list