[PATCH] D75157: [DAGCombine] Perform the fold of A - (-B) -> A + B only when it is cheaper
Roman Lebedev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 26 07:45:25 PST 2020
lebedev.ri added a comment.
In D75157#1893398 <https://reviews.llvm.org/D75157#1893398>, @lebedev.ri wrote:
> In D75157#1892994 <https://reviews.llvm.org/D75157#1892994>, @steven.zhang wrote:
>
> > In D75157#1892866 <https://reviews.llvm.org/D75157#1892866>, @lebedev.ri wrote:
> >
> > > The test changes don't immediately stand out to me as improvements.
> > > I'd think the fix should go in other direction.
> >
> >
> > I want to make them consistent to avoid the confusion no matter which direction.
>
>
>
>
> In D75157#1893099 <https://reviews.llvm.org/D75157#1893099>, @RKSimon wrote:
>
> > Loss of commutativity by going from fadd to fsub will likely cause register pressure regressions.
>
>
> I'm not very active wrt fp side of things, but i would almost think we need something like this instead
>
> // unfold (fsub A, B) -> (fadd A, (fneg B))
> if ((!LegalOperations || TLI.isOperationLegalOrCustom(ISD::FADD, VT)) &&
> TLI.getNegatibleCost(N1, DAG, LegalOperations, ForCodeSize) !=
> TargetLowering::NegatibleCost::Expensive)
> return DAG.getNode(
> ISD::FADD, DL, VT, N0,
> TLI.getNegatedExpression(N1, DAG, LegalOperations, ForCodeSize), Flags);
>
Right, and we do that already.
Then i'm not sure there is anything to fix here..
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D75157/new/
https://reviews.llvm.org/D75157
More information about the llvm-commits
mailing list