<div dir="ltr">Hi Hao,<div><br></div><div style>The patch looks good, but would be good to have the test split into their functional semantics, ie. each block that starts by loading from %source. Feel free to check for { function name + not vldmia + add } on each one, so it's easier to change it in the future, as the test comment seem to imply.</div>
<div style><br></div><div style>cheers,</div><div style>--renato</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 15 April 2013 04:23, Hao Liu <span dir="ltr"><<a href="mailto:Hao.Liu@arm.com" target="_blank">Hao.Liu@arm.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="ZH-CN" link="blue" vlink="purple"><div><p class="MsoNormal"><span lang="EN-US">Hi,<u></u><u></u></span></p><p class="MsoNormal">
<span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-US">Please consider a patch in the attachment as fix for PR14824: Optimization arm_ldst_opt inserts newly generated instruction vldmia at incorrect. <a href="http://llvm.org/bugs/show_bug.cgi?id=14824" target="_blank">http://llvm.org/bugs/show_bug.cgi?id=14824</a><u></u><u></u></span></p>
<p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-US">The problem is that there is overlap for lack of WAW (write after write) dependence check in ARMLoadStoreOpt::LoadStoreMultipleOpti. So we check the dependence before inserting an instruction into optimizing queue. If the dependence does exist, we will optimize all the instructions already in the queue.<u></u><u></u></span></p>
<p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-US">The attached patch fixes that problem. BTW, to write a simple test case is hard, as the overlapped instructions are removed as dead instructions in usual. So the regression test attached is the original test case by Jiangning who found this bug. There is no unexpected failure of the regression test. The test-suite hasn’t been tested for the lack of equipment.<u></u><u></u></span></p>
<p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-US"><u></u> <u></u></span></p><p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-US">Thanks,<u></u><u></u></span></p><p class="MsoNormal" align="left" style="text-align:left">
<span lang="EN-US">-Hao<u></u><u></u></span></p></div></div><br>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div>