Forward declare the DWARFCache to avoid including LLVM DWARF details

LLD's DWARF.h header leaks a lot of LLVM DWARF includes that LLD doesn't
need. For Chunks.cpp, I see a compile time decrease of 3.1s to 2.7s.
This commit is contained in:
Reid Kleckner 2019-11-14 14:16:21 -08:00
parent f4f47da530
commit adfad4d7c8
4 changed files with 6 additions and 2 deletions

View File

@ -13,6 +13,7 @@
#include "Driver.h"
#include "SymbolTable.h"
#include "Symbols.h"
#include "lld/Common/DWARF.h"
#include "lld/Common/ErrorHandler.h"
#include "lld/Common/Memory.h"
#include "llvm-c/lto.h"

View File

@ -10,7 +10,6 @@
#define LLD_COFF_INPUT_FILES_H
#include "Config.h"
#include "lld/Common/DWARF.h"
#include "lld/Common/LLVM.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
@ -35,6 +34,8 @@ class InputFile;
}
namespace lld {
class DWARFCache;
namespace coff {
std::vector<MemoryBufferRef> getArchiveMembers(llvm::object::Archive *file);

View File

@ -13,6 +13,7 @@
#include "SymbolTable.h"
#include "Symbols.h"
#include "SyntheticSections.h"
#include "lld/Common/DWARF.h"
#include "lld/Common/ErrorHandler.h"
#include "lld/Common/Memory.h"
#include "llvm/ADT/STLExtras.h"

View File

@ -10,7 +10,6 @@
#define LLD_ELF_INPUT_FILES_H
#include "Config.h"
#include "lld/Common/DWARF.h"
#include "lld/Common/ErrorHandler.h"
#include "lld/Common/LLVM.h"
#include "lld/Common/Reproduce.h"
@ -25,6 +24,7 @@
#include <map>
namespace llvm {
struct DILineInfo;
class TarWriter;
namespace lto {
class InputFile;
@ -32,6 +32,7 @@ class InputFile;
} // namespace llvm
namespace lld {
class DWARFCache;
// Returns "<internal>", "foo.a(bar.o)" or "baz.o".
std::string toString(const elf::InputFile *f);