DwarfCompileUnit: Push DIDescriptor usage out from isShareableAcrossCUs

This is the first of a few similar patches. We'll see how far it
goes/makes sense.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194871 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
David Blaikie
2013-11-15 22:59:36 +00:00
parent ef1b87a1ad
commit 86a3348737

View File

@@ -99,11 +99,11 @@ int64_t CompileUnit::getDefaultLowerBound() const {
} }
/// Check whether the DIE for this MDNode can be shared across CUs. /// Check whether the DIE for this MDNode can be shared across CUs.
static bool isShareableAcrossCUs(const MDNode *N) { static bool isShareableAcrossCUs(DIDescriptor D) {
// When the MDNode can be part of the type system, the DIE can be // When the MDNode can be part of the type system, the DIE can be
// shared across CUs. // shared across CUs.
return DIDescriptor(N).isType() || return D.isType() ||
(DIDescriptor(N).isSubprogram() && !DISubprogram(N).isDefinition()); (D.isSubprogram() && !DISubprogram(D).isDefinition());
} }
/// getDIE - Returns the debug information entry map slot for the /// getDIE - Returns the debug information entry map slot for the
@@ -111,7 +111,7 @@ static bool isShareableAcrossCUs(const MDNode *N) {
/// when the DIE for this MDNode can be shared across CUs. The mappings /// when the DIE for this MDNode can be shared across CUs. The mappings
/// will be kept in DwarfDebug for shareable DIEs. /// will be kept in DwarfDebug for shareable DIEs.
DIE *CompileUnit::getDIE(const MDNode *N) const { DIE *CompileUnit::getDIE(const MDNode *N) const {
if (isShareableAcrossCUs(N)) if (isShareableAcrossCUs(DIDescriptor(N)))
return DD->getDIE(N); return DD->getDIE(N);
return MDNodeToDieMap.lookup(N); return MDNodeToDieMap.lookup(N);
} }
@@ -120,7 +120,7 @@ DIE *CompileUnit::getDIE(const MDNode *N) const {
/// when the DIE for this MDNode can be shared across CUs. The mappings /// when the DIE for this MDNode can be shared across CUs. The mappings
/// will be kept in DwarfDebug for shareable DIEs. /// will be kept in DwarfDebug for shareable DIEs.
void CompileUnit::insertDIE(const MDNode *N, DIE *D) { void CompileUnit::insertDIE(const MDNode *N, DIE *D) {
if (isShareableAcrossCUs(N)) { if (isShareableAcrossCUs(DIDescriptor(N))) {
DD->insertDIE(N, D); DD->insertDIE(N, D);
return; return;
} }