<div dir="ltr">Sorry for the late reply! I am currently working in Beijing. Start investigating it now...<div><br></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature">thanks,<br>Cong</div></div>
<br><div class="gmail_quote">On Wed, Feb 17, 2016 at 10:08 AM, Hans Wennborg <span dir="ltr"><<a href="mailto:hans@chromium.org" target="_blank">hans@chromium.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, Feb 16, 2016 at 11:06 AM, Hans Wennborg <<a href="mailto:hans@chromium.org">hans@chromium.org</a>> wrote:<br>
> On Mon, Feb 15, 2016 at 12:28 PM, Dimitry Andric <<a href="mailto:dimitry@andric.com">dimitry@andric.com</a>> wrote:<br>
>> On 15 Dec 2015, at 23:45, Cong Hou via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br>
>>><br>
>>> Author: conghou<br>
>>> Date: Tue Dec 15 16:45:09 2015<br>
>>> New Revision: 255691<br>
>>><br>
>>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=255691&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=255691&view=rev</a><br>
>>> Log:<br>
>>> [LoopVectorizer] Refine loop vectorizer's register usage calculator by ignoring specific instructions.<br>
>>><br>
>>> (This is the third attempt to check in this patch, and the first two are r255454<br>
>>> and r255460. The once failed test file reg-usage.ll is now moved to<br>
>>> test/Transform/LoopVectorize/X86 directory with target datalayout and target<br>
>>> triple indicated.)<br>
>>><br>
>>> LoopVectorizationCostModel::calculateRegisterUsage() is used to estimate the<br>
>>> register usage for specific VFs. However, it takes into account many<br>
>>> instructions that won't be vectorized, such as induction variables,<br>
>>> GetElementPtr instruction, etc.. This makes the loop vectorizer too conservative<br>
>>> when choosing VF. In this patch, the induction variables that won't be<br>
>>> vectorized plus GetElementPtr instruction will be added to ValuesToIgnore set<br>
>>> so that their register usage won't be considered any more.<br>
>>><br>
>>><br>
>>> Differential revision: <a href="http://reviews.llvm.org/D15177" rel="noreferrer" target="_blank">http://reviews.llvm.org/D15177</a><br>
>><br>
>> This appears to have introduced a use-after-free, see <a href="https://llvm.org/bugs/show_bug.cgi?id=26509" rel="noreferrer" target="_blank">https://llvm.org/bugs/show_bug.cgi?id=26509</a> for the details and a valgrind log.  Is there any way we can fix this one before 3.8 release, or revert it otherwise?<br>
><br>
> Cong, do you think this is something that's easy to fix or should we<br>
> revert in the branch to be safe?<br>
<br>
</span>Cong: ping?<br>
</blockquote></div><br></div></div>