[llvm-dev] Request suggestions about how to remove redundencies caused by SCEV expansion fundementally

Daniel Berlin via llvm-dev llvm-dev at lists.llvm.org
Mon Aug 29 12:30:15 PDT 2016

> By the way, to answer Andy's question. I did some experiment using the
> testcase in PR29065 to see if we regenerate SCEV for existing and
> expanded IR, whether it will be easier to check equivalence suppose we
> have SCEV cse rules. The reassociated order of generated SCEVs seems
> more consistent. For C= A1 + A2 + B above, the SCEV corresponding to
> A1 + A2 has the same computation sequence with the SCEV corresponding
> to A (A1, A2 and A are all complex SCEV themselves). However, during
> expansion, the cost of searching existing IR, convert them to SCEV and
> see if they are equivalent with the SCEV to be expanded looks
> expensive.

Is this the cost of processing every instruction, or just things that look
like recurrences?

I ask mainly because i'm curious if the cost decreases if you limit this
part to recurrences, and did something like have VN just take recurrences
(which are cheap to find as SCC's in the SSA graph), if you have >1
recurrence, and see if they are SCEVable.

You'd still need to define equivalence, of course.

And we need to add complex rules to define SCEV equivalence
> from CSE perspective.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160829/7fb3d604/attachment.html>

More information about the llvm-dev mailing list