<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:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" 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=utf-8">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
tt
        {mso-style-priority:99;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.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><!--[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 bgcolor="white" lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Nice work!  Are you planning to track down where these differences come from, or do you plan to file bugs for them?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">--paulr<o:p></o:p></span></p>
<p class="MsoNormal"><a name="_MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></a></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext"> llvm-dev [mailto:llvm-dev-bounces@lists.llvm.org]
<b>On Behalf Of </b>Neil Nelson via llvm-dev<br>
<b>Sent:</b> Thursday, August 22, 2019 9:53 PM<br>
<b>To:</b> llvm-dev@lists.llvm.org<br>
<b>Subject:</b> Re: [llvm-dev] How to contribute on LLVM project as beginner<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p><span style="font-size:10.0pt">Built LLVM 8.0.1 for debug using -DCMAKE_EXPORT_COMPILE_COMMANDS=ON.</span><o:p></o:p></p>
<p><span style="font-size:10.0pt">Put together a sequence using clang/utils/check_cfc on the compile list using the same compile parameters except for the -g and -o options that check_cfc provides.</span><o:p></o:p></p>
<p><span style="font-size:10.0pt">2506 files were successfully processed by check_cfc out of a total of 2833.</span><o:p></o:p></p>
<p><span style="font-size:10.0pt">Three was the maximum number of differences obtained with the possibly interesting types here.<br>
<br>
4 of this type.<br>
</span><tt><span style="font-size:10.0pt">- push  + sh  %r</span></tt><span style="font-size:10.0pt;font-family:"Courier New""><br>
<tt>- mov   + v   %r</tt><br>
<tt>- sub   + b   $0</tt></span><span style="font-size:10.0pt"><br>
<br>
3 of this type.<br>
</span><tt><span style="font-size:10.0pt">- pq 66 + v   -0</span></tt><span style="font-size:10.0pt;font-family:"Courier New""><br>
<tt>- v  -0 + v   %r</tt><br>
<tt>- v  %r + llq 6d</tt></span><span style="font-size:10.0pt"><br>
<br>
1 each of these types.<br>
</span><tt><span style="font-size:10.0pt">- pq ef + pq  ea</span></tt><span style="font-size:10.0pt;font-family:"Courier New""><br>
<tt>- pq 68 + a   -0</tt><br>
<tt>- a  -0 + llq 6c</tt><br>
<br>
<tt>- pq 3a + vb  $0</tt><br>
<tt>- vb $0 + a   -0</tt><br>
<tt>- a  -0 + v   %r</tt><br>
<br>
<tt>- jmpq  + mov</tt><br>
<tt>- mov   + and</tt><br>
<tt>- and   + mov</tt></span><o:p></o:p></p>
<p><span style="font-size:10.0pt">Regards, Neil Nelson</span><o:p></o:p></p>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt">On 7/24/19 4:41 AM, Greg Bedwell via llvm-dev wrote:</span><o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt">On Wed, 24 Jul 2019 at 10:52, Oliver Stannard via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:</span><o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<p class="MsoNormal"><span style="font-size:10.0pt">Your script looks OK, though you won't want to use the -opt-bisect-limit= option until you've found a case where code-generation changes. Instead, that's a tool which you could use to narrow down the pass
 inside LLVM which is causing the change.</span> <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt">The problem is that your input code is far too simple to trigger any interesting optimisations. I'd suggest starting with either some code from the LLVM test suite (<a href="https://github.com/llvm/llvm-test-suite" target="_blank">https://github.com/llvm/llvm-test-suite</a>),
 or some code generated by csmith (<a href="https://embed.cs.utah.edu/csmith/" target="_blank">https://embed.cs.utah.edu/csmith/</a>). The former has the advantage of being (mostly) real code people actually write, and the latter can generate a large amount
 of complex code without any external dependencies (so it's easy to build).</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt">A few other things to note:</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt">There's a tool in clang here ( <a href="https://github.com/llvm/llvm-project/tree/master/clang/utils/check_cfc">https://github.com/llvm/llvm-project/tree/master/clang/utils/check_cfc</a> ) called check_cfc
 which uses the same basic idea as the script above.  It's designed to transparently wrap clang invocations so that any differences in codegen will actually trigger a build failure.  There are a few more details in these slides ( <a href="https://llvm.org/devmtg/2015-04/slides/Verifying_code_gen_dash_g_final.pdf">https://llvm.org/devmtg/2015-04/slides/Verifying_code_gen_dash_g_final.pdf</a> ). 
 Ultimately it doesn't matter which tools you use in order to find bugs, but you may find it useful.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt">We've got a meta-bug here to which we've been attaching already-reported bugs in this area ( <a href="https://bugs.llvm.org/show_bug.cgi?id=37728">https://bugs.llvm.org/show_bug.cgi?id=37728</a> ) which might
 be a nice place to start so that you can try replicating the results.  In particular <a href="https://bugs.llvm.org/show_bug.cgi?id=42138">https://bugs.llvm.org/show_bug.cgi?id=42138</a> is a bug that one of our interns found recently using the check_cfc script
 with llvm test-suite (and then reducing with creduce).  Unfortunately it was right at the end of his internship so he didn't get a chance to try and fix it. It might be a good starting point to have a go at replicating the failure and then trying to figure
 out what's happening and fixing it (assuming that it's still present).  I'm sure that there are plenty of people in the community willing to help out with any specific issues you run into along the way.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt">Good luck, with whichever approach you take!</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:10.0pt">-Greg</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></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://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><o:p></o:p></pre>
</blockquote>
</div>
</div>
</body>
</html>