summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
diff options
context:
space:
mode:
authorMatthew Simpson <mssimpso@codeaurora.org>2016-08-20 14:10:06 +0000
committerMatthew Simpson <mssimpso@codeaurora.org>2016-08-20 14:10:06 +0000
commit2429656aa906e2e917569067e5d518427e595956 (patch)
tree7b56700f7d1ec45a418c7e8e96d5c6993a5f1e88 /llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
parent21483f56366aec1ed5abd2961601680a77ac3b12 (diff)
downloadbcm5719-llvm-2429656aa906e2e917569067e5d518427e595956.tar.gz
bcm5719-llvm-2429656aa906e2e917569067e5d518427e595956.zip
[SLP] Add command line option for minimum tree size (NFC)
llvm-svn: 279369
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp')
-rw-r--r--llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index 83d1aff07fe..e131c304032 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -86,6 +86,10 @@ static cl::opt<unsigned> RecursionMaxDepth(
"slp-recursion-max-depth", cl::init(12), cl::Hidden,
cl::desc("Limit the recursion depth when building a vectorizable tree"));
+static cl::opt<unsigned> MinTreeSize(
+ "slp-min-tree-size", cl::init(3), cl::Hidden,
+ cl::desc("Only vectorize small trees if they are fully vectorizable"));
+
// Limit the number of alias checks. The limit is chosen so that
// it has no negative effect on the llvm benchmarks.
static const unsigned AliasedCheckLimit = 10;
@@ -1871,7 +1875,7 @@ int BoUpSLP::getTreeCost() {
VectorizableTree.size() << ".\n");
// We only vectorize tiny trees if it is fully vectorizable.
- if (VectorizableTree.size() < 3 && !isFullyVectorizableTinyTree()) {
+ if (VectorizableTree.size() < MinTreeSize && !isFullyVectorizableTinyTree()) {
if (VectorizableTree.empty()) {
assert(!ExternalUses.size() && "We should not have any external users");
}
OpenPOWER on IntegriCloud