OSDN Git Service

DwarfCompileUnit: Push DIDescriptor usage out from isShareableAcrossCUs
authorDavid Blaikie <dblaikie@gmail.com>
Fri, 15 Nov 2013 22:59:36 +0000 (22:59 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Fri, 15 Nov 2013 22:59:36 +0000 (22:59 +0000)
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

lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp

index 1120279..93de018 100644 (file)
@@ -99,11 +99,11 @@ int64_t CompileUnit::getDefaultLowerBound() const {
 }
 
 /// 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
   // shared across CUs.
-  return DIDescriptor(N).isType() ||
-         (DIDescriptor(N).isSubprogram() && !DISubprogram(N).isDefinition());
+  return D.isType() ||
+         (D.isSubprogram() && !DISubprogram(D).isDefinition());
 }
 
 /// 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
 /// will be kept in DwarfDebug for shareable DIEs.
 DIE *CompileUnit::getDIE(const MDNode *N) const {
-  if (isShareableAcrossCUs(N))
+  if (isShareableAcrossCUs(DIDescriptor(N)))
     return DD->getDIE(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
 /// will be kept in DwarfDebug for shareable DIEs.
 void CompileUnit::insertDIE(const MDNode *N, DIE *D) {
-  if (isShareableAcrossCUs(N)) {
+  if (isShareableAcrossCUs(DIDescriptor(N))) {
     DD->insertDIE(N, D);
     return;
   }