[PATCH] D67849: [InstCombine] (a+b) < a && (a+b) != 0 -> (0-b) < a iff a/b != 0 (PR43259)
Sanjay Patel via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 24 07:18:13 PDT 2019
spatel added inline comments.
================
Comment at: llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp:1064
+ auto IsKnownNonZero = [&](Value *V) {
+ return isKnownNonZero(V, Q.DL, /*Depth=*/0, Q.AC, Q.CxtI, Q.DT);
----------------
xbolva00 wrote:
> lebedev.ri wrote:
> > xbolva00 wrote:
> > > lebedev.ri wrote:
> > > > xbolva00 wrote:
> > > > > I think we dont need this lambda.. Just inline it.
> > > > I don't see why spelling all that each time is better.
> > > So just add a new overload which takes
> > >
> > > isKnownNonZero(V, Q)?
> > ValueTracking.h (that defines internal `Query` struct) does not
> > include InstructionSimplify (that defines `SimplifyQuery` struct).
> > Going in either direction does not seem optimal, and seems out of the scope of the patch.
> >
> > This isn't C, and in C++ i suppose using helpers if they improve code readability is not frowned upon..
> Thanks for info - just wanted to say: If we can add a overload, we should.. (instead of using lambda).
>
> For me, the 'isKnownNonZero(V, Q.DL, /*Depth=*/0, Q.AC, Q.CxtI, Q.DT);' is fine.
>
> I am personally not very happy to look at the code where there are so many lambdas in one function (what may happen here in the future). I prefer static helper functions..
>
> But this is just my opinion, but I would like to hear opinions of @spatel / @efriedma too.
>
>
>
>
I agree that an overload of some kind would be nicer, but I also agree that it's not necessary to impede this patch with that requirement because it's not a straightforward translation (Query is not the same as SimplifyQuery).
If we add a proper overload/adapter, then we can reduce the code duplication here and within InstSimplify itself?
It's a matter of taste whether the lambda makes the code more or less readable. I'm ok with it.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D67849/new/
https://reviews.llvm.org/D67849
More information about the llvm-commits
mailing list