@@ -1544,28 +1544,25 @@ AliasResult BasicAAResult::aliasCheck(const Value *V1, LocationSize V1Size,
1544
1544
return AliasResult::NoAlias;
1545
1545
1546
1546
if (CtxI && EnableSeparateStorageAnalysis) {
1547
- for (auto &AssumeVH : AC.assumptions ( )) {
1548
- if (!AssumeVH )
1547
+ for (AssumptionCache::ResultElem &Elem : AC.assumptionsFor (O1 )) {
1548
+ if (!Elem || Elem. Index == AssumptionCache::ExprResultIdx )
1549
1549
continue ;
1550
1550
1551
- AssumeInst *Assume = cast<AssumeInst>(AssumeVH);
1552
-
1553
- for (unsigned Idx = 0 ; Idx < Assume->getNumOperandBundles (); Idx++) {
1554
- OperandBundleUse OBU = Assume->getOperandBundleAt (Idx);
1555
- if (OBU.getTagName () == " separate_storage" ) {
1556
- assert (OBU.Inputs .size () == 2 );
1557
- const Value *Hint1 = OBU.Inputs [0 ].get ();
1558
- const Value *Hint2 = OBU.Inputs [1 ].get ();
1559
- // This is often a no-op; instcombine rewrites this for us. No-op
1560
- // getUnderlyingObject calls are fast, though.
1561
- const Value *HintO1 = getUnderlyingObject (Hint1);
1562
- const Value *HintO2 = getUnderlyingObject (Hint2);
1563
-
1564
- if (((O1 == HintO1 && O2 == HintO2) ||
1565
- (O1 == HintO2 && O2 == HintO1)) &&
1566
- isValidAssumeForContext (Assume, CtxI, DT))
1567
- return AliasResult::NoAlias;
1568
- }
1551
+ AssumeInst *Assume = cast<AssumeInst>(Elem);
1552
+ OperandBundleUse OBU = Assume->getOperandBundleAt (Elem.Index );
1553
+ if (OBU.getTagName () == " separate_storage" ) {
1554
+ assert (OBU.Inputs .size () == 2 );
1555
+ const Value *Hint1 = OBU.Inputs [0 ].get ();
1556
+ const Value *Hint2 = OBU.Inputs [1 ].get ();
1557
+ // This is often a no-op; instcombine rewrites this for us. No-op
1558
+ // getUnderlyingObject calls are fast, though.
1559
+ const Value *HintO1 = getUnderlyingObject (Hint1);
1560
+ const Value *HintO2 = getUnderlyingObject (Hint2);
1561
+
1562
+ if (((O1 == HintO1 && O2 == HintO2) ||
1563
+ (O1 == HintO2 && O2 == HintO1)) &&
1564
+ isValidAssumeForContext (Assume, CtxI, DT))
1565
+ return AliasResult::NoAlias;
1569
1566
}
1570
1567
}
1571
1568
}
0 commit comments