CodeGen: Stop using DIDescriptor::is*() and auto-casting

Same as r234255, but for lib/CodeGen and lib/Target.

llvm-svn: 234258
diff --git a/llvm/lib/CodeGen/MachineInstr.cpp b/llvm/lib/CodeGen/MachineInstr.cpp
index f1c0d8e..2fdc2bc 100644
--- a/llvm/lib/CodeGen/MachineInstr.cpp
+++ b/llvm/lib/CodeGen/MachineInstr.cpp
@@ -1619,11 +1619,8 @@
     }
     if (isDebugValue() && MO.isMetadata()) {
       // Pretty print DBG_VALUE instructions.
-      const MDNode *MD = MO.getMetadata();
-      DIDescriptor DI(MD);
-      DIVariable DIV(MD);
-
-      if (DI.isVariable() && !DIV.getName().empty())
+      DIVariable DIV = dyn_cast<MDLocalVariable>(MO.getMetadata());
+      if (DIV && !DIV.getName().empty())
         OS << "!\"" << DIV.getName() << '\"';
       else
         MO.print(OS, TRI);
@@ -1713,7 +1710,7 @@
   // Print debug location information.
   if (isDebugValue() && getOperand(e - 2).isMetadata()) {
     if (!HaveSemi) OS << ";";
-    DIVariable DV(getOperand(e - 2).getMetadata());
+    DIVariable DV = cast<MDLocalVariable>(getOperand(e - 2).getMetadata());
     OS << " line no:" <<  DV.getLineNumber();
     if (auto *InlinedAt = DV.getInlinedAt()) {
       DebugLoc InlinedAtDL(InlinedAt);