Significantly clean up parsing of instructions.  This exceptionizes and
simplifies the control flow a bit.  This provides a small (~3%) speedup,
but it's primarily a cleanup exercise.

llvm-svn: 8983
diff --git a/llvm/lib/Bytecode/Reader/Reader.cpp b/llvm/lib/Bytecode/Reader/Reader.cpp
index 4011af7..67726eb 100644
--- a/llvm/lib/Bytecode/Reader/Reader.cpp
+++ b/llvm/lib/Bytecode/Reader/Reader.cpp
@@ -199,10 +199,7 @@
     BB = ParsedBasicBlocks[BlockNo];
 
   while (Buf < EndBuf) {
-    Instruction *Inst;
-    ParseInstruction(Buf, EndBuf, Inst);
-
-    if (Inst == 0) { throw std::string("Could not parse Instruction."); }
+    Instruction *Inst = ParseInstruction(Buf, EndBuf);
     if (insertValue(Inst, Values) == -1) { 
       throw std::string("Could not insert value.");
     }