Don't look up the "dbg" metadata kind by name.
authorDan Gohman <gohman@apple.com>
Tue, 20 Jul 2010 23:09:34 +0000 (23:09 +0000)
committerDan Gohman <gohman@apple.com>
Tue, 20 Jul 2010 23:09:34 +0000 (23:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108961 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/IPO/StripSymbols.cpp
lib/Transforms/Utils/CloneFunction.cpp
lib/Transforms/Utils/PromoteMemoryToRegister.cpp

index 12e8db8b4a5463803c918d84aa5ee9a9387900ec..343702028aeaaeb0ef318a841ebef7c25a4462b0 100644 (file)
@@ -254,14 +254,13 @@ static bool StripDebugInfo(Module &M) {
     }
   }
 
-  unsigned MDDbgKind = M.getMDKindID("dbg");
   for (Module::iterator MI = M.begin(), ME = M.end(); MI != ME; ++MI)
     for (Function::iterator FI = MI->begin(), FE = MI->end(); FI != FE;
          ++FI)
       for (BasicBlock::iterator BI = FI->begin(), BE = FI->end(); BI != BE;
            ++BI) {
-        Changed = true; // FIXME: Only set if there was debug metadata.
-        BI->setMetadata(MDDbgKind, 0);
+        Changed != !BI->getDebugLoc().isUnknown();
+        BI->setDebugLoc(DebugLoc());
       }
 
   return Changed;
index 1dcfd578784663c13fb451c74be81a1deb3ec81c..2aea51abdb36a7e8438d7e1a9e434cce7e4a23ea 100644 (file)
@@ -408,10 +408,9 @@ void llvm::CloneAndPruneFunctionInto(Function *NewFunc, const Function *OldFunc,
     //
     BasicBlock::iterator I = NewBB->begin();
 
-    unsigned DbgKind = OldFunc->getContext().getMDKindID("dbg");
     MDNode *TheCallMD = NULL;
     if (TheCall && TheCall->hasMetadata()) 
-      TheCallMD = TheCall->getMetadata(DbgKind);
+      TheCallMD = TheCall->getMetadata(LLVMContext::MD_dbg);
     
     // Handle PHI nodes specially, as we have to remove references to dead
     // blocks.
@@ -421,14 +420,14 @@ void llvm::CloneAndPruneFunctionInto(Function *NewFunc, const Function *OldFunc,
       for (; (PN = dyn_cast<PHINode>(I)); ++I, ++OldI) {
         if (I->hasMetadata()) {
           if (TheCallMD) {
-            if (MDNode *IMD = I->getMetadata(DbgKind)) {
+            if (MDNode *IMD = I->getMetadata(LLVMContext::MD_dbg)) {
               MDNode *NewMD = UpdateInlinedAtInfo(IMD, TheCallMD);
-              I->setMetadata(DbgKind, NewMD);
+              I->setMetadata(LLVMContext::MD_dbg, NewMD);
             }
           } else {
             // The cloned instruction has dbg info but the call instruction
             // does not have dbg info. Remove dbg info from cloned instruction.
-            I->setMetadata(DbgKind, 0);
+            I->setMetadata(LLVMContext::MD_dbg, 0);
           }
         }
         PHIToResolve.push_back(cast<PHINode>(OldI));
@@ -445,14 +444,14 @@ void llvm::CloneAndPruneFunctionInto(Function *NewFunc, const Function *OldFunc,
     for (; I != NewBB->end(); ++I) {
       if (I->hasMetadata()) {
         if (TheCallMD) {
-          if (MDNode *IMD = I->getMetadata(DbgKind)) {
+          if (MDNode *IMD = I->getMetadata(LLVMContext::MD_dbg)) {
             MDNode *NewMD = UpdateInlinedAtInfo(IMD, TheCallMD);
-            I->setMetadata(DbgKind, NewMD);
+            I->setMetadata(LLVMContext::MD_dbg, NewMD);
           }
         } else {
           // The cloned instruction has dbg info but the call instruction
           // does not have dbg info. Remove dbg info from cloned instruction.
-          I->setMetadata(DbgKind, 0);
+          I->setMetadata(LLVMContext::MD_dbg, 0);
         }
       }
       RemapInstruction(I, VMap);
index c0de1938b2db324e977ebf4eb994756f2b6a52ef..175854212c74385d7ee724da764f39896db8c941 100644 (file)
@@ -896,11 +896,12 @@ void PromoteMem2Reg::ConvertDebugDeclareToDebugValue(DbgDeclareInst *DDI,
                                                      DIVar, SI);
   
   // Propagate any debug metadata from the store onto the dbg.value.
-  if (MDNode *SIMD = SI->getMetadata("dbg"))
-    DbgVal->setMetadata("dbg", SIMD);
+  DebugLoc SIDL = SI->getDebugLoc();
+  if (!SIDL.isUnknown())
+    DbgVal->setDebugLoc(SIDL);
   // Otherwise propagate debug metadata from dbg.declare.
-  else if (MDNode *MD = DDI->getMetadata("dbg"))
-      DbgVal->setMetadata("dbg", MD);         
+  else
+    DbgVal->setDebugLoc(DDI->getDebugLoc());
 }
 
 // QueuePhiNode - queues a phi-node to be added to a basic-block for a specific