forked from OSchip/llvm-project
Fix the assertion failure caused by http://reviews.llvm.org/D22118
Summary: http://reviews.llvm.org/D22118 uses metadata to store the call count, which makes it possible to have branch weight to have only one elements. Also fix the assertion failure in inliner when checking the instruction type to include "invoke" instruction. Reviewers: mkuper, dnovillo Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D22228 llvm-svn: 275079
This commit is contained in:
parent
c2406d46b8
commit
71021cdf47
|
@ -40,7 +40,7 @@ MDNode *MDBuilder::createBranchWeights(uint32_t TrueWeight,
|
||||||
}
|
}
|
||||||
|
|
||||||
MDNode *MDBuilder::createBranchWeights(ArrayRef<uint32_t> Weights) {
|
MDNode *MDBuilder::createBranchWeights(ArrayRef<uint32_t> Weights) {
|
||||||
assert(Weights.size() >= 2 && "Need at least two branch weights!");
|
assert(Weights.size() >= 1 && "Need at least one branch weights!");
|
||||||
|
|
||||||
SmallVector<Metadata *, 4> Vals(Weights.size() + 1);
|
SmallVector<Metadata *, 4> Vals(Weights.size() + 1);
|
||||||
Vals[0] = createString("branch_weights");
|
Vals[0] = createString("branch_weights");
|
||||||
|
|
|
@ -1315,7 +1315,8 @@ bool Instruction::extractProfMetadata(uint64_t &TrueVal, uint64_t &FalseVal) {
|
||||||
bool Instruction::extractProfTotalWeight(uint64_t &TotalVal) {
|
bool Instruction::extractProfTotalWeight(uint64_t &TotalVal) {
|
||||||
assert((getOpcode() == Instruction::Br ||
|
assert((getOpcode() == Instruction::Br ||
|
||||||
getOpcode() == Instruction::Select ||
|
getOpcode() == Instruction::Select ||
|
||||||
getOpcode() == Instruction::Call) &&
|
getOpcode() == Instruction::Call ||
|
||||||
|
getOpcode() == Instruction::Invoke) &&
|
||||||
"Looking for branch weights on something besides branch");
|
"Looking for branch weights on something besides branch");
|
||||||
|
|
||||||
TotalVal = 0;
|
TotalVal = 0;
|
||||||
|
|
Loading…
Reference in New Issue