[lld] r233773 - ELF: Remove TargetHandlerBase by merging it with TargetHandler.
Rui Ueyama
ruiu at google.com
Tue Mar 31 17:00:36 PDT 2015
Author: ruiu
Date: Tue Mar 31 19:00:36 2015
New Revision: 233773
URL: http://llvm.org/viewvc/llvm-project?rev=233773&view=rev
Log:
ELF: Remove TargetHandlerBase by merging it with TargetHandler.
In r233772, I removed an empty class, DefaultTargetHandler, from
the class hierarchy by merging the class with TargetHandler. I then
found that TargetHandler and its base class, TargetHandlerBase,
are also almost the same.
We need to go deeper.
In this patch, I merged TargetHandlerBase with TargetHandler.
The only difference between them is the existence (or absense)
of a pure virtual function registerRelocationName(). I added that
function to the (new) TargetHandler.
One more thing is that TargetHandler was templated for no reason.
I made it non-templated class.
Modified:
lld/trunk/include/lld/Core/Reader.h
lld/trunk/include/lld/Core/Writer.h
lld/trunk/include/lld/ReaderWriter/ELFLinkingContext.h
lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.cpp
lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.h
lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.cpp
lld/trunk/lib/ReaderWriter/ELF/ARM/ARMTargetHandler.h
lld/trunk/lib/ReaderWriter/ELF/ELFLinkingContext.cpp
lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.cpp
lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.h
lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFFile.h
lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp
lld/trunk/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.h
lld/trunk/lib/ReaderWriter/ELF/OutputELFWriter.h
lld/trunk/lib/ReaderWriter/ELF/Reader.cpp
lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h
lld/trunk/lib/ReaderWriter/ELF/TargetHandler.h
lld/trunk/lib/ReaderWriter/ELF/Writer.cpp
lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp
lld/trunk/lib/ReaderWriter/ELF/X86/X86TargetHandler.h
lld/trunk/lib/ReaderWriter/ELF/X86_64/ExampleSubTarget/ExampleLinkingContext.cpp
lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp
lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.h
lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.h
Modified: lld/trunk/include/lld/Core/Reader.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/Reader.h?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/include/lld/Core/Reader.h (original)
+++ lld/trunk/include/lld/Core/Reader.h Tue Mar 31 19:00:36 2015
@@ -31,7 +31,6 @@ class ELFLinkingContext;
class File;
class LinkingContext;
class PECOFFLinkingContext;
-class TargetHandlerBase;
class MachOLinkingContext;
/// \brief An abstract class for reading object files, library files, and
Modified: lld/trunk/include/lld/Core/Writer.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/Writer.h?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/include/lld/Core/Writer.h (original)
+++ lld/trunk/include/lld/Core/Writer.h Tue Mar 31 19:00:36 2015
@@ -20,7 +20,7 @@ class ELFLinkingContext;
class MachOLinkingContext;
class PECOFFLinkingContext;
class LinkingContext;
-class TargetHandlerBase;
+class TargetHandler;
/// \brief The Writer is an abstract class for writing object files, shared
/// library files, and executable files. Each file format (e.g. ELF, mach-o,
@@ -42,7 +42,7 @@ protected:
Writer();
};
-std::unique_ptr<Writer> createWriterELF(TargetHandlerBase *handler);
+std::unique_ptr<Writer> createWriterELF(TargetHandler *handler);
std::unique_ptr<Writer> createWriterMachO(const MachOLinkingContext &);
std::unique_ptr<Writer> createWriterPECOFF(const PECOFFLinkingContext &);
std::unique_ptr<Writer> createWriterNative();
Modified: lld/trunk/include/lld/ReaderWriter/ELFLinkingContext.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/ELFLinkingContext.h?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/include/lld/ReaderWriter/ELFLinkingContext.h (original)
+++ lld/trunk/include/lld/ReaderWriter/ELFLinkingContext.h Tue Mar 31 19:00:36 2015
@@ -26,23 +26,47 @@
#include <memory>
#include <set>
+namespace llvm {
+class FileOutputBuffer;
+}
+
namespace lld {
-class Reference;
+struct AtomLayout;
class File;
+class Reference;
namespace elf {
-template <typename ELFT> class TargetHandler;
-}
+class ELFWriter;
-class TargetHandlerBase {
+class TargetRelocationHandler {
public:
- virtual ~TargetHandlerBase() {}
+ virtual ~TargetRelocationHandler() {}
+
+ virtual std::error_code applyRelocation(ELFWriter &, llvm::FileOutputBuffer &,
+ const lld::AtomLayout &,
+ const Reference &) const = 0;
+};
+
+} // namespace elf
+
+/// \brief TargetHandler contains all the information responsible to handle a
+/// a particular target on ELF. A target might wish to override implementation
+/// of creating atoms and how the atoms are written to the output file.
+class TargetHandler {
+public:
+ virtual ~TargetHandler() {}
virtual void registerRelocationNames(Registry &) = 0;
+ /// Determine how relocations need to be applied.
+ virtual const elf::TargetRelocationHandler &getRelocationHandler() const = 0;
+
+ /// How does the target deal with reading input files.
virtual std::unique_ptr<Reader> getObjReader() = 0;
+ /// How does the target deal with reading dynamic libraries.
virtual std::unique_ptr<Reader> getDSOReader() = 0;
+ /// How does the target deal with writing ELF output.
virtual std::unique_ptr<Writer> getWriter() = 0;
};
@@ -141,13 +165,11 @@ public:
/// \brief Is the relocation a relative relocation
virtual bool isRelativeReloc(const Reference &r) const;
- template <typename ELFT>
- lld::elf::TargetHandler<ELFT> &getTargetHandler() const {
+ TargetHandler &getTargetHandler() const {
assert(_targetHandler && "Got null TargetHandler!");
- return static_cast<lld::elf::TargetHandler<ELFT> &>(*_targetHandler.get());
+ return *_targetHandler;
}
- TargetHandlerBase *targetHandler() const { return _targetHandler.get(); }
void addPasses(PassManager &pm) override;
void setTriple(llvm::Triple trip) { _triple = trip; }
@@ -277,9 +299,8 @@ public:
const script::Sema &linkerScriptSema() const { return _linkerScriptSema; }
protected:
- ELFLinkingContext(llvm::Triple triple,
- std::unique_ptr<TargetHandlerBase> targetHandler)
- : _triple(triple), _targetHandler(std::move(targetHandler)) {}
+ ELFLinkingContext(llvm::Triple triple, std::unique_ptr<TargetHandler> handler)
+ : _triple(triple), _targetHandler(std::move(handler)) {}
Writer &writer() const override;
@@ -288,7 +309,7 @@ protected:
uint16_t _outputELFType = llvm::ELF::ET_EXEC;
llvm::Triple _triple;
- std::unique_ptr<TargetHandlerBase> _targetHandler;
+ std::unique_ptr<TargetHandler> _targetHandler;
uint64_t _baseAddress = 0;
bool _isStaticExecutable = false;
bool _noInhibitExec = false;
Modified: lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.cpp?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64LinkingContext.cpp Tue Mar 31 19:00:36 2015
@@ -22,8 +22,8 @@ elf::AArch64LinkingContext::create(llvm:
}
elf::AArch64LinkingContext::AArch64LinkingContext(llvm::Triple triple)
- : ELFLinkingContext(triple, std::unique_ptr<TargetHandlerBase>(
- new AArch64TargetHandler(*this))) {}
+ : ELFLinkingContext(triple, std::unique_ptr<TargetHandler>(
+ new AArch64TargetHandler(*this))) {}
void elf::AArch64LinkingContext::addPasses(PassManager &pm) {
auto pass = createAArch64RelocationPass(*this);
Modified: lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.h?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/AArch64/AArch64TargetHandler.h Tue Mar 31 19:00:36 2015
@@ -25,7 +25,7 @@ public:
AArch64TargetLayout(AArch64LinkingContext &ctx) : TargetLayout<ELFT>(ctx) {}
};
-class AArch64TargetHandler final : public TargetHandler<AArch64ELFType> {
+class AArch64TargetHandler final : public TargetHandler {
public:
AArch64TargetHandler(AArch64LinkingContext &ctx);
Modified: lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.cpp?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/ARM/ARMLinkingContext.cpp Tue Mar 31 19:00:36 2015
@@ -23,8 +23,9 @@ elf::ARMLinkingContext::create(llvm::Tri
}
elf::ARMLinkingContext::ARMLinkingContext(llvm::Triple triple)
- : ELFLinkingContext(triple, std::unique_ptr<TargetHandlerBase>(
- new ARMTargetHandler(*this))) {}
+ : ELFLinkingContext(
+ triple, std::unique_ptr<TargetHandler>(new ARMTargetHandler(*this))) {
+}
void elf::ARMLinkingContext::addPasses(PassManager &pm) {
auto pass = createARMRelocationPass(*this);
Modified: lld/trunk/lib/ReaderWriter/ELF/ARM/ARMTargetHandler.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ARM/ARMTargetHandler.h?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/ARM/ARMTargetHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/ARM/ARMTargetHandler.h Tue Mar 31 19:00:36 2015
@@ -57,7 +57,7 @@ private:
llvm::Optional<uint64_t> _tpOff;
};
-class ARMTargetHandler final : public TargetHandler<ARMELFType> {
+class ARMTargetHandler final : public TargetHandler {
public:
ARMTargetHandler(ARMLinkingContext &ctx);
Modified: lld/trunk/lib/ReaderWriter/ELF/ELFLinkingContext.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/ELFLinkingContext.cpp?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/ELFLinkingContext.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/ELFLinkingContext.cpp Tue Mar 31 19:00:36 2015
@@ -79,7 +79,7 @@ bool ELFLinkingContext::validateImpl(raw
llvm_unreachable("Unimplemented");
break;
default:
- _writer = createWriterELF(this->targetHandler());
+ _writer = createWriterELF(&this->getTargetHandler());
break;
}
Modified: lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.cpp?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonLinkingContext.cpp Tue Mar 31 19:00:36 2015
@@ -21,5 +21,5 @@ HexagonLinkingContext::create(llvm::Trip
}
HexagonLinkingContext::HexagonLinkingContext(llvm::Triple triple)
- : ELFLinkingContext(triple, std::unique_ptr<TargetHandlerBase>(
+ : ELFLinkingContext(triple, std::unique_ptr<TargetHandler>(
new HexagonTargetHandler(*this))) {}
Modified: lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.h?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.h Tue Mar 31 19:00:36 2015
@@ -96,7 +96,7 @@ private:
};
/// \brief TargetHandler for Hexagon
-class HexagonTargetHandler final : public TargetHandler<HexagonELFType> {
+class HexagonTargetHandler final : public TargetHandler {
public:
HexagonTargetHandler(HexagonLinkingContext &targetInfo);
Modified: lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFFile.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFFile.h?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFFile.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Mips/MipsELFFile.h Tue Mar 31 19:00:36 2015
@@ -242,8 +242,7 @@ private:
Reference::Addend readAddend(const Elf_Rel &ri,
const ArrayRef<uint8_t> content) const {
- const auto &rh =
- this->_ctx.template getTargetHandler<ELFT>().getRelocationHandler();
+ const auto &rh = this->_ctx.getTargetHandler().getRelocationHandler();
return static_cast<const MipsRelocationHandler &>(rh)
.readAddend(getPrimaryType(ri), content.data() + ri.r_offset);
}
Modified: lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Mips/MipsLinkingContext.cpp Tue Mar 31 19:00:36 2015
@@ -24,15 +24,15 @@ MipsLinkingContext::create(llvm::Triple
return nullptr;
}
-typedef std::unique_ptr<TargetHandlerBase> TargetHandlerBasePtr;
+typedef std::unique_ptr<TargetHandler> TargetHandlerPtr;
-static TargetHandlerBasePtr createTarget(llvm::Triple triple,
- MipsLinkingContext &ctx) {
+static TargetHandlerPtr createTarget(llvm::Triple triple,
+ MipsLinkingContext &ctx) {
switch (triple.getArch()) {
case llvm::Triple::mipsel:
- return TargetHandlerBasePtr(new MipsTargetHandler<Mips32ELType>(ctx));
+ return TargetHandlerPtr(new MipsTargetHandler<Mips32ELType>(ctx));
case llvm::Triple::mips64el:
- return TargetHandlerBasePtr(new MipsTargetHandler<Mips64ELType>(ctx));
+ return TargetHandlerPtr(new MipsTargetHandler<Mips64ELType>(ctx));
default:
llvm_unreachable("Unhandled arch");
}
Modified: lld/trunk/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.h?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Mips/MipsTargetHandler.h Tue Mar 31 19:00:36 2015
@@ -99,8 +99,7 @@ public:
};
/// \brief TargetHandler for Mips
-template <class ELFT>
-class MipsTargetHandler final : public TargetHandler<ELFT> {
+template <class ELFT> class MipsTargetHandler final : public TargetHandler {
public:
MipsTargetHandler(MipsLinkingContext &ctx)
: _ctx(ctx), _runtimeFile(new MipsRuntimeFile<ELFT>(ctx)),
Modified: lld/trunk/lib/ReaderWriter/ELF/OutputELFWriter.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/OutputELFWriter.h?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/OutputELFWriter.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/OutputELFWriter.h Tue Mar 31 19:00:36 2015
@@ -175,7 +175,7 @@ protected:
llvm::BumpPtrAllocator _alloc;
ELFLinkingContext &_ctx;
- TargetHandler<ELFT> &_targetHandler;
+ TargetHandler &_targetHandler;
typedef llvm::DenseMap<const Atom *, uint64_t> AtomToAddress;
AtomToAddress _atomToAddressMap;
@@ -207,7 +207,7 @@ private:
template <class ELFT>
OutputELFWriter<ELFT>::OutputELFWriter(ELFLinkingContext &ctx,
TargetLayout<ELFT> &layout)
- : _ctx(ctx), _targetHandler(ctx.getTargetHandler<ELFT>()), _layout(layout),
+ : _ctx(ctx), _targetHandler(ctx.getTargetHandler()), _layout(layout),
_scriptFile(new RuntimeFile<ELFT>(ctx, "Linker script runtime")) {}
template <class ELFT>
Modified: lld/trunk/lib/ReaderWriter/ELF/Reader.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Reader.cpp?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Reader.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Reader.cpp Tue Mar 31 19:00:36 2015
@@ -29,15 +29,15 @@ namespace lld {
void Registry::addSupportELFObjects(ELFLinkingContext &ctx) {
// Tell registry about the ELF object file parser.
- add(std::move(ctx.targetHandler()->getObjReader()));
+ add(std::move(ctx.getTargetHandler().getObjReader()));
// Tell registry about the relocation name to number mapping for this arch.
- ctx.targetHandler()->registerRelocationNames(*this);
+ ctx.getTargetHandler().registerRelocationNames(*this);
}
void Registry::addSupportELFDynamicSharedObjects(ELFLinkingContext &ctx) {
// Tell registry about the ELF dynamic shared library file parser.
- add(ctx.targetHandler()->getDSOReader());
+ add(ctx.getTargetHandler().getDSOReader());
}
} // end namespace lld
Modified: lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/SectionChunks.h Tue Mar 31 19:00:36 2015
@@ -420,7 +420,7 @@ void AtomSection<ELFT>::write(ELFWriter
uint8_t *atomContent = chunkBuffer + ai->_fileOffset;
std::memcpy(atomContent, content.data(), contentSize);
const TargetRelocationHandler &relHandler =
- this->_ctx.template getTargetHandler<ELFT>().getRelocationHandler();
+ this->_ctx.getTargetHandler().getRelocationHandler();
for (const auto ref : *definedAtom) {
if (std::error_code ec = relHandler.applyRelocation(*writer, buffer,
*ai, *ref)) {
Modified: lld/trunk/lib/ReaderWriter/ELF/TargetHandler.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/TargetHandler.h?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/TargetHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/TargetHandler.h Tue Mar 31 19:00:36 2015
@@ -40,33 +40,6 @@ template <class ELFT> class ELFHeader;
template <class ELFT> class Section;
template <class ELFT> class TargetLayout;
-class TargetRelocationHandler {
-public:
- virtual ~TargetRelocationHandler() {}
-
- virtual std::error_code applyRelocation(ELFWriter &, llvm::FileOutputBuffer &,
- const lld::AtomLayout &,
- const Reference &) const = 0;
-};
-
-/// \brief TargetHandler contains all the information responsible to handle a
-/// a particular target on ELF. A target might wish to override implementation
-/// of creating atoms and how the atoms are written to the output file.
-template <class ELFT> class TargetHandler : public TargetHandlerBase {
-public:
- /// Determine how relocations need to be applied.
- virtual const TargetRelocationHandler &getRelocationHandler() const = 0;
-
- /// How does the target deal with reading input files.
- virtual std::unique_ptr<Reader> getObjReader() = 0;
-
- /// How does the target deal with reading dynamic libraries.
- virtual std::unique_ptr<Reader> getDSOReader() = 0;
-
- /// How does the target deal with writing ELF output.
- virtual std::unique_ptr<Writer> getWriter() = 0;
-};
-
inline std::error_code make_unhandled_reloc_error() {
return make_dynamic_error_code(Twine("Unhandled reference type"));
}
Modified: lld/trunk/lib/ReaderWriter/ELF/Writer.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Writer.cpp?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/Writer.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/Writer.cpp Tue Mar 31 19:00:36 2015
@@ -16,7 +16,7 @@ using namespace llvm::object;
namespace lld {
-std::unique_ptr<Writer> createWriterELF(TargetHandlerBase *handler) {
+std::unique_ptr<Writer> createWriterELF(TargetHandler *handler) {
return std::move(handler->getWriter());
}
Modified: lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86/X86LinkingContext.cpp Tue Mar 31 19:00:36 2015
@@ -24,5 +24,6 @@ elf::X86LinkingContext::create(llvm::Tri
}
elf::X86LinkingContext::X86LinkingContext(llvm::Triple triple)
- : ELFLinkingContext(triple, std::unique_ptr<TargetHandlerBase>(
- new X86TargetHandler(*this))) {}
+ : ELFLinkingContext(
+ triple, std::unique_ptr<TargetHandler>(new X86TargetHandler(*this))) {
+}
Modified: lld/trunk/lib/ReaderWriter/ELF/X86/X86TargetHandler.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86/X86TargetHandler.h?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86/X86TargetHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86/X86TargetHandler.h Tue Mar 31 19:00:36 2015
@@ -25,7 +25,7 @@ public:
X86TargetLayout(X86LinkingContext &ctx) : TargetLayout<ELFT>(ctx) {}
};
-class X86TargetHandler final : public TargetHandler<X86ELFType> {
+class X86TargetHandler final : public TargetHandler {
public:
X86TargetHandler(X86LinkingContext &ctx);
Modified: lld/trunk/lib/ReaderWriter/ELF/X86_64/ExampleSubTarget/ExampleLinkingContext.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/ExampleSubTarget/ExampleLinkingContext.cpp?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86_64/ExampleSubTarget/ExampleLinkingContext.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86_64/ExampleSubTarget/ExampleLinkingContext.cpp Tue Mar 31 19:00:36 2015
@@ -21,7 +21,7 @@ ExampleLinkingContext::create(llvm::Trip
}
ExampleLinkingContext::ExampleLinkingContext(llvm::Triple triple)
- : X86_64LinkingContext(triple, std::unique_ptr<TargetHandlerBase>(
+ : X86_64LinkingContext(triple, std::unique_ptr<TargetHandler>(
new ExampleTargetHandler(*this))) {
_outputELFType = llvm::ELF::ET_LOPROC;
}
Modified: lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp Tue Mar 31 19:00:36 2015
@@ -15,7 +15,7 @@ using namespace lld;
using namespace elf;
X86_64LinkingContext::X86_64LinkingContext(
- llvm::Triple triple, std::unique_ptr<TargetHandlerBase> handler)
+ llvm::Triple triple, std::unique_ptr<TargetHandler> handler)
: ELFLinkingContext(triple, std::move(handler)) {}
X86_64LinkingContext::X86_64LinkingContext(llvm::Triple triple)
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=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.h Tue Mar 31 19:00:36 2015
@@ -26,7 +26,8 @@ enum {
class X86_64LinkingContext : public ELFLinkingContext {
protected:
- X86_64LinkingContext(llvm::Triple, std::unique_ptr<TargetHandlerBase>);
+ X86_64LinkingContext(llvm::Triple, std::unique_ptr<TargetHandler>);
+
public:
static std::unique_ptr<ELFLinkingContext> create(llvm::Triple);
X86_64LinkingContext(llvm::Triple);
Modified: lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.h?rev=233773&r1=233772&r2=233773&view=diff
==============================================================================
--- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.h (original)
+++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64TargetHandler.h Tue Mar 31 19:00:36 2015
@@ -29,7 +29,7 @@ public:
}
};
-class X86_64TargetHandler : public TargetHandler<X86_64ELFType> {
+class X86_64TargetHandler : public TargetHandler {
public:
X86_64TargetHandler(X86_64LinkingContext &ctx);
More information about the llvm-commits
mailing list