* New revised variable argument handling support
* More dense bytecode encoding for varargs calls (like printf)
* Eliminated the extremely old bytecode format.  rev #0 is now 1.0


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9220 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Bytecode/Reader/ReaderInternals.h b/lib/Bytecode/Reader/ReaderInternals.h
index 7f921d7..c8b3b3a 100644
--- a/lib/Bytecode/Reader/ReaderInternals.h
+++ b/lib/Bytecode/Reader/ReaderInternals.h
@@ -80,8 +80,12 @@
   // Information about the module, extracted from the bytecode revision number.
   unsigned char RevisionNum;        // The rev # itself
   unsigned char FirstDerivedTyID;   // First variable index to use for type
-  bool HasImplicitZeroInitializer;  // Is entry 0 of every slot implicity zeros?
   bool hasInternalMarkerOnly;       // Only types of linkage are intern/external
+  bool hasExtendedLinkageSpecs;     // Supports more than 4 linkage types
+  bool hasOldStyleVarargs;          // Has old version of varargs intrinsics?
+  bool hasVarArgCallPadding;        // Bytecode has extra padding in vararg call
+
+  bool usesOldStyleVarargs;         // Does this module USE old style varargs?
 
   typedef std::vector<ValueList*> ValueTable;
   ValueTable Values;
@@ -148,9 +152,8 @@
                               const unsigned char *End,
                               unsigned BlockNo);
 
-  Instruction *ParseInstruction(const unsigned char *&Buf,
-                                const unsigned char *End,
-                                std::vector<unsigned> &Args);
+  void ParseInstruction(const unsigned char *&Buf, const unsigned char *End,
+                        std::vector<unsigned> &Args, BasicBlock *BB);
 
   void ParseConstantPool(const unsigned char *&Buf, const unsigned char *EndBuf,
                          ValueTable &Tab, TypeValuesListTy &TypeTab);