<div dir="ltr"><div class="gmail_extra">Welcome! A few additional suggestions to Tom's already excellent suggestions...</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 27, 2015 at 8:51 AM, Tom Stellard <span dir="ltr"><<a href="mailto:tom@stellard.net" target="_blank">tom@stellard.net</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Here are a few suggestions for starting the process of getting your<br>
backend upstream.<br>
<br>
<br>
- Publish your code somewhere public (github, bitbucket, etc.) as soon as you<br>
can.<br></blockquote><div><br></div><div>I would also recommend making a Phabricator review available for folks to glance at the code in that format.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
- Adopt an 'upstream' development model, which means moving your patch<br>
  review process to the public mailing lists and committing changes<br>
  directly to LLVM ToT (or your temporary public repo).  Whether you<br>
  commit to internal trees first and then commit upstream or the other<br>
  way around is up to you, but the point is that your interaction with<br>
  LLVM ToT should not be monthly patch bombs.<br>
<br>
- Make sure you comply with the coding standards<br>
  (<a href="http://llvm.org/docs/CodingStandards.html" target="_blank">http://llvm.org/docs/CodingStandards.html</a>)<br></blockquote><div><br></div><div>In particular, using clang-format will likely help with many of these issues.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
- If you have changes to core libraries, break them up into small<br>
  self-contained patches and send them to the mailing lists.<br></blockquote><div><br></div><div>Absolutely.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
- When targets are first added to LLVM, they are built using the<br>
  experimental target options.  Make this change internally to make it<br>
  easier to merge your code.<br>
<br>
- As you prepare the code, keep the community in the loop on the<br>
  progress (this is where it helps to have a public repo).<br>
<br>
This is not a complete list, but hopefully it will help get you started.<br></blockquote><div><br></div><div>It may also be helpful to look at the recently added BPF backend and the process it followed.</div></div></div></div>