r182674 - DebugInfo: Rename CreatePointerType to getOrCreateTypeDeclaration
David Blaikie
dblaikie at gmail.com
Fri May 24 14:33:23 PDT 2013
Author: dblaikie
Date: Fri May 24 16:33:22 2013
New Revision: 182674
URL: http://llvm.org/viewvc/llvm-project?rev=182674&view=rev
Log:
DebugInfo: Rename CreatePointerType to getOrCreateTypeDeclaration
To make this more consistent with 'getOrCreateType' & clarify the
distinction between the two. The only thing I couldn't quite communicate
in the name is that getOrCreateTypeDeclaration may actually produce a
full definition (in -fno-limit-debug-info) but the point is to call it
whenever only a declaration is needed & the implementation can choose
whether to provide a declaration or definition.
(also, unfortunately, getOrCreateType can produce declarations too - we
should sure this up by making it not do that - any caller that can
tolerate a declaration should be calling getOrCreateTypeDeclaration
instead)
Modified:
cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
cfe/trunk/lib/CodeGen/CGDebugInfo.h
Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=182674&r1=182673&r2=182674&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Fri May 24 16:33:22 2013
@@ -607,10 +607,10 @@ llvm::DIDescriptor CGDebugInfo::createCo
return TheCU;
}
-/// CreatePointeeType - Create Pointee type. If Pointee is a record
+/// getOrCreateTypeDeclaration - Create Pointee type. If Pointee is a record
/// then emit record's fwd if debug info size reduction is enabled.
-llvm::DIType CGDebugInfo::CreatePointeeType(QualType PointeeTy,
- llvm::DIFile Unit) {
+llvm::DIType CGDebugInfo::getOrCreateTypeDeclaration(QualType PointeeTy,
+ llvm::DIFile Unit) {
if (DebugKind > CodeGenOptions::LimitedDebugInfo)
return getOrCreateType(PointeeTy, Unit);
@@ -642,8 +642,8 @@ llvm::DIType CGDebugInfo::CreatePointerL
llvm::DIFile Unit) {
if (Tag == llvm::dwarf::DW_TAG_reference_type ||
Tag == llvm::dwarf::DW_TAG_rvalue_reference_type)
- return DBuilder.createReferenceType(Tag,
- CreatePointeeType(PointeeTy, Unit));
+ return DBuilder.createReferenceType(
+ Tag, getOrCreateTypeDeclaration(PointeeTy, Unit));
// Bit size, align and offset of the type.
// Size is always the size of a pointer. We can't use getTypeSize here
@@ -652,7 +652,7 @@ llvm::DIType CGDebugInfo::CreatePointerL
uint64_t Size = CGM.getTarget().getPointerWidth(AS);
uint64_t Align = CGM.getContext().getTypeAlign(Ty);
- return DBuilder.createPointerType(CreatePointeeType(PointeeTy, Unit),
+ return DBuilder.createPointerType(getOrCreateTypeDeclaration(PointeeTy, Unit),
Size, Align);
}
@@ -733,7 +733,8 @@ llvm::DIType CGDebugInfo::CreateType(con
llvm::DIType CGDebugInfo::CreateType(const TypedefType *Ty, llvm::DIFile Unit) {
// Typedefs are derived from some other type. If we have a typedef of a
// typedef, make sure to emit the whole chain.
- llvm::DIType Src = CreatePointeeType(Ty->getDecl()->getUnderlyingType(), Unit);
+ llvm::DIType Src =
+ getOrCreateTypeDeclaration(Ty->getDecl()->getUnderlyingType(), Unit);
if (!Src.Verify())
return llvm::DIType();
// We don't set size information, but do specify where the typedef was
@@ -1727,7 +1728,7 @@ llvm::DIType CGDebugInfo::CreateType(con
llvm::DIType ClassType = getOrCreateType(QualType(Ty->getClass(), 0), U);
if (!Ty->getPointeeType()->isFunctionType())
return DBuilder.createMemberPointerType(
- CreatePointeeType(Ty->getPointeeType(), U), ClassType);
+ getOrCreateTypeDeclaration(Ty->getPointeeType(), U), ClassType);
return DBuilder.createMemberPointerType(getOrCreateInstanceMethodType(
CGM.getContext().getPointerType(
QualType(Ty->getClass(), Ty->getPointeeType().getCVRQualifiers())),
@@ -2198,7 +2199,8 @@ llvm::DIDescriptor CGDebugInfo::getDecla
// in unlimited debug info)
if (const TypeDecl *TD = dyn_cast<TypeDecl>(D)) {
llvm::DIFile DefUnit = getOrCreateFile(TD->getLocation());
- return CreatePointeeType(CGM.getContext().getTypeDeclType(TD), DefUnit);
+ return getOrCreateTypeDeclaration(CGM.getContext().getTypeDeclType(TD),
+ DefUnit);
}
// Otherwise fall back to a fairly rudimentary cache of existing declarations.
// This doesn't handle providing declarations (for functions or variables) for
Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.h?rev=182674&r1=182673&r2=182674&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGDebugInfo.h (original)
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.h Fri May 24 16:33:22 2013
@@ -137,7 +137,7 @@ class CGDebugInfo {
llvm::DIFile F);
llvm::DIType getOrCreateVTablePtrType(llvm::DIFile F);
llvm::DINameSpace getOrCreateNameSpace(const NamespaceDecl *N);
- llvm::DIType CreatePointeeType(QualType PointeeTy, llvm::DIFile F);
+ llvm::DIType getOrCreateTypeDeclaration(QualType PointeeTy, llvm::DIFile F);
llvm::DIType CreatePointerLikeType(unsigned Tag,
const Type *Ty, QualType PointeeTy,
llvm::DIFile F);
More information about the cfe-commits
mailing list