[PATCH] D13266: SLPVectorizer: limit the scheduling region size per basic block to avoid long compile times for very large blocks.

Erik Eckstein via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 29 13:12:23 PDT 2015


eeckstein created this revision.
eeckstein added a reviewer: aschwaighofer.
eeckstein added a subscriber: llvm-commits.

Usually large blocks are not a problem. But if a large block (> 10k instructions) contains many (potential) chains of vector instructions, and those chains are spread over a wide range of instructions, then scheduling becomes a compile time problem.
This patch introduces a limit for the accumulate scheduling region size of a block.
For real-world functions this limit will never be exceeded (it's about 10x larger than the maximum value seen in the test-suite and external test suite).

http://reviews.llvm.org/D13266

Files:
  lib/Transforms/Vectorize/SLPVectorizer.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D13266.36025.patch
Type: text/x-patch
Size: 6047 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150929/e9f93275/attachment.bin>


More information about the llvm-commits mailing list