<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">HI Braden,<div class=""><br class=""></div><div class="">I’m also working pretty hard recently on upstreaming Motorola M68k backend to LLVM [1], and the works are wrapping up so I might can give some advices</div><div class=""><br class=""></div><div class="">I think the first thing you need to do is showing to this community that it is not a toy backend and many people (users) are relying on the target architecture.</div><div class=""><br class=""></div><div class="">Regarding the technical and code reviewing part. In addition to the developer policy page posted by David, I would like to highlight some points:</div><div class="">1.  Usually a new target will enter LLVM as an experimental target first (it will not be build by default unless designated by the `LLVM_EXPERIMENTAL_TARGETS_TO_BUILD` cmake variable) before becoming an official one.</div><div class=""><br class=""></div><div class="">2. Split all changes into multiple patches, in which each of them is (more or less) grouping similar functionalities. And most important of all, each patch should be buildable by itself. You can take a look on how I split M68k’s patches.</div><div class=""><br class=""></div><div class="">3. Following up (2), it would be great to commit all patches at once after all of them are approved.</div><div class=""><br class=""></div><div class="">4. IIUC, your target architecture (Propeller 2) is a less known ISA. As a reviewer, personally I would like to see comments in the files (usually .td files) explaining some of the architectures details (e.g. addressing modes, special behaviors, uncommon operations) that gives reviewers some gravities of how this architecture looks like.</div><div class=""><br class=""></div><div class="">5. You probably have known — follow LLVM’s coding style and some programming guidelines, like avoid using data structure ABC under XYZ scenarios. For the former, just run clang-format-diff before submitting patches for review. The latter is in this [2] page.</div><div class=""><br class=""></div><div class="">6. Help reviewing other backends’ patches as well. Since it’s most likely patches in your target are reviewed by maintainers from other backends.</div><div class=""><br class=""></div><div class="">7. Last but not the least, assign a code owner. Code owner is obligated to review patches in his/her “mission area”, if it has not been reviewed by others. Also, targets that are inactively maintained will be removed from LLVM.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Hope these tips help :-)</div><div class=""><br class=""></div><div class="">Best,</div><div class="">-Min</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">[1] First patch in the series of 8: <a href="https://reviews.llvm.org/D88385" class="">https://reviews.llvm.org/D88385</a> . Click on “Stack” tab in the “Revision Contents” section to see rest of the patches</div><div class=""><br class=""></div><div class="">[2] <a href="https://llvm.org/docs/CodingStandards.html" class="">https://llvm.org/docs/CodingStandards.html</a> Actually this page also includes coding styles.<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jan 23, 2021, at 10:43 AM, Braden Nelson via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Hi, all!<br class=""><br class="">I am currently working on a backend for the Parallax Propeller 2, and would like to know what the requirements are for a new backend to get mainlined into LLVM, and also get any general advice for writing a backend so that I don't have to go back and change a bunch of things later when I'm ready to submit a patch.<br class=""><br class="">I'm new to working with LLVM, so any advice outside what I just asked for is also appreciated.<br class=""><br class="">Thanks, Braden.<br class=""><br class="">_______________________________________________<br class="">LLVM Developers mailing list<br class=""><a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a><br class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev<br class=""></div></div></blockquote></div><br class=""></div></body></html>