Remove scalable vector assert from InnerLoopVectorizer::setDebugLocFromInst

In InnerLoopVectorizer::setDebugLocFromInst we were previously
asserting that the VF is not scalable. This is because we want to
use the number of elements to create a duplication factor for the
debug profiling data. However, for scalable vectors we only know the
minimum number of elements. I've simply removed the assert for now
and added a FIXME saying that we assume vscale is always 1. When
vscale is not 1 it just means that the profiling data isn't as
accurate, but shouldn't cause any functional problems.
This commit is contained in:
David Sherwood 2021-05-19 12:13:13 +01:00
parent d59a2a32b9
commit 7e95a563c8
1 changed files with 1 additions and 1 deletions

View File

@ -1052,7 +1052,7 @@ void InnerLoopVectorizer::setDebugLocFromInst(IRBuilder<> &B, const Value *Ptr)
// factors to the discriminators. // factors to the discriminators.
if (DIL && Inst->getFunction()->isDebugInfoForProfiling() && if (DIL && Inst->getFunction()->isDebugInfoForProfiling() &&
!isa<DbgInfoIntrinsic>(Inst) && !EnableFSDiscriminator) { !isa<DbgInfoIntrinsic>(Inst) && !EnableFSDiscriminator) {
assert(!VF.isScalable() && "scalable vectors not yet supported."); // FIXME: For scalable vectors, assume vscale=1.
auto NewDIL = auto NewDIL =
DIL->cloneByMultiplyingDuplicationFactor(UF * VF.getKnownMinValue()); DIL->cloneByMultiplyingDuplicationFactor(UF * VF.getKnownMinValue());
if (NewDIL) if (NewDIL)