[PATCH] D70975: [SDAG] remove use restriction in isNegatibleForFree() when called from getNegatedExpression()
Florian Hahn via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 11 13:33:05 PST 2019
fhahn added a comment.
In D70975#1780401 <https://reviews.llvm.org/D70975#1780401>, @fhahn wrote:
> In D70975#1780280 <https://reviews.llvm.org/D70975#1780280>, @spatel wrote:
>
> > In D70975#1780237 <https://reviews.llvm.org/D70975#1780237>, @fhahn wrote:
> >
> > > This seems to cause a DAGCombiner to not terminate for some inputs on AArch64. Unfortunately I cannot share the inputs that cause the cycle :(
> >
> >
> > Thanks for letting us know. Can you check if D70595 <https://reviews.llvm.org/D70595> would cause the same cycle?
> > Will it be possible to reduce a test that can be shared? I'm not sure how to proceed without a test.
>
>
> I'll see if I can reduce it tomorrow! I looked at the debug output and it seems the cycle is quite simple.
With this patch, running `llc` on the snippet below causes a combiner cycle.
define linkonce_odr i64 @quux(double* %arg, double %arg1, double %arg2, double %arg3, double %arg4, double %arg5) {
bb:
%tmp = fdiv double 1.000000e+00, %arg1
%tmp6 = fmul double %tmp, %arg2
%tmp7 = fmul double %tmp, %arg3
%tmp8 = fmul double %tmp, %arg4
%tmp9 = fmul double %tmp, %arg5
%tmp10 = fneg double %tmp7
%tmp11 = fmul double %tmp6, %tmp8
%tmp12 = fmul double %tmp9, 4.000000e+00
%tmp13 = fsub double %tmp11, %tmp12
%tmp14 = fneg double %tmp9
%tmp15 = fmul double %tmp6, %tmp14
%tmp16 = fmul double %tmp6, %tmp15
%tmp17 = fmul double %tmp7, %tmp12
%tmp18 = fadd double %tmp16, %tmp17
%tmp19 = fmul double %tmp8, %tmp8
%tmp20 = fsub double %tmp18, %tmp19
%tmp21 = call i64 @wombat(double* nonnull undef, double 1.000000e+00, double %tmp10, double %tmp13, double %tmp20)
ret i64 %tmp21
}
declare i64 @wombat(double*, double, double, double, double)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D70975/new/
https://reviews.llvm.org/D70975
More information about the llvm-commits
mailing list