diff options
author | Owen Anderson <resistor@mac.com> | 2009-07-01 16:58:40 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2009-07-01 16:58:40 +0000 |
commit | 25209b40cbff14093adc4f0b47f0060e44e18752 (patch) | |
tree | 70d3be97f6ecf1ab7962e6cfafd113f2f7ce2579 /include/llvm/Bitcode/Archive.h | |
parent | eebec97cac006a6aa9c1a1792aa6a5384e357059 (diff) | |
download | external_llvm-25209b40cbff14093adc4f0b47f0060e44e18752.zip external_llvm-25209b40cbff14093adc4f0b47f0060e44e18752.tar.gz external_llvm-25209b40cbff14093adc4f0b47f0060e44e18752.tar.bz2 |
Add a pointer to the owning LLVMContext to Module. This requires threading LLVMContext through a lot
of the bitcode reader and ASM parser APIs, as well as supporting it in all of the tools.
Patches for Clang and LLVM-GCC to follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74614 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Bitcode/Archive.h')
-rw-r--r-- | include/llvm/Bitcode/Archive.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/include/llvm/Bitcode/Archive.h b/include/llvm/Bitcode/Archive.h index a3631ac..c188df8 100644 --- a/include/llvm/Bitcode/Archive.h +++ b/include/llvm/Bitcode/Archive.h @@ -32,6 +32,7 @@ class ModuleProvider; // From VMCore class Module; // From VMCore class Archive; // Declared below class ArchiveMemberHeader; // Internal implementation class +class LLVMContext; // Global data /// This class is the main class manipulated by users of the Archive class. It /// holds information about one member of the Archive. It is also the element @@ -278,7 +279,8 @@ class Archive { /// @returns An Archive* that represents the new archive file. /// @brief Create an empty Archive. static Archive* CreateEmpty( - const sys::Path& Filename ///< Name of the archive to (eventually) create. + const sys::Path& Filename,///< Name of the archive to (eventually) create. + LLVMContext* C ///< Context to use for global information ); /// Open an existing archive and load its contents in preparation for @@ -289,6 +291,7 @@ class Archive { /// @brief Open and load an archive file static Archive* OpenAndLoad( const sys::Path& filePath, ///< The file path to open and load + LLVMContext* C, ///< The context to use for global information std::string* ErrorMessage ///< An optional error string ); @@ -310,6 +313,7 @@ class Archive { /// @brief Open an existing archive and load its symbols. static Archive* OpenAndLoadSymbols( const sys::Path& Filename, ///< Name of the archive file to open + LLVMContext* C, ///< The context to use for global info std::string* ErrorMessage=0 ///< An optional error string ); @@ -449,7 +453,7 @@ class Archive { protected: /// @brief Construct an Archive for \p filename and optionally map it /// into memory. - explicit Archive(const sys::Path& filename); + explicit Archive(const sys::Path& filename, LLVMContext* C); /// @param data The symbol table data to be parsed /// @param len The length of the symbol table data @@ -530,6 +534,7 @@ class Archive { unsigned firstFileOffset; ///< Offset to first normal file. ModuleMap modules; ///< The modules loaded via symbol lookup. ArchiveMember* foreignST; ///< This holds the foreign symbol table. + LLVMContext* Context; ///< This holds global data. /// @} /// @name Hidden /// @{ |