diff options
author | David Blaikie <dblaikie@gmail.com> | 2013-08-16 20:40:29 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2013-08-16 20:40:29 +0000 |
commit | 9eddbbd563629fbb11d5d1840194fa46132ddca4 (patch) | |
tree | 8b9e334d422c0105f5988a8e45784567707cf5b6 /clang/lib/CodeGen/CGDebugInfo.h | |
parent | ab255bb9cf0fd2814c374e3c2ed3fd7ff957ffdc (diff) | |
download | bcm5719-llvm-9eddbbd563629fbb11d5d1840194fa46132ddca4.tar.gz bcm5719-llvm-9eddbbd563629fbb11d5d1840194fa46132ddca4.zip |
DebugInfo: Omit debug info for dynamic classes in TUs that do not have the vtable for that class
This reduces Clang's .dwo (fission debug info) size by 23% over
Clang+LLVM.
llvm-svn: 188576
Diffstat (limited to 'clang/lib/CodeGen/CGDebugInfo.h')
-rw-r--r-- | clang/lib/CodeGen/CGDebugInfo.h | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.h b/clang/lib/CodeGen/CGDebugInfo.h index 39436e18a72..51a937bfced 100644 --- a/clang/lib/CodeGen/CGDebugInfo.h +++ b/clang/lib/CodeGen/CGDebugInfo.h @@ -290,7 +290,7 @@ public: void completeType(const RecordDecl *RD); void completeRequiredType(const RecordDecl *RD); - + void completeClassData(const RecordDecl *RD); private: /// EmitDeclare - Emit call to llvm.dbg.declare for a variable declaration. @@ -353,10 +353,13 @@ private: /// declaration for the given method definition. llvm::DISubprogram getFunctionDeclaration(const Decl *D); - /// getStaticDataMemberDeclaration - Return debug info descriptor to - /// describe in-class static data member declaration for the given - /// out-of-class definition. - llvm::DIDerivedType getStaticDataMemberDeclaration(const VarDecl *D); + /// Return debug info descriptor to describe in-class static data member + /// declaration for the given out-of-class definition. + llvm::DIDerivedType + getOrCreateStaticDataMemberDeclarationOrNull(const VarDecl *D); + llvm::DIDerivedType + getOrCreateStaticDataMemberDeclaration(const VarDecl *D, + llvm::DICompositeType Ctxt); /// getFunctionName - Get function name for the given FunctionDecl. If the /// name is constructred on demand (e.g. C++ destructor) then the name |