<html xmlns:v="urn:schemas-microsoft-com:vml" 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=iso-8859-1"><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;}
@font-face
{font-family:"Ericsson Hilda";
panose-1:0 0 5 0 0 0 0 0 0 0;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
{font-family:"Ericsson Hilda \,serif";
panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New",serif;
mso-fareast-language:SV;}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:Consolas;
mso-fareast-language:EN-US;}
span.EmailStyle22
{mso-style-type:personal-reply;
font-family:"Ericsson Hilda",serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=SV link="#0563C1" vlink=purple><div class=WordSection1><p class=MsoNormal><span lang=EN-US style='font-family:"Ericsson Hilda",serif'>Hi Dominik,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:"Ericsson Hilda",serif'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:"Ericsson Hilda",serif'>(Sorry for spamming; the first reply only went to you and not the list.)<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:"Ericsson Hilda",serif'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:"Ericsson Hilda",serif'>Cool that you want to try it out! There will for sure be some bugs in it, so please let me know if/when you find one and I’ll fix it. And if you could make a testcase out of it, that would be superb (as there’s currently a complete lack of tests).<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:"Ericsson Hilda",serif'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:"Ericsson Hilda",serif'>Although I haven’t measured it, I expect the compilation time to take about 3x more compared to greedy as it makes three passes over the instructions. However, the most amount of work is done in the first pass, which is comparable to the pass made in greedy. So hopefully it’s less than 3x, but this should really be measured over a set of functions to get an accurate figure. Also, there will most likely be improvements to be had to decrease compilation time.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:"Ericsson Hilda",serif'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:"Ericsson Hilda",serif'>Cheers,<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:"Ericsson Hilda",serif'>Gabriel<o:p></o:p></span></p><p class=MsoNormal><span style='font-family:"Ericsson Hilda",serif'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span lang=EN-US style='mso-fareast-language:SV'>From:</span></b><span lang=EN-US style='mso-fareast-language:SV'> llvm-dev <llvm-dev-bounces@lists.llvm.org> <b>On Behalf Of </b>Dominik Montada via llvm-dev<br><b>Sent:</b> den 28 oktober 2020 14:39<br><b>To:</b> llvm-dev@lists.llvm.org<br><b>Subject:</b> Re: [llvm-dev] Optimal variant of regbankselect<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p>Hi Gabriel,<span style='mso-fareast-language:SV'><o:p></o:p></span></p><p>thank you so much for doing this! I'll try out the patch in our downstream implementation right away. Do you know how big of an impact this has on compile time compared to fast and greedy?<o:p></o:p></p><p>Cheers,<o:p></o:p></p><p>Dominik<o:p></o:p></p><div><p class=MsoNormal>Am 28.10.20 um 14:32 schrieb Gabriel Hjort Åkerlund via llvm-dev:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span style='font-family:"Ericsson Hilda ,serif",serif'>Hi all,</span><o:p></o:p></p><p class=MsoNormal><span style='font-family:"Ericsson Hilda ,serif",serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-family:"Ericsson Hilda ,serif",serif'>I have made an attempt of implementing an optimal variant of the register bank selector (regbankselect). The code is available for review at <a href="https://protect2.fireeye.com/v1/url?k=1bd4b7f0-45642a68-1bd4f76b-861fcb972bfc-40f905c996dc0e0e&q=1&e=2c298e05-1e99-4460-b1a6-8895b7e94086&u=https%3A%2F%2Freviews.llvm.org%2FD90304">https://reviews.llvm.org/D90304</a>, and I would greatly appreciate if anyone interested can provide their comments. I have run a few tests the regbankselect-*.mir testcases for AAarch64 and it seems to work, but more tests are surely needed to increase confidence in the implementation. I also tried using AMDGPU, but that backend does not provide the full list of InstructionMappings for a given MachineInstr, which is needed in order to compute the optimal selection of register banks.</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-family:"Ericsson Hilda ,serif",serif'> </span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-family:"Ericsson Hilda ,serif",serif'>Cheers,</span><o:p></o:p></p><p class=MsoNormal><span lang=EN-US style='font-family:"Ericsson Hilda ,serif",serif'>Gabriel Hjort Åkerlund </span><o:p></o:p></p><p class=MsoNormal><span style='mso-fareast-language:SV'><br><br><o:p></o:p></span></p><pre>_______________________________________________<o:p></o:p></pre><pre>LLVM Developers mailing list<o:p></o:p></pre><pre><a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><o:p></o:p></pre><pre><a href="https://protect2.fireeye.com/v1/url?k=7a04028d-24b49f15-7a044216-861fcb972bfc-6323099c52b73708&q=1&e=2c298e05-1e99-4460-b1a6-8895b7e94086&u=https%3A%2F%2Flists.llvm.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fllvm-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><o:p></o:p></pre></blockquote><pre>-- <o:p></o:p></pre><pre>----------------------------------------------------------------------<o:p></o:p></pre><pre>Dominik Montada Email: <a href="mailto:dominik.montada@hightec-rt.com">dominik.montada@hightec-rt.com</a><o:p></o:p></pre><pre>HighTec EDV-Systeme GmbH Phone: +49 681 92613 19<o:p></o:p></pre><pre>Europaallee 19 Fax: +49-681-92613-26<o:p></o:p></pre><pre>D-66113 Saarbrücken WWW: <a href="https://protect2.fireeye.com/v1/url?k=c80bd3cf-96bb4e57-c80b9354-861fcb972bfc-bf8c336a375c6bef&q=1&e=2c298e05-1e99-4460-b1a6-8895b7e94086&u=http%3A%2F%2Fwww.hightec-rt.com%2F">http://www.hightec-rt.com</a><o:p></o:p></pre><pre><o:p> </o:p></pre><pre>Managing Director: Vera Strothmann<o:p></o:p></pre><pre>Register Court: Saarbrücken, HRB 10445, VAT ID: DE 138344222<o:p></o:p></pre><pre><o:p> </o:p></pre><pre>This e-mail may contain confidential and/or privileged information. If<o:p></o:p></pre><pre>you are not the intended recipient please notify the sender immediately<o:p></o:p></pre><pre>and destroy this e-mail. Any unauthorised copying, disclosure or<o:p></o:p></pre><pre>distribution of the material in this e-mail is strictly forbidden.<o:p></o:p></pre><pre>--- <o:p></o:p></pre></div></body></html>