<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><div style="direction: inherit;"><br></div><br>Sent from my iPhone</div><div><br>On Jul 25, 2016, at 6:59 PM, Chandler Carruth <<a href="mailto:chandlerc@google.com">chandlerc@google.com</a>> wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, Jul 25, 2016 at 6:22 PM Mehdi Amini <<a href="mailto:mehdi.amini@apple.com">mehdi.amini@apple.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><blockquote type="cite"><div>On Jul 25, 2016, at 5:54 PM, Chandler Carruth <<a href="mailto:chandlerc@google.com" target="_blank">chandlerc@google.com</a>> wrote:</div><br class="m_-6940980398395465450Apple-interchange-newline"><div><div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, Jul 25, 2016 at 5:47 PM Mehdi Amini via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
> On Jul 25, 2016, at 4:18 PM, Renato Golin via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br>
> 6. The target's code must have been adapted to the developers policy as well as<br>
>  the coding standards. This can take a while and it should be fine to<br>
> accept external code into LLVM as experimental, but not officially.<br>
<br>
FWIW I’m not fond of not having this as the experimental part in the first place.<br>
It is harder to have things moving after being upstreamed.<br>
I’d expect the upstreaming of a backend (into experimental state) to be piece by piece with proper code review according to the current project standard.<br></blockquote><div><br></div><div>I'm not sure it makes sense to insist on backends being incrementally developed in the open. While I rather prefer that (WebAssembly has been fun to watch here), it doesn't seem realistic.</div><div><br>Every backend I can think of other than WebAssembly and the original AArch64 port has come into existence out of tree, and only after proving useful to some folks decided to move into the tree. I'd personally advocate for keeping that door open.</div></div></div></div></blockquote><div><br></div></div></div><div style="word-wrap:break-word"><div><div>There is a nuance: the fact that it is not developed in tree does not prevent from splitting it in “some” pieces that can be independently reviewed, this is what we (should) do for any large chunk of code that we integrate.</div><div>Now it is possible that considering the current way of implementing backend in LLVM, there is not much pieces that can be split out of a backend (I still think that’s unfortunate though).</div></div></div></blockquote><div><br></div><div>Sure, we should definitely split it in ways that make sense.</div><div><br></div><div>I was just pointing out that this won't be the same thing as what "incremental development" would have naturally led to if the backend had been in tree on day-one, and while we actually insist on nearly replaying incremental development for some things, it doesn't seem likely to make sense for a backend.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><blockquote type="cite"><div>
</div></blockquote></div></div></blockquote></div></div>
</div></blockquote><div style="direction: inherit;"><br></div><div style="direction: inherit;">I think we're on the same page.</div><div style="direction: inherit;"><br></div><div style="direction: inherit;">The stake to me is not "incremental development" in this case but "modularity" and "good testing", the two usually needs/feeds each other, and ultimately help to have an efficient review.</div><div style="direction: inherit;"><br></div><div style="direction: inherit;">-- </div><div style="direction: inherit;">Mehdi</div><div style="direction: inherit;"><br></div><div style="direction: inherit;"><br></div></body></html>