diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2018-02-14 19:11:32 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2018-02-14 19:11:32 +0000 |
commit | 6a86e25d90303dd84f179cbe07db9c08eb8161eb (patch) | |
tree | 4ae81941bb37548c3242991b87afe00a87583d76 /llvm/lib/Bitcode | |
parent | 6d9cf8aa9d7cad2070f228ed00217ec3c5037d80 (diff) | |
download | bcm5719-llvm-6a86e25d90303dd84f179cbe07db9c08eb8161eb.tar.gz bcm5719-llvm-6a86e25d90303dd84f179cbe07db9c08eb8161eb.zip |
Pass a reference to a module to the bitcode writer.
This simplifies most callers as they are already using references or
std::unique_ptr.
llvm-svn: 325155
Diffstat (limited to 'llvm/lib/Bitcode')
-rw-r--r-- | llvm/lib/Bitcode/Writer/BitWriter.cpp | 6 | ||||
-rw-r--r-- | llvm/lib/Bitcode/Writer/BitcodeWriter.cpp | 31 | ||||
-rw-r--r-- | llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp | 4 |
3 files changed, 20 insertions, 21 deletions
diff --git a/llvm/lib/Bitcode/Writer/BitWriter.cpp b/llvm/lib/Bitcode/Writer/BitWriter.cpp index e0388418a3d..763cd12aa2d 100644 --- a/llvm/lib/Bitcode/Writer/BitWriter.cpp +++ b/llvm/lib/Bitcode/Writer/BitWriter.cpp @@ -25,7 +25,7 @@ int LLVMWriteBitcodeToFile(LLVMModuleRef M, const char *Path) { if (EC) return -1; - WriteBitcodeToFile(unwrap(M), OS); + WriteBitcodeToFile(*unwrap(M), OS); return 0; } @@ -33,7 +33,7 @@ int LLVMWriteBitcodeToFD(LLVMModuleRef M, int FD, int ShouldClose, int Unbuffered) { raw_fd_ostream OS(FD, ShouldClose, Unbuffered); - WriteBitcodeToFile(unwrap(M), OS); + WriteBitcodeToFile(*unwrap(M), OS); return 0; } @@ -45,6 +45,6 @@ LLVMMemoryBufferRef LLVMWriteBitcodeToMemoryBuffer(LLVMModuleRef M) { std::string Data; raw_string_ostream OS(Data); - WriteBitcodeToFile(unwrap(M), OS); + WriteBitcodeToFile(*unwrap(M), OS); return wrap(MemoryBuffer::getMemBufferCopy(OS.str()).release()); } diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp index 10620113386..b087f010de1 100644 --- a/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp +++ b/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp @@ -170,12 +170,12 @@ protected: public: /// Constructs a ModuleBitcodeWriterBase object for the given Module, /// writing to the provided \p Buffer. - ModuleBitcodeWriterBase(const Module *M, StringTableBuilder &StrtabBuilder, + ModuleBitcodeWriterBase(const Module &M, StringTableBuilder &StrtabBuilder, BitstreamWriter &Stream, bool ShouldPreserveUseListOrder, const ModuleSummaryIndex *Index) - : BitcodeWriterBase(Stream, StrtabBuilder), M(*M), - VE(*M, ShouldPreserveUseListOrder), Index(Index) { + : BitcodeWriterBase(Stream, StrtabBuilder), M(M), + VE(M, ShouldPreserveUseListOrder), Index(Index) { // Assign ValueIds to any callee values in the index that came from // indirect call profiles and were recorded as a GUID not a Value* // (which would have been assigned an ID by the ValueEnumerator). @@ -254,7 +254,7 @@ class ModuleBitcodeWriter : public ModuleBitcodeWriterBase { public: /// Constructs a ModuleBitcodeWriter object for the given Module, /// writing to the provided \p Buffer. - ModuleBitcodeWriter(const Module *M, SmallVectorImpl<char> &Buffer, + ModuleBitcodeWriter(const Module &M, SmallVectorImpl<char> &Buffer, StringTableBuilder &StrtabBuilder, BitstreamWriter &Stream, bool ShouldPreserveUseListOrder, const ModuleSummaryIndex *Index, bool GenerateHash, @@ -4038,7 +4038,7 @@ void BitcodeWriter::copyStrtab(StringRef Strtab) { WroteStrtab = true; } -void BitcodeWriter::writeModule(const Module *M, +void BitcodeWriter::writeModule(const Module &M, bool ShouldPreserveUseListOrder, const ModuleSummaryIndex *Index, bool GenerateHash, ModuleHash *ModHash) { @@ -4048,8 +4048,8 @@ void BitcodeWriter::writeModule(const Module *M, // Modules in case it needs to materialize metadata. But the bitcode writer // requires that the module is materialized, so we can cast to non-const here, // after checking that it is in fact materialized. - assert(M->isMaterialized()); - Mods.push_back(const_cast<Module *>(M)); + assert(M.isMaterialized()); + Mods.push_back(const_cast<Module *>(&M)); ModuleBitcodeWriter ModuleWriter(M, Buffer, StrtabBuilder, *Stream, ShouldPreserveUseListOrder, Index, @@ -4065,9 +4065,8 @@ void BitcodeWriter::writeIndex( IndexWriter.write(); } -/// WriteBitcodeToFile - Write the specified module to the specified output -/// stream. -void llvm::WriteBitcodeToFile(const Module *M, raw_ostream &Out, +/// Write the specified module to the specified output stream. +void llvm::WriteBitcodeToFile(const Module &M, raw_ostream &Out, bool ShouldPreserveUseListOrder, const ModuleSummaryIndex *Index, bool GenerateHash, ModuleHash *ModHash) { @@ -4076,7 +4075,7 @@ void llvm::WriteBitcodeToFile(const Module *M, raw_ostream &Out, // If this is darwin or another generic macho target, reserve space for the // header. - Triple TT(M->getTargetTriple()); + Triple TT(M.getTargetTriple()); if (TT.isOSDarwin() || TT.isOSBinFormatMachO()) Buffer.insert(Buffer.begin(), BWH_HeaderSize, 0); @@ -4133,7 +4132,7 @@ class ThinLinkBitcodeWriter : public ModuleBitcodeWriterBase { const ModuleHash *ModHash; public: - ThinLinkBitcodeWriter(const Module *M, StringTableBuilder &StrtabBuilder, + ThinLinkBitcodeWriter(const Module &M, StringTableBuilder &StrtabBuilder, BitstreamWriter &Stream, const ModuleSummaryIndex &Index, const ModuleHash &ModHash) @@ -4251,7 +4250,7 @@ void ThinLinkBitcodeWriter::write() { Stream.ExitBlock(); } -void BitcodeWriter::writeThinLinkBitcode(const Module *M, +void BitcodeWriter::writeThinLinkBitcode(const Module &M, const ModuleSummaryIndex &Index, const ModuleHash &ModHash) { assert(!WroteStrtab); @@ -4260,8 +4259,8 @@ void BitcodeWriter::writeThinLinkBitcode(const Module *M, // Modules in case it needs to materialize metadata. But the bitcode writer // requires that the module is materialized, so we can cast to non-const here, // after checking that it is in fact materialized. - assert(M->isMaterialized()); - Mods.push_back(const_cast<Module *>(M)); + assert(M.isMaterialized()); + Mods.push_back(const_cast<Module *>(&M)); ThinLinkBitcodeWriter ThinLinkWriter(M, StrtabBuilder, *Stream, Index, ModHash); @@ -4271,7 +4270,7 @@ void BitcodeWriter::writeThinLinkBitcode(const Module *M, // Write the specified thin link bitcode file to the given raw output stream, // where it will be written in a new bitcode block. This is used when // writing the per-module index file for ThinLTO. -void llvm::WriteThinLinkBitcodeToFile(const Module *M, raw_ostream &Out, +void llvm::WriteThinLinkBitcodeToFile(const Module &M, raw_ostream &Out, const ModuleSummaryIndex &Index, const ModuleHash &ModHash) { SmallVector<char, 0> Buffer; diff --git a/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp b/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp index 80cab762a68..cbed3d4495a 100644 --- a/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp +++ b/llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp @@ -23,7 +23,7 @@ PreservedAnalyses BitcodeWriterPass::run(Module &M, ModuleAnalysisManager &AM) { const ModuleSummaryIndex *Index = EmitSummaryIndex ? &(AM.getResult<ModuleSummaryIndexAnalysis>(M)) : nullptr; - WriteBitcodeToFile(&M, OS, ShouldPreserveUseListOrder, Index, EmitModuleHash); + WriteBitcodeToFile(M, OS, ShouldPreserveUseListOrder, Index, EmitModuleHash); return PreservedAnalyses::all(); } @@ -55,7 +55,7 @@ namespace { EmitSummaryIndex ? &(getAnalysis<ModuleSummaryIndexWrapperPass>().getIndex()) : nullptr; - WriteBitcodeToFile(&M, OS, ShouldPreserveUseListOrder, Index, + WriteBitcodeToFile(M, OS, ShouldPreserveUseListOrder, Index, EmitModuleHash); return false; } |