[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