[llvm-dev] more reassociation in IR

Daniel Berlin via llvm-dev llvm-dev at lists.llvm.org
Tue May 8 09:50:17 PDT 2018


1.  The reassociate pass that exists right now was *originally* (AFAIK)
written to enable CSE/GVN to do better. That particular issue is solvable
in other ways, because there are good ways to integrate reassociation into
CSE/GVN (and at this point, it would probably be cheaper than -reassociate
since it would modify code less, only changing it when there are actual
redundancies )

I don't know what other things people are trying to target with reassociate
these days, it would be good to understand what others see as the use cases.

My only other fear with removing it is that we have a tendency to try to
make every optimization do everything, so i fear removing reassociate might
just have people try to improve every pass to do reassociation instead of
declaring what is good enough.

(For example, GVN already does some reassociation, as do some analysis.
Other analysis relies more on a canonical form existing and don't, for
example, try to perform commutativity on their own.  IMHO, we should just
declare one or the other to be the case, and hold that line, rather than
generate a mishmash)


2. "Keep in mind that instcombine runs 1st, runs to fixed-point, and runs 8
times in the -O2 pipeline."

Y'all know how i feel about this one, so i'll leave it alone :)



--Dan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180508/271c6189/attachment-0001.html>


More information about the llvm-dev mailing list