Index: lib/IR/MDBuilder.cpp =================================================================== --- lib/IR/MDBuilder.cpp +++ lib/IR/MDBuilder.cpp @@ -40,7 +40,7 @@ } MDNode *MDBuilder::createBranchWeights(ArrayRef Weights) { - assert(Weights.size() >= 2 && "Need at least two branch weights!"); + assert(Weights.size() >= 1 && "Need at least one branch weights!"); SmallVector Vals(Weights.size() + 1); Vals[0] = createString("branch_weights"); Index: lib/IR/Metadata.cpp =================================================================== --- lib/IR/Metadata.cpp +++ lib/IR/Metadata.cpp @@ -1315,7 +1315,8 @@ bool Instruction::extractProfTotalWeight(uint64_t &TotalVal) { assert((getOpcode() == Instruction::Br || getOpcode() == Instruction::Select || - getOpcode() == Instruction::Call) && + getOpcode() == Instruction::Call || + getOpcode() == Instruction::Invoke) && "Looking for branch weights on something besides branch"); TotalVal = 0;