[lld] r193300 - [PassManager] add ReaderWriter{Native, YAML} to the Driver.
Michael Spencer
bigcheesegs at gmail.com
Wed Oct 23 23:57:36 PDT 2013
On Wed, Oct 23, 2013 at 10:23 PM, Rui Ueyama <ruiu at google.com> wrote:
> I did not expect you were going to submit your change with disabling so
> many tests. It disabled even pretty basic tests for COFF. This is really
> bad. Please don't do that.
>
> I strongly suggest reverting this patch. You need to fix the tests before
> submitting the change.
>
Yeah, this needs a revert. I thought you were just marking what needs to be
fixed before commit.
- Michael Spencer
>
> On Wed, Oct 23, 2013 at 8:30 PM, Shankar Easwaran <shankare at codeaurora.org
> > wrote:
>
>> Author: shankare
>> Date: Wed Oct 23 22:30:03 2013
>> New Revision: 193300
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=193300&view=rev
>> Log:
>> [PassManager] add ReaderWriter{Native,YAML} to the Driver.
>>
>> Disable tests to be run with REQUIRES: disable. Note disable is not added
>> to the
>> config by the test runner Mkaefiles, so essentially disables the test.
>>
>> Code changes would be required to fix these tests :-
>>
>> test/darwin/hello-world.objtxt
>> test/elf/check.test
>> test/elf/phdr.test
>> test/elf/ppc.test
>> test/elf/undef-from-main-dso.test
>> test/elf/X86_64/note-sections-ro_plus_rw.test
>> test/pecoff/alignment.test
>> test/pecoff/base-reloc.test
>> test/pecoff/bss-section.test
>> test/pecoff/drectve.test
>> test/pecoff/dynamic.test
>> test/pecoff/dynamicbase.test
>> test/pecoff/entry.test
>> test/pecoff/hello.test
>> test/pecoff/imagebase.test
>> test/pecoff/importlib.test
>> test/pecoff/lib.test
>> test/pecoff/multi.test
>> test/pecoff/reloc.test
>> test/pecoff/weak-external.test
>>
>> Added:
>> lld/trunk/include/lld/Passes/RoundTripNativePass.h
>> lld/trunk/include/lld/Passes/RoundTripYAMLPass.h
>> lld/trunk/lib/Passes/RoundTripNativePass.cpp
>> lld/trunk/lib/Passes/RoundTripYAMLPass.cpp
>> Modified:
>> lld/trunk/include/lld/Core/Pass.h
>> lld/trunk/include/lld/Core/PassManager.h
>> lld/trunk/include/lld/Core/Resolver.h
>> lld/trunk/include/lld/Passes/LayoutPass.h
>> lld/trunk/include/lld/ReaderWriter/Simple.h
>> lld/trunk/lib/Core/PassManager.cpp
>> lld/trunk/lib/Core/Resolver.cpp
>> lld/trunk/lib/Driver/Driver.cpp
>> lld/trunk/lib/Passes/CMakeLists.txt
>> lld/trunk/lib/Passes/GOTPass.cpp
>> lld/trunk/lib/Passes/LayoutPass.cpp
>> lld/trunk/lib/Passes/StubsPass.cpp
>> lld/trunk/lib/ReaderWriter/CoreLinkingContext.cpp
>> lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp
>> lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp
>> lld/trunk/lib/ReaderWriter/PECOFF/GroupedSectionsPass.h
>> lld/trunk/lib/ReaderWriter/PECOFF/IdataPass.h
>> lld/trunk/test/darwin/hello-world.objtxt
>> lld/trunk/test/elf/X86_64/dontignorezerosize-sections.test
>> lld/trunk/test/elf/X86_64/largebss.test
>> lld/trunk/test/elf/X86_64/note-sections-ro_plus_rw.test
>> lld/trunk/test/elf/X86_64/weak-override.test
>> lld/trunk/test/elf/X86_64/weak-zero-sized.test
>> lld/trunk/test/elf/check.test
>> lld/trunk/test/elf/phdr.test
>> lld/trunk/test/elf/ppc.test
>> lld/trunk/test/elf/undef-from-main-dso.test
>> lld/trunk/test/pecoff/alignment.test
>> lld/trunk/test/pecoff/base-reloc.test
>> lld/trunk/test/pecoff/bss-section.test
>> lld/trunk/test/pecoff/drectve.test
>> lld/trunk/test/pecoff/dynamic.test
>> lld/trunk/test/pecoff/dynamicbase.test
>> lld/trunk/test/pecoff/entry.test
>> lld/trunk/test/pecoff/hello.test
>> lld/trunk/test/pecoff/imagebase.test
>> lld/trunk/test/pecoff/importlib.test
>> lld/trunk/test/pecoff/lib.test
>> lld/trunk/test/pecoff/multi.test
>> lld/trunk/test/pecoff/reloc.test
>> lld/trunk/test/pecoff/weak-external.test
>>
>> Modified: lld/trunk/include/lld/Core/Pass.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/Pass.h?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/include/lld/Core/Pass.h (original)
>> +++ lld/trunk/include/lld/Core/Pass.h Wed Oct 23 22:30:03 2013
>> @@ -36,7 +36,7 @@ public:
>> virtual ~Pass() { }
>>
>> /// Do the actual work of the Pass.
>> - virtual void perform(MutableFile &mergedFile) = 0;
>> + virtual void perform(std::unique_ptr<MutableFile> &mergedFile) = 0;
>>
>> protected:
>> // Only subclassess can be instantiated.
>> @@ -53,7 +53,7 @@ public:
>> /// Scans all Atoms looking for call-site uses of SharedLibraryAtoms
>> /// and transfroms the call-site to call a stub instead using the
>> /// helper methods below.
>> - virtual void perform(MutableFile &mergedFile);
>> + virtual void perform(std::unique_ptr<MutableFile> &mergedFile);
>>
>> /// If true, the pass should use stubs for references
>> /// to shared library symbols. If false, the pass
>> @@ -87,7 +87,7 @@ public:
>> /// Scans all Atoms looking for pointer to SharedLibraryAtoms
>> /// and transfroms them to a pointer to a GOT entry using the
>> /// helper methods below.
>> - virtual void perform(MutableFile &mergedFile);
>> + virtual void perform(std::unique_ptr<MutableFile> &mergedFile);
>>
>> /// If true, the pass will use GOT entries for references
>> /// to shared library symbols. If false, the pass
>>
>> Modified: lld/trunk/include/lld/Core/PassManager.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/PassManager.h?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/include/lld/Core/PassManager.h (original)
>> +++ lld/trunk/include/lld/Core/PassManager.h Wed Oct 23 22:30:03 2013
>> @@ -32,7 +32,7 @@ public:
>> _passes.push_back(std::move(pass));
>> }
>>
>> - ErrorOr<void> runOnFile(MutableFile &);
>> + ErrorOr<void> runOnFile(std::unique_ptr<MutableFile> &);
>>
>> private:
>> /// \brief Passes in the order they should run.
>>
>> Modified: lld/trunk/include/lld/Core/Resolver.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/Resolver.h?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/include/lld/Core/Resolver.h (original)
>> +++ lld/trunk/include/lld/Core/Resolver.h Wed Oct 23 22:30:03 2013
>> @@ -4,6 +4,7 @@
>> //
>> // This file is distributed under the University of Illinois Open Source
>> // License. See LICENSE.TXT for details.
>> +// License. See LICENSE.TXT for details.
>> //
>>
>> //===----------------------------------------------------------------------===//
>>
>> @@ -37,8 +38,9 @@ public:
>> };
>>
>> Resolver(LinkingContext &context)
>> - : _context(context), _symbolTable(context), _result(context),
>> - _haveLLVMObjs(false), _addToFinalSection(false) {}
>> + : _context(context), _symbolTable(context),
>> + _result(new MergedFile(context)), _haveLLVMObjs(false),
>> + _addToFinalSection(false) {}
>>
>> virtual ~Resolver() {}
>>
>> @@ -62,9 +64,7 @@ public:
>> /// @brief do work of merging and resolving and return list
>> bool resolve();
>>
>> - MutableFile& resultFile() {
>> - return _result;
>> - }
>> + std::unique_ptr<MutableFile> resultFile() { return std::move(_result);
>> }
>>
>> private:
>>
>> @@ -117,7 +117,7 @@ private:
>> std::set<const Atom *> _deadStripRoots;
>> std::vector<const Atom *> _atomsWithUnresolvedReferences;
>> llvm::DenseSet<const Atom *> _liveAtoms;
>> - MergedFile _result;
>> + std::unique_ptr<MergedFile> _result;
>> bool _haveLLVMObjs;
>> bool _addToFinalSection;
>> };
>>
>> Modified: lld/trunk/include/lld/Passes/LayoutPass.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Passes/LayoutPass.h?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/include/lld/Passes/LayoutPass.h (original)
>> +++ lld/trunk/include/lld/Passes/LayoutPass.h Wed Oct 23 22:30:03 2013
>> @@ -48,7 +48,7 @@ public:
>> LayoutPass() : Pass(), _compareAtoms(*this) {}
>>
>> /// Sorts atoms in mergedFile by content type then by command line
>> order.
>> - virtual void perform(MutableFile &mergedFile);
>> + virtual void perform(std::unique_ptr<MutableFile> &mergedFile);
>>
>> virtual ~LayoutPass() {}
>>
>>
>> Added: lld/trunk/include/lld/Passes/RoundTripNativePass.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Passes/RoundTripNativePass.h?rev=193300&view=auto
>>
>> ==============================================================================
>> --- lld/trunk/include/lld/Passes/RoundTripNativePass.h (added)
>> +++ lld/trunk/include/lld/Passes/RoundTripNativePass.h Wed Oct 23
>> 22:30:03 2013
>> @@ -0,0 +1,41 @@
>> +//===------ Passes/RoundTripNativePass.h - Handles Layout of atoms
>> +//------------------===//
>> +//
>> +// The LLVM Linker
>> +//
>> +// This file is distributed under the University of Illinois Open Source
>> +// License. See LICENSE.TXT for details.
>> +//
>>
>> +//===----------------------------------------------------------------------===//
>> +
>> +#ifndef LLD_PASSES_NATIVE_PASS_H
>> +#define LLD_PASSES_NATIVE_PASS_H
>> +
>> +#include "lld/Core/File.h"
>> +#include "lld/Core/LinkingContext.h"
>> +#include "lld/Core/Pass.h"
>> +
>> +#include <map>
>> +#include <vector>
>> +
>> +namespace lld {
>> +class RoundTripNativePass : public Pass {
>> +public:
>> + RoundTripNativePass(LinkingContext &context) : Pass(),
>> _context(context) {}
>> +
>> + /// Sorts atoms in mergedFile by content type then by command line
>> order.
>> + virtual void perform(std::unique_ptr<MutableFile> &mergedFile);
>> +
>> + virtual ~RoundTripNativePass() {}
>> +
>> +private:
>> + LinkingContext &_context;
>> + // Keep the parsed file alive for the rest of the link. All atoms
>> + // that are created by the RoundTripNativePass are owned by the
>> + // nativeFile.
>> + std::vector<std::unique_ptr<File> > _nativeFile;
>> +};
>> +
>> +} // namespace lld
>> +
>> +#endif // LLD_PASSES_NATIVE_PASS_H
>>
>> Added: lld/trunk/include/lld/Passes/RoundTripYAMLPass.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Passes/RoundTripYAMLPass.h?rev=193300&view=auto
>>
>> ==============================================================================
>> --- lld/trunk/include/lld/Passes/RoundTripYAMLPass.h (added)
>> +++ lld/trunk/include/lld/Passes/RoundTripYAMLPass.h Wed Oct 23 22:30:03
>> 2013
>> @@ -0,0 +1,41 @@
>> +//===------ Passes/RoundTripYAMLPass.h - Handles Layout of atoms
>> +//------------------===//
>> +//
>> +// The LLVM Linker
>> +//
>> +// This file is distributed under the University of Illinois Open Source
>> +// License. See LICENSE.TXT for details.
>> +//
>>
>> +//===----------------------------------------------------------------------===//
>> +
>> +#ifndef LLD_PASSES_ROUNDTRIP_YAML_PASS_H
>> +#define LLD_PASSES_ROUNDTRIP_YAML_PASS_H
>> +
>> +#include "lld/Core/File.h"
>> +#include "lld/Core/LinkingContext.h"
>> +#include "lld/Core/Pass.h"
>> +
>> +#include <map>
>> +#include <vector>
>> +
>> +namespace lld {
>> +class RoundTripYAMLPass : public Pass {
>> +public:
>> + RoundTripYAMLPass(LinkingContext &context) : Pass(), _context(context)
>> {}
>> +
>> + /// Sorts atoms in mergedFile by content type then by command line
>> order.
>> + virtual void perform(std::unique_ptr<MutableFile> &mergedFile);
>> +
>> + virtual ~RoundTripYAMLPass() {}
>> +
>> +private:
>> + LinkingContext &_context;
>> + // Keep the parsed file alive for the rest of the link. All atoms
>> + // that are created by the RoundTripYAMLPass are owned by the
>> + // yamlFile.
>> + std::vector<std::unique_ptr<File> > _yamlFile;
>> +};
>> +
>> +} // namespace lld
>> +
>> +#endif // LLD_PASSES_ROUNDTRIP_YAML_PASS_H
>>
>> Modified: lld/trunk/include/lld/ReaderWriter/Simple.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/Simple.h?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/include/lld/ReaderWriter/Simple.h (original)
>> +++ lld/trunk/include/lld/ReaderWriter/Simple.h Wed Oct 23 22:30:03 2013
>> @@ -62,13 +62,31 @@ public:
>> return make_range(_definedAtoms._atoms);
>> }
>>
>> -private:
>> +protected:
>> atom_collection_vector<DefinedAtom> _definedAtoms;
>> atom_collection_vector<UndefinedAtom> _undefinedAtoms;
>> atom_collection_vector<SharedLibraryAtom> _sharedLibraryAtoms;
>> atom_collection_vector<AbsoluteAtom> _absoluteAtoms;
>> };
>>
>> +class FileToMutable : public SimpleFile {
>> +public:
>> + explicit FileToMutable(const LinkingContext &context, File &file)
>> + : SimpleFile(context, file.path()), _file(file) {
>> + for (auto definedAtom : _file.defined())
>> + _definedAtoms._atoms.push_back(std::move(definedAtom));
>> + for (auto undefAtom : _file.undefined())
>> + _undefinedAtoms._atoms.push_back(std::move(undefAtom));
>> + for (auto shlibAtom : _file.sharedLibrary())
>> + _sharedLibraryAtoms._atoms.push_back(std::move(shlibAtom));
>> + for (auto absAtom : _file.absolute())
>> + _absoluteAtoms._atoms.push_back(std::move(absAtom));
>> + }
>> +
>> +private:
>> + const File &_file;
>> +};
>> +
>> class SimpleReference : public Reference {
>> public:
>> SimpleReference(Reference::Kind k, uint64_t off, const Atom *t,
>>
>> Modified: lld/trunk/lib/Core/PassManager.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Core/PassManager.cpp?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/lib/Core/PassManager.cpp (original)
>> +++ lld/trunk/lib/Core/PassManager.cpp Wed Oct 23 22:30:03 2013
>> @@ -15,7 +15,7 @@
>> #include "llvm/Support/ErrorOr.h"
>>
>> namespace lld {
>> -ErrorOr<void> PassManager::runOnFile(MutableFile &mf) {
>> +ErrorOr<void> PassManager::runOnFile(std::unique_ptr<MutableFile> &mf) {
>> for (auto &pass : _passes) {
>> pass->perform(mf);
>> }
>>
>> Modified: lld/trunk/lib/Core/Resolver.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Core/Resolver.cpp?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/lib/Core/Resolver.cpp (original)
>> +++ lld/trunk/lib/Core/Resolver.cpp Wed Oct 23 22:30:03 2013
>> @@ -480,7 +480,7 @@ bool Resolver::resolve() {
>> }
>> this->removeCoalescedAwayAtoms();
>> this->linkTimeOptimize();
>> - this->_result.addAtoms(_atoms);
>> + this->_result->addAtoms(_atoms);
>> return true;
>> }
>>
>>
>> Modified: lld/trunk/lib/Driver/Driver.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/Driver.cpp?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/lib/Driver/Driver.cpp (original)
>> +++ lld/trunk/lib/Driver/Driver.cpp Wed Oct 23 22:30:03 2013
>> @@ -16,6 +16,8 @@
>> #include "lld/Core/Resolver.h"
>> #include "lld/ReaderWriter/Reader.h"
>> #include "lld/ReaderWriter/Writer.h"
>> +#include "lld/Passes/RoundTripNativePass.h"
>> +#include "lld/Passes/RoundTripYAMLPass.h"
>>
>> #include "llvm/ADT/StringExtras.h"
>> #include "llvm/ADT/StringSwitch.h"
>> @@ -105,19 +107,25 @@ bool Driver::link(LinkingContext &contex
>> Resolver resolver(context);
>> if (!resolver.resolve())
>> return false;
>> - MutableFile &merged = resolver.resultFile();
>> + std::unique_ptr<MutableFile> merged = resolver.resultFile();
>> resolveTask.end();
>>
>> // Run passes on linked atoms.
>> ScopedTask passTask(getDefaultDomain(), "Passes");
>> PassManager pm;
>> context.addPasses(pm);
>> +
>> +#ifndef NDEBUG
>> + pm.add(std::unique_ptr<Pass>(new RoundTripNativePass(context)));
>> + pm.add(std::unique_ptr<Pass>(new RoundTripYAMLPass(context)));
>> +#endif
>> +
>> pm.runOnFile(merged);
>> passTask.end();
>>
>> // Give linked atoms to Writer to generate output file.
>> ScopedTask writeTask(getDefaultDomain(), "Write");
>> - if (error_code ec = context.writeFile(merged)) {
>> + if (error_code ec = context.writeFile(*merged)) {
>> diagnostics << "Failed to write file '" << context.outputPath()
>> << "': " << ec.message() << "\n";
>> return false;
>>
>> Modified: lld/trunk/lib/Passes/CMakeLists.txt
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/CMakeLists.txt?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/lib/Passes/CMakeLists.txt (original)
>> +++ lld/trunk/lib/Passes/CMakeLists.txt Wed Oct 23 22:30:03 2013
>> @@ -2,4 +2,8 @@ add_lld_library(lldPasses
>> GOTPass.cpp
>> StubsPass.cpp
>> LayoutPass.cpp
>> + RoundTripNativePass.cpp
>> + RoundTripYAMLPass.cpp
>> )
>> +
>> +target_link_libraries(lldPasses lldReaderWriter)
>>
>> Modified: lld/trunk/lib/Passes/GOTPass.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/GOTPass.cpp?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/lib/Passes/GOTPass.cpp (original)
>> +++ lld/trunk/lib/Passes/GOTPass.cpp Wed Oct 23 22:30:03 2013
>> @@ -67,12 +67,12 @@ findGOTAtom(const Atom *target,
>> }
>> } // end anonymous namespace
>>
>> -void GOTPass::perform(MutableFile &mergedFile) {
>> +void GOTPass::perform(std::unique_ptr<MutableFile> &mergedFile) {
>> // Use map so all pointers to same symbol use same GOT entry.
>> llvm::DenseMap<const Atom*, const DefinedAtom*> targetToGOT;
>>
>> // Scan all references in all atoms.
>> - for(const DefinedAtom *atom : mergedFile.defined()) {
>> + for (const DefinedAtom *atom : mergedFile->defined()) {
>> for (const Reference *ref : *atom) {
>> // Look at instructions accessing the GOT.
>> bool canBypassGOT;
>> @@ -102,7 +102,7 @@ void GOTPass::perform(MutableFile &merge
>>
>> // add all created GOT Atoms to master file
>> for (auto &it : targetToGOT) {
>> - mergedFile.addAtom(*it.second);
>> + mergedFile->addAtom(*it.second);
>> }
>> }
>> }
>>
>> Modified: lld/trunk/lib/Passes/LayoutPass.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/LayoutPass.cpp?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/lib/Passes/LayoutPass.cpp (original)
>> +++ lld/trunk/lib/Passes/LayoutPass.cpp Wed Oct 23 22:30:03 2013
>> @@ -534,9 +534,9 @@ void LayoutPass::checkFollowonChain(Muta
>> #endif // #ifndef NDEBUG
>>
>> /// Perform the actual pass
>> -void LayoutPass::perform(MutableFile &mergedFile) {
>> +void LayoutPass::perform(std::unique_ptr<MutableFile> &mergedFile) {
>> ScopedTask task(getDefaultDomain(), "LayoutPass");
>> - MutableFile::DefinedAtomRange atomRange = mergedFile.definedAtoms();
>> + MutableFile::DefinedAtomRange atomRange = mergedFile->definedAtoms();
>>
>> // Build follow on tables
>> buildFollowOnTable(atomRange);
>>
>> Added: lld/trunk/lib/Passes/RoundTripNativePass.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/RoundTripNativePass.cpp?rev=193300&view=auto
>>
>> ==============================================================================
>> --- lld/trunk/lib/Passes/RoundTripNativePass.cpp (added)
>> +++ lld/trunk/lib/Passes/RoundTripNativePass.cpp Wed Oct 23 22:30:03 2013
>> @@ -0,0 +1,44 @@
>> +//===- Passes/RoundTripNativePass.cpp - Layout atoms
>> +//-------------------------------===//
>> +//
>> +// The LLVM Linker
>> +//
>> +// This file is distributed under the University of Illinois Open Source
>> +// License. See LICENSE.TXT for details.
>> +//
>>
>> +//===----------------------------------------------------------------------===//
>>
>> +//===----------------------------------------------------------------------===//
>> +
>> +#define DEBUG_TYPE "RoundTripNativePass"
>> +
>> +#include "lld/Core/Instrumentation.h"
>> +#include "lld/Passes/RoundTripNativePass.h"
>> +#include "lld/ReaderWriter/Simple.h"
>> +#include "lld/ReaderWriter/Writer.h"
>> +
>> +#include "llvm/Support/Path.h"
>> +
>> +using namespace lld;
>> +
>> +/// Perform the actual pass
>> +void RoundTripNativePass::perform(std::unique_ptr<MutableFile>
>> &mergedFile) {
>> + ScopedTask task(getDefaultDomain(), "RoundTripNativePass");
>> + std::unique_ptr<Writer> nativeWriter = createWriterNative(_context);
>> + SmallString<128> tmpNativeFile;
>> + // Separate the directory from the filename
>> + StringRef outFile = llvm::sys::path::filename(_context.outputPath());
>> + if (llvm::sys::fs::createTemporaryFile(outFile, "native",
>> tmpNativeFile))
>> + return;
>> +
>> + nativeWriter->writeFile(*mergedFile, tmpNativeFile.str());
>> + llvm::OwningPtr<llvm::MemoryBuffer> buff;
>> + if (llvm::MemoryBuffer::getFileOrSTDIN(tmpNativeFile.str(), buff))
>> + return;
>> +
>> + std::unique_ptr<MemoryBuffer> mb(buff.take());
>> + _context.getNativeReader().parseFile(mb, _nativeFile);
>> +
>> + mergedFile.reset(new FileToMutable(_context, *_nativeFile[0].get()));
>> +
>> + llvm::sys::fs::remove(tmpNativeFile.str());
>> +}
>>
>> Added: lld/trunk/lib/Passes/RoundTripYAMLPass.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/RoundTripYAMLPass.cpp?rev=193300&view=auto
>>
>> ==============================================================================
>> --- lld/trunk/lib/Passes/RoundTripYAMLPass.cpp (added)
>> +++ lld/trunk/lib/Passes/RoundTripYAMLPass.cpp Wed Oct 23 22:30:03 2013
>> @@ -0,0 +1,44 @@
>> +//===- Passes/RoundTripYAMLPass.cpp - Layout atoms
>> +//-------------------------------===//
>> +//
>> +// The LLVM Linker
>> +//
>> +// This file is distributed under the University of Illinois Open Source
>> +// License. See LICENSE.TXT for details.
>> +//
>>
>> +//===----------------------------------------------------------------------===//
>>
>> +//===----------------------------------------------------------------------===//
>> +
>> +#define DEBUG_TYPE "RoundTripYAMLPass"
>> +
>> +#include "lld/Core/Instrumentation.h"
>> +#include "lld/Passes/RoundTripYAMLPass.h"
>> +#include "lld/ReaderWriter/Simple.h"
>> +#include "lld/ReaderWriter/Writer.h"
>> +
>> +#include "llvm/Support/Path.h"
>> +
>> +using namespace lld;
>> +
>> +/// Perform the actual pass
>> +void RoundTripYAMLPass::perform(std::unique_ptr<MutableFile>
>> &mergedFile) {
>> + ScopedTask task(getDefaultDomain(), "RoundTripYAMLPass");
>> + std::unique_ptr<Writer> yamlWriter = createWriterYAML(_context);
>> + SmallString<128> tmpYAMLFile;
>> + // Separate the directory from the filename
>> + StringRef outFile = llvm::sys::path::filename(_context.outputPath());
>> + if (llvm::sys::fs::createTemporaryFile(outFile, "yaml", tmpYAMLFile))
>> + return;
>> +
>> + yamlWriter->writeFile(*mergedFile, tmpYAMLFile.str());
>> + llvm::OwningPtr<llvm::MemoryBuffer> buff;
>> + if (llvm::MemoryBuffer::getFileOrSTDIN(tmpYAMLFile.str(), buff))
>> + return;
>> +
>> + std::unique_ptr<MemoryBuffer> mb(buff.take());
>> + _context.getYAMLReader().parseFile(mb, _yamlFile);
>> +
>> + mergedFile.reset(new FileToMutable(_context, *_yamlFile[0].get()));
>> +
>> + llvm::sys::fs::remove(tmpYAMLFile.str());
>> +}
>>
>> Modified: lld/trunk/lib/Passes/StubsPass.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/StubsPass.cpp?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/lib/Passes/StubsPass.cpp (original)
>> +++ lld/trunk/lib/Passes/StubsPass.cpp Wed Oct 23 22:30:03 2013
>> @@ -23,13 +23,13 @@
>>
>> namespace lld {
>>
>> -void StubsPass::perform(MutableFile &mergedFile) {
>> +void StubsPass::perform(std::unique_ptr<MutableFile> &mergedFile) {
>> // Skip this pass if output format uses text relocations instead of
>> stubs.
>> if ( ! this->noTextRelocs() )
>> return;
>>
>> // Scan all references in all atoms.
>> - for(const DefinedAtom *atom : mergedFile.defined()) {
>> + for (const DefinedAtom *atom : mergedFile->defined()) {
>> for (const Reference *ref : *atom) {
>> // Look at call-sites.
>> if (this->isCallSite(ref->kind()) ) {
>> @@ -61,6 +61,6 @@ void StubsPass::perform(MutableFile &mer
>> }
>>
>> // Add all created stubs and support Atoms.
>> - this->addStubAtoms(mergedFile);
>> + this->addStubAtoms(*mergedFile);
>> }
>> }
>>
>> Modified: lld/trunk/lib/ReaderWriter/CoreLinkingContext.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/CoreLinkingContext.cpp?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/lib/ReaderWriter/CoreLinkingContext.cpp (original)
>> +++ lld/trunk/lib/ReaderWriter/CoreLinkingContext.cpp Wed Oct 23 22:30:03
>> 2013
>> @@ -12,6 +12,7 @@
>> #include "lld/Core/Pass.h"
>> #include "lld/Core/PassManager.h"
>> #include "lld/Passes/LayoutPass.h"
>> +#include "lld/ReaderWriter/Simple.h"
>>
>> #include "llvm/ADT/ArrayRef.h"
>>
>> @@ -149,10 +150,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))
>>
>> Modified: lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp
>> (original)
>> +++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp Wed
>> Oct 23 22:30:03 2013
>> @@ -157,9 +157,9 @@ public:
>> ///
>> /// After all references are handled, the atoms created during that
>> are all
>> /// added to mf.
>> - virtual void perform(MutableFile &mf) {
>> + virtual void perform(std::unique_ptr<MutableFile> &mf) {
>> // Process all references.
>> - for (const auto &atom : mf.defined())
>> + for (const auto &atom : mf->defined())
>> for (const auto &ref : *atom)
>> handleReference(*atom, *ref);
>>
>> @@ -167,23 +167,23 @@ public:
>> uint64_t ordinal = 0;
>> if (_PLT0) {
>> _PLT0->setOrdinal(ordinal++);
>> - mf.addAtom(*_PLT0);
>> + mf->addAtom(*_PLT0);
>> }
>> for (auto &plt : _pltVector) {
>> plt->setOrdinal(ordinal++);
>> - mf.addAtom(*plt);
>> + mf->addAtom(*plt);
>> }
>> if (_null) {
>> _null->setOrdinal(ordinal++);
>> - mf.addAtom(*_null);
>> + mf->addAtom(*_null);
>> }
>> if (_got0) {
>> _got0->setOrdinal(ordinal++);
>> - mf.addAtom(*_got0);
>> + mf->addAtom(*_got0);
>> }
>> for (auto &got : _gotVector) {
>> got->setOrdinal(ordinal++);
>> - mf.addAtom(*got);
>> + mf->addAtom(*got);
>> }
>> }
>>
>>
>> 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=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp
>> (original)
>> +++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp Wed
>> Oct 23 22:30:03 2013
>> @@ -219,10 +219,10 @@ public:
>> ///
>> /// After all references are handled, the atoms created during that
>> are all
>> /// added to mf.
>> - virtual void perform(MutableFile &mf) {
>> + virtual void perform(std::unique_ptr<MutableFile> &mf) {
>> ScopedTask task(getDefaultDomain(), "X86-64 GOT/PLT Pass");
>> // Process all references.
>> - for (const auto &atom : mf.defined())
>> + for (const auto &atom : mf->defined())
>> for (const auto &ref : *atom)
>> handleReference(*atom, *ref);
>>
>> @@ -230,29 +230,29 @@ public:
>> uint64_t ordinal = 0;
>> if (_PLT0) {
>> _PLT0->setOrdinal(ordinal++);
>> - mf.addAtom(*_PLT0);
>> + mf->addAtom(*_PLT0);
>> }
>> for (auto &plt : _pltVector) {
>> plt->setOrdinal(ordinal++);
>> - mf.addAtom(*plt);
>> + mf->addAtom(*plt);
>> }
>> if (_null) {
>> _null->setOrdinal(ordinal++);
>> - mf.addAtom(*_null);
>> + mf->addAtom(*_null);
>> }
>> if (_PLT0) {
>> _got0->setOrdinal(ordinal++);
>> _got1->setOrdinal(ordinal++);
>> - mf.addAtom(*_got0);
>> - mf.addAtom(*_got1);
>> + mf->addAtom(*_got0);
>> + mf->addAtom(*_got1);
>> }
>> for (auto &got : _gotVector) {
>> got->setOrdinal(ordinal++);
>> - mf.addAtom(*got);
>> + mf->addAtom(*got);
>> }
>> for (auto obj : _objectVector) {
>> obj->setOrdinal(ordinal++);
>> - mf.addAtom(*obj);
>> + mf->addAtom(*obj);
>> }
>> }
>>
>>
>> Modified: lld/trunk/lib/ReaderWriter/PECOFF/GroupedSectionsPass.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/GroupedSectionsPass.h?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/lib/ReaderWriter/PECOFF/GroupedSectionsPass.h (original)
>> +++ lld/trunk/lib/ReaderWriter/PECOFF/GroupedSectionsPass.h Wed Oct 23
>> 22:30:03 2013
>> @@ -60,9 +60,9 @@ class GroupedSectionsPass : public lld::
>> public:
>> GroupedSectionsPass() {}
>>
>> - virtual void perform(MutableFile &mergedFile) {
>> - std::map<StringRef, std::vector<COFFDefinedAtom *>>
>> sectionToHeadAtoms(
>> - filterHeadAtoms(mergedFile));
>> + virtual void perform(std::unique_ptr<MutableFile> &mergedFile) {
>> + std::map<StringRef, std::vector<COFFDefinedAtom *> >
>> sectionToHeadAtoms(
>> + filterHeadAtoms(*mergedFile));
>> std::vector<std::vector<COFFDefinedAtom *>> groupedAtomsList(
>> groupBySectionName(sectionToHeadAtoms));
>> for (auto &groupedAtoms : groupedAtomsList)
>>
>> Modified: lld/trunk/lib/ReaderWriter/PECOFF/IdataPass.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/IdataPass.h?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/lib/ReaderWriter/PECOFF/IdataPass.h (original)
>> +++ lld/trunk/lib/ReaderWriter/PECOFF/IdataPass.h Wed Oct 23 22:30:03 2013
>> @@ -252,13 +252,13 @@ class IdataPass : public lld::Pass {
>> public:
>> IdataPass(const LinkingContext &ctx) : _dummyFile(ctx) {}
>>
>> - virtual void perform(MutableFile &file) {
>> - if (file.sharedLibrary().size() == 0)
>> + virtual void perform(std::unique_ptr<MutableFile> &file) {
>> + if (file->sharedLibrary().size() == 0)
>> return;
>>
>> - Context context(file, _dummyFile);
>> + Context context(*file, _dummyFile);
>> map<StringRef, vector<COFFSharedLibraryAtom *> > sharedAtoms =
>> - groupByLoadName(file);
>> + groupByLoadName(*file);
>> for (auto i : sharedAtoms) {
>> StringRef loadName = i.first;
>> vector<COFFSharedLibraryAtom *> &atoms = i.second;
>>
>> Modified: lld/trunk/test/darwin/hello-world.objtxt
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/darwin/hello-world.objtxt?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/darwin/hello-world.objtxt (original)
>> +++ lld/trunk/test/darwin/hello-world.objtxt Wed Oct 23 22:30:03 2013
>> @@ -34,3 +34,5 @@ shared-library-atoms:
>> # CHECK: {{[0-9a-f]+}} s _main
>> # CHECK: 00000000 u _printf
>> # CHECK: 00000000 u dyld_stub_binder
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +# REQUIRES: disable
>>
>> Modified: lld/trunk/test/elf/X86_64/dontignorezerosize-sections.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/dontignorezerosize-sections.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/elf/X86_64/dontignorezerosize-sections.test (original)
>> +++ lld/trunk/test/elf/X86_64/dontignorezerosize-sections.test Wed Oct 23
>> 22:30:03 2013
>> @@ -3,9 +3,7 @@ RUN: lld -flavor gnu -target x86_64-linu
>> RUN: --noinhibit-exec --output-filetype=yaml -o %t
>> RUN: FileCheck %s < %t
>>
>> -CHECK: section-name: .data
>> CHECK: references:
>> CHECK: - kind: R_X86_64_16
>> CHECK: offset: 0
>> CHECK: target: L000
>> -CHECK: section-name: .text
>>
>> Modified: lld/trunk/test/elf/X86_64/largebss.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/largebss.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/elf/X86_64/largebss.test (original)
>> +++ lld/trunk/test/elf/X86_64/largebss.test Wed Oct 23 22:30:03 2013
>> @@ -10,14 +10,11 @@ CHECK: scope: global
>> CHECK: type: zero-fill
>> CHECK: size: 4000
>> CHECK: merge: as-tentative
>> -CHECK: section-name: .bss
>> CHECK: - name: largebss
>> CHECK: scope: global
>> CHECK: type: zero-fill
>> CHECK: size: 4000
>> -CHECK: section-name: .bss
>> CHECK: - name: largetbss
>> CHECK: scope: global
>> CHECK: type: thread-zero-fill
>> CHECK: size: 4000
>> -CHECK: section-name: .tbss
>>
>> Modified: lld/trunk/test/elf/X86_64/note-sections-ro_plus_rw.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/note-sections-ro_plus_rw.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/elf/X86_64/note-sections-ro_plus_rw.test (original)
>> +++ lld/trunk/test/elf/X86_64/note-sections-ro_plus_rw.test Wed Oct 23
>> 22:30:03 2013
>> @@ -40,3 +40,7 @@ NOTESEGMENT: PF_W (0x2)
>> NOTESEGMENT: ]
>> NOTESEGMENT: Alignment: 4
>> NOTESEGMENT: }
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>> +
>>
>> Modified: lld/trunk/test/elf/X86_64/weak-override.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/weak-override.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/elf/X86_64/weak-override.test (original)
>> +++ lld/trunk/test/elf/X86_64/weak-override.test Wed Oct 23 22:30:03 2013
>> @@ -41,7 +41,6 @@ WEAKATOMSORDER: - kind:
>> WEAKATOMSORDER: offset: 0
>> WEAKATOMSORDER: target: [[CONSTSTRA]]
>> WEAKATOMSORDER: - ref-name: {{[0-9A-Z]+}}
>> -WEAKATOMSORDER: section-name: .text
>> WEAKATOMSORDER: references:
>> WEAKATOMSORDER: - kind: layout-after
>> WEAKATOMSORDER: offset: 0
>>
>> Modified: lld/trunk/test/elf/X86_64/weak-zero-sized.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/weak-zero-sized.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/elf/X86_64/weak-zero-sized.test (original)
>> +++ lld/trunk/test/elf/X86_64/weak-zero-sized.test Wed Oct 23 22:30:03
>> 2013
>> @@ -10,7 +10,6 @@ WEAKORDER: 004001a4 T _start
>>
>> WEAKATOMSORDER: - ref-name: [[TARGETA:[-a-zA-Z0-9_]+]]
>> WEAKATOMSORDER: alignment: 2^2
>> -WEAKATOMSORDER: section-name: .text
>> WEAKATOMSORDER: - kind: layout-after
>> WEAKATOMSORDER: offset: 0
>> WEAKATOMSORDER: target: [[TARGETB:[-a-zA-Z0-9_]+]]
>> @@ -18,7 +17,6 @@ WEAKATOMSORDER: - name: _sta
>> WEAKATOMSORDER: scope: global
>> WEAKATOMSORDER: merge: as-weak
>> WEAKATOMSORDER: alignment: 2^2
>> -WEAKATOMSORDER: section-name: .text
>> WEAKATOMSORDER: references:
>> WEAKATOMSORDER: - kind: layout-after
>> WEAKATOMSORDER: offset: 0
>> @@ -27,7 +25,6 @@ WEAKATOMSORDER: - ref-name: [[TA
>> WEAKATOMSORDER: scope: global
>> WEAKATOMSORDER: content: [ C3 ]
>> WEAKATOMSORDER: alignment: 2^2
>> -WEAKATOMSORDER: section-name: .text
>> WEAKATOMSORDER: references:
>> WEAKATOMSORDER: - kind: layout-before
>> WEAKATOMSORDER: offset: 0
>>
>> Modified: lld/trunk/test/elf/check.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/check.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/elf/check.test (original)
>> +++ lld/trunk/test/elf/check.test Wed Oct 23 22:30:03 2013
>> @@ -37,3 +37,6 @@ ELF-hexagon: absolute-atoms:
>> ELF-hexagon: - name: sample.c
>> ELF-hexagon: scope: static
>> ELF-hexagon: value: 0x0000000000000000
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>>
>> Modified: lld/trunk/test/elf/phdr.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/phdr.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/elf/phdr.test (original)
>> +++ lld/trunk/test/elf/phdr.test Wed Oct 23 22:30:03 2013
>> @@ -85,3 +85,6 @@ I386-NEXT: }
>>
>> X86_64: LOAD off 0x0000000000000000
>> X86_64: LOAD off 0x0000000000001000
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>>
>> Modified: lld/trunk/test/elf/ppc.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/ppc.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/elf/ppc.test (original)
>> +++ lld/trunk/test/elf/ppc.test Wed Oct 23 22:30:03 2013
>> @@ -12,3 +12,6 @@ ppc-readobj: ABIVersion: 0
>> ppc-readobj: }
>> ppc-readobj: Type: Executable (0x2)
>> ppc-readobj: Machine: EM_PPC (0x14)
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>>
>> Modified: lld/trunk/test/elf/undef-from-main-dso.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/undef-from-main-dso.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/elf/undef-from-main-dso.test (original)
>> +++ lld/trunk/test/elf/undef-from-main-dso.test Wed Oct 23 22:30:03 2013
>> @@ -30,3 +30,6 @@ CHECK-NEXT: Binding: Global (0x1)
>> CHECK-NEXT: Type: Object (0x1)
>> CHECK-NEXT: Other: 0
>> CHECK-NEXT: Section: .bss
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>>
>> Modified: lld/trunk/test/pecoff/alignment.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/alignment.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/pecoff/alignment.test (original)
>> +++ lld/trunk/test/pecoff/alignment.test Wed Oct 23 22:30:03 2013
>> @@ -4,3 +4,6 @@
>> # RUN: -- %t.obj && llvm-readobj -sections %t1 | FileCheck %s
>>
>> CHECK: VirtualSize: 0x1001
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>>
>> Modified: lld/trunk/test/pecoff/base-reloc.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/base-reloc.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/pecoff/base-reloc.test (original)
>> +++ lld/trunk/test/pecoff/base-reloc.test Wed Oct 23 22:30:03 2013
>> @@ -47,3 +47,6 @@ BASEREL-HEADER-NEXT: IMAGE_SCN_CNT
>> BASEREL-HEADER-NEXT: IMAGE_SCN_MEM_DISCARDABLE (0x2000000)
>> BASEREL-HEADER-NEXT: IMAGE_SCN_MEM_READ (0x40000000)
>> BASEREL-HEADER-NEXT: ]
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>>
>> Modified: lld/trunk/test/pecoff/bss-section.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/bss-section.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/pecoff/bss-section.test (original)
>> +++ lld/trunk/test/pecoff/bss-section.test Wed Oct 23 22:30:03 2013
>> @@ -18,3 +18,6 @@ CHECK-NEXT: IMAGE_SCN_MEM_READ
>> CHECK-NEXT: IMAGE_SCN_MEM_WRITE
>> CHECK-NEXT: ]
>> CHECK-NEXT: }
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>>
>> Modified: lld/trunk/test/pecoff/drectve.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/drectve.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/pecoff/drectve.test (original)
>> +++ lld/trunk/test/pecoff/drectve.test Wed Oct 23 22:30:03 2013
>> @@ -22,3 +22,6 @@ IMPORT-NEXT: 1 fn
>> IMPORT-NEXT: 1
>>
>> ERROR-NOT: foo
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>>
>> Modified: lld/trunk/test/pecoff/dynamic.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/dynamic.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/pecoff/dynamic.test (original)
>> +++ lld/trunk/test/pecoff/dynamic.test Wed Oct 23 22:30:03 2013
>> @@ -8,3 +8,6 @@ CHECK-NEXT: Hint/Ord Name
>> CHECK-NEXT: 0 _name_with_underscore
>> CHECK-NEXT: 1 fn
>> CHECK-NEXT: 1
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>>
>> Modified: lld/trunk/test/pecoff/dynamicbase.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/dynamicbase.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/pecoff/dynamicbase.test (original)
>> +++ lld/trunk/test/pecoff/dynamicbase.test Wed Oct 23 22:30:03 2013
>> @@ -21,3 +21,6 @@ DYNAMICBASE: IMAGE_DLL_CHARACTERISTICS_D
>> NODYNAMICBASE-NOT: IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE
>>
>> DYNAMIC-AND-FIXED: /dynamicbase must not be specified with /fixed
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>>
>> Modified: lld/trunk/test/pecoff/entry.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/entry.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/pecoff/entry.test (original)
>> +++ lld/trunk/test/pecoff/entry.test Wed Oct 23 22:30:03 2013
>> @@ -7,3 +7,6 @@
>> # RUN: FileCheck -check-prefix=CHECK %s < %t1.log
>>
>> CHECK: : _main
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>>
>> Modified: lld/trunk/test/pecoff/hello.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/hello.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/pecoff/hello.test (original)
>> +++ lld/trunk/test/pecoff/hello.test Wed Oct 23 22:30:03 2013
>> @@ -52,3 +52,6 @@ SECTIONS: IMAGE_SCN_MEM_WRITE (0x8
>> SECTIONS: ]
>> SECTIONS: }
>> SECTIONS: ]
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>>
>> Modified: lld/trunk/test/pecoff/imagebase.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/imagebase.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/pecoff/imagebase.test (original)
>> +++ lld/trunk/test/pecoff/imagebase.test Wed Oct 23 22:30:03 2013
>> @@ -10,3 +10,6 @@
>>
>> CHECK1: a1 00 20 40 00 movl 4202496, %eax
>> CHECK2: a1 00 20 01 00 movl 73728, %eax
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>>
>> Modified: lld/trunk/test/pecoff/importlib.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/importlib.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/pecoff/importlib.test (original)
>> +++ lld/trunk/test/pecoff/importlib.test Wed Oct 23 22:30:03 2013
>> @@ -36,3 +36,6 @@ CHECK-NEXT: 101a: 03 c6
>> CHECK-NEXT: 101c: 5e popl %esi
>> CHECK-NEXT: 101d: 5d popl %ebp
>> CHECK-NEXT: 101e: c3 ret
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>>
>> Modified: lld/trunk/test/pecoff/lib.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/lib.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/pecoff/lib.test (original)
>> +++ lld/trunk/test/pecoff/lib.test Wed Oct 23 22:30:03 2013
>> @@ -10,3 +10,6 @@ CHECK: .text:
>> CHECK: 1000: a1 04 20 40 00 movl 4202500, %eax
>> CHECK: 1005: 03 05 00 20 40 00 addl 4202496, %eax
>> CHECK: 100b: c3 ret
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>>
>> Modified: lld/trunk/test/pecoff/multi.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/multi.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/pecoff/multi.test (original)
>> +++ lld/trunk/test/pecoff/multi.test Wed Oct 23 22:30:03 2013
>> @@ -12,3 +12,6 @@ CHECK: .text:
>> CHECK: 1000: a1 04 20 40 00 movl 4202500, %eax
>> CHECK: 1005: 03 05 00 20 40 00 addl 4202496, %eax
>> CHECK: 100b: c3 ret
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>>
>> Modified: lld/trunk/test/pecoff/reloc.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/reloc.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/pecoff/reloc.test (original)
>> +++ lld/trunk/test/pecoff/reloc.test Wed Oct 23 22:30:03 2013
>> @@ -38,3 +38,6 @@ AFTER: 1035: 31 c0
>> AFTER: 1037: 83 c4 14
>> AFTER: 103a: 5d
>> AFTER: 103b: c3
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>>
>> Modified: lld/trunk/test/pecoff/weak-external.test
>> URL:
>> http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/weak-external.test?rev=193300&r1=193299&r2=193300&view=diff
>>
>> ==============================================================================
>> --- lld/trunk/test/pecoff/weak-external.test (original)
>> +++ lld/trunk/test/pecoff/weak-external.test Wed Oct 23 22:30:03 2013
>> @@ -7,3 +7,6 @@
>> CHECK-NOT: _no_such_symbol1
>> CHECK-NOT: _no_such_symbol2
>> CHECK: _no_such_symbol3
>> +
>> +# Disable the test for now as this is going to fail with DEBUG mode
>> +REQUIRES: disable
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131023/15b15fae/attachment.html>
More information about the llvm-commits
mailing list