[LLVMdev] creating SCEV taking too long

Guo, Xiaoyi
Mon, 29 Jul 2013 23:08:08 -0000

Hi,

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.

Xiaoyi
-------------- 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>