[lld] r233894 - ELF: Remove a template parameter from ELF{Object, DOS}Reader constructors.
Rui Ueyama
ruiu at google.com
Wed Apr 1 22:19:37 PDT 2015
Author: ruiu
Date: Thu Apr 2 00:19:36 2015
New Revision: 233894
URL: http://llvm.org/viewvc/llvm-project?rev=233894&view=rev
Log:
ELF: Remove a template parameter from ELF{Object,DOS}Reader constructors.
There is one-to-one correspondence between ELF machine type and a
LinkingContext. We passed them as separate arguments to the constructor.
This patch is to teach the LinkingContexts about their machine types,
so that we don't need to pass that data as separate arguments.
Modified:
lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64ELFReader.h
lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.h
lld/trunk/lib/ReaderWriter/ELF/ARM/ARMELFReader.h
lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.h
lld/trunk/lib/ReaderWriter/ELF/ELFReader.h
lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonELFReader.h
lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.h
lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFReader.h
lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.h
lld/trunk/lib/ReaderWriter/ELF/X86/X86ELFReader.h
lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.h
lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64ELFReader.h
lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.h
Modified: lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64ELFReader.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64ELFReader.h?rev=233894&r1=233893&r2=233894&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64ELFReader.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64ELFReader.h Thu Apr 2 00:19:36 2015
@@ -34,15 +34,14 @@ class AArch64ELFObjectReader
public:
AArch64ELFObjectReader(AArch64LinkingContext &ctx)
: ELFObjectReader<AArch64ELFType, AArch64ELFFileCreateELFTraits,
- AArch64LinkingContext>(ctx, llvm::ELF::EM_AARCH64) {}
+ AArch64LinkingContext>(ctx) {}
};
class AArch64ELFDSOReader
: public ELFDSOReader<AArch64ELFType, AArch64LinkingContext> {
public:
AArch64ELFDSOReader(AArch64LinkingContext &ctx)
- : ELFDSOReader<AArch64ELFType,
- AArch64LinkingContext>(ctx, llvm::ELF::EM_AARCH64) {}
+ : ELFDSOReader<AArch64ELFType, AArch64LinkingContext>(ctx) {}
};
} // namespace elf
Modified: lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.h?rev=233894&r1=233893&r2=233894&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.h Thu Apr 2 00:19:36 2015
@@ -25,6 +25,7 @@ enum {
class AArch64LinkingContext final : public ELFLinkingContext {
public:
static std::unique_ptr<ELFLinkingContext> create(llvm::Triple);
+ static const int machine = llvm::ELF::EM_AARCH64;
AArch64LinkingContext(llvm::Triple);
void addPasses(PassManager &) override;
Modified: lld/trunk/lib/ReaderWriter/ELF/ARM/ARMELFReader.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/ARMELFReader.h?rev=233894&r1=233893&r2=233894&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/ARM/ARMELFReader.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/ARM/ARMELFReader.h Thu Apr 2 00:19:36 2015
@@ -34,14 +34,14 @@ class ARMELFObjectReader
public:
ARMELFObjectReader(ARMLinkingContext &ctx)
: ELFObjectReader<ARMELFType, ARMELFFileCreateELFTraits,
- ARMLinkingContext>(ctx, llvm::ELF::EM_ARM) {}
+ ARMLinkingContext>(ctx) {}
};
class ARMELFDSOReader
: public ELFDSOReader<ARMELFType, ARMLinkingContext> {
public:
ARMELFDSOReader(ARMLinkingContext &ctx)
- : ELFDSOReader<ARMELFType, ARMLinkingContext>(ctx, llvm::ELF::EM_ARM) {}
+ : ELFDSOReader<ARMELFType, ARMLinkingContext>(ctx) {}
};
} // namespace elf
Modified: lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.h?rev=233894&r1=233893&r2=233894&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.h Thu Apr 2 00:19:36 2015
@@ -20,6 +20,7 @@ namespace elf {
class ARMLinkingContext final : public ELFLinkingContext {
public:
static std::unique_ptr<ELFLinkingContext> create(llvm::Triple);
+ static const int machine = llvm::ELF::EM_ARM;
ARMLinkingContext(llvm::Triple);
void addPasses(PassManager &) override;
Modified: lld/trunk/lib/ReaderWriter/ELF/ELFReader.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ELFReader.h?rev=233894&r1=233893&r2=233894&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/ELFReader.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/ELFReader.h Thu Apr 2 00:19:36 2015
@@ -23,13 +23,12 @@ class ELFObjectReader : public Reader {
public:
typedef llvm::object::Elf_Ehdr_Impl<ELFT> Elf_Ehdr;
- ELFObjectReader(ContextT &ctx, uint64_t machine)
- : _ctx(ctx), _machine(machine) {}
+ ELFObjectReader(ContextT &ctx) : _ctx(ctx) {}
bool canParse(file_magic magic, StringRef,
const MemoryBuffer &buf) const override {
return (magic == llvm::sys::fs::file_magic::elf_relocatable &&
- elfHeader(buf)->e_machine == _machine);
+ elfHeader(buf)->e_machine == ContextT::machine);
}
std::error_code
@@ -54,7 +53,6 @@ public:
protected:
ContextT &_ctx;
- uint64_t _machine;
};
struct DynamicFileCreateELFTraits {
@@ -72,13 +70,12 @@ class ELFDSOReader : public Reader {
public:
typedef llvm::object::Elf_Ehdr_Impl<ELFT> Elf_Ehdr;
- ELFDSOReader(ContextT &ctx, uint64_t machine)
- : _ctx(ctx), _machine(machine) {}
+ ELFDSOReader(ContextT &ctx) : _ctx(ctx) {}
bool canParse(file_magic magic, StringRef,
const MemoryBuffer &buf) const override {
return (magic == llvm::sys::fs::file_magic::elf_shared_object &&
- elfHeader(buf)->e_machine == _machine);
+ elfHeader(buf)->e_machine == ContextT::machine);
}
std::error_code
@@ -103,7 +100,6 @@ public:
protected:
ContextT &_ctx;
- uint64_t _machine;
};
} // namespace elf
Modified: lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonELFReader.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonELFReader.h?rev=233894&r1=233893&r2=233894&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonELFReader.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonELFReader.h Thu Apr 2 00:19:36 2015
@@ -34,15 +34,14 @@ class HexagonELFObjectReader
public:
HexagonELFObjectReader(HexagonLinkingContext &ctx)
: ELFObjectReader<HexagonELFType, HexagonELFFileCreateELFTraits,
- HexagonLinkingContext>(ctx, llvm::ELF::EM_HEXAGON) {}
+ HexagonLinkingContext>(ctx) {}
};
class HexagonELFDSOReader
: public ELFDSOReader<HexagonELFType, HexagonLinkingContext> {
public:
HexagonELFDSOReader(HexagonLinkingContext &ctx)
- : ELFDSOReader<HexagonELFType,
- HexagonLinkingContext>(ctx, llvm::ELF::EM_HEXAGON) {}
+ : ELFDSOReader<HexagonELFType, HexagonLinkingContext>(ctx) {}
};
} // namespace elf
Modified: lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.h?rev=233894&r1=233893&r2=233894&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.h Thu Apr 2 00:19:36 2015
@@ -23,6 +23,7 @@ typedef llvm::object::ELFType<llvm::supp
class HexagonLinkingContext final : public ELFLinkingContext {
public:
static std::unique_ptr<ELFLinkingContext> create(llvm::Triple);
+ static const int machine = llvm::ELF::EM_HEXAGON;
HexagonLinkingContext(llvm::Triple triple);
void addPasses(PassManager &) override;
Modified: lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFReader.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFReader.h?rev=233894&r1=233893&r2=233894&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFReader.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFReader.h Thu Apr 2 00:19:36 2015
@@ -36,8 +36,7 @@ class MipsELFObjectReader
public:
MipsELFObjectReader(MipsLinkingContext &ctx)
- : BaseReaderType(ctx, llvm::ELF::EM_MIPS),
- _flagMerger(ctx.getELFFlagsMerger()) {}
+ : BaseReaderType(ctx), _flagMerger(ctx.getELFFlagsMerger()) {}
std::error_code
loadFile(std::unique_ptr<MemoryBuffer> mb, const Registry ®istry,
@@ -58,8 +57,7 @@ class MipsELFDSOReader : public ELFDSORe
public:
MipsELFDSOReader(MipsLinkingContext &ctx)
- : BaseReaderType(ctx, llvm::ELF::EM_MIPS),
- _flagMerger(ctx.getELFFlagsMerger()) {}
+ : BaseReaderType(ctx), _flagMerger(ctx.getELFFlagsMerger()) {}
std::error_code
loadFile(std::unique_ptr<MemoryBuffer> mb, const Registry ®istry,
Modified: lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.h?rev=233894&r1=233893&r2=233894&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.h Thu Apr 2 00:19:36 2015
@@ -43,6 +43,7 @@ typedef llvm::object::ELFType<llvm::supp
class MipsLinkingContext final : public ELFLinkingContext {
public:
static std::unique_ptr<ELFLinkingContext> create(llvm::Triple);
+ static const int machine = llvm::ELF::EM_MIPS;
MipsLinkingContext(llvm::Triple triple);
uint32_t getMergedELFFlags() const;
Modified: lld/trunk/lib/ReaderWriter/ELF/X86/X86ELFReader.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86/X86ELFReader.h?rev=233894&r1=233893&r2=233894&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86/X86ELFReader.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86/X86ELFReader.h Thu Apr 2 00:19:36 2015
@@ -34,15 +34,14 @@ class X86ELFObjectReader
public:
X86ELFObjectReader(X86LinkingContext &ctx)
: ELFObjectReader<X86ELFType, X86ELFFileCreateELFTraits,
- X86LinkingContext>(ctx, llvm::ELF::EM_386) {}
+ X86LinkingContext>(ctx) {}
};
class X86ELFDSOReader
: public ELFDSOReader<X86ELFType, X86LinkingContext> {
public:
X86ELFDSOReader(X86LinkingContext &ctx)
- : ELFDSOReader<X86ELFType,
- X86LinkingContext>(ctx, llvm::ELF::EM_386) {}
+ : ELFDSOReader<X86ELFType, X86LinkingContext>(ctx) {}
};
} // namespace elf
Modified: lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.h?rev=233894&r1=233893&r2=233894&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.h Thu Apr 2 00:19:36 2015
@@ -19,6 +19,7 @@ namespace elf {
class X86LinkingContext final : public ELFLinkingContext {
public:
static std::unique_ptr<ELFLinkingContext> create(llvm::Triple);
+ static const int machine = llvm::ELF::EM_386;
X86LinkingContext(llvm::Triple);
void registerRelocationNames(Registry &r) override;
Modified: lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64ELFReader.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64ELFReader.h?rev=233894&r1=233893&r2=233894&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64ELFReader.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64ELFReader.h Thu Apr 2 00:19:36 2015
@@ -34,15 +34,14 @@ class X86_64ELFObjectReader
public:
X86_64ELFObjectReader(X86_64LinkingContext &ctx)
: ELFObjectReader<X86_64ELFType, X86_64ELFFileCreateELFTraits,
- X86_64LinkingContext>(ctx, llvm::ELF::EM_X86_64) {}
+ X86_64LinkingContext>(ctx) {}
};
class X86_64ELFDSOReader
: public ELFDSOReader<X86_64ELFType, X86_64LinkingContext> {
public:
X86_64ELFDSOReader(X86_64LinkingContext &ctx)
- : ELFDSOReader<X86_64ELFType,
- X86_64LinkingContext>(ctx, llvm::ELF::EM_X86_64) {}
+ : ELFDSOReader<X86_64ELFType, X86_64LinkingContext>(ctx) {}
};
} // namespace elf
Modified: lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.h?rev=233894&r1=233893&r2=233894&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.h Thu Apr 2 00:19:36 2015
@@ -30,6 +30,7 @@ protected:
public:
static std::unique_ptr<ELFLinkingContext> create(llvm::Triple);
+ static const int machine = llvm::ELF::EM_X86_64;
X86_64LinkingContext(llvm::Triple);
void addPasses(PassManager &) override;
More information about the llvm-commits
mailing list