Change intrinsic result type for void to store it as an empty list
instead of as a single element list with VoidTy.  Now with a fix
for the verifier.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99206 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/utils/TableGen/CodeGenTarget.cpp b/utils/TableGen/CodeGenTarget.cpp
index 79bc30d..0d29a2f 100644
--- a/utils/TableGen/CodeGenTarget.cpp
+++ b/utils/TableGen/CodeGenTarget.cpp
@@ -490,12 +490,15 @@
       OverloadedVTs.push_back(VT);
       isOverloaded |= true;
     }
+    
     IS.RetVTs.push_back(VT);
     IS.RetTypeDefs.push_back(TyEl);
   }
-
-  if (IS.RetVTs.size() == 0)
-    throw "Intrinsic '"+DefName+"' needs at least a type for the ret value!";
+  
+  if (IS.RetVTs.size() == 1 && IS.RetVTs[0] == MVT::isVoid) {
+    IS.RetVTs.pop_back();
+    IS.RetTypeDefs.pop_back();
+  }
 
   // Parse the list of parameter types.
   TypeList = R->getValueAsListInit("ParamTypes");