diff options
author | Reid Kleckner <rnk@google.com> | 2019-11-14 13:46:00 -0800 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2019-11-14 13:47:18 -0800 |
commit | f24c3352c97b864ae6c9851949497b8f880133f6 (patch) | |
tree | 8073180ce4db549a0ebab4915f99cde06224ac17 | |
parent | bfa32573bf2d0ab587f9a5d933ea2144a382cf3c (diff) | |
download | bcm5719-llvm-f24c3352c97b864ae6c9851949497b8f880133f6.tar.gz bcm5719-llvm-f24c3352c97b864ae6c9851949497b8f880133f6.zip |
[COFF] Don't include llvm/LTO/LTO.h in a header
LLVM's LTO header includes all of llvm/IR, which most of the COFF linker
doesn't need.
-rw-r--r-- | lld/COFF/InputFiles.cpp | 7 | ||||
-rw-r--r-- | lld/COFF/InputFiles.h | 8 | ||||
-rw-r--r-- | lld/COFF/MinGW.h | 1 | ||||
-rw-r--r-- | lld/COFF/SymbolTable.cpp | 1 | ||||
-rw-r--r-- | lld/COFF/Writer.cpp | 1 |
5 files changed, 15 insertions, 3 deletions
diff --git a/lld/COFF/InputFiles.cpp b/lld/COFF/InputFiles.cpp index faec3ba160a..16eb32864a9 100644 --- a/lld/COFF/InputFiles.cpp +++ b/lld/COFF/InputFiles.cpp @@ -24,6 +24,7 @@ #include "llvm/DebugInfo/CodeView/SymbolDeserializer.h" #include "llvm/DebugInfo/CodeView/SymbolRecord.h" #include "llvm/DebugInfo/CodeView/TypeDeserializer.h" +#include "llvm/LTO/LTO.h" #include "llvm/Object/Binary.h" #include "llvm/Object/COFF.h" #include "llvm/Support/Casting.h" @@ -877,6 +878,10 @@ void ImportFile::parse() { } BitcodeFile::BitcodeFile(MemoryBufferRef mb, StringRef archiveName, + uint64_t offsetInArchive) + : BitcodeFile(mb, archiveName, offsetInArchive, {}) {} + +BitcodeFile::BitcodeFile(MemoryBufferRef mb, StringRef archiveName, uint64_t offsetInArchive, std::vector<Symbol *> &&symbols) : InputFile(BitcodeKind, mb), symbols(std::move(symbols)) { @@ -898,6 +903,8 @@ BitcodeFile::BitcodeFile(MemoryBufferRef mb, StringRef archiveName, obj = check(lto::InputFile::create(mbref)); } +BitcodeFile::~BitcodeFile() = default; + void BitcodeFile::parse() { std::vector<std::pair<Symbol *, bool>> comdat(obj->getComdatTable().size()); for (size_t i = 0; i != obj->getComdatTable().size(); ++i) diff --git a/lld/COFF/InputFiles.h b/lld/COFF/InputFiles.h index 672461cd84b..f369ad009af 100644 --- a/lld/COFF/InputFiles.h +++ b/lld/COFF/InputFiles.h @@ -17,7 +17,6 @@ #include "llvm/ADT/DenseSet.h" #include "llvm/BinaryFormat/Magic.h" #include "llvm/DebugInfo/CodeView/TypeRecord.h" -#include "llvm/LTO/LTO.h" #include "llvm/Object/Archive.h" #include "llvm/Object/COFF.h" #include "llvm/Support/StringSaver.h" @@ -30,6 +29,9 @@ struct DILineInfo; namespace pdb { class DbiModuleDescriptorBuilder; } +namespace lto { +class InputFile; +} } namespace lld { @@ -336,11 +338,11 @@ public: class BitcodeFile : public InputFile { public: BitcodeFile(MemoryBufferRef mb, StringRef archiveName, - uint64_t offsetInArchive) - : BitcodeFile(mb, archiveName, offsetInArchive, {}) {} + uint64_t offsetInArchive); explicit BitcodeFile(MemoryBufferRef m, StringRef archiveName, uint64_t offsetInArchive, std::vector<Symbol *> &&symbols); + ~BitcodeFile(); static bool classof(const InputFile *f) { return f->kind() == BitcodeKind; } ArrayRef<Symbol *> getSymbols() { return symbols; } MachineTypes getMachineType() override; diff --git a/lld/COFF/MinGW.h b/lld/COFF/MinGW.h index 578a277561a..3d7a186aa19 100644 --- a/lld/COFF/MinGW.h +++ b/lld/COFF/MinGW.h @@ -12,6 +12,7 @@ #include "Config.h" #include "Symbols.h" #include "lld/Common/LLVM.h" +#include "llvm/ADT/StringSet.h" namespace lld { namespace coff { diff --git a/lld/COFF/SymbolTable.cpp b/lld/COFF/SymbolTable.cpp index b582d225df7..302b05b31ab 100644 --- a/lld/COFF/SymbolTable.cpp +++ b/lld/COFF/SymbolTable.cpp @@ -17,6 +17,7 @@ #include "lld/Common/Timer.h" #include "llvm/DebugInfo/Symbolize/Symbolize.h" #include "llvm/IR/LLVMContext.h" +#include "llvm/LTO/LTO.h" #include "llvm/Object/WindowsMachineFlag.h" #include "llvm/Support/Debug.h" #include "llvm/Support/raw_ostream.h" diff --git a/lld/COFF/Writer.cpp b/lld/COFF/Writer.cpp index 9d912d339bc..965b3667df5 100644 --- a/lld/COFF/Writer.cpp +++ b/lld/COFF/Writer.cpp @@ -20,6 +20,7 @@ #include "lld/Common/Timer.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/STLExtras.h" +#include "llvm/ADT/StringSet.h" #include "llvm/ADT/StringSwitch.h" #include "llvm/Support/BinaryStreamReader.h" #include "llvm/Support/Debug.h" |