<div dir="ltr"><div>I fixed the crash with r289958. It was actually exposed by r288909, but because the conditional stores flag was off by default, we weren't yet hitting it.</div><div><br></div><div>Thanks again for the test case! I simplified it and included it with the fix. I'll reapply the original patch shortly.</div><div><br></div><div>-- Matt</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Dec 16, 2016 at 7:01 AM, Matthew Simpson <span dir="ltr"><<a href="mailto:mssimpso@codeaurora.org" target="_blank">mssimpso@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 dir="ltr">Thanks, Chandler. I'll take a look.<div><br></div><div>-- Matt</div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Dec 16, 2016 at 6:42 AM, Chandler Carruth via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I've reverted this in r289934 as it caused the loop vectorizer to crash in the Python runtime on PPC.<div><br></div><div>You should be able to reproduce by running 'opt -loop-vectorize' over: <a href="https://reviews.llvm.org/P7949" target="_blank">https://reviews.llvm.org<wbr>/P7949</a></div></div><div class="m_6063932488087727379HOEnZb"><div class="m_6063932488087727379h5"><br><div class="gmail_quote"><div dir="ltr">On Thu, Dec 15, 2016 at 12:21 PM Matthew Simpson via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: mssimpso<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
Date: Thu Dec 15 14:11:05 2016<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
New Revision: 289863<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=289863&view=rev" rel="noreferrer" class="m_6063932488087727379m_1504612995077904717gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject?rev=289863&view=rev</a><br class="m_6063932488087727379m_1504612995077904717gmail_msg">
Log:<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
[LV] Enable vectorization of loops with conditional stores by default<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
This patch sets the default value of the "-enable-cond-stores-vec" command line<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
option to "true".<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
Differential Revision: <a href="https://reviews.llvm.org/D27814" rel="noreferrer" class="m_6063932488087727379m_1504612995077904717gmail_msg" target="_blank">https://reviews.llvm.org/D2781<wbr>4</a><br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
Modified:<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
    llvm/trunk/lib/Transforms/Vect<wbr>orize/LoopVectorize.cpp<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
    llvm/trunk/test/Transforms/Loo<wbr>pVectorize/AArch64/predication<wbr>_costs.ll<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
    llvm/trunk/test/Transforms/Loo<wbr>pVectorize/conditional-assignm<wbr>ent.ll<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
    llvm/trunk/test/Transforms/Loo<wbr>pVectorize/consecutive-ptr-uni<wbr>forms.ll<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
    llvm/trunk/test/Transforms/Loo<wbr>pVectorize/if-pred-stores.ll<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
    llvm/trunk/test/Transforms/Loo<wbr>pVectorize/interleaved-accesse<wbr>s-pred-stores.ll<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
Modified: llvm/trunk/lib/Transforms/Vect<wbr>orize/LoopVectorize.cpp<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp?rev=289863&r1=289862&r2=289863&view=diff" rel="noreferrer" class="m_6063932488087727379m_1504612995077904717gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/llvm/trunk/lib/Transform<wbr>s/Vectorize/LoopVectorize.cpp?<wbr>rev=289863&r1=289862&r2=<wbr>289863&view=diff</a><br class="m_6063932488087727379m_1504612995077904717gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
--- llvm/trunk/lib/Transforms/Vect<wbr>orize/LoopVectorize.cpp (original)<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
+++ llvm/trunk/lib/Transforms/Vect<wbr>orize/LoopVectorize.cpp Thu Dec 15 14:11:05 2016<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
@@ -191,7 +191,7 @@ static cl::opt<bool> EnableIndVarRegiste<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
     cl::desc("Count the induction variable only once when interleaving"));<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
 static cl::opt<bool> EnableCondStoresVectorization(<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
-    "enable-cond-stores-vec", cl::init(false), cl::Hidden,<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
+    "enable-cond-stores-vec", cl::init(true), cl::Hidden,<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
     cl::desc("Enable if predication of stores during vectorization."));<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
 static cl::opt<unsigned> MaxNestedScalarReductionIC(<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
Modified: llvm/trunk/test/Transforms/Loo<wbr>pVectorize/AArch64/predication<wbr>_costs.ll<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopVectorize/AArch64/predication_costs.ll?rev=289863&r1=289862&r2=289863&view=diff" rel="noreferrer" class="m_6063932488087727379m_1504612995077904717gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/llvm/trunk/test/Transfor<wbr>ms/LoopVectorize/AArch64/<wbr>predication_costs.ll?rev=<wbr>289863&r1=289862&r2=289863&<wbr>view=diff</a><br class="m_6063932488087727379m_1504612995077904717gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
--- llvm/trunk/test/Transforms/Loo<wbr>pVectorize/AArch64/predication<wbr>_costs.ll (original)<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
+++ llvm/trunk/test/Transforms/Loo<wbr>pVectorize/AArch64/predication<wbr>_costs.ll Thu Dec 15 14:11:05 2016<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
@@ -1,5 +1,5 @@<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
 ; REQUIRES: asserts<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
-; RUN: opt < %s -force-vector-width=2 -enable-cond-stores-vec -loop-vectorize -debug-only=loop-vectorize -disable-output 2>&1 | FileCheck %s<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
+; RUN: opt < %s -force-vector-width=2 -loop-vectorize -debug-only=loop-vectorize -disable-output 2>&1 | FileCheck %s<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
 target datalayout = "e-m:e-i64:64-i128:128-n32:64-<wbr>S128"<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
 target triple = "aarch64--linux-gnu"<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
Modified: llvm/trunk/test/Transforms/Loo<wbr>pVectorize/conditional-assignm<wbr>ent.ll<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopVectorize/conditional-assignment.ll?rev=289863&r1=289862&r2=289863&view=diff" rel="noreferrer" class="m_6063932488087727379m_1504612995077904717gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/llvm/trunk/test/Transfor<wbr>ms/LoopVectorize/conditional-<wbr>assignment.ll?rev=289863&r1=<wbr>289862&r2=289863&view=diff</a><br class="m_6063932488087727379m_1504612995077904717gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
--- llvm/trunk/test/Transforms/Loo<wbr>pVectorize/conditional-assignm<wbr>ent.ll (original)<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
+++ llvm/trunk/test/Transforms/Loo<wbr>pVectorize/conditional-assignm<wbr>ent.ll Thu Dec 15 14:11:05 2016<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
@@ -1,5 +1,5 @@<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
-; RUN: opt < %s -loop-vectorize -S -pass-remarks-missed='loop-vec<wbr>torize' -pass-remarks-analysis='loop-v<wbr>ectorize' 2>&1 | FileCheck %s<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
-; RUN: opt < %s -passes=loop-vectorize -S -pass-remarks-missed='loop-vec<wbr>torize' -pass-remarks-analysis='loop-v<wbr>ectorize' 2>&1 | FileCheck %s<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
+; RUN: opt < %s -enable-cond-stores-vec=false -loop-vectorize -S -pass-remarks-missed='loop-vec<wbr>torize' -pass-remarks-analysis='loop-v<wbr>ectorize' 2>&1 | FileCheck %s<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
+; RUN: opt < %s -enable-cond-stores-vec=false -passes=loop-vectorize -S -pass-remarks-missed='loop-vec<wbr>torize' -pass-remarks-analysis='loop-v<wbr>ectorize' 2>&1 | FileCheck %s<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
 ; CHECK: remark: source.c:2:8: loop not vectorized: store that is conditionally executed prevents vectorization<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
Modified: llvm/trunk/test/Transforms/Loo<wbr>pVectorize/consecutive-ptr-uni<wbr>forms.ll<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll?rev=289863&r1=289862&r2=289863&view=diff" rel="noreferrer" class="m_6063932488087727379m_1504612995077904717gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/llvm/trunk/test/Transfor<wbr>ms/LoopVectorize/consecutive-<wbr>ptr-uniforms.ll?rev=289863&r1=<wbr>289862&r2=289863&view=diff</a><br class="m_6063932488087727379m_1504612995077904717gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
--- llvm/trunk/test/Transforms/Loo<wbr>pVectorize/consecutive-ptr-uni<wbr>forms.ll (original)<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
+++ llvm/trunk/test/Transforms/Loo<wbr>pVectorize/consecutive-ptr-uni<wbr>forms.ll Thu Dec 15 14:11:05 2016<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
@@ -1,6 +1,6 @@<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
 ; REQUIRES: asserts<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
 ; RUN: opt < %s -loop-vectorize -force-vector-width=4 -force-vector-interleave=1 -instcombine -debug-only=loop-vectorize -disable-output -print-after=instcombine 2>&1 | FileCheck %s<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
-; RUN: opt < %s -loop-vectorize -force-vector-width=4 -force-vector-interleave=1 -enable-interleaved-mem-access<wbr>es -enable-cond-stores-vec -instcombine -debug-only=loop-vectorize -disable-output -print-after=instcombine 2>&1 | FileCheck %s --check-prefix=INTER<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
+; RUN: opt < %s -loop-vectorize -force-vector-width=4 -force-vector-interleave=1 -enable-interleaved-mem-access<wbr>es -instcombine -debug-only=loop-vectorize -disable-output -print-after=instcombine 2>&1 | FileCheck %s --check-prefix=INTER<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
 target datalayout = "e-m:e-i64:64-i128:128-n32:64-<wbr>S128"<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
Modified: llvm/trunk/test/Transforms/Loo<wbr>pVectorize/if-pred-stores.ll<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopVectorize/if-pred-stores.ll?rev=289863&r1=289862&r2=289863&view=diff" rel="noreferrer" class="m_6063932488087727379m_1504612995077904717gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/llvm/trunk/test/Transfor<wbr>ms/LoopVectorize/if-pred-<wbr>stores.ll?rev=289863&r1=289862<wbr>&r2=289863&view=diff</a><br class="m_6063932488087727379m_1504612995077904717gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
--- llvm/trunk/test/Transforms/Loo<wbr>pVectorize/if-pred-stores.ll (original)<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
+++ llvm/trunk/test/Transforms/Loo<wbr>pVectorize/if-pred-stores.ll Thu Dec 15 14:11:05 2016<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
@@ -1,6 +1,6 @@<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
 ; RUN: opt -S -vectorize-num-stores-pred=1 -force-vector-width=1 -force-vector-interleave=2 -loop-vectorize -verify-loop-info -simplifycfg < %s | FileCheck %s --check-prefix=UNROLL<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
 ; RUN: opt -S -vectorize-num-stores-pred=1 -force-vector-width=1 -force-vector-interleave=2 -loop-vectorize -verify-loop-info < %s | FileCheck %s --check-prefix=UNROLL-NOSIMPLI<wbr>FY<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
-; RUN: opt -S -vectorize-num-stores-pred=1 -force-vector-width=2 -force-vector-interleave=1 -loop-vectorize -enable-cond-stores-vec -verify-loop-info -simplifycfg < %s | FileCheck %s --check-prefix=VEC<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
+; RUN: opt -S -vectorize-num-stores-pred=1 -force-vector-width=2 -force-vector-interleave=1 -loop-vectorize -verify-loop-info -simplifycfg < %s | FileCheck %s --check-prefix=VEC<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
 target datalayout = "e-m:o-i64:64-f80:128-n8:16:32<wbr>:64-S128"<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
Modified: llvm/trunk/test/Transforms/Loo<wbr>pVectorize/interleaved-accesse<wbr>s-pred-stores.ll<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/LoopVectorize/interleaved-accesses-pred-stores.ll?rev=289863&r1=289862&r2=289863&view=diff" rel="noreferrer" class="m_6063932488087727379m_1504612995077904717gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/llvm/trunk/test/Transfor<wbr>ms/LoopVectorize/interleaved-<wbr>accesses-pred-stores.ll?rev=<wbr>289863&r1=289862&r2=289863&<wbr>view=diff</a><br class="m_6063932488087727379m_1504612995077904717gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
--- llvm/trunk/test/Transforms/Loo<wbr>pVectorize/interleaved-accesse<wbr>s-pred-stores.ll (original)<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
+++ llvm/trunk/test/Transforms/Loo<wbr>pVectorize/interleaved-accesse<wbr>s-pred-stores.ll Thu Dec 15 14:11:05 2016<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
@@ -1,4 +1,4 @@<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
-; RUN: opt -S -loop-vectorize -instcombine -force-vector-width=2 -force-vector-interleave=1 -enable-interleaved-mem-access<wbr>es -vectorize-num-stores-pred=1 -enable-cond-stores-vec < %s | FileCheck %s<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
+; RUN: opt -S -loop-vectorize -instcombine -force-vector-width=2 -force-vector-interleave=1 -enable-interleaved-mem-access<wbr>es < %s | FileCheck %s<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
 target datalayout = "e-m:e-i64:64-i128:128-n32:64-<wbr>S128"<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
 %pair = type { i64, i64 }<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
______________________________<wbr>_________________<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
llvm-commits mailing list<br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<a href="mailto:llvm-commits@lists.llvm.org" class="m_6063932488087727379m_1504612995077904717gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="m_6063932488087727379m_1504612995077904717gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" class="m_6063932488087727379m_1504612995077904717gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br class="m_6063932488087727379m_1504612995077904717gmail_msg">
</blockquote></div>
</div></div><br>______________________________<wbr>_________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div>
</div></div></blockquote></div><br></div>