<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">Hi Ana,</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">
Sometimes the pattern match could be incorrect and finally compiler generates incorrect assembly code. This procedure only goes though disassembling stage in MCLayer, and it doesn't go though asm parser stage at all. So it's possible we generate some invalid assembly code due to incorrect patterns with loose constraint.</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">With this test applied, we would be able to go though asm parser and encoding stages, and the only missing part is decoding stage, but I think it can be accepted. As I mentioned in the last sentence of my early email in this thread, a bug was found using this test, and Hao delivered a patch and get it fixed at <a href="http://llvm.org/viewvc/llvm-project?view=revision&revision=195941" style="font-family:arial">http://llvm.org/viewvc/llvm-project?view=revision&revision=195941</a>.</div>
<div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">Thanks,</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small">
-Jiangning</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/12/3 Ana Pazos <span dir="ltr"><<a href="mailto:apazos@codeaurora.org" target="_blank">apazos@codeaurora.org</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Hi Jiangning,<u></u><u></u></span></p><p class="MsoNormal">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">With this scheme you would still be testing the MC layer encoding against the MC layer decoding, right?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">You cannot guarantee your MC layer encoding and decoding are correct in this way, since you are testing against MC layer itself.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Probably this is the reason it is discouraged in CodeGen tests.<u></u><u></u></span></p><p class="MsoNormal">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Ana.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> <a href="mailto:llvm-commits-bounces@cs.uiuc.edu" target="_blank">llvm-commits-bounces@cs.uiuc.edu</a> [mailto:<a href="mailto:llvm-commits-bounces@cs.uiuc.edu" target="_blank">llvm-commits-bounces@cs.uiuc.edu</a>] <b>On Behalf Of </b>Jiangning Liu<br>
<b>Sent:</b> Sunday, December 01, 2013 7:54 PM<br><b>To:</b> Jim Grosbach<br><b>Cc:</b> <a href="mailto:llvm-commits@cs.uiuc.edu" target="_blank">llvm-commits@cs.uiuc.edu</a> for LLVM<br><b>Subject:</b> Re: [PATCH][AArch64] Add llvm-mc test for asm code generated from all LLVM IR tests<u></u><u></u></span></p>
<div><div class="h5"><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial","sans-serif"">Jim,</span><span style="font-family:"Arial","sans-serif""><u></u><u></u></span></p>
</div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif""><u></u> <u></u></span></p></div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">I'm not fully convinced by Tim's explanation yet, so could you please provide more explanation?</span><u></u><u></u></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">The key point of this improvement is to enlarge the testing coverage. We don't really have a mechanism to check if all of the code generated in CodeGen can pass MClayer yet.</span><u></u><u></u></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">It would be also OK if we can provide a general mechanism to ask the asm result generated by llc in CodeGen to pass MC test.</span><u></u><u></u></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">This is kind of test can obviously expose some bugs, and those bugs could be caused by either incorrect pattern match of pattern match with loose constraint. </span><u></u><u></u></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">I think it is not always easy to cover all of the scenarios in MCLayer test, and particularly it's hard to cover every corner of negative test scenarios. Enlarging testing coverage should be helpful to build a robust compiler infrastructure, right?</span><u></u><u></u></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">As I mentioned above, we did find bugs using this test. Also, this kind of test should be very fast, and I don't think it would increase regression test time.</span><u></u><u></u></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">Looking forward to your response!</span><u></u><u></u></p></div><div><p class="MsoNormal">
<u></u> <u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">Thanks,</span><u></u><u></u></p></div><div><p class="MsoNormal"><span style="font-family:"Arial","sans-serif"">-Jiangning</span><u></u><u></u></p>
</div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div></div><div><p class="MsoNormal" style="margin-bottom:12.0pt"><u></u> <u></u></p>
<div><p class="MsoNormal">2013/11/28 Tim Northover <<a href="mailto:t.p.northover@gmail.com" target="_blank">t.p.northover@gmail.com</a>><u></u><u></u></p><p class="MsoNormal">Hi Jiangning,<br><br>I think this might be a layering violation (I've CCed Jim Grosbach,<br>
who's pretty much the authority). I know that object file tests are<br>discouraged from CodeGen, and this seems very similar.<br><br>I think the preferred option would be to make sure any test you<br>believe it's usefully doing is part of the test/MC hierarchy.<br>
<br>Cheers.<br><span style="color:#888888"><br><span>Tim.</span></span><u></u><u></u></p></div><p class="MsoNormal"><br><br clear="all"><u></u><u></u></p><div><p class="MsoNormal"><u></u> <u></u></p></div><p class="MsoNormal">
-- <u></u><u></u></p><div><p class="MsoNormal"><span style="font-family:"Courier New"">Thanks,</span><u></u><u></u></p><div><p class="MsoNormal"><span style="font-family:"Courier New"">-Jiangning</span><u></u><u></u></p>
</div></div></div></div></div></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><font face="courier new, monospace">Thanks,</font><div><font face="courier new, monospace">-Jiangning</font></div>
</div>
</div>