diff options
author | David Blaikie <dblaikie@gmail.com> | 2013-08-15 20:49:17 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2013-08-15 20:49:17 +0000 |
commit | b2e86eb64acdca438466d9423a3a6e635e71e078 (patch) | |
tree | b44e7cff5bdd01231ac1a35bb826cebfbdabcc16 /clang/lib/CodeGen/CGDebugInfo.h | |
parent | 0a41d9ae7f0b70c5a613f72f119fa1c30fd6353a (diff) | |
download | bcm5719-llvm-b2e86eb64acdca438466d9423a3a6e635e71e078.tar.gz bcm5719-llvm-b2e86eb64acdca438466d9423a3a6e635e71e078.zip |
DebugInfo: Unify & optimize the lazy addition of record types
Rather than going through the whole getOrCreateType machinery to
manifest a type, cut straight to the implementation because we know we
have to do work.
While the previous implementation was sufficient for the two cases
(completeness and required completeness) we have already (the general
machinery could inspect the type for those attributes & go down the full
definition path), a pending change (to emit info for types when we emit
their vtables) won't have that luxury & we'll need to force the creation
rather than relying on the general purpose routine.
llvm-svn: 188486
Diffstat (limited to 'clang/lib/CodeGen/CGDebugInfo.h')
-rw-r--r-- | clang/lib/CodeGen/CGDebugInfo.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.h b/clang/lib/CodeGen/CGDebugInfo.h index 74b8e959993..72d956ed373 100644 --- a/clang/lib/CodeGen/CGDebugInfo.h +++ b/clang/lib/CodeGen/CGDebugInfo.h @@ -115,6 +115,7 @@ class CGDebugInfo { llvm::DIType CreateType(const BlockPointerType *Ty, llvm::DIFile F); llvm::DIType CreateType(const FunctionType *Ty, llvm::DIFile F); llvm::DIType CreateType(const RecordType *Ty, bool Declaration); + llvm::DIType CreateTypeDefinition(const RecordType *Ty); llvm::DIType CreateLimitedType(const RecordType *Ty); llvm::DIType CreateType(const ObjCInterfaceType *Ty, llvm::DIFile F); llvm::DIType CreateType(const ObjCObjectType *Ty, llvm::DIFile F); @@ -288,7 +289,9 @@ public: llvm::DIType getOrCreateInterfaceType(QualType Ty, SourceLocation Loc); - void completeFwdDecl(const RecordDecl &TD); + void completeType(const RecordDecl *RD); + void completeRequiredType(const RecordDecl *RD); + private: /// EmitDeclare - Emit call to llvm.dbg.declare for a variable declaration. |