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/ReaderInternals.h b/llvm/lib/Bytecode/Reader/ReaderInternals.h
index 410be3a..42f7e1b 100644
--- a/llvm/lib/Bytecode/Reader/ReaderInternals.h
+++ b/llvm/lib/Bytecode/Reader/ReaderInternals.h
@@ -163,8 +163,8 @@
                               const unsigned char *End,
                               unsigned BlockNo);
 
-  bool ParseInstruction(const unsigned char *&Buf, const unsigned char *End,
-                        Instruction *&);
+  Instruction *ParseInstruction(const unsigned char *&Buf,
+                                const unsigned char *End);
   std::auto_ptr<RawInst> ParseRawInst(const unsigned char *&Buf,
                                       const unsigned char *End);