<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">I know Bill's put a fair bit of thought into serialization of the SelectionDAG and MachineInstr layers of the compiler. It's a significant challenge due the ordering requirements, but it's (obviously) not impossible and would have a very large amount of value.<div><br></div><div>-Jim</div><div><br><div><div>On Feb 22, 2013, at 8:29 AM, reed kotler <<a href="mailto:rkotler@mips.com">rkotler@mips.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
  
    <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
  
  <div text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 02/22/2013 07:51 AM, Sean Silva
      wrote:<br>
    </div>
    <blockquote cite="mid:CAHnXoanxMhiVFPpmF38bGW0FT0CUmvti+3mXY+ro01NodovWrg@mail.gmail.com" type="cite">
      <pre wrap="">Do you have any suggestions about how to address this?

-- Sean Silva
</pre>
    </blockquote>
    Ideally we would define an ascii representation for DAGS.<br>
    <br>
    It should be possible to start the compiler from the DAGS as opposed
    to LLVM assembler bitcode.<br>
    <br>
    It should also be possible to compile a C file or LLVM assembler
    bitcode file and save off the DAGS ascii file.<br>
    <br>
    Believe it or not, they had this over 30 years ago with the PQCC
    (Production Quality Compiler Compiler ) project at Carnegie Mellon.<br>
    Intermetrics where I worked had a commercial version of this and
    later Tartan Laboratories.<br>
    <meta http-equiv="content-type" content="text/html;
      charset=ISO-8859-1">
    <a href="http://en.wikipedia.org/wiki/PQCC">http://en.wikipedia.org/wiki/PQCC</a><br>
    <br>
    Any phase of the compiler had an ascii representation that could be
    parsed into binary stuctures and then submitted to that phase and
    optionally propagated to later phases. You could also save off the
    state of any phase in ascii too.<br>
    <br>
    So you could write test cases for optimizations and code generation
    that were reproducible and such.<br>
    <br>
    In those days they used various YAML ancient precursors like LG and
    IDL.<br>
    <br>
    We used to jokingly call the PQCC project PQTG (Product Quality
    Thesis Generator).<br>
    <br>
    Reed<br>
    <br>
    <br>
  </div>

_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></blockquote></div><br></div></body></html>