Author: Reid Kleckner Date: 2021-04-26T18:32:50-07:00 New Revision: 6d78c38986fa0974ea0b37e66f8cb89b256f4e0d
URL: https://github.com/llvm/llvm-project/commit/6d78c38986fa0974ea0b37e66f8cb89b256f4e0d DIFF: https://github.com/llvm/llvm-project/commit/6d78c38986fa0974ea0b37e66f8cb89b256f4e0d.diff LOG: Move Sema's key function around and add more comments The previous comment was pretty obscure. Added: Modified: clang/include/clang/Sema/Sema.h Removed: ################################################################################ diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h index bc15bf73bea80..e0ededea6bcae 100644 --- a/clang/include/clang/Sema/Sema.h +++ b/clang/include/clang/Sema/Sema.h @@ -353,9 +353,6 @@ class Sema final { Sema(const Sema &) = delete; void operator=(const Sema &) = delete; - /// A key method to reduce duplicate debug info from Sema. - virtual void anchor(); - ///Source of additional semantic information. ExternalSemaSource *ExternalSource; @@ -1527,6 +1524,13 @@ class Sema final { /// initialized but before it parses anything. void Initialize(); + /// This virtual key function only exists to limit the emission of debug info + /// describing the Sema class. GCC and Clang only emit debug info for a class + /// with a vtable when the vtable is emitted. Sema is final and not + /// polymorphic, but the debug info size savings are so significant that it is + /// worth adding a vtable just to take advantage of this optimization. + virtual void anchor(); + const LangOptions &getLangOpts() const { return LangOpts; } OpenCLOptions &getOpenCLOptions() { return OpenCLFeatures; } FPOptions &getCurFPFeatures() { return CurFPFeatures; } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits