diff options
author | Chris Lattner <sabre@nondot.org> | 2003-03-06 17:55:45 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-03-06 17:55:45 +0000 |
commit | 036b8aa0307d29e87ad209727e2218c3d9d9bf2b (patch) | |
tree | 1358fe0be48faf1b87df2f52c764d1b121368898 /lib/Bytecode/Reader/ReaderInternals.h | |
parent | 6e5a0e4e89a08f79af11a68a73ce1526cc606a65 (diff) | |
download | external_llvm-036b8aa0307d29e87ad209727e2218c3d9d9bf2b.zip external_llvm-036b8aa0307d29e87ad209727e2218c3d9d9bf2b.tar.gz external_llvm-036b8aa0307d29e87ad209727e2218c3d9d9bf2b.tar.bz2 |
Infrastructure for more compact bytecode files and REAL support for versioning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5716 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Bytecode/Reader/ReaderInternals.h')
-rw-r--r-- | lib/Bytecode/Reader/ReaderInternals.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/Bytecode/Reader/ReaderInternals.h b/lib/Bytecode/Reader/ReaderInternals.h index 9ed7e29..09a21d7 100644 --- a/lib/Bytecode/Reader/ReaderInternals.h +++ b/lib/Bytecode/Reader/ReaderInternals.h @@ -57,6 +57,12 @@ public: private: // All of this data is transient across calls to ParseBytecode Module *TheModule; // Current Module being read into... + // 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 isBigEndian, hasLongPointers;// Information about the target compiled for + typedef std::vector<Value *> ValueList; typedef std::vector<ValueList> ValueTable; ValueTable Values, LateResolveValues; @@ -78,9 +84,6 @@ private: // All of this data is transient across calls to ParseBytecode TypeValuesListTy ModuleTypeValues; TypeValuesListTy FunctionTypeValues; - // Information read from the ModuleGlobalInfo section of the file... - unsigned FirstDerivedTyID; - // When the ModuleGlobalInfo section is read, we load the type of each // function and the 'ModuleValues' slot that it lands in. We then load a // placeholder into its slot to reserve it. When the function is loaded, this @@ -90,6 +93,7 @@ private: // All of this data is transient across calls to ParseBytecode private: bool ParseModule (const uchar * Buf, const uchar *End); + bool ParseVersionInfo (const uchar *&Buf, const uchar *End); bool ParseModuleGlobalInfo(const uchar *&Buf, const uchar *End); bool ParseSymbolTable (const uchar *&Buf, const uchar *End, SymbolTable *); bool ParseFunction (const uchar *&Buf, const uchar *End); |