summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter/CoreLinkingContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lld/lib/ReaderWriter/CoreLinkingContext.cpp')
-rw-r--r--lld/lib/ReaderWriter/CoreLinkingContext.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/lld/lib/ReaderWriter/CoreLinkingContext.cpp b/lld/lib/ReaderWriter/CoreLinkingContext.cpp
index ec8962bbce2..3b83d297e48 100644
--- a/lld/lib/ReaderWriter/CoreLinkingContext.cpp
+++ b/lld/lib/ReaderWriter/CoreLinkingContext.cpp
@@ -12,6 +12,9 @@
#include "lld/Core/Pass.h"
#include "lld/Core/PassManager.h"
#include "lld/Passes/LayoutPass.h"
+#include "lld/Passes/RoundTripNativePass.h"
+#include "lld/Passes/RoundTripYAMLPass.h"
+#include "lld/ReaderWriter/Simple.h"
#include "llvm/ADT/ArrayRef.h"
@@ -149,10 +152,10 @@ private:
uint32_t _ordinal;
};
-class TestingPassFile : public MutableFile {
+class TestingPassFile : public SimpleFile {
public:
TestingPassFile(const LinkingContext &ctx)
- : MutableFile(ctx, "Testing pass") {}
+ : SimpleFile(ctx, "Testing pass") {}
virtual void addAtom(const Atom &atom) {
if (const DefinedAtom *defAtom = dyn_cast<DefinedAtom>(&atom))
@@ -277,7 +280,7 @@ bool CoreLinkingContext::validateImpl(raw_ostream &) {
return true;
}
-void CoreLinkingContext::addPasses(PassManager &pm) const {
+void CoreLinkingContext::addPasses(PassManager &pm) {
for (StringRef name : _passNames) {
if (name.equals("layout"))
pm.add(std::unique_ptr<Pass>((new LayoutPass())));
@@ -288,6 +291,10 @@ void CoreLinkingContext::addPasses(PassManager &pm) const {
else
llvm_unreachable("bad pass name");
}
+#ifndef NDEBUG
+ pm.add(std::unique_ptr<Pass>(new RoundTripYAMLPass(*this)));
+ pm.add(std::unique_ptr<Pass>(new RoundTripNativePass(*this)));
+#endif
}
Writer &CoreLinkingContext::writer() const { return *_writer; }
OpenPOWER on IntegriCloud