Skip to content

Commit f24c335

Browse files
committed
[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.
1 parent bfa3257 commit f24c335

File tree

5 files changed

+15
-3
lines changed

5 files changed

+15
-3
lines changed

lld/COFF/InputFiles.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include "llvm/DebugInfo/CodeView/SymbolDeserializer.h"
2525
#include "llvm/DebugInfo/CodeView/SymbolRecord.h"
2626
#include "llvm/DebugInfo/CodeView/TypeDeserializer.h"
27+
#include "llvm/LTO/LTO.h"
2728
#include "llvm/Object/Binary.h"
2829
#include "llvm/Object/COFF.h"
2930
#include "llvm/Support/Casting.h"
@@ -876,6 +877,10 @@ void ImportFile::parse() {
876877
name, cast_or_null<DefinedImportData>(impSym), hdr->Machine);
877878
}
878879

880+
BitcodeFile::BitcodeFile(MemoryBufferRef mb, StringRef archiveName,
881+
uint64_t offsetInArchive)
882+
: BitcodeFile(mb, archiveName, offsetInArchive, {}) {}
883+
879884
BitcodeFile::BitcodeFile(MemoryBufferRef mb, StringRef archiveName,
880885
uint64_t offsetInArchive,
881886
std::vector<Symbol *> &&symbols)
@@ -898,6 +903,8 @@ BitcodeFile::BitcodeFile(MemoryBufferRef mb, StringRef archiveName,
898903
obj = check(lto::InputFile::create(mbref));
899904
}
900905

906+
BitcodeFile::~BitcodeFile() = default;
907+
901908
void BitcodeFile::parse() {
902909
std::vector<std::pair<Symbol *, bool>> comdat(obj->getComdatTable().size());
903910
for (size_t i = 0; i != obj->getComdatTable().size(); ++i)

lld/COFF/InputFiles.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
#include "llvm/ADT/DenseSet.h"
1818
#include "llvm/BinaryFormat/Magic.h"
1919
#include "llvm/DebugInfo/CodeView/TypeRecord.h"
20-
#include "llvm/LTO/LTO.h"
2120
#include "llvm/Object/Archive.h"
2221
#include "llvm/Object/COFF.h"
2322
#include "llvm/Support/StringSaver.h"
@@ -30,6 +29,9 @@ struct DILineInfo;
3029
namespace pdb {
3130
class DbiModuleDescriptorBuilder;
3231
}
32+
namespace lto {
33+
class InputFile;
34+
}
3335
}
3436

3537
namespace lld {
@@ -336,11 +338,11 @@ class ImportFile : public InputFile {
336338
class BitcodeFile : public InputFile {
337339
public:
338340
BitcodeFile(MemoryBufferRef mb, StringRef archiveName,
339-
uint64_t offsetInArchive)
340-
: BitcodeFile(mb, archiveName, offsetInArchive, {}) {}
341+
uint64_t offsetInArchive);
341342
explicit BitcodeFile(MemoryBufferRef m, StringRef archiveName,
342343
uint64_t offsetInArchive,
343344
std::vector<Symbol *> &&symbols);
345+
~BitcodeFile();
344346
static bool classof(const InputFile *f) { return f->kind() == BitcodeKind; }
345347
ArrayRef<Symbol *> getSymbols() { return symbols; }
346348
MachineTypes getMachineType() override;

lld/COFF/MinGW.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
#include "Config.h"
1313
#include "Symbols.h"
1414
#include "lld/Common/LLVM.h"
15+
#include "llvm/ADT/StringSet.h"
1516

1617
namespace lld {
1718
namespace coff {

lld/COFF/SymbolTable.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "lld/Common/Timer.h"
1818
#include "llvm/DebugInfo/Symbolize/Symbolize.h"
1919
#include "llvm/IR/LLVMContext.h"
20+
#include "llvm/LTO/LTO.h"
2021
#include "llvm/Object/WindowsMachineFlag.h"
2122
#include "llvm/Support/Debug.h"
2223
#include "llvm/Support/raw_ostream.h"

lld/COFF/Writer.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "lld/Common/Timer.h"
2121
#include "llvm/ADT/DenseMap.h"
2222
#include "llvm/ADT/STLExtras.h"
23+
#include "llvm/ADT/StringSet.h"
2324
#include "llvm/ADT/StringSwitch.h"
2425
#include "llvm/Support/BinaryStreamReader.h"
2526
#include "llvm/Support/Debug.h"

0 commit comments

Comments
 (0)