<div class="gmail_quote">On Mon, Jul 30, 2012 at 2:33 PM, Yin Ma <span dir="ltr"><<a href="mailto:yinma@codeaurora.org" target="_blank">yinma@codeaurora.org</a>></span> wrote:<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 Richard,<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">     What test cases you need? Do you mean that a test sits in clang test folder<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">With a code that can be devirtualized?</span></p></div></div></blockquote><div><br></div><div>Yes, add some cases to test/CodeGenCXX/devirtualize-virtual-function-calls.cpp which check that the right IR is produced for this case.</div>
<div> </div><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"><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">Thanks,<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">                          Yin <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:metafoo@gmail.com" target="_blank">metafoo@gmail.com</a> [mailto:<a href="mailto:metafoo@gmail.com" target="_blank">metafoo@gmail.com</a>] <b>On Behalf Of </b>Richard Smith<br>
<b>Sent:</b> Monday, July 30, 2012 1:13 PM<br><b>To:</b> Yin Ma<br><b>Cc:</b> <a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank">cfe-commits@cs.uiuc.edu</a><br><b>Subject:</b> Re: [cfe-commits] [PATCH][Review Please] Devirtualize record type member object<u></u><u></u></span></p>
<div><div class="h5"><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">On Mon, Jul 30, 2012 at 10:54 AM, Yin Ma <<a href="mailto:yinma@codeaurora.org" target="_blank">yinma@codeaurora.org</a>> wrote:<u></u><u></u></p>
<div><div><p style="background:white"><span style="font-size:10.5pt;font-family:"Arial","sans-serif"">Hi,</span><u></u><u></u></p><p style="background:white"><span style="font-size:10.5pt;font-family:"Arial","sans-serif"">Currently, the LLVM devirtualization forgets to handle a simple code pattern where can be devirutalized. The code pattern is when a call is from the record type member object. Currently, LLVM only supports devirtualizing a call from the record type object defined in the same function. If object is defined as member, it should be supported. The patch is to enable devirtualization for this case.</span><u></u><u></u></p>
<p style="background:white"><span style="font-size:10.5pt;font-family:"Arial","sans-serif"">In the attachment.<br>devir.diff is the code change<br>the rest of files are the results from validation tests</span><u></u><u></u></p>
<p style="background:white"><span style="font-size:10.5pt;font-family:"Arial","sans-serif"">Please give a review.</span><u></u><u></u></p></div></div><div><p class="MsoNormal">The patch looks correct, but needs some test cases added before it can be checked in.<u></u><u></u></p>
</div></div></div></div></div></div></blockquote></div><br>