[llvm] r254242 - [SelectionDAG] Use std::any_of instead of a manually coded loop. NFC

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Sun Nov 29 10:10:37 PST 2015


Replaced in r254260.

FWIW, there's also this code in ScalarEvolution.cpp that does similar.

  // If FlagNSW is true and all the operands are non-negative, infer
FlagNUW.
  auto IsKnownNonNegative =
    std::bind(std::mem_fn(&ScalarEvolution::isKnownNonNegative), SE, _1);

  if (SignOrUnsignWrap == SCEV::FlagNSW &&
      std::all_of(Ops.begin(), Ops.end(), IsKnownNonNegative))
    Flags =
        ScalarEvolution::setFlags(Flags,
(SCEV::NoWrapFlags)SignOrUnsignMask);


On Sun, Nov 29, 2015 at 7:20 AM, David Blaikie <dblaikie at gmail.com> wrote:

>
> On Nov 29, 2015 3:28 AM, "Alex Bradbury via llvm-commits" <
> llvm-commits at lists.llvm.org> wrote:
> >
> > On 29 November 2015 at 04:37, Craig Topper via llvm-commits
> > <llvm-commits at lists.llvm.org> wrote:
> > > Author: ctopper
> > > Date: Sat Nov 28 22:37:11 2015
> > > New Revision: 254242
> > >
> > > URL: http://llvm.org/viewvc/llvm-project?rev=254242&view=rev
> > > Log:
> > > [SelectionDAG] Use std::any_of instead of a manually coded loop. NFC
> > >
> > > 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=254242&r1=254241&r2=254242&view=diff
> > >
> ==============================================================================
> > > --- llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (original)
> > > +++ llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp Sat Nov 28
> 22:37:11 2015
> > > @@ -11317,15 +11317,11 @@ bool DAGCombiner::MergeConsecutiveStores
> > >          break;
> > >      }
> > >
> > > -    bool Alias = false;
> > >      // Check if this store interferes with any of the loads that we
> found.
> > > -    for (unsigned ld = 0, lde = AliasLoadNodes.size(); ld < lde; ++ld)
> > > -      if (isAlias(AliasLoadNodes[ld], StoreNodes[i].MemNode)) {
> > > -        Alias = true;
> > > -        break;
> > > -      }
> > > -    // We found a load that alias with this store. Stop the sequence.
> > > -    if (Alias)
> > > +    // If we find a load that alias with this store. Stop the
> sequence.
> > > +    if (std::any_of(AliasLoadNodes.begin(), AliasLoadNodes.end(),
> > > +                    std::bind(std::mem_fn(&DAGCombiner::isAlias),
> this,
> > > +                              std::placeholders::_1,
> StoreNodes[i].MemNode)))
> >
> > I know this comes partly down to personal preference, but I can't help
> > but think this would be more readable with a lambda (like the recent
> > cleanups to CodeGenDAGPatterns by you and David Blaikie).
>
> Yeah, that's what the Google style guide has suggested (that bind just
> isn't worth it & lambdas should just be used instead, even in the few cases
> where bind might be lexically shorter) & I tend to agree with it, but not
> totally fussed, personally, if people want to play with bind and see how it
> feels
>
> >
> > Alex
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>



-- 
~Craig
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151129/99d08308/attachment.html>


More information about the llvm-commits mailing list