diff options
author | Teresa Johnson <tejohnson@google.com> | 2016-11-11 05:46:30 +0000 |
---|---|---|
committer | Teresa Johnson <tejohnson@google.com> | 2016-11-11 05:46:30 +0000 |
commit | 85a1c2100f452e25fba9c809d3ab25c51e97c3e1 (patch) | |
tree | 4f94f7827fd14da61682e55a24e410dd819f896d /include | |
parent | a5479197371e169bc676e0e570f2a994329f8773 (diff) |
Add missing file from r286566
Add the new BitcodeWriter.h header, which was missed in my r286566
commit, and should fix all the bot failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286569 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Bitcode/BitcodeWriter.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/include/llvm/Bitcode/BitcodeWriter.h b/include/llvm/Bitcode/BitcodeWriter.h new file mode 100644 index 00000000000..57955dfcef0 --- /dev/null +++ b/include/llvm/Bitcode/BitcodeWriter.h @@ -0,0 +1,53 @@ +//===-- llvm/Bitcode/BitcodeWriter.h - Bitcode writers ----*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This header defines interfaces to write LLVM bitcode files/streams. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_BITCODE_BITCODEWRITER_H +#define LLVM_BITCODE_BITCODEWRITER_H + +#include "llvm/IR/ModuleSummaryIndex.h" +#include <string> + +namespace llvm { + class Module; + class raw_ostream; + + /// \brief Write the specified module to the specified raw output stream. + /// + /// For streams where it matters, the given stream should be in "binary" + /// mode. + /// + /// If \c ShouldPreserveUseListOrder, encode the use-list order for each \a + /// Value in \c M. These will be reconstructed exactly when \a M is + /// deserialized. + /// + /// If \c Index is supplied, the bitcode will contain the summary index + /// (currently for use in ThinLTO optimization). + /// + /// \p GenerateHash enables hashing the Module and including the hash in the + /// bitcode (currently for use in ThinLTO incremental build). + void WriteBitcodeToFile(const Module *M, raw_ostream &Out, + bool ShouldPreserveUseListOrder = false, + const ModuleSummaryIndex *Index = nullptr, + bool GenerateHash = false); + + /// Write the specified module summary index to the given raw output stream, + /// where it will be written in a new bitcode block. This is used when + /// writing the combined index file for ThinLTO. When writing a subset of the + /// index for a distributed backend, provide the \p ModuleToSummariesForIndex + /// map. + void WriteIndexToFile(const ModuleSummaryIndex &Index, raw_ostream &Out, + const std::map<std::string, GVSummaryMapTy> + *ModuleToSummariesForIndex = nullptr); +} // End llvm namespace + +#endif |