Add a new Record::getValueAsCode method to mirror the other getValueAs*
methods.  Use it to simplify some code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23336 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/TableGen/CodeGenTarget.cpp b/utils/TableGen/CodeGenTarget.cpp
index 61e237f..7c153ec 100644
--- a/utils/TableGen/CodeGenTarget.cpp
+++ b/utils/TableGen/CodeGenTarget.cpp
@@ -154,17 +154,8 @@
   SpillAlignment = R->getValueAsInt("Alignment");
   VT = getValueType(R->getValueAsDef("RegType"));
 
-  if (CodeInit *CI = dynamic_cast<CodeInit*>(R->getValueInit("MethodBodies")))
-    MethodBodies = CI->getValue();
-  else
-    throw "Expected 'code' fragment for 'MethodBodies' value in register "
-          "class '" + getName() + "'!";
-
-  if (CodeInit *CI = dynamic_cast<CodeInit*>(R->getValueInit("MethodProtos")))
-    MethodProtos = CI->getValue();
-  else
-    throw "Expected 'code' fragment for 'MethodProtos' value in register "
-      "class '" + getName() + "'!";
+  MethodBodies = R->getValueAsCode("MethodBodies");
+  MethodProtos = R->getValueAsCode("MethodProtos");
   
   ListInit *RegList = R->getValueAsListInit("MemberList");
   for (unsigned i = 0, e = RegList->getSize(); i != e; ++i) {