[llvm] r321204 - [DAG] Fix condition on overlapping store check.

Nirav Davé via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 20 11:24:40 PST 2017


Most likely. I was pointed to the problem on PowerPC so I can't be 100% but
AArch also has pre-increment stores so it's reasonable to assume it's the
same.

-Nirav

On Wed, Dec 20, 2017 at 2:19 PM, Diana Picus <diana.picus at linaro.org> wrote:

> Hi Dave,
>
> Is this going to fix this failure [1] ? If not, could you please have
> a look at it? I was just about to revert r321089.
>
> Thanks,
> Diana
>
> [1] http://lab.llvm.org:8011/builders/clang-cmake-aarch64-full/builds/3575
>
> On 20 December 2017 at 20:06, Nirav Dave via llvm-commits
> <llvm-commits at lists.llvm.org> wrote:
> > Author: niravd
> > Date: Wed Dec 20 11:06:47 2017
> > New Revision: 321204
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=321204&view=rev
> > Log:
> > [DAG] Fix condition on overlapping store check.
> >
> > Prevent overlapping store elision when overlapping store is
> > pre-inc/dec as analysis is wrong in these cases.
> >
> > Modified:
> >     llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
> >
> > Modified: llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
> > URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/
> CodeGen/SelectionDAG/DAGCombiner.cpp?rev=321204&r1=
> 321203&r2=321204&view=diff
> > ============================================================
> ==================
> > --- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original)
> > +++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Wed Dec 20
> 11:06:47 2017
> > @@ -13786,8 +13786,8 @@ SDValue DAGCombiner::visitSTORE(SDNode *
> >
> >    // Deal with elidable overlapping chained stores.
> >    if (StoreSDNode *ST1 = dyn_cast<StoreSDNode>(Chain))
> > -    if (OptLevel != CodeGenOpt::None && ST1->isUnindexed() &&
> > -        !ST1->isVolatile() && ST1->hasOneUse() &&
> > +    if (OptLevel != CodeGenOpt::None && ST->isUnindexed() &&
> > +        ST1->isUnindexed() && !ST1->isVolatile() && ST1->hasOneUse() &&
> >          !ST1->getBasePtr().isUndef() && !ST->isVolatile()) {
> >        BaseIndexOffset STBasePtr = BaseIndexOffset::match(ST->getBasePtr(),
> DAG);
> >        BaseIndexOffset ST1BasePtr =
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171220/ae14c599/attachment.html>


More information about the llvm-commits mailing list