diff options
author | Manman Ren <mren@apple.com> | 2012-10-11 22:28:34 +0000 |
---|---|---|
committer | Manman Ren <mren@apple.com> | 2012-10-11 22:28:34 +0000 |
commit | d61d1eb165244f62bfd21cdf79e06bc6579950b4 (patch) | |
tree | 07e403972ff4bff4e0165edfa228dc0058ba13f2 /lib/Transforms | |
parent | aa79721fceb3310db5c6aa98f212b690652a8ab4 (diff) | |
download | external_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.cpp | 2 |
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)); |