[clang] 6d78c38 - Move Sema's key function around and add more comments
Reid Kleckner via cfe-commits
cfe-commits at lists.llvm.org
Mon Apr 26 18:32:56 PDT 2021
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; }
More information about the cfe-commits
mailing list