aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Transforms
diff options
context:
space:
mode:
authorManman Ren <mren@apple.com>2012-10-11 22:28:34 +0000
committerManman Ren <mren@apple.com>2012-10-11 22:28:34 +0000
commitd61d1eb165244f62bfd21cdf79e06bc6579950b4 (patch)
tree07e403972ff4bff4e0165edfa228dc0058ba13f2 /lib/Transforms
parentaa79721fceb3310db5c6aa98f212b690652a8ab4 (diff)
downloadexternal_llvm-d61d1eb165244f62bfd21cdf79e06bc6579950b4.zip
external_llvm-d61d1eb165244f62bfd21cdf79e06bc6579950b4.tar.gz
external_llvm-d61d1eb165244f62bfd21cdf79e06bc6579950b4.tar.bz2
PGO: create metadata for switch only if it has more than one targets.
When all cases of a switch statement are dead, the weights vector only has one element, and we will get an ssertion failure when calling createBranchWeights. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165759 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms')
-rw-r--r--lib/Transforms/Utils/SimplifyCFG.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/Transforms/Utils/SimplifyCFG.cpp b/lib/Transforms/Utils/SimplifyCFG.cpp
index af8d112..5f8953a 100644
--- a/lib/Transforms/Utils/SimplifyCFG.cpp
+++ b/lib/Transforms/Utils/SimplifyCFG.cpp
@@ -695,7 +695,7 @@ SimplifyEqualityComparisonWithOnlyPredecessor(TerminatorInst *TI,
SI->removeCase(i);
}
}
- if (HasWeight)
+ if (HasWeight && Weights.size() >= 2)
SI->setMetadata(LLVMContext::MD_prof,
MDBuilder(SI->getParent()->getContext()).
createBranchWeights(Weights));