summaryrefslogtreecommitdiff
path: root/tools/llvm-symbolizer
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2013-02-15 04:28:42 +0000
committerHal Finkel <hfinkel@anl.gov>2013-02-15 04:28:42 +0000
commitab90084bca42b74a5b5edad9b416bd81e105dad0 (patch)
treee35b5d1343781dca649d7eaa37ab8aea0f169e34 /tools/llvm-symbolizer
parenta7e4409bb238ec3c5169c25afbb0308ae76d1111 (diff)
downloadllvm-ab90084bca42b74a5b5edad9b416bd81e105dad0.tar.gz
llvm-ab90084bca42b74a5b5edad9b416bd81e105dad0.tar.bz2
llvm-ab90084bca42b74a5b5edad9b416bd81e105dad0.tar.xz
BBVectorize: Cap the number of candidate pairs in each instruction group
For some basic blocks, it is possible to generate many candidate pairs for relatively few pairable instructions. When many (tens of thousands) of these pairs are generated for a single instruction group, the time taken to generate and rank the different vectorization plans can become quite large. As a result, we now cap the number of candidate pairs within each instruction group. This is done by closing out the group once the threshold is reached (set now at 3000 pairs). Although this will limit the overall compile-time impact, this may not be the best way to achieve this result. It might be better, for example, to prune excessive candidate pairs after the fact the prevent the generation of short, but highly-connected groups. We can experiment with this in the future. This change reduces the overall compile-time slowdown of the csa.ll test case in PR15222 to ~5x. If 5x is still considered too large, a lower limit can be used as the default. This represents a functionality change, but only for very large inputs (thus, there is no regression test). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175251 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-symbolizer')
0 files changed, 0 insertions, 0 deletions