<div dir="ltr"><div class="gmail_extra"><div>On Wed, Oct 23, 2013 at 10:23 PM, Rui Ueyama <span dir="ltr"><<a href="mailto:ruiu@google.com" target="_blank">ruiu@google.com</a>></span> wrote:<br></div><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">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.<div>
<br></div><div>I strongly suggest reverting this patch. You need to fix the tests before submitting the change.</div></div></blockquote><div><br></div><div>Yeah, this needs a revert. I thought you were just marking what needs to be fixed before commit.</div>
<div><br></div><div>- Michael Spencer<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div><div class="h5">

<div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 23, 2013 at 8:30 PM, Shankar Easwaran <span dir="ltr"><<a href="mailto:shankare@codeaurora.org" target="_blank">shankare@codeaurora.org</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Author: shankare<br>
Date: Wed Oct 23 22:30:03 2013<br>
New Revision: 193300<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=193300&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=193300&view=rev</a><br>
Log:<br>
[PassManager] add ReaderWriter{Native,YAML} to the Driver.<br>
<br>
Disable tests to be run with REQUIRES: disable. Note disable is not added to the<br>
config by the test runner Mkaefiles, so essentially disables the test.<br>
<br>
Code changes would be required to fix these tests :-<br>
<br>
test/darwin/hello-world.objtxt<br>
test/elf/check.test<br>
test/elf/phdr.test<br>
test/elf/ppc.test<br>
test/elf/undef-from-main-dso.test<br>
test/elf/X86_64/note-sections-ro_plus_rw.test<br>
test/pecoff/alignment.test<br>
test/pecoff/base-reloc.test<br>
test/pecoff/bss-section.test<br>
test/pecoff/drectve.test<br>
test/pecoff/dynamic.test<br>
test/pecoff/dynamicbase.test<br>
test/pecoff/entry.test<br>
test/pecoff/hello.test<br>
test/pecoff/imagebase.test<br>
test/pecoff/importlib.test<br>
test/pecoff/lib.test<br>
test/pecoff/multi.test<br>
test/pecoff/reloc.test<br>
test/pecoff/weak-external.test<br>
<br>
Added:<br>
    lld/trunk/include/lld/Passes/RoundTripNativePass.h<br>
    lld/trunk/include/lld/Passes/RoundTripYAMLPass.h<br>
    lld/trunk/lib/Passes/RoundTripNativePass.cpp<br>
    lld/trunk/lib/Passes/RoundTripYAMLPass.cpp<br>
Modified:<br>
    lld/trunk/include/lld/Core/Pass.h<br>
    lld/trunk/include/lld/Core/PassManager.h<br>
    lld/trunk/include/lld/Core/Resolver.h<br>
    lld/trunk/include/lld/Passes/LayoutPass.h<br>
    lld/trunk/include/lld/ReaderWriter/Simple.h<br>
    lld/trunk/lib/Core/PassManager.cpp<br>
    lld/trunk/lib/Core/Resolver.cpp<br>
    lld/trunk/lib/Driver/Driver.cpp<br>
    lld/trunk/lib/Passes/CMakeLists.txt<br>
    lld/trunk/lib/Passes/GOTPass.cpp<br>
    lld/trunk/lib/Passes/LayoutPass.cpp<br>
    lld/trunk/lib/Passes/StubsPass.cpp<br>
    lld/trunk/lib/ReaderWriter/CoreLinkingContext.cpp<br>
    lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp<br>
    lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp<br>
    lld/trunk/lib/ReaderWriter/PECOFF/GroupedSectionsPass.h<br>
    lld/trunk/lib/ReaderWriter/PECOFF/IdataPass.h<br>
    lld/trunk/test/darwin/hello-world.objtxt<br>
    lld/trunk/test/elf/X86_64/dontignorezerosize-sections.test<br>
    lld/trunk/test/elf/X86_64/largebss.test<br>
    lld/trunk/test/elf/X86_64/note-sections-ro_plus_rw.test<br>
    lld/trunk/test/elf/X86_64/weak-override.test<br>
    lld/trunk/test/elf/X86_64/weak-zero-sized.test<br>
    lld/trunk/test/elf/check.test<br>
    lld/trunk/test/elf/phdr.test<br>
    lld/trunk/test/elf/ppc.test<br>
    lld/trunk/test/elf/undef-from-main-dso.test<br>
    lld/trunk/test/pecoff/alignment.test<br>
    lld/trunk/test/pecoff/base-reloc.test<br>
    lld/trunk/test/pecoff/bss-section.test<br>
    lld/trunk/test/pecoff/drectve.test<br>
    lld/trunk/test/pecoff/dynamic.test<br>
    lld/trunk/test/pecoff/dynamicbase.test<br>
    lld/trunk/test/pecoff/entry.test<br>
    lld/trunk/test/pecoff/hello.test<br>
    lld/trunk/test/pecoff/imagebase.test<br>
    lld/trunk/test/pecoff/importlib.test<br>
    lld/trunk/test/pecoff/lib.test<br>
    lld/trunk/test/pecoff/multi.test<br>
    lld/trunk/test/pecoff/reloc.test<br>
    lld/trunk/test/pecoff/weak-external.test<br>
<br>
Modified: lld/trunk/include/lld/Core/Pass.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/Pass.h?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/Pass.h?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/include/lld/Core/Pass.h (original)<br>
+++ lld/trunk/include/lld/Core/Pass.h Wed Oct 23 22:30:03 2013<br>
@@ -36,7 +36,7 @@ public:<br>
   virtual ~Pass() { }<br>
<br>
   /// Do the actual work of the Pass.<br>
-  virtual void perform(MutableFile &mergedFile) = 0;<br>
+  virtual void perform(std::unique_ptr<MutableFile> &mergedFile) = 0;<br>
<br>
 protected:<br>
   // Only subclassess can be instantiated.<br>
@@ -53,7 +53,7 @@ public:<br>
   /// Scans all Atoms looking for call-site uses of SharedLibraryAtoms<br>
   /// and transfroms the call-site to call a stub instead using the<br>
   /// helper methods below.<br>
-  virtual void perform(MutableFile &mergedFile);<br>
+  virtual void perform(std::unique_ptr<MutableFile> &mergedFile);<br>
<br>
   /// If true, the pass should use stubs for references<br>
   /// to shared library symbols. If false, the pass<br>
@@ -87,7 +87,7 @@ public:<br>
   /// Scans all Atoms looking for pointer to SharedLibraryAtoms<br>
   /// and transfroms them to a pointer to a GOT entry using the<br>
   /// helper methods below.<br>
-  virtual void perform(MutableFile &mergedFile);<br>
+  virtual void perform(std::unique_ptr<MutableFile> &mergedFile);<br>
<br>
   /// If true, the pass will use GOT entries for references<br>
   /// to shared library symbols. If false, the pass<br>
<br>
Modified: lld/trunk/include/lld/Core/PassManager.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/PassManager.h?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/PassManager.h?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/include/lld/Core/PassManager.h (original)<br>
+++ lld/trunk/include/lld/Core/PassManager.h Wed Oct 23 22:30:03 2013<br>
@@ -32,7 +32,7 @@ public:<br>
     _passes.push_back(std::move(pass));<br>
   }<br>
<br>
-  ErrorOr<void> runOnFile(MutableFile &);<br>
+  ErrorOr<void> runOnFile(std::unique_ptr<MutableFile> &);<br>
<br>
 private:<br>
   /// \brief Passes in the order they should run.<br>
<br>
Modified: lld/trunk/include/lld/Core/Resolver.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/Resolver.h?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Core/Resolver.h?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/include/lld/Core/Resolver.h (original)<br>
+++ lld/trunk/include/lld/Core/Resolver.h Wed Oct 23 22:30:03 2013<br>
@@ -4,6 +4,7 @@<br>
 //<br>
 // This file is distributed under the University of Illinois Open Source<br>
 // License. See LICENSE.TXT for details.<br>
+// License. See LICENSE.TXT for details.<br>
 //<br>
 //===----------------------------------------------------------------------===//<br>
<br>
@@ -37,8 +38,9 @@ public:<br>
   };<br>
<br>
   Resolver(LinkingContext &context)<br>
-      : _context(context), _symbolTable(context), _result(context),<br>
-        _haveLLVMObjs(false), _addToFinalSection(false) {}<br>
+      : _context(context), _symbolTable(context),<br>
+        _result(new MergedFile(context)), _haveLLVMObjs(false),<br>
+        _addToFinalSection(false) {}<br>
<br>
   virtual ~Resolver() {}<br>
<br>
@@ -62,9 +64,7 @@ public:<br>
   /// @brief do work of merging and resolving and return list<br>
   bool resolve();<br>
<br>
-  MutableFile& resultFile() {<br>
-    return _result;<br>
-  }<br>
+  std::unique_ptr<MutableFile> resultFile() { return std::move(_result); }<br>
<br>
 private:<br>
<br>
@@ -117,7 +117,7 @@ private:<br>
   std::set<const Atom *>        _deadStripRoots;<br>
   std::vector<const Atom *>     _atomsWithUnresolvedReferences;<br>
   llvm::DenseSet<const Atom *>  _liveAtoms;<br>
-  MergedFile                    _result;<br>
+  std::unique_ptr<MergedFile> _result;<br>
   bool                          _haveLLVMObjs;<br>
   bool _addToFinalSection;<br>
 };<br>
<br>
Modified: lld/trunk/include/lld/Passes/LayoutPass.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Passes/LayoutPass.h?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Passes/LayoutPass.h?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/include/lld/Passes/LayoutPass.h (original)<br>
+++ lld/trunk/include/lld/Passes/LayoutPass.h Wed Oct 23 22:30:03 2013<br>
@@ -48,7 +48,7 @@ public:<br>
   LayoutPass() : Pass(), _compareAtoms(*this) {}<br>
<br>
   /// Sorts atoms in mergedFile by content type then by command line order.<br>
-  virtual void perform(MutableFile &mergedFile);<br>
+  virtual void perform(std::unique_ptr<MutableFile> &mergedFile);<br>
<br>
   virtual ~LayoutPass() {}<br>
<br>
<br>
Added: lld/trunk/include/lld/Passes/RoundTripNativePass.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Passes/RoundTripNativePass.h?rev=193300&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Passes/RoundTripNativePass.h?rev=193300&view=auto</a><br>



==============================================================================<br>
--- lld/trunk/include/lld/Passes/RoundTripNativePass.h (added)<br>
+++ lld/trunk/include/lld/Passes/RoundTripNativePass.h Wed Oct 23 22:30:03 2013<br>
@@ -0,0 +1,41 @@<br>
+//===------ Passes/RoundTripNativePass.h - Handles Layout of atoms<br>
+//------------------===//<br>
+//<br>
+//                             The LLVM Linker<br>
+//<br>
+// This file is distributed under the University of Illinois Open Source<br>
+// License. See LICENSE.TXT for details.<br>
+//<br>
+//===----------------------------------------------------------------------===//<br>
+<br>
+#ifndef LLD_PASSES_NATIVE_PASS_H<br>
+#define LLD_PASSES_NATIVE_PASS_H<br>
+<br>
+#include "lld/Core/File.h"<br>
+#include "lld/Core/LinkingContext.h"<br>
+#include "lld/Core/Pass.h"<br>
+<br>
+#include <map><br>
+#include <vector><br>
+<br>
+namespace lld {<br>
+class RoundTripNativePass : public Pass {<br>
+public:<br>
+  RoundTripNativePass(LinkingContext &context) : Pass(), _context(context) {}<br>
+<br>
+  /// Sorts atoms in mergedFile by content type then by command line order.<br>
+  virtual void perform(std::unique_ptr<MutableFile> &mergedFile);<br>
+<br>
+  virtual ~RoundTripNativePass() {}<br>
+<br>
+private:<br>
+  LinkingContext &_context;<br>
+  // Keep the parsed file alive for the rest of the link. All atoms<br>
+  // that are created by the RoundTripNativePass are owned by the<br>
+  // nativeFile.<br>
+  std::vector<std::unique_ptr<File> > _nativeFile;<br>
+};<br>
+<br>
+} // namespace lld<br>
+<br>
+#endif // LLD_PASSES_NATIVE_PASS_H<br>
<br>
Added: lld/trunk/include/lld/Passes/RoundTripYAMLPass.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Passes/RoundTripYAMLPass.h?rev=193300&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/Passes/RoundTripYAMLPass.h?rev=193300&view=auto</a><br>



==============================================================================<br>
--- lld/trunk/include/lld/Passes/RoundTripYAMLPass.h (added)<br>
+++ lld/trunk/include/lld/Passes/RoundTripYAMLPass.h Wed Oct 23 22:30:03 2013<br>
@@ -0,0 +1,41 @@<br>
+//===------ Passes/RoundTripYAMLPass.h - Handles Layout of atoms<br>
+//------------------===//<br>
+//<br>
+//                             The LLVM Linker<br>
+//<br>
+// This file is distributed under the University of Illinois Open Source<br>
+// License. See LICENSE.TXT for details.<br>
+//<br>
+//===----------------------------------------------------------------------===//<br>
+<br>
+#ifndef LLD_PASSES_ROUNDTRIP_YAML_PASS_H<br>
+#define LLD_PASSES_ROUNDTRIP_YAML_PASS_H<br>
+<br>
+#include "lld/Core/File.h"<br>
+#include "lld/Core/LinkingContext.h"<br>
+#include "lld/Core/Pass.h"<br>
+<br>
+#include <map><br>
+#include <vector><br>
+<br>
+namespace lld {<br>
+class RoundTripYAMLPass : public Pass {<br>
+public:<br>
+  RoundTripYAMLPass(LinkingContext &context) : Pass(), _context(context) {}<br>
+<br>
+  /// Sorts atoms in mergedFile by content type then by command line order.<br>
+  virtual void perform(std::unique_ptr<MutableFile> &mergedFile);<br>
+<br>
+  virtual ~RoundTripYAMLPass() {}<br>
+<br>
+private:<br>
+  LinkingContext &_context;<br>
+  // Keep the parsed file alive for the rest of the link. All atoms<br>
+  // that are created by the RoundTripYAMLPass are owned by the<br>
+  // yamlFile.<br>
+  std::vector<std::unique_ptr<File> > _yamlFile;<br>
+};<br>
+<br>
+} // namespace lld<br>
+<br>
+#endif // LLD_PASSES_ROUNDTRIP_YAML_PASS_H<br>
<br>
Modified: lld/trunk/include/lld/ReaderWriter/Simple.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/Simple.h?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/include/lld/ReaderWriter/Simple.h?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/include/lld/ReaderWriter/Simple.h (original)<br>
+++ lld/trunk/include/lld/ReaderWriter/Simple.h Wed Oct 23 22:30:03 2013<br>
@@ -62,13 +62,31 @@ public:<br>
     return make_range(_definedAtoms._atoms);<br>
   }<br>
<br>
-private:<br>
+protected:<br>
   atom_collection_vector<DefinedAtom> _definedAtoms;<br>
   atom_collection_vector<UndefinedAtom> _undefinedAtoms;<br>
   atom_collection_vector<SharedLibraryAtom> _sharedLibraryAtoms;<br>
   atom_collection_vector<AbsoluteAtom> _absoluteAtoms;<br>
 };<br>
<br>
+class FileToMutable : public SimpleFile {<br>
+public:<br>
+  explicit FileToMutable(const LinkingContext &context, File &file)<br>
+      : SimpleFile(context, file.path()), _file(file) {<br>
+    for (auto definedAtom : _file.defined())<br>
+      _definedAtoms._atoms.push_back(std::move(definedAtom));<br>
+    for (auto undefAtom : _file.undefined())<br>
+      _undefinedAtoms._atoms.push_back(std::move(undefAtom));<br>
+    for (auto shlibAtom : _file.sharedLibrary())<br>
+      _sharedLibraryAtoms._atoms.push_back(std::move(shlibAtom));<br>
+    for (auto absAtom : _file.absolute())<br>
+      _absoluteAtoms._atoms.push_back(std::move(absAtom));<br>
+  }<br>
+<br>
+private:<br>
+  const File &_file;<br>
+};<br>
+<br>
 class SimpleReference : public Reference {<br>
 public:<br>
   SimpleReference(Reference::Kind k, uint64_t off, const Atom *t,<br>
<br>
Modified: lld/trunk/lib/Core/PassManager.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Core/PassManager.cpp?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Core/PassManager.cpp?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/lib/Core/PassManager.cpp (original)<br>
+++ lld/trunk/lib/Core/PassManager.cpp Wed Oct 23 22:30:03 2013<br>
@@ -15,7 +15,7 @@<br>
 #include "llvm/Support/ErrorOr.h"<br>
<br>
 namespace lld {<br>
-ErrorOr<void> PassManager::runOnFile(MutableFile &mf) {<br>
+ErrorOr<void> PassManager::runOnFile(std::unique_ptr<MutableFile> &mf) {<br>
   for (auto &pass : _passes) {<br>
     pass->perform(mf);<br>
   }<br>
<br>
Modified: lld/trunk/lib/Core/Resolver.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Core/Resolver.cpp?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Core/Resolver.cpp?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/lib/Core/Resolver.cpp (original)<br>
+++ lld/trunk/lib/Core/Resolver.cpp Wed Oct 23 22:30:03 2013<br>
@@ -480,7 +480,7 @@ bool Resolver::resolve() {<br>
   }<br>
   this->removeCoalescedAwayAtoms();<br>
   this->linkTimeOptimize();<br>
-  this->_result.addAtoms(_atoms);<br>
+  this->_result->addAtoms(_atoms);<br>
   return true;<br>
 }<br>
<br>
<br>
Modified: lld/trunk/lib/Driver/Driver.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/Driver.cpp?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/Driver.cpp?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/lib/Driver/Driver.cpp (original)<br>
+++ lld/trunk/lib/Driver/Driver.cpp Wed Oct 23 22:30:03 2013<br>
@@ -16,6 +16,8 @@<br>
 #include "lld/Core/Resolver.h"<br>
 #include "lld/ReaderWriter/Reader.h"<br>
 #include "lld/ReaderWriter/Writer.h"<br>
+#include "lld/Passes/RoundTripNativePass.h"<br>
+#include "lld/Passes/RoundTripYAMLPass.h"<br>
<br>
 #include "llvm/ADT/StringExtras.h"<br>
 #include "llvm/ADT/StringSwitch.h"<br>
@@ -105,19 +107,25 @@ bool Driver::link(LinkingContext &contex<br>
   Resolver resolver(context);<br>
   if (!resolver.resolve())<br>
     return false;<br>
-  MutableFile &merged = resolver.resultFile();<br>
+  std::unique_ptr<MutableFile> merged = resolver.resultFile();<br>
   resolveTask.end();<br>
<br>
   // Run passes on linked atoms.<br>
   ScopedTask passTask(getDefaultDomain(), "Passes");<br>
   PassManager pm;<br>
   context.addPasses(pm);<br>
+<br>
+#ifndef NDEBUG<br>
+  pm.add(std::unique_ptr<Pass>(new RoundTripNativePass(context)));<br>
+  pm.add(std::unique_ptr<Pass>(new RoundTripYAMLPass(context)));<br>
+#endif<br>
+<br>
   pm.runOnFile(merged);<br>
   passTask.end();<br>
<br>
   // Give linked atoms to Writer to generate output file.<br>
   ScopedTask writeTask(getDefaultDomain(), "Write");<br>
-  if (error_code ec = context.writeFile(merged)) {<br>
+  if (error_code ec = context.writeFile(*merged)) {<br>
     diagnostics << "Failed to write file '" << context.outputPath()<br>
                 << "': " << ec.message() << "\n";<br>
     return false;<br>
<br>
Modified: lld/trunk/lib/Passes/CMakeLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/CMakeLists.txt?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/CMakeLists.txt?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/lib/Passes/CMakeLists.txt (original)<br>
+++ lld/trunk/lib/Passes/CMakeLists.txt Wed Oct 23 22:30:03 2013<br>
@@ -2,4 +2,8 @@ add_lld_library(lldPasses<br>
   GOTPass.cpp<br>
   StubsPass.cpp<br>
   LayoutPass.cpp<br>
+  RoundTripNativePass.cpp<br>
+  RoundTripYAMLPass.cpp<br>
   )<br>
+<br>
+target_link_libraries(lldPasses lldReaderWriter)<br>
<br>
Modified: lld/trunk/lib/Passes/GOTPass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/GOTPass.cpp?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/GOTPass.cpp?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/lib/Passes/GOTPass.cpp (original)<br>
+++ lld/trunk/lib/Passes/GOTPass.cpp Wed Oct 23 22:30:03 2013<br>
@@ -67,12 +67,12 @@ findGOTAtom(const Atom *target,<br>
 }<br>
 } // end anonymous namespace<br>
<br>
-void GOTPass::perform(MutableFile &mergedFile) {<br>
+void GOTPass::perform(std::unique_ptr<MutableFile> &mergedFile) {<br>
   // Use map so all pointers to same symbol use same GOT entry.<br>
   llvm::DenseMap<const Atom*, const DefinedAtom*> targetToGOT;<br>
<br>
   // Scan all references in all atoms.<br>
-  for(const DefinedAtom *atom : mergedFile.defined()) {<br>
+  for (const DefinedAtom *atom : mergedFile->defined()) {<br>
     for (const Reference *ref : *atom) {<br>
       // Look at instructions accessing the GOT.<br>
       bool canBypassGOT;<br>
@@ -102,7 +102,7 @@ void GOTPass::perform(MutableFile &merge<br>
<br>
   // add all created GOT Atoms to master file<br>
   for (auto &it : targetToGOT) {<br>
-    mergedFile.addAtom(*it.second);<br>
+    mergedFile->addAtom(*it.second);<br>
   }<br>
 }<br>
 }<br>
<br>
Modified: lld/trunk/lib/Passes/LayoutPass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/LayoutPass.cpp?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/LayoutPass.cpp?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/lib/Passes/LayoutPass.cpp (original)<br>
+++ lld/trunk/lib/Passes/LayoutPass.cpp Wed Oct 23 22:30:03 2013<br>
@@ -534,9 +534,9 @@ void LayoutPass::checkFollowonChain(Muta<br>
 #endif  // #ifndef NDEBUG<br>
<br>
 /// Perform the actual pass<br>
-void LayoutPass::perform(MutableFile &mergedFile) {<br>
+void LayoutPass::perform(std::unique_ptr<MutableFile> &mergedFile) {<br>
   ScopedTask task(getDefaultDomain(), "LayoutPass");<br>
-  MutableFile::DefinedAtomRange atomRange = mergedFile.definedAtoms();<br>
+  MutableFile::DefinedAtomRange atomRange = mergedFile->definedAtoms();<br>
<br>
   // Build follow on tables<br>
   buildFollowOnTable(atomRange);<br>
<br>
Added: lld/trunk/lib/Passes/RoundTripNativePass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/RoundTripNativePass.cpp?rev=193300&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/RoundTripNativePass.cpp?rev=193300&view=auto</a><br>



==============================================================================<br>
--- lld/trunk/lib/Passes/RoundTripNativePass.cpp (added)<br>
+++ lld/trunk/lib/Passes/RoundTripNativePass.cpp Wed Oct 23 22:30:03 2013<br>
@@ -0,0 +1,44 @@<br>
+//===- Passes/RoundTripNativePass.cpp - Layout atoms<br>
+//-------------------------------===//<br>
+//<br>
+//                             The LLVM Linker<br>
+//<br>
+// This file is distributed under the University of Illinois Open Source<br>
+// License. See LICENSE.TXT for details.<br>
+//<br>
+//===----------------------------------------------------------------------===//<br>
+//===----------------------------------------------------------------------===//<br>
+<br>
+#define DEBUG_TYPE "RoundTripNativePass"<br>
+<br>
+#include "lld/Core/Instrumentation.h"<br>
+#include "lld/Passes/RoundTripNativePass.h"<br>
+#include "lld/ReaderWriter/Simple.h"<br>
+#include "lld/ReaderWriter/Writer.h"<br>
+<br>
+#include "llvm/Support/Path.h"<br>
+<br>
+using namespace lld;<br>
+<br>
+/// Perform the actual pass<br>
+void RoundTripNativePass::perform(std::unique_ptr<MutableFile> &mergedFile) {<br>
+  ScopedTask task(getDefaultDomain(), "RoundTripNativePass");<br>
+  std::unique_ptr<Writer> nativeWriter = createWriterNative(_context);<br>
+  SmallString<128> tmpNativeFile;<br>
+  // Separate the directory from the filename<br>
+  StringRef outFile = llvm::sys::path::filename(_context.outputPath());<br>
+  if (llvm::sys::fs::createTemporaryFile(outFile, "native", tmpNativeFile))<br>
+    return;<br>
+<br>
+  nativeWriter->writeFile(*mergedFile, tmpNativeFile.str());<br>
+  llvm::OwningPtr<llvm::MemoryBuffer> buff;<br>
+  if (llvm::MemoryBuffer::getFileOrSTDIN(tmpNativeFile.str(), buff))<br>
+    return;<br>
+<br>
+  std::unique_ptr<MemoryBuffer> mb(buff.take());<br>
+  _context.getNativeReader().parseFile(mb, _nativeFile);<br>
+<br>
+  mergedFile.reset(new FileToMutable(_context, *_nativeFile[0].get()));<br>
+<br>
+  llvm::sys::fs::remove(tmpNativeFile.str());<br>
+}<br>
<br>
Added: lld/trunk/lib/Passes/RoundTripYAMLPass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/RoundTripYAMLPass.cpp?rev=193300&view=auto" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/RoundTripYAMLPass.cpp?rev=193300&view=auto</a><br>



==============================================================================<br>
--- lld/trunk/lib/Passes/RoundTripYAMLPass.cpp (added)<br>
+++ lld/trunk/lib/Passes/RoundTripYAMLPass.cpp Wed Oct 23 22:30:03 2013<br>
@@ -0,0 +1,44 @@<br>
+//===- Passes/RoundTripYAMLPass.cpp - Layout atoms<br>
+//-------------------------------===//<br>
+//<br>
+//                             The LLVM Linker<br>
+//<br>
+// This file is distributed under the University of Illinois Open Source<br>
+// License. See LICENSE.TXT for details.<br>
+//<br>
+//===----------------------------------------------------------------------===//<br>
+//===----------------------------------------------------------------------===//<br>
+<br>
+#define DEBUG_TYPE "RoundTripYAMLPass"<br>
+<br>
+#include "lld/Core/Instrumentation.h"<br>
+#include "lld/Passes/RoundTripYAMLPass.h"<br>
+#include "lld/ReaderWriter/Simple.h"<br>
+#include "lld/ReaderWriter/Writer.h"<br>
+<br>
+#include "llvm/Support/Path.h"<br>
+<br>
+using namespace lld;<br>
+<br>
+/// Perform the actual pass<br>
+void RoundTripYAMLPass::perform(std::unique_ptr<MutableFile> &mergedFile) {<br>
+  ScopedTask task(getDefaultDomain(), "RoundTripYAMLPass");<br>
+  std::unique_ptr<Writer> yamlWriter = createWriterYAML(_context);<br>
+  SmallString<128> tmpYAMLFile;<br>
+  // Separate the directory from the filename<br>
+  StringRef outFile = llvm::sys::path::filename(_context.outputPath());<br>
+  if (llvm::sys::fs::createTemporaryFile(outFile, "yaml", tmpYAMLFile))<br>
+    return;<br>
+<br>
+  yamlWriter->writeFile(*mergedFile, tmpYAMLFile.str());<br>
+  llvm::OwningPtr<llvm::MemoryBuffer> buff;<br>
+  if (llvm::MemoryBuffer::getFileOrSTDIN(tmpYAMLFile.str(), buff))<br>
+    return;<br>
+<br>
+  std::unique_ptr<MemoryBuffer> mb(buff.take());<br>
+  _context.getYAMLReader().parseFile(mb, _yamlFile);<br>
+<br>
+  mergedFile.reset(new FileToMutable(_context, *_yamlFile[0].get()));<br>
+<br>
+  llvm::sys::fs::remove(tmpYAMLFile.str());<br>
+}<br>
<br>
Modified: lld/trunk/lib/Passes/StubsPass.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/StubsPass.cpp?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Passes/StubsPass.cpp?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/lib/Passes/StubsPass.cpp (original)<br>
+++ lld/trunk/lib/Passes/StubsPass.cpp Wed Oct 23 22:30:03 2013<br>
@@ -23,13 +23,13 @@<br>
<br>
 namespace lld {<br>
<br>
-void StubsPass::perform(MutableFile &mergedFile) {<br>
+void StubsPass::perform(std::unique_ptr<MutableFile> &mergedFile) {<br>
   // Skip this pass if output format uses text relocations instead of stubs.<br>
   if ( ! this->noTextRelocs() )<br>
     return;<br>
<br>
   // Scan all references in all atoms.<br>
-  for(const DefinedAtom *atom : mergedFile.defined()) {<br>
+  for (const DefinedAtom *atom : mergedFile->defined()) {<br>
     for (const Reference *ref : *atom) {<br>
       // Look at call-sites.<br>
       if (this->isCallSite(ref->kind()) ) {<br>
@@ -61,6 +61,6 @@ void StubsPass::perform(MutableFile &mer<br>
   }<br>
<br>
   // Add all created stubs and support Atoms.<br>
- this->addStubAtoms(mergedFile);<br>
+  this->addStubAtoms(*mergedFile);<br>
 }<br>
 }<br>
<br>
Modified: lld/trunk/lib/ReaderWriter/CoreLinkingContext.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/CoreLinkingContext.cpp?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/CoreLinkingContext.cpp?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/CoreLinkingContext.cpp (original)<br>
+++ lld/trunk/lib/ReaderWriter/CoreLinkingContext.cpp Wed Oct 23 22:30:03 2013<br>
@@ -12,6 +12,7 @@<br>
 #include "lld/Core/Pass.h"<br>
 #include "lld/Core/PassManager.h"<br>
 #include "lld/Passes/LayoutPass.h"<br>
+#include "lld/ReaderWriter/Simple.h"<br>
<br>
 #include "llvm/ADT/ArrayRef.h"<br>
<br>
@@ -149,10 +150,10 @@ private:<br>
   uint32_t _ordinal;<br>
 };<br>
<br>
-class TestingPassFile : public MutableFile {<br>
+class TestingPassFile : public SimpleFile {<br>
 public:<br>
   TestingPassFile(const LinkingContext &ctx)<br>
-      : MutableFile(ctx, "Testing pass") {}<br>
+      : SimpleFile(ctx, "Testing pass") {}<br>
<br>
   virtual void addAtom(const Atom &atom) {<br>
     if (const DefinedAtom *defAtom = dyn_cast<DefinedAtom>(&atom))<br>
<br>
Modified: lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp (original)<br>
+++ lld/trunk/lib/ReaderWriter/ELF/Hexagon/HexagonTargetHandler.cpp Wed Oct 23 22:30:03 2013<br>
@@ -157,9 +157,9 @@ public:<br>
   ///<br>
   /// After all references are handled, the atoms created during that are all<br>
   /// added to mf.<br>
-  virtual void perform(MutableFile &mf) {<br>
+  virtual void perform(std::unique_ptr<MutableFile> &mf) {<br>
     // Process all references.<br>
-    for (const auto &atom : mf.defined())<br>
+    for (const auto &atom : mf->defined())<br>
       for (const auto &ref : *atom)<br>
         handleReference(*atom, *ref);<br>
<br>
@@ -167,23 +167,23 @@ public:<br>
     uint64_t ordinal = 0;<br>
     if (_PLT0) {<br>
       _PLT0->setOrdinal(ordinal++);<br>
-      mf.addAtom(*_PLT0);<br>
+      mf->addAtom(*_PLT0);<br>
     }<br>
     for (auto &plt : _pltVector) {<br>
       plt->setOrdinal(ordinal++);<br>
-      mf.addAtom(*plt);<br>
+      mf->addAtom(*plt);<br>
     }<br>
     if (_null) {<br>
       _null->setOrdinal(ordinal++);<br>
-      mf.addAtom(*_null);<br>
+      mf->addAtom(*_null);<br>
     }<br>
     if (_got0) {<br>
       _got0->setOrdinal(ordinal++);<br>
-      mf.addAtom(*_got0);<br>
+      mf->addAtom(*_got0);<br>
     }<br>
     for (auto &got : _gotVector) {<br>
       got->setOrdinal(ordinal++);<br>
-      mf.addAtom(*got);<br>
+      mf->addAtom(*got);<br>
     }<br>
   }<br>
<br>
<br>
Modified: lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp (original)<br>
+++ lld/trunk/lib/ReaderWriter/ELF/X86_64/X86_64LinkingContext.cpp Wed Oct 23 22:30:03 2013<br>
@@ -219,10 +219,10 @@ public:<br>
   ///<br>
   /// After all references are handled, the atoms created during that are all<br>
   /// added to mf.<br>
-  virtual void perform(MutableFile &mf) {<br>
+  virtual void perform(std::unique_ptr<MutableFile> &mf) {<br>
     ScopedTask task(getDefaultDomain(), "X86-64 GOT/PLT Pass");<br>
     // Process all references.<br>
-    for (const auto &atom : mf.defined())<br>
+    for (const auto &atom : mf->defined())<br>
       for (const auto &ref : *atom)<br>
         handleReference(*atom, *ref);<br>
<br>
@@ -230,29 +230,29 @@ public:<br>
     uint64_t ordinal = 0;<br>
     if (_PLT0) {<br>
       _PLT0->setOrdinal(ordinal++);<br>
-      mf.addAtom(*_PLT0);<br>
+      mf->addAtom(*_PLT0);<br>
     }<br>
     for (auto &plt : _pltVector) {<br>
       plt->setOrdinal(ordinal++);<br>
-      mf.addAtom(*plt);<br>
+      mf->addAtom(*plt);<br>
     }<br>
     if (_null) {<br>
       _null->setOrdinal(ordinal++);<br>
-      mf.addAtom(*_null);<br>
+      mf->addAtom(*_null);<br>
     }<br>
     if (_PLT0) {<br>
       _got0->setOrdinal(ordinal++);<br>
       _got1->setOrdinal(ordinal++);<br>
-      mf.addAtom(*_got0);<br>
-      mf.addAtom(*_got1);<br>
+      mf->addAtom(*_got0);<br>
+      mf->addAtom(*_got1);<br>
     }<br>
     for (auto &got : _gotVector) {<br>
       got->setOrdinal(ordinal++);<br>
-      mf.addAtom(*got);<br>
+      mf->addAtom(*got);<br>
     }<br>
     for (auto obj : _objectVector) {<br>
       obj->setOrdinal(ordinal++);<br>
-      mf.addAtom(*obj);<br>
+      mf->addAtom(*obj);<br>
     }<br>
   }<br>
<br>
<br>
Modified: lld/trunk/lib/ReaderWriter/PECOFF/GroupedSectionsPass.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/GroupedSectionsPass.h?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/GroupedSectionsPass.h?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/PECOFF/GroupedSectionsPass.h (original)<br>
+++ lld/trunk/lib/ReaderWriter/PECOFF/GroupedSectionsPass.h Wed Oct 23 22:30:03 2013<br>
@@ -60,9 +60,9 @@ class GroupedSectionsPass : public lld::<br>
 public:<br>
   GroupedSectionsPass() {}<br>
<br>
-  virtual void perform(MutableFile &mergedFile) {<br>
-    std::map<StringRef, std::vector<COFFDefinedAtom *>> sectionToHeadAtoms(<br>
-        filterHeadAtoms(mergedFile));<br>
+  virtual void perform(std::unique_ptr<MutableFile> &mergedFile) {<br>
+    std::map<StringRef, std::vector<COFFDefinedAtom *> > sectionToHeadAtoms(<br>
+        filterHeadAtoms(*mergedFile));<br>
     std::vector<std::vector<COFFDefinedAtom *>> groupedAtomsList(<br>
         groupBySectionName(sectionToHeadAtoms));<br>
     for (auto &groupedAtoms : groupedAtomsList)<br>
<br>
Modified: lld/trunk/lib/ReaderWriter/PECOFF/IdataPass.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/IdataPass.h?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/lib/ReaderWriter/PECOFF/IdataPass.h?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/lib/ReaderWriter/PECOFF/IdataPass.h (original)<br>
+++ lld/trunk/lib/ReaderWriter/PECOFF/IdataPass.h Wed Oct 23 22:30:03 2013<br>
@@ -252,13 +252,13 @@ class IdataPass : public lld::Pass {<br>
 public:<br>
   IdataPass(const LinkingContext &ctx) : _dummyFile(ctx) {}<br>
<br>
-  virtual void perform(MutableFile &file) {<br>
-    if (file.sharedLibrary().size() == 0)<br>
+  virtual void perform(std::unique_ptr<MutableFile> &file) {<br>
+    if (file->sharedLibrary().size() == 0)<br>
       return;<br>
<br>
-    Context context(file, _dummyFile);<br>
+    Context context(*file, _dummyFile);<br>
     map<StringRef, vector<COFFSharedLibraryAtom *> > sharedAtoms =<br>
-        groupByLoadName(file);<br>
+        groupByLoadName(*file);<br>
     for (auto i : sharedAtoms) {<br>
       StringRef loadName = i.first;<br>
       vector<COFFSharedLibraryAtom *> &atoms = i.second;<br>
<br>
Modified: lld/trunk/test/darwin/hello-world.objtxt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/darwin/hello-world.objtxt?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/darwin/hello-world.objtxt?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/darwin/hello-world.objtxt (original)<br>
+++ lld/trunk/test/darwin/hello-world.objtxt Wed Oct 23 22:30:03 2013<br>
@@ -34,3 +34,5 @@ shared-library-atoms:<br>
 # CHECK:       {{[0-9a-f]+}} s _main<br>
 # CHECK:       00000000 u _printf<br>
 # CHECK:       00000000 u dyld_stub_binder<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+# REQUIRES: disable<br>
<br>
Modified: lld/trunk/test/elf/X86_64/dontignorezerosize-sections.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/dontignorezerosize-sections.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/dontignorezerosize-sections.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/elf/X86_64/dontignorezerosize-sections.test (original)<br>
+++ lld/trunk/test/elf/X86_64/dontignorezerosize-sections.test Wed Oct 23 22:30:03 2013<br>
@@ -3,9 +3,7 @@ RUN: lld -flavor gnu -target x86_64-linu<br>
 RUN: --noinhibit-exec --output-filetype=yaml -o %t<br>
 RUN: FileCheck %s < %t<br>
<br>
-CHECK:    section-name:    .data<br>
 CHECK:    references:<br>
 CHECK:      - kind:            R_X86_64_16<br>
 CHECK:        offset:          0<br>
 CHECK:        target:          L000<br>
-CHECK:    section-name:    .text<br>
<br>
Modified: lld/trunk/test/elf/X86_64/largebss.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/largebss.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/largebss.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/elf/X86_64/largebss.test (original)<br>
+++ lld/trunk/test/elf/X86_64/largebss.test Wed Oct 23 22:30:03 2013<br>
@@ -10,14 +10,11 @@ CHECK:    scope:           global<br>
 CHECK:    type:            zero-fill<br>
 CHECK:    size:            4000<br>
 CHECK:    merge:           as-tentative<br>
-CHECK:    section-name:    .bss<br>
 CHECK:  - name:            largebss<br>
 CHECK:    scope:           global<br>
 CHECK:    type:            zero-fill<br>
 CHECK:    size:            4000<br>
-CHECK:    section-name:    .bss<br>
 CHECK:  - name:            largetbss<br>
 CHECK:    scope:           global<br>
 CHECK:    type:            thread-zero-fill<br>
 CHECK:    size:            4000<br>
-CHECK:    section-name:    .tbss<br>
<br>
Modified: lld/trunk/test/elf/X86_64/note-sections-ro_plus_rw.test<br>
URL: <a href="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" target="_blank">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</a><br>



==============================================================================<br>
--- lld/trunk/test/elf/X86_64/note-sections-ro_plus_rw.test (original)<br>
+++ lld/trunk/test/elf/X86_64/note-sections-ro_plus_rw.test Wed Oct 23 22:30:03 2013<br>
@@ -40,3 +40,7 @@ NOTESEGMENT:      PF_W (0x2)<br>
 NOTESEGMENT:    ]<br>
 NOTESEGMENT:    Alignment: 4<br>
 NOTESEGMENT:  }<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
+<br>
<br>
Modified: lld/trunk/test/elf/X86_64/weak-override.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/weak-override.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/weak-override.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/elf/X86_64/weak-override.test (original)<br>
+++ lld/trunk/test/elf/X86_64/weak-override.test Wed Oct 23 22:30:03 2013<br>
@@ -41,7 +41,6 @@ WEAKATOMSORDER:      - kind:<br>
 WEAKATOMSORDER:        offset:          0<br>
 WEAKATOMSORDER:        target:          [[CONSTSTRA]]<br>
 WEAKATOMSORDER:  - ref-name:            {{[0-9A-Z]+}}<br>
-WEAKATOMSORDER:    section-name:    .text<br>
 WEAKATOMSORDER:    references:<br>
 WEAKATOMSORDER:      - kind:            layout-after<br>
 WEAKATOMSORDER:        offset:          0<br>
<br>
Modified: lld/trunk/test/elf/X86_64/weak-zero-sized.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/weak-zero-sized.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/X86_64/weak-zero-sized.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/elf/X86_64/weak-zero-sized.test (original)<br>
+++ lld/trunk/test/elf/X86_64/weak-zero-sized.test Wed Oct 23 22:30:03 2013<br>
@@ -10,7 +10,6 @@ WEAKORDER: 004001a4 T _start<br>
<br>
 WEAKATOMSORDER:  - ref-name:        [[TARGETA:[-a-zA-Z0-9_]+]]<br>
 WEAKATOMSORDER:    alignment:       2^2<br>
-WEAKATOMSORDER:    section-name:    .text<br>
 WEAKATOMSORDER:      - kind:            layout-after<br>
 WEAKATOMSORDER:        offset:          0<br>
 WEAKATOMSORDER:        target:          [[TARGETB:[-a-zA-Z0-9_]+]]<br>
@@ -18,7 +17,6 @@ WEAKATOMSORDER:  - name:            _sta<br>
 WEAKATOMSORDER:    scope:           global<br>
 WEAKATOMSORDER:    merge:           as-weak<br>
 WEAKATOMSORDER:    alignment:       2^2<br>
-WEAKATOMSORDER:    section-name:    .text<br>
 WEAKATOMSORDER:    references:<br>
 WEAKATOMSORDER:      - kind:            layout-after<br>
 WEAKATOMSORDER:        offset:          0<br>
@@ -27,7 +25,6 @@ WEAKATOMSORDER:  - ref-name:        [[TA<br>
 WEAKATOMSORDER:    scope:           global<br>
 WEAKATOMSORDER:    content:         [ C3 ]<br>
 WEAKATOMSORDER:    alignment:       2^2<br>
-WEAKATOMSORDER:    section-name:    .text<br>
 WEAKATOMSORDER:    references:<br>
 WEAKATOMSORDER:      - kind:            layout-before<br>
 WEAKATOMSORDER:        offset:          0<br>
<br>
Modified: lld/trunk/test/elf/check.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/check.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/check.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/elf/check.test (original)<br>
+++ lld/trunk/test/elf/check.test Wed Oct 23 22:30:03 2013<br>
@@ -37,3 +37,6 @@ ELF-hexagon: absolute-atoms:<br>
 ELF-hexagon:   - name:            sample.c<br>
 ELF-hexagon:     scope:           static<br>
 ELF-hexagon:     value:           0x0000000000000000<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
<br>
Modified: lld/trunk/test/elf/phdr.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/phdr.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/phdr.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/elf/phdr.test (original)<br>
+++ lld/trunk/test/elf/phdr.test Wed Oct 23 22:30:03 2013<br>
@@ -85,3 +85,6 @@ I386-NEXT:   }<br>
<br>
 X86_64: LOAD off    0x0000000000000000<br>
 X86_64: LOAD off    0x0000000000001000<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
<br>
Modified: lld/trunk/test/elf/ppc.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/ppc.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/ppc.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/elf/ppc.test (original)<br>
+++ lld/trunk/test/elf/ppc.test Wed Oct 23 22:30:03 2013<br>
@@ -12,3 +12,6 @@ ppc-readobj:     ABIVersion: 0<br>
 ppc-readobj:   }<br>
 ppc-readobj:   Type: Executable (0x2)<br>
 ppc-readobj:   Machine: EM_PPC (0x14)<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
<br>
Modified: lld/trunk/test/elf/undef-from-main-dso.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/undef-from-main-dso.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf/undef-from-main-dso.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/elf/undef-from-main-dso.test (original)<br>
+++ lld/trunk/test/elf/undef-from-main-dso.test Wed Oct 23 22:30:03 2013<br>
@@ -30,3 +30,6 @@ CHECK-NEXT:    Binding: Global (0x1)<br>
 CHECK-NEXT:    Type: Object (0x1)<br>
 CHECK-NEXT:    Other: 0<br>
 CHECK-NEXT:    Section: .bss<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
<br>
Modified: lld/trunk/test/pecoff/alignment.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/alignment.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/alignment.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/pecoff/alignment.test (original)<br>
+++ lld/trunk/test/pecoff/alignment.test Wed Oct 23 22:30:03 2013<br>
@@ -4,3 +4,6 @@<br>
 # RUN:   -- %t.obj && llvm-readobj -sections %t1 | FileCheck %s<br>
<br>
 CHECK: VirtualSize: 0x1001<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
<br>
Modified: lld/trunk/test/pecoff/base-reloc.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/base-reloc.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/base-reloc.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/pecoff/base-reloc.test (original)<br>
+++ lld/trunk/test/pecoff/base-reloc.test Wed Oct 23 22:30:03 2013<br>
@@ -47,3 +47,6 @@ BASEREL-HEADER-NEXT:       IMAGE_SCN_CNT<br>
 BASEREL-HEADER-NEXT:       IMAGE_SCN_MEM_DISCARDABLE (0x2000000)<br>
 BASEREL-HEADER-NEXT:       IMAGE_SCN_MEM_READ (0x40000000)<br>
 BASEREL-HEADER-NEXT:     ]<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
<br>
Modified: lld/trunk/test/pecoff/bss-section.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/bss-section.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/bss-section.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/pecoff/bss-section.test (original)<br>
+++ lld/trunk/test/pecoff/bss-section.test Wed Oct 23 22:30:03 2013<br>
@@ -18,3 +18,6 @@ CHECK-NEXT:      IMAGE_SCN_MEM_READ<br>
 CHECK-NEXT:      IMAGE_SCN_MEM_WRITE<br>
 CHECK-NEXT:    ]<br>
 CHECK-NEXT:  }<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
<br>
Modified: lld/trunk/test/pecoff/drectve.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/drectve.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/drectve.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/pecoff/drectve.test (original)<br>
+++ lld/trunk/test/pecoff/drectve.test Wed Oct 23 22:30:03 2013<br>
@@ -22,3 +22,6 @@ IMPORT-NEXT:        1  fn<br>
 IMPORT-NEXT:        1<br>
<br>
 ERROR-NOT: foo<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
<br>
Modified: lld/trunk/test/pecoff/dynamic.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/dynamic.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/dynamic.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/pecoff/dynamic.test (original)<br>
+++ lld/trunk/test/pecoff/dynamic.test Wed Oct 23 22:30:03 2013<br>
@@ -8,3 +8,6 @@ CHECK-NEXT: Hint/Ord  Name<br>
 CHECK-NEXT:        0  _name_with_underscore<br>
 CHECK-NEXT:        1  fn<br>
 CHECK-NEXT:        1<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
<br>
Modified: lld/trunk/test/pecoff/dynamicbase.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/dynamicbase.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/dynamicbase.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/pecoff/dynamicbase.test (original)<br>
+++ lld/trunk/test/pecoff/dynamicbase.test Wed Oct 23 22:30:03 2013<br>
@@ -21,3 +21,6 @@ DYNAMICBASE: IMAGE_DLL_CHARACTERISTICS_D<br>
 NODYNAMICBASE-NOT: IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE<br>
<br>
 DYNAMIC-AND-FIXED: /dynamicbase must not be specified with /fixed<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
<br>
Modified: lld/trunk/test/pecoff/entry.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/entry.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/entry.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/pecoff/entry.test (original)<br>
+++ lld/trunk/test/pecoff/entry.test Wed Oct 23 22:30:03 2013<br>
@@ -7,3 +7,6 @@<br>
 # RUN: FileCheck -check-prefix=CHECK %s < %t1.log<br>
<br>
 CHECK: : _main<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
<br>
Modified: lld/trunk/test/pecoff/hello.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/hello.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/hello.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/pecoff/hello.test (original)<br>
+++ lld/trunk/test/pecoff/hello.test Wed Oct 23 22:30:03 2013<br>
@@ -52,3 +52,6 @@ SECTIONS:       IMAGE_SCN_MEM_WRITE (0x8<br>
 SECTIONS:     ]<br>
 SECTIONS:   }<br>
 SECTIONS: ]<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
<br>
Modified: lld/trunk/test/pecoff/imagebase.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/imagebase.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/imagebase.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/pecoff/imagebase.test (original)<br>
+++ lld/trunk/test/pecoff/imagebase.test Wed Oct 23 22:30:03 2013<br>
@@ -10,3 +10,6 @@<br>
<br>
 CHECK1: a1 00 20 40 00    movl    4202496, %eax<br>
 CHECK2: a1 00 20 01 00    movl    73728, %eax<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
<br>
Modified: lld/trunk/test/pecoff/importlib.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/importlib.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/importlib.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/pecoff/importlib.test (original)<br>
+++ lld/trunk/test/pecoff/importlib.test Wed Oct 23 22:30:03 2013<br>
@@ -36,3 +36,6 @@ CHECK-NEXT:     101a:       03 c6<br>
 CHECK-NEXT:     101c:       5e                   popl    %esi<br>
 CHECK-NEXT:     101d:       5d                   popl    %ebp<br>
 CHECK-NEXT:     101e:       c3                   ret<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
<br>
Modified: lld/trunk/test/pecoff/lib.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/lib.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/lib.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/pecoff/lib.test (original)<br>
+++ lld/trunk/test/pecoff/lib.test Wed Oct 23 22:30:03 2013<br>
@@ -10,3 +10,6 @@ CHECK: .text:<br>
 CHECK:     1000: a1 04 20 40 00      movl 4202500, %eax<br>
 CHECK:     1005: 03 05 00 20 40 00   addl 4202496, %eax<br>
 CHECK:     100b: c3                  ret<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
<br>
Modified: lld/trunk/test/pecoff/multi.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/multi.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/multi.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/pecoff/multi.test (original)<br>
+++ lld/trunk/test/pecoff/multi.test Wed Oct 23 22:30:03 2013<br>
@@ -12,3 +12,6 @@ CHECK: .text:<br>
 CHECK:     1000: a1 04 20 40 00      movl 4202500, %eax<br>
 CHECK:     1005: 03 05 00 20 40 00   addl 4202496, %eax<br>
 CHECK:     100b: c3                  ret<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
<br>
Modified: lld/trunk/test/pecoff/reloc.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/reloc.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/reloc.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/pecoff/reloc.test (original)<br>
+++ lld/trunk/test/pecoff/reloc.test Wed Oct 23 22:30:03 2013<br>
@@ -38,3 +38,6 @@ AFTER:    1035:       31 c0<br>
 AFTER:    1037:        83 c4 14<br>
 AFTER:    103a:        5d<br>
 AFTER:    103b:        c3<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
<br>
Modified: lld/trunk/test/pecoff/weak-external.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/weak-external.test?rev=193300&r1=193299&r2=193300&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/pecoff/weak-external.test?rev=193300&r1=193299&r2=193300&view=diff</a><br>



==============================================================================<br>
--- lld/trunk/test/pecoff/weak-external.test (original)<br>
+++ lld/trunk/test/pecoff/weak-external.test Wed Oct 23 22:30:03 2013<br>
@@ -7,3 +7,6 @@<br>
 CHECK-NOT: _no_such_symbol1<br>
 CHECK-NOT: _no_such_symbol2<br>
 CHECK: _no_such_symbol3<br>
+<br>
+# Disable the test for now as this is going to fail with DEBUG mode<br>
+REQUIRES: disable<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div></div></div></div>
<br>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div></div>