[LLVMdev] creating SCEV taking too long

Guo, Xiaoyi Xiaoyi.Guo at amd.com
Mon Jul 29 16:08:08 PDT 2013


We have a benchmark where there are 128 MAD computations in a loop. (See the attached IR.) Creating SCEVs for these expressions takes a long time, making the compile time too long. E.g., running opt with the "indvars" pass only takes 45 seconds.

It seems that the majority of the time is spent in comparing the complexity of the expression operands to sort them.

I realize that the expression grows to be really large towards the end of the loop.

I don't know of all the uses of the built SCEV. But I image it won't be very useful for such complex expressions. Yet, it's making the compile time much longer.

So I'm wondering if it would make sense to abort the creation of SCEV when the expression gets really complex and large. Or is there any way to further optimize the performance of SCEV building for such cases.

Thanks in advance for any response.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130729/bba3dc48/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: MAD_test.ll
Type: application/octet-stream
Size: 11406 bytes
Desc: MAD_test.ll
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130729/bba3dc48/attachment.obj>

More information about the llvm-dev mailing list