<div dir="ltr">The atom model is, compared to the traditional linker model, representing both symbol and its data as an "atom" and model relocations and other information as edges between atoms.<div><br></div><div>I think the atom model doesn't mean nor require all atoms in memory are of the same type (or class) regardless of architecture/OS. They can be different subtype as long as output is correct. And that's what we are doing with LLD. We have many subtypes of atoms or references. A reader for an architecture creates atoms of some type, and the corresponding writer for the architecture uses them. Architecture-independent passes work fine with derived classes of atom/reference because subtypes have compatible interface with super classes. It seems to be working, except the round-trip test.</div><div><br></div><div>The round-trip test is different from other passes in the sense that it needs to understand *everything* about given data (please compare this property with other passes). It needs to be able to write everything about a given (internal representation of) file and read them back. Otherwise we will lose data during round-trip. That's what's happening, right?</div><div><br></div><div>The point is again we don't really need to save intermediate data. Only the round-trip passes need to do that. The round-trip tests test the features for themselves -- not for others. This is just a burden, no?</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 9, 2015 at 1:05 PM, Shankar Easwaran <span dir="ltr"><<a href="mailto:shankarke@gmail.com" target="_blank">shankarke@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Mon, Feb 9, 2015 at 2:30 PM, Rui Ueyama <span dir="ltr"><<a href="mailto:ruiu@google.com" target="_blank">ruiu@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span>On Mon, Feb 9, 2015 at 12:24 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:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>Hi,<br>
      <br>
      The round trip passes just tries to load a *complete* object file
      in YAML/Native format back. <br>
      <br>
      The internal state should be the complete object file in
      native/yaml format.<br>
      <br>
      If some state is not recorded and that is really needed in the
      writer, we should add that to the Atom model.<br></div></div></blockquote><div><br></div></span><div>Again, not only saying we should do something, but please elaborate why you think we should. Otherwise we can't discuss...<br></div></div></div></div></blockquote><div><br></div></span><div>The RoundTrip passes was a method to verify the Atom model. When the pass was written / reviewed, this pass was a way to verify that all information passed to the writer was passed through an Atom.<br><br></div><div>I am completely ok to remove the pass as long as there is an alternative with which we can verify.<br><br></div><div>Shankar Easwaran<br></div><br></div></div></div>
</blockquote></div><br></div>