<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:10.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt">Good catch! Thanks for spotting this, I¡¯ll remove those.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Best,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Rafael<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span lang="EN-GB" style="font-size:12.0pt;color:black">From:
</span></b><span lang="EN-GB" style="font-size:12.0pt;color:black">Peter Waller <Peter.Waller@arm.com><br>
<b>Date: </b>Monday, December 13, 2021 at 1:51 PM<br>
<b>To: </b>Rafael Auler <rafaelauler@fb.com>, Hans Wennborg <hans@chromium.org>, Maksim Panchenko <maks@fb.com><br>
<b>Cc: </b>llvm-dev@lists.llvm.org <llvm-dev@lists.llvm.org>, Chris Lattner <clattner@llvm.org>, Andrey Bokhanko <andreybokhanko@gmail.com>, vladislav.khmelevskyi@huawei.com <vladislav.khmelevskyi@huawei.com><br>
<b>Subject: </b>Re: Preparing BOLT for LLVM monorepo<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt">Just as a heads up, this pulls in a few dotfiles outside the bolt tree. The `.dockerignore` adding `.git` could conceivably break someone, so you might want to commit that separately so that it
 can be discussed/reverted. The other `.github/workflows` presumably aren¡¯t intended for this repository either(?).</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt">To diff the merge commit¡¯s first parent (upstream llvm) against the merge commit (assuming bash for brace expansion of `{^1,}`), ignoring the bolt directory:</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt">$ git diff-tree -r 'HEAD^{/Merge BOLT into LLVM}'{^1,} :^bolt</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt">:000000 100644 0000000000000000000000000000000000000000 6b8710a711f3b689885aa5c26c6c06bde348e82b A      .dockerignore</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt">:000000 100644 0000000000000000000000000000000000000000 477e9927279e0b6706a48f0d18f834137b92f115 A      .github/workflows/Dockerfile</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt">:000000 100644 0000000000000000000000000000000000000000 8deef62d15079ace72ac40db2335acf59d9a7e98 A      .github/workflows/Dockerfile.aarch64</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt">:000000 100644 0000000000000000000000000000000000000000 02ee68ff868f6865825db153ee3aea7d4f76813f A      .github/workflows/docker-image.yml</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt">Regards,</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt">Peter</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">Rafael Auler <rafaelauler@fb.com><br>
<b>Date: </b>Friday, 10 December 2021 at 04:34<br>
<b>To: </b>Peter Waller <Peter.Waller@arm.com>, Hans Wennborg <hans@chromium.org>, Maksim Panchenko <maks@fb.com><br>
<b>Cc: </b>llvm-dev@lists.llvm.org <llvm-dev@lists.llvm.org>, Chris Lattner <clattner@llvm.org>, Andrey Bokhanko <andreybokhanko@gmail.com>, vladislav.khmelevskyi@huawei.com <vladislav.khmelevskyi@huawei.com><br>
<b>Subject: </b>Re: Preparing BOLT for LLVM monorepo</span><span lang="EN-GB"><o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-size:11.0pt">I updated our github repo </span>
<span lang="EN-GB"><a href="https://github.com/facebookincubator/BOLT"><span lang="EN-US" style="font-size:11.0pt">https://github.com/facebookincubator/BOLT</span></a></span><span style="font-size:11.0pt"> branch ¡°main¡± with the strategy that Peter mentioned.
 I put a merge commit with all BOLT commits as parent #2, and these commits have an empty root. Because of that, the merge commit itself does not modify LLVM in any way other than introducing a new bolt folder with all project files and their histories. Then
 I have a small commit on top of that do change LLVM¡¯s CMakeList.txt to add bolt as a project.</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">At the moment, I believe the easiest way to review the code remains the one we have been using during these past months/year: checking our ¡°main¡± branch and opening concerns in our github issues page.  In
 case there are no further suggestions to BOLT, we are targeting pushing the merge commit by the end of next week.</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">llvm-dev <llvm-dev-bounces@lists.llvm.org> on behalf of Rafael Auler via llvm-dev <llvm-dev@lists.llvm.org><br>
<b>Date: </b>Wednesday, December 8, 2021 at 4:13 PM<br>
<b>To: </b>Peter Waller <Peter.Waller@arm.com>, Hans Wennborg <hans@chromium.org>, Maksim Panchenko <maks@fb.com><br>
<b>Cc: </b>llvm-dev@lists.llvm.org <llvm-dev@lists.llvm.org>, Chris Lattner <clattner@llvm.org>, Andrey Bokhanko <andreybokhanko@gmail.com>, vladislav.khmelevskyi@huawei.com <vladislav.khmelevskyi@huawei.com><br>
<b>Subject: </b>Re: [llvm-dev] Preparing BOLT for LLVM monorepo</span><span lang="EN-GB"><o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-size:11.0pt">Peter, thanks for your input, that¡¯s an excellent suggestion. Let me try playing with that, I¡¯ll try to change our history to use an empty root as you suggested.</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Best,</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Rafael</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span lang="EN-GB" style="font-size:12.0pt;color:black">From:
</span></b><span lang="EN-GB" style="font-size:12.0pt;color:black">Peter Waller <Peter.Waller@arm.com><br>
<b>Date: </b>Wednesday, December 8, 2021 at 2:19 AM<br>
<b>To: </b>Rafael Auler <rafaelauler@fb.com>, Hans Wennborg <hans@chromium.org>, Maksim Panchenko <maks@fb.com><br>
<b>Cc: </b>llvm-dev@lists.llvm.org <llvm-dev@lists.llvm.org>, vladislav.khmelevskyi@huawei.com <vladislav.khmelevskyi@huawei.com>, Andrey Bokhanko <andreybokhanko@gmail.com>, Chris Lattner <clattner@llvm.org><br>
<b>Subject: </b>Re: Preparing BOLT for LLVM monorepo</span><span lang="EN-GB"><o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt">Your approach sounds reasonable to me and looks good from a glance. One thought to share though.</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt">My read: You take some point in LLVM¡¯s history, then apply a commit which introduces a bolt directory, then have a few thousand bolt commits, then land a merge. Correct?</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt">If so, that means if you check out one of those historic commits, you have an llvm-project directory with BOLT at some commit, and LLVM subprojects always with the same ¡®root¡¯ commit.</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt">Presumably that ¡®root¡¯ commit does not work with any commit of BOLT, and anyone wanting to experiment with old commits (if this is a legitimate use case) would find that those things are unlikely
 to work except for maybe recent commits.</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt">Have you considered instead of rebasing onto a recent LLVM commit, taking an empty root? That way, when a user checks out a historic commit, now they will only get a bolt directory, and they can
 supply their own folders for other llvm subprojects from an appropriate point in time without them conflicting on the filesystem. Additionally, there is no implication for a user to think that those directories at those historic checkouts are meaningfully
 related to the BOLT commit.</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt">I mention it because that¡¯s what we did for the flang merge  in case the same effect is appropriate for you here.</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt">Regards,</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt">Peter</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">llvm-dev <llvm-dev-bounces@lists.llvm.org> on behalf of Rafael Auler via llvm-dev <llvm-dev@lists.llvm.org><br>
<b>Date: </b>Wednesday, 8 December 2021 at 01:36<br>
<b>To: </b>Hans Wennborg <hans@chromium.org>, Maksim Panchenko <maks@fb.com><br>
<b>Cc: </b>llvm-dev@lists.llvm.org <llvm-dev@lists.llvm.org>, vladislav.khmelevskyi@huawei.com <vladislav.khmelevskyi@huawei.com>, Andrey Bokhanko <andreybokhanko@gmail.com>, Chris Lattner <clattner@llvm.org><br>
<b>Subject: </b>Re: [llvm-dev] Preparing BOLT for LLVM monorepo</span><span lang="EN-GB"><o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-size:11.0pt">Hi folks, </span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><a href="https://github.com/facebookincubator/BOLT"><span lang="EN-US" style="font-size:11.0pt">https://github.com/facebookincubator/BOLT</span></a></span><span lang="EN-GB" style="font-size:11.0pt">
</span><span style="font-size:11.0pt">branch ¡°main¡± contains a merge proposal of BOLT into llvm-project. This is llvm from Nov 30<sup>th</sup> with 1016 commits on top of it corresponding to the BOLT project.<br>
<br>
These 1016 commits would ideally be committed in a merge commit, merging LLVM as the first parent and BOLT as the second, and would be there only for the purposes of preserving project history. In this way, they should be easily skippable during a bisect of
 LLVM in the same way as the merge commit of flang. These commits represent the linear history of BOLT on top of rebased LLVM, so most commits are not buildable (since we can¡¯t build a very old version of BOLT on top of a recent LLVM base). That¡¯s why this
 is for history/blame only.</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">We have addressed the issues in
</span><span lang="EN-GB"><a href="https://github.com/facebookincubator/BOLT/issues/248"><span lang="EN-US" style="font-size:11.0pt">https://github.com/facebookincubator/BOLT/issues/248</span></a></span><span style="font-size:11.0pt"> and we are happy to continue
 working on any extra suggestions.<br>
<br>
Would it be better if we put this branch as a PR into llvm-project as a way to make it easier for people to review it? I don¡¯t think we can put this into phabricator. However, I guess github¡¯s bot will probably auto-close the PR. Also feel free to open new
 issues against our facebookincubator/BOLT project as a way to review it.<br>
<br>
Thanks</span><span lang="EN-GB"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"> </span><span lang="EN-GB"><o:p></o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-bottom:12.0pt"><b><span style="font-size:12.0pt;color:black">From:
</span></b><span style="font-size:12.0pt;color:black">Hans Wennborg <hans@chromium.org><br>
<b>Date: </b>Thursday, November 4, 2021 at 5:42 AM<br>
<b>To: </b>Maksim Panchenko <maks@fb.com><br>
<b>Cc: </b>Xinliang David Li <xinliangli@gmail.com>, F¨¡ng-ru¨¬ S¨°ng <maskray@google.com>, Sriraman Tallam <tmsriram@google.com>, Chris Lattner <clattner@llvm.org>, Andrey Bokhanko <andreybokhanko@gmail.com>, Rafael Auler <rafaelauler@fb.com>, vladislav.khmelevskyi@huawei.com
 <vladislav.khmelevskyi@huawei.com>, tstellar@redhat.com <tstellar@redhat.com>, joker.eph@gmail.com <joker.eph@gmail.com>, echristo@gmail.com <echristo@gmail.com>, Nick Desaulniers <ndesaulniers@google.com>, llvm-dev@lists.llvm.org <llvm-dev@lists.llvm.org><br>
<b>Subject: </b>Re: Preparing BOLT for LLVM monorepo</span><span lang="EN-GB"><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">Hi Maksim,<br>
<br>
On Tue, Nov 2, 2021 at 9:52 PM Maksim Panchenko <maks@fb.com> wrote:<br>
> We are still working on finalizing the exact logistics of the merge.<br>
><br>
> However, we expect to follow the Flang project's footsteps and run the<br>
><br>
> "--no-ff" merge to preserve the history of ~1K commits. We would like to<br>
><br>
> ask for help and coordination from the release managers Tom Stellard and<br>
><br>
> Hans Wennborg.<br>
<br>
I'm no longer involved in release management, and don't really have<br>
any opinion on how to merge this.<br>
<br>
Thanks,<br>
Hans</span><span lang="EN-GB"><o:p></o:p></span></p>
</div>
</div>
</body>
</html>