@@ -1143,9 +1143,8 @@ bool AccessAnalysis::createCheckForAccess(RuntimePointerChecking &RtCheck,
1143
1143
SmallVector<PointerIntPair<const SCEV *, 1 , bool >> TranslatedPtrs =
1144
1144
findForkedPointer (PSE, StridesMap, Ptr, TheLoop);
1145
1145
1146
- for (const auto &P : TranslatedPtrs) {
1147
- const SCEV *PtrExpr = get<0 >(P);
1148
- if (!hasComputableBounds (PSE, Ptr, PtrExpr, TheLoop, Assume))
1146
+ for (auto &P : TranslatedPtrs) {
1147
+ if (!hasComputableBounds (PSE, Ptr, P.getPointer (), TheLoop, Assume))
1149
1148
return false ;
1150
1149
1151
1150
// When we run after a failing dependency check we have to make sure
@@ -1161,8 +1160,7 @@ bool AccessAnalysis::createCheckForAccess(RuntimePointerChecking &RtCheck,
1161
1160
// If there's only one option for Ptr, look it up after bounds and wrap
1162
1161
// checking, because assumptions might have been added to PSE.
1163
1162
if (TranslatedPtrs.size () == 1 )
1164
- TranslatedPtrs[0 ] = {replaceSymbolicStrideSCEV (PSE, StridesMap, Ptr),
1165
- false };
1163
+ P.setPointer (replaceSymbolicStrideSCEV (PSE, StridesMap, Ptr));
1166
1164
}
1167
1165
1168
1166
for (auto [PtrExpr, NeedsFreeze] : TranslatedPtrs) {
0 commit comments