Skip to content

Commit ff6d700

Browse files
committed
Replace vector with pointer
1 parent 9936177 commit ff6d700

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2067,24 +2067,22 @@ static VPSingleDefRecipe *findHeaderMask(VPlan &Plan) {
20672067
WideCanonicalIVs.push_back(WidenOriginalIV);
20682068
}
20692069

2070-
// Walk users of wide canonical IVs and collect to all compares of the form
2070+
// Walk users of wide canonical IVs and find the single compare of the form
20712071
// (ICMP_ULE, WideCanonicalIV, backedge-taken-count).
2072-
SmallVector<VPSingleDefRecipe *> HeaderMasks;
2072+
VPSingleDefRecipe *HeaderMask = nullptr;
20732073
for (auto *Wide : WideCanonicalIVs) {
20742074
for (VPUser *U : SmallVector<VPUser *>(Wide->users())) {
2075-
auto *HeaderMask = dyn_cast<VPInstruction>(U);
2076-
if (!HeaderMask || !vputils::isHeaderMask(HeaderMask, Plan))
2075+
auto *VPI = dyn_cast<VPInstruction>(U);
2076+
if (!VPI || !vputils::isHeaderMask(VPI, Plan))
20772077
continue;
20782078

2079-
assert(HeaderMask->getOperand(0) == Wide &&
2079+
assert(VPI->getOperand(0) == Wide &&
20802080
"WidenCanonicalIV must be the first operand of the compare");
2081-
HeaderMasks.push_back(HeaderMask);
2081+
assert(!HeaderMask && "Multiple header masks found?");
2082+
HeaderMask = VPI;
20822083
}
20832084
}
2084-
assert(HeaderMasks.size() <= 1 && "Multiple header masks found?");
2085-
if (HeaderMasks.empty())
2086-
return nullptr;
2087-
return HeaderMasks[0];
2085+
return HeaderMask;
20882086
}
20892087

20902088
void VPlanTransforms::addActiveLaneMask(

0 commit comments

Comments
 (0)