<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Alex,<div class=""><br class=""></div><div class="">Thanks for working on this.</div><div class=""><br class=""></div><div class="">Personally I would rather not have to write YAML inputs but instead resort on the what the machine dumps look like. That being said, I can live with YAML :).</div><div class=""><br class=""></div><div class="">More importantly, how do you plan to report syntax errors to the users?</div><div class="">Things like invalid instruction, invalid registers, etc.?</div><div class="">What about unallocated code, i.e., virtual registers, invalid SSA form, etc.?</div><div class=""><br class=""></div><div class="">Cheers,</div><div class="">Q.<br class=""><div><blockquote type="cite" class=""><div class="">On Apr 28, 2015, at 9:56 AM, Alex L <<a href="mailto:arphaman@gmail.com" class="">arphaman@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">
<pre style="margin-top:0px;margin-bottom:0px" class="">Hi<span style="color:rgb(192,192,192)" class=""> </span>all,</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><br class=""></pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">I<span style="color:rgb(192,192,192)" class=""> </span>would<span style="color:rgb(192,192,192)" class=""> </span>like<span style="color:rgb(192,192,192)" class=""> </span>to<span style="color:rgb(192,192,192)" class=""> </span>propose<span style="color:rgb(192,192,192)" class=""> </span>a<span style="color:rgb(192,192,192)" class=""> </span>text-based,<span style="color:rgb(192,192,192)" class=""> </span>human<span style="color:rgb(192,192,192)" class=""> </span>readable<span style="color:rgb(192,192,192)" class=""> </span>format<span style="color:rgb(192,192,192)" class=""> </span>that<span style="color:rgb(192,192,192)" class=""> </span>will<span style="color:rgb(192,192,192)" class=""> </span>be<span style="color:rgb(192,192,192)" class=""> </span>used<span style="color:rgb(192,192,192)" class=""> </span>to</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">serialize<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>machine<span style="color:rgb(192,192,192)" class=""> </span>level<span style="color:rgb(192,192,192)" class=""> </span>IR.<span style="color:rgb(192,192,192)" class=""> </span>The<span style="color:rgb(192,192,192)" class=""> </span>major<span style="color:rgb(192,192,192)" class=""> </span>goal<span style="color:rgb(192,192,192)" class=""> </span>of<span style="color:rgb(192,192,192)" class=""> </span>this<span style="color:rgb(192,192,192)" class=""> </span>format<span style="color:rgb(192,192,192)" class=""> </span>is<span style="color:rgb(192,192,192)" class=""> </span>to<span style="color:rgb(192,192,192)" class=""> </span>allow<span style="color:rgb(192,192,192)" class=""> </span>LLVM</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">to<span style="color:rgb(192,192,192)" class=""> </span>save<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>machine<span style="color:rgb(192,192,192)" class=""> </span>level<span style="color:rgb(192,192,192)" class=""> </span>IR<span style="color:rgb(192,192,192)" class=""> </span>after<span style="color:rgb(192,192,192)" class=""> </span>any<span style="color:rgb(192,192,192)" class=""> </span>code<span style="color:rgb(192,192,192)" class=""> </span>generation<span style="color:rgb(192,192,192)" class=""> </span>pass<span style="color:rgb(192,192,192)" class=""> </span>and<span style="color:rgb(192,192,192)" class=""> </span>then<span style="color:rgb(192,192,192)" class=""> </span>to<span style="color:rgb(192,192,192)" class=""> </span>load</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">it<span style="color:rgb(192,192,192)" class=""> </span>again<span style="color:rgb(192,192,192)" class=""> </span>and<span style="color:rgb(192,192,192)" class=""> </span>continue<span style="color:rgb(192,192,192)" class=""> </span>running<span style="color:rgb(192,192,192)" class=""> </span>passes<span style="color:rgb(192,192,192)" class=""> </span>on<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>machine<span style="color:rgb(192,192,192)" class=""> </span>level<span style="color:rgb(192,192,192)" class=""> </span>IR.<span style="color:rgb(192,192,192)" class=""> </span>The<span style="color:rgb(192,192,192)" class=""> </span>primary<span style="color:rgb(192,192,192)" class=""> </span>use<span style="color:rgb(192,192,192)" class=""> </span>case</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">of<span style="color:rgb(192,192,192)" class=""> </span>this<span style="color:rgb(192,192,192)" class=""> </span>format<span style="color:rgb(192,192,192)" class=""> </span>is<span style="color:rgb(192,192,192)" class=""> </span>to<span style="color:rgb(192,192,192)" class=""> </span>enable<span style="color:rgb(192,192,192)" class=""> </span>easier<span style="color:rgb(192,192,192)" class=""> </span>testing<span style="color:rgb(192,192,192)" class=""> </span>process<span style="color:rgb(192,192,192)" class=""> </span>for<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>code<span style="color:rgb(192,192,192)" class=""> </span>generation<span style="color:rgb(192,192,192)" class=""> </span>passes,</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">by<span style="color:rgb(192,192,192)" class=""> </span>allowing<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>developers<span style="color:rgb(192,192,192)" class=""> </span>to<span style="color:rgb(192,192,192)" class=""> </span>write<span style="color:rgb(192,192,192)" class=""> </span>tests<span style="color:rgb(192,192,192)" class=""> </span>that<span style="color:rgb(192,192,192)" class=""> </span>load<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>IR,<span style="color:rgb(192,192,192)" class=""> </span>then<span style="color:rgb(192,192,192)" class=""> </span>invoke<span style="color:rgb(192,192,192)" class=""> </span>just<span style="color:rgb(192,192,192)" class=""> </span>a</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">specific<span style="color:rgb(192,192,192)" class=""> </span>code<span style="color:rgb(192,192,192)" class=""> </span>gen<span style="color:rgb(192,192,192)" class=""> </span>pass<span style="color:rgb(192,192,192)" class=""> </span>and<span style="color:rgb(192,192,192)" class=""> </span>then<span style="color:rgb(192,192,192)" class=""> </span>inspect<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>output<span style="color:rgb(192,192,192)" class=""> </span>of<span style="color:rgb(192,192,192)" class=""> </span>that<span style="color:rgb(192,192,192)" class=""> </span>pass<span style="color:rgb(192,192,192)" class=""> </span>by<span style="color:rgb(192,192,192)" class=""> </span>checking<span style="color:rgb(192,192,192)" class=""> </span>the</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">printed<span style="color:rgb(192,192,192)" class=""> </span>out<span style="color:rgb(192,192,192)" class=""> </span>IR.</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><br class=""></pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><br class=""></pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">The<span style="color:rgb(192,192,192)" class=""> </span>proposed<span style="color:rgb(192,192,192)" class=""> </span>format<span style="color:rgb(192,192,192)" class=""> </span>has<span style="color:rgb(192,192,192)" class=""> </span>a<span style="color:rgb(192,192,192)" class=""> </span>number<span style="color:rgb(192,192,192)" class=""> </span>of<span style="color:rgb(192,192,192)" class=""> </span>key<span style="color:rgb(192,192,192)" class=""> </span>features:</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">-<span style="color:rgb(192,192,192)" class=""> </span>It<span style="color:rgb(192,192,192)" class=""> </span>stores<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>machine<span style="color:rgb(192,192,192)" class=""> </span>level<span style="color:rgb(192,192,192)" class=""> </span>IR<span style="color:rgb(192,192,192)" class=""> </span>and<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>optional<span style="color:rgb(192,192,192)" class=""> </span>LLVM<span style="color:rgb(192,192,192)" class=""> </span>IR<span style="color:rgb(192,192,192)" class=""> </span>in<span style="color:rgb(192,192,192)" class=""> </span>one<span style="color:rgb(192,192,192)" class=""> </span>text<span style="color:rgb(192,192,192)" class=""> </span>file.</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">-<span style="color:rgb(192,192,192)" class=""> </span>The<span style="color:rgb(192,192,192)" class=""> </span>connections<span style="color:rgb(192,192,192)" class=""> </span>between<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>machine<span style="color:rgb(192,192,192)" class=""> </span>level<span style="color:rgb(192,192,192)" class=""> </span>IR<span style="color:rgb(192,192,192)" class=""> </span>and<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>LLVM<span style="color:rgb(192,192,192)" class=""> </span>IR<span style="color:rgb(192,192,192)" class=""> </span>are<span style="color:rgb(192,192,192)" class=""> </span>preserved.</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">-<span style="color:rgb(192,192,192)" class=""> </span>The<span style="color:rgb(192,192,192)" class=""> </span>format<span style="color:rgb(192,192,192)" class=""> </span>uses<span style="color:rgb(192,192,192)" class=""> </span>a<span style="color:rgb(192,192,192)" class=""> </span>YAML<span style="color:rgb(192,192,192)" class=""> </span>based<span style="color:rgb(192,192,192)" class=""> </span>container<span style="color:rgb(192,192,192)" class=""> </span>for<span style="color:rgb(192,192,192)" class=""> </span>most<span style="color:rgb(192,192,192)" class=""> </span>of<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>data<span style="color:rgb(192,192,192)" class=""> </span>structures.<span style="color:rgb(192,192,192)" class=""> </span>The<span style="color:rgb(192,192,192)" class=""> </span>LLVM</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">  </span>IR<span style="color:rgb(192,192,192)" class=""> </span>is<span style="color:rgb(192,192,192)" class=""> </span>embedded<span style="color:rgb(192,192,192)" class=""> </span>in<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>YAML<span style="color:rgb(192,192,192)" class=""> </span>container.</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">-<span style="color:rgb(192,192,192)" class=""> </span>The<span style="color:rgb(192,192,192)" class=""> </span>format<span style="color:rgb(192,192,192)" class=""> </span>also<span style="color:rgb(192,192,192)" class=""> </span>uses<span style="color:rgb(192,192,192)" class=""> </span>a<span style="color:rgb(192,192,192)" class=""> </span>new,<span style="color:rgb(192,192,192)" class=""> </span>text-based<span style="color:rgb(192,192,192)" class=""> </span>syntax<span style="color:rgb(192,192,192)" class=""> </span>to<span style="color:rgb(192,192,192)" class=""> </span>serialize<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>machine<span style="color:rgb(192,192,192)" class=""> </span>instructions.</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">  </span>The<span style="color:rgb(192,192,192)" class=""> </span>instructions<span style="color:rgb(192,192,192)" class=""> </span>are<span style="color:rgb(192,192,192)" class=""> </span>embedded<span style="color:rgb(192,192,192)" class=""> </span>in<span style="color:rgb(192,192,192)" class=""> </span>YAML.</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><br class=""></pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">This<span style="color:rgb(192,192,192)" class=""> </span>is<span style="color:rgb(192,192,192)" class=""> </span>an<span style="color:rgb(192,192,192)" class=""> </span>incomplete<span style="color:rgb(192,192,192)" class=""> </span>example<span style="color:rgb(192,192,192)" class=""> </span>of<span style="color:rgb(192,192,192)" class=""> </span>a<span style="color:rgb(192,192,192)" class=""> </span>YAML<span style="color:rgb(192,192,192)" class=""> </span>file<span style="color:rgb(192,192,192)" class=""> </span>containing<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>LLVM<span style="color:rgb(192,192,192)" class=""> </span>IR,<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>machine<span style="color:rgb(192,192,192)" class=""> </span>level<span style="color:rgb(192,192,192)" class=""> </span>IR</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">and<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>instructions:</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><br class=""></pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">---</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">ir:<span style="color:rgb(192,192,192)" class=""> </span>|</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">  </span>define<span style="color:rgb(192,192,192)" class=""> </span>i32<span style="color:rgb(192,192,192)" class=""> </span>@fact(i32<span style="color:rgb(192,192,192)" class=""> </span>%n)<span style="color:rgb(192,192,192)" class=""> </span>{</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>%1<span style="color:rgb(192,192,192)" class=""> </span>=<span style="color:rgb(192,192,192)" class=""> </span>alloca<span style="color:rgb(192,192,192)" class=""> </span>i32,<span style="color:rgb(192,192,192)" class=""> </span>align<span style="color:rgb(192,192,192)" class=""> </span>4</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>store<span style="color:rgb(192,192,192)" class=""> </span>i32<span style="color:rgb(192,192,192)" class=""> </span>%n,<span style="color:rgb(192,192,192)" class=""> </span>i32*<span style="color:rgb(192,192,192)" class=""> </span>%1,<span style="color:rgb(192,192,192)" class=""> </span>align<span style="color:rgb(192,192,192)" class=""> </span>4</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>%2<span style="color:rgb(192,192,192)" class=""> </span>=<span style="color:rgb(192,192,192)" class=""> </span>load<span style="color:rgb(192,192,192)" class=""> </span>i32,<span style="color:rgb(192,192,192)" class=""> </span>i32*<span style="color:rgb(192,192,192)" class=""> </span>%1,<span style="color:rgb(192,192,192)" class=""> </span>align<span style="color:rgb(192,192,192)" class=""> </span>4</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>%3<span style="color:rgb(192,192,192)" class=""> </span>=<span style="color:rgb(192,192,192)" class=""> </span>icmp<span style="color:rgb(192,192,192)" class=""> </span>eq<span style="color:rgb(192,192,192)" class=""> </span>i32<span style="color:rgb(192,192,192)" class=""> </span>%2,<span style="color:rgb(192,192,192)" class=""> </span>0</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>br<span style="color:rgb(192,192,192)" class=""> </span>i1<span style="color:rgb(192,192,192)" class=""> </span>%3,<span style="color:rgb(192,192,192)" class=""> </span>label<span style="color:rgb(192,192,192)" class=""> </span>%10,<span style="color:rgb(192,192,192)" class=""> </span>label<span style="color:rgb(192,192,192)" class=""> </span>%4</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><br class=""></pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">  </span>;<span style="color:rgb(192,192,192)" class=""> </span><label>:4<span style="color:rgb(192,192,192)" class="">                                       </span>;<span style="color:rgb(192,192,192)" class=""> </span>preds<span style="color:rgb(192,192,192)" class=""> </span>=<span style="color:rgb(192,192,192)" class=""> </span>%0</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>%5<span style="color:rgb(192,192,192)" class=""> </span>=<span style="color:rgb(192,192,192)" class=""> </span>load<span style="color:rgb(192,192,192)" class=""> </span>i32,<span style="color:rgb(192,192,192)" class=""> </span>i32*<span style="color:rgb(192,192,192)" class=""> </span>%1,<span style="color:rgb(192,192,192)" class=""> </span>align<span style="color:rgb(192,192,192)" class=""> </span>4</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>%6<span style="color:rgb(192,192,192)" class=""> </span>=<span style="color:rgb(192,192,192)" class=""> </span>sub<span style="color:rgb(192,192,192)" class=""> </span>nsw<span style="color:rgb(192,192,192)" class=""> </span>i32<span style="color:rgb(192,192,192)" class=""> </span>%5,<span style="color:rgb(192,192,192)" class=""> </span>1</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>%7<span style="color:rgb(192,192,192)" class=""> </span>=<span style="color:rgb(192,192,192)" class=""> </span>call<span style="color:rgb(192,192,192)" class=""> </span>i32<span style="color:rgb(192,192,192)" class=""> </span>@fact(i32<span style="color:rgb(192,192,192)" class=""> </span>%6)</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>%8<span style="color:rgb(192,192,192)" class=""> </span>=<span style="color:rgb(192,192,192)" class=""> </span>load<span style="color:rgb(192,192,192)" class=""> </span>i32,<span style="color:rgb(192,192,192)" class=""> </span>i32*<span style="color:rgb(192,192,192)" class=""> </span>%1,<span style="color:rgb(192,192,192)" class=""> </span>align<span style="color:rgb(192,192,192)" class=""> </span>4</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>%9<span style="color:rgb(192,192,192)" class=""> </span>=<span style="color:rgb(192,192,192)" class=""> </span>mul<span style="color:rgb(192,192,192)" class=""> </span>nsw<span style="color:rgb(192,192,192)" class=""> </span>i32<span style="color:rgb(192,192,192)" class=""> </span>%7,<span style="color:rgb(192,192,192)" class=""> </span>%8</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>br<span style="color:rgb(192,192,192)" class=""> </span>label<span style="color:rgb(192,192,192)" class=""> </span>%10</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><br class=""></pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">  </span>;<span style="color:rgb(192,192,192)" class=""> </span><label>:10<span style="color:rgb(192,192,192)" class="">                                      </span>;<span style="color:rgb(192,192,192)" class=""> </span>preds<span style="color:rgb(192,192,192)" class=""> </span>=<span style="color:rgb(192,192,192)" class=""> </span>%0,<span style="color:rgb(192,192,192)" class=""> </span>%4</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>%11<span style="color:rgb(192,192,192)" class=""> </span>=<span style="color:rgb(192,192,192)" class=""> </span>phi<span style="color:rgb(192,192,192)" class=""> </span>i32<span style="color:rgb(192,192,192)" class=""> </span>[<span style="color:rgb(192,192,192)" class=""> </span>%9,<span style="color:rgb(192,192,192)" class=""> </span>%4<span style="color:rgb(192,192,192)" class=""> </span>],<span style="color:rgb(192,192,192)" class=""> </span>[<span style="color:rgb(192,192,192)" class=""> </span>1,<span style="color:rgb(192,192,192)" class=""> </span>%0<span style="color:rgb(192,192,192)" class=""> </span>]</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>ret<span style="color:rgb(192,192,192)" class=""> </span>i32<span style="color:rgb(192,192,192)" class=""> </span>%11</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">  </span>}</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><br class=""></pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">...</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">---</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">number:<span style="color:rgb(192,192,192)" class="">          </span>0</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">name:<span style="color:rgb(192,192,192)" class="">            </span>fact</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">alignment:<span style="color:rgb(192,192,192)" class="">       </span>4</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">regInfo:</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">  </span>....</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">frameInfo:</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">  </span>....</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">body:</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">  </span>-<span style="color:rgb(192,192,192)" class=""> </span>bb:<span style="color:rgb(192,192,192)" class="">              </span>0</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>llbb:<span style="color:rgb(192,192,192)" class="">            </span>'%0'</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>successors:<span style="color:rgb(192,192,192)" class="">      </span>[<span style="color:rgb(192,192,192)" class=""> </span>'bb#2',<span style="color:rgb(192,192,192)" class=""> </span>'bb#1'<span style="color:rgb(192,192,192)" class=""> </span>]</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>liveIns:<span style="color:rgb(192,192,192)" class="">         </span>[<span style="color:rgb(192,192,192)" class=""> </span>'%edi'<span style="color:rgb(192,192,192)" class=""> </span>]</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>instructions:</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">      </span>-<span style="color:rgb(192,192,192)" class=""> </span>'push64r<span style="color:rgb(192,192,192)" class=""> </span>undef<span style="color:rgb(192,192,192)" class=""> </span>%rax,<span style="color:rgb(192,192,192)" class=""> </span>%rsp,<span style="color:rgb(192,192,192)" class=""> </span>%rsp'</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">      </span>-<span style="color:rgb(192,192,192)" class=""> </span>'mov32mr<span style="color:rgb(192,192,192)" class=""> </span>%rsp,<span style="color:rgb(192,192,192)" class=""> </span>1,<span style="color:rgb(192,192,192)" class=""> </span>%noreg,<span style="color:rgb(192,192,192)" class=""> </span>4,<span style="color:rgb(192,192,192)" class=""> </span>%noreg,<span style="color:rgb(192,192,192)" class=""> </span>%edi'</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">      </span>-<span style="color:rgb(192,192,192)" class=""> </span>....</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">        </span>....</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">  </span>-<span style="color:rgb(192,192,192)" class=""> </span>bb:<span style="color:rgb(192,192,192)" class="">              </span>1</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>llbb:<span style="color:rgb(192,192,192)" class="">            </span>'%4'</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>successors:<span style="color:rgb(192,192,192)" class="">      </span>[<span style="color:rgb(192,192,192)" class=""> </span>'bb#2'<span style="color:rgb(192,192,192)" class=""> </span>]</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>instructions:</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">      </span>-<span style="color:rgb(192,192,192)" class=""> </span>'%edi<span style="color:rgb(192,192,192)" class=""> </span>=<span style="color:rgb(192,192,192)" class=""> </span>mov32rm<span style="color:rgb(192,192,192)" class=""> </span>%rsp,<span style="color:rgb(192,192,192)" class=""> </span>1,<span style="color:rgb(192,192,192)" class=""> </span>%noreg,<span style="color:rgb(192,192,192)" class=""> </span>4,<span style="color:rgb(192,192,192)" class=""> </span>%noreg'</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">      </span>-<span style="color:rgb(192,192,192)" class=""> </span>....</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">        </span>....</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">  </span>-<span style="color:rgb(192,192,192)" class=""> </span>....</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><span style="color:rgb(192,192,192)" class="">    </span>....</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">...</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><br class=""></pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">The<span style="color:rgb(192,192,192)" class=""> </span>example<span style="color:rgb(192,192,192)" class=""> </span>above<span style="color:rgb(192,192,192)" class=""> </span>shows<span style="color:rgb(192,192,192)" class=""> </span>a<span style="color:rgb(192,192,192)" class=""> </span>YAML<span style="color:rgb(192,192,192)" class=""> </span>file<span style="color:rgb(192,192,192)" class=""> </span>with<span style="color:rgb(192,192,192)" class=""> </span>two<span style="color:rgb(192,192,192)" class=""> </span>YAML<span style="color:rgb(192,192,192)" class=""> </span>documents<span style="color:rgb(192,192,192)" class=""> </span>(delimited<span style="color:rgb(192,192,192)" class=""> </span>by<span style="color:rgb(192,192,192)" class=""> </span>`---`</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">and<span style="color:rgb(192,192,192)" class=""> </span>`...`)<span style="color:rgb(192,192,192)" class=""> </span>containing<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>LLVM<span style="color:rgb(192,192,192)" class=""> </span>IR<span style="color:rgb(192,192,192)" class=""> </span>and<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>machine<span style="color:rgb(192,192,192)" class=""> </span>function<span style="color:rgb(192,192,192)" class=""> </span>information<span style="color:rgb(192,192,192)" class=""> </span>for<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>function<span style="color:rgb(192,192,192)" class=""> </span>`fact`.</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><br class=""></pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><br class=""></pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">When<span style="color:rgb(192,192,192)" class=""> </span>a<span style="color:rgb(192,192,192)" class=""> </span>specific<span style="color:rgb(192,192,192)" class=""> </span>format<span style="color:rgb(192,192,192)" class=""> </span>is<span style="color:rgb(192,192,192)" class=""> </span>chosen,<span style="color:rgb(192,192,192)" class=""> </span>I'll<span style="color:rgb(192,192,192)" class=""> </span>start<span style="color:rgb(192,192,192)" class=""> </span>with<span style="color:rgb(192,192,192)" class=""> </span>patches<span style="color:rgb(192,192,192)" class=""> </span>that<span style="color:rgb(192,192,192)" class=""> </span>serialize<span style="color:rgb(192,192,192)" class=""> </span>the</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">embedded<span style="color:rgb(192,192,192)" class=""> </span>LLVM<span style="color:rgb(192,192,192)" class=""> </span>IR.<span style="color:rgb(192,192,192)" class=""> </span>Then<span style="color:rgb(192,192,192)" class=""> </span>I'll<span style="color:rgb(192,192,192)" class=""> </span>add<span style="color:rgb(192,192,192)" class=""> </span>support<span style="color:rgb(192,192,192)" class=""> </span>for<span style="color:rgb(192,192,192)" class=""> </span>things<span style="color:rgb(192,192,192)" class=""> </span>like<span style="color:rgb(192,192,192)" class=""> </span>machine<span style="color:rgb(192,192,192)" class=""> </span>functions<span style="color:rgb(192,192,192)" class=""> </span>and</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">machine<span style="color:rgb(192,192,192)" class=""> </span>basic<span style="color:rgb(192,192,192)" class=""> </span>blocks,<span style="color:rgb(192,192,192)" class=""> </span>and<span style="color:rgb(192,192,192)" class=""> </span>I<span style="color:rgb(192,192,192)" class=""> </span>think<span style="color:rgb(192,192,192)" class=""> </span>that<span style="color:rgb(192,192,192)" class=""> </span>an<span style="color:rgb(192,192,192)" class=""> </span>intrusive<span style="color:rgb(192,192,192)" class=""> </span>implementation<span style="color:rgb(192,192,192)" class=""> </span>will<span style="color:rgb(192,192,192)" class=""> </span>work<span style="color:rgb(192,192,192)" class=""> </span>best</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">for<span style="color:rgb(192,192,192)" class=""> </span>data<span style="color:rgb(192,192,192)" class=""> </span>structures<span style="color:rgb(192,192,192)" class=""> </span>like<span style="color:rgb(192,192,192)" class=""> </span>these.<span style="color:rgb(192,192,192)" class=""> </span>After<span style="color:rgb(192,192,192)" class=""> </span>that<span style="color:rgb(192,192,192)" class=""> </span>I<span style="color:rgb(192,192,192)" class=""> </span>will<span style="color:rgb(192,192,192)" class=""> </span>continue<span style="color:rgb(192,192,192)" class=""> </span>adding<span style="color:rgb(192,192,192)" class=""> </span>support<span style="color:rgb(192,192,192)" class=""> </span>for</pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">serialization<span style="color:rgb(192,192,192)" class=""> </span>of<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>remaining<span style="color:rgb(192,192,192)" class=""> </span>data<span style="color:rgb(192,192,192)" class=""> </span>structures.</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><br class=""></pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><br class=""></pre>
<pre style="margin-top:0px;margin-bottom:0px" class="">Thanks<span style="color:rgb(192,192,192)" class=""> </span>for<span style="color:rgb(192,192,192)" class=""> </span>reading<span style="color:rgb(192,192,192)" class=""> </span>through<span style="color:rgb(192,192,192)" class=""> </span>the<span style="color:rgb(192,192,192)" class=""> </span>proposal.<span style="color:rgb(192,192,192)" class=""> </span>What<span style="color:rgb(192,192,192)" class=""> </span>are<span style="color:rgb(192,192,192)" class=""> </span>you<span style="color:rgb(192,192,192)" class=""> </span>thoughts<span style="color:rgb(192,192,192)" class=""> </span>about<span style="color:rgb(192,192,192)" class=""> </span>this<span style="color:rgb(192,192,192)" class=""> </span>format?</pre>
<pre style="margin-top:0px;margin-bottom:0px" class=""><br class=""></pre></div>
_______________________________________________<br class="">LLVM Developers mailing list<br class=""><a href="mailto:LLVMdev@cs.uiuc.edu" class="">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" class="">http://llvm.cs.uiuc.edu</a><br class=""><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" class="">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br class=""></div></blockquote></div><br class=""></div></body></html>