@@ -1001,7 +1001,7 @@ SCEVUse ScalarEvolution::getLosslessPtrToIntExpr(SCEVUse Op, unsigned Depth) {
10011001 // What would be an ID for such a SCEV cast expression?
10021002 FoldingSetNodeID ID;
10031003 ID.AddInteger(scPtrToInt);
1004- ID.AddPointer(Op);
1004+ ID.AddPointer(Op.getRawPointer() );
10051005
10061006 void *IP = nullptr;
10071007
@@ -1132,7 +1132,7 @@ SCEVUse ScalarEvolution::getTruncateExpr(SCEVUse Op, Type *Ty, unsigned Depth) {
11321132
11331133 FoldingSetNodeID ID;
11341134 ID.AddInteger(scTruncate);
1135- ID.AddPointer(Op);
1135+ ID.AddPointer(Op.getRawPointer() );
11361136 ID.AddPointer(Ty);
11371137 void *IP = nullptr;
11381138 if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
@@ -1453,8 +1453,8 @@ bool ScalarEvolution::proveNoWrapByVaryingStart(SCEVUse Start, SCEVUse Step,
14531453
14541454 FoldingSetNodeID ID;
14551455 ID.AddInteger(scAddRecExpr);
1456- ID.AddPointer(PreStart);
1457- ID.AddPointer(Step);
1456+ ID.AddPointer(PreStart.getRawPointer() );
1457+ ID.AddPointer(Step.getRawPointer() );
14581458 ID.AddPointer(L);
14591459 void *IP = nullptr;
14601460 const auto *PreAR =
@@ -1573,7 +1573,7 @@ SCEVUse ScalarEvolution::getZeroExtendExprImpl(SCEVUse Op, Type *Ty,
15731573 // computed a SCEV for this Op and Ty.
15741574 FoldingSetNodeID ID;
15751575 ID.AddInteger(scZeroExtend);
1576- ID.AddPointer(Op);
1576+ ID.AddPointer(Op.getRawPointer() );
15771577 ID.AddPointer(Ty);
15781578 void *IP = nullptr;
15791579 if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
@@ -1914,7 +1914,7 @@ SCEVUse ScalarEvolution::getSignExtendExprImpl(SCEVUse Op, Type *Ty,
19141914 // computed a SCEV for this Op and Ty.
19151915 FoldingSetNodeID ID;
19161916 ID.AddInteger(scSignExtend);
1917- ID.AddPointer(Op);
1917+ ID.AddPointer(Op.getRawPointer() );
19181918 ID.AddPointer(Ty);
19191919 void *IP = nullptr;
19201920 if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
@@ -2220,7 +2220,7 @@ SCEVUse ScalarEvolution::getAnyExtendExpr(SCEVUse Op, Type *Ty) {
22202220/// may be exposed. This helps getAddRecExpr short-circuit extra work in
22212221/// the common case where no interesting opportunities are present, and
22222222/// is also used as a check to avoid infinite recursion.
2223- static bool CollectAddOperandsWithScales(DenseMap<const SCEV * , APInt> &M,
2223+ static bool CollectAddOperandsWithScales(DenseMap<SCEVUse , APInt> &M,
22242224 SmallVectorImpl<SCEVUse> &NewOps,
22252225 APInt &AccumulatedConstant,
22262226 ArrayRef<SCEVUse> Ops,
@@ -2268,7 +2268,7 @@ static bool CollectAddOperandsWithScales(DenseMap<const SCEV *, APInt> &M,
22682268 }
22692269 } else {
22702270 // An ordinary operand. Update the map.
2271- std::pair<DenseMap<const SCEV * , APInt>::iterator, bool> Pair =
2271+ std::pair<DenseMap<SCEVUse , APInt>::iterator, bool> Pair =
22722272 M.insert({Ops[i], Scale});
22732273 if (Pair.second) {
22742274 NewOps.push_back(Pair.first->first);
@@ -2740,7 +2740,7 @@ SCEVUse ScalarEvolution::getAddExpr(SmallVectorImpl<SCEVUse> &Ops,
27402740 // operands multiplied by constant values.
27412741 if (Idx < Ops.size() && isa<SCEVMulExpr>(Ops[Idx])) {
27422742 uint64_t BitWidth = getTypeSizeInBits(Ty);
2743- DenseMap<const SCEV * , APInt> M;
2743+ DenseMap<SCEVUse , APInt> M;
27442744 SmallVector<SCEVUse, 8> NewOps;
27452745 APInt AccumulatedConstant(BitWidth, 0);
27462746 if (CollectAddOperandsWithScales(M, NewOps, AccumulatedConstant,
@@ -2977,7 +2977,7 @@ SCEVUse ScalarEvolution::getOrCreateAddExpr(ArrayRef<SCEVUse> Ops,
29772977 FoldingSetNodeID ID;
29782978 ID.AddInteger(scAddExpr);
29792979 for (SCEVUse Op : Ops)
2980- ID.AddPointer(Op);
2980+ ID.AddPointer(Op.getRawPointer() );
29812981 void *IP = nullptr;
29822982 SCEVAddExpr *S =
29832983 static_cast<SCEVAddExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP));
@@ -2999,7 +2999,7 @@ SCEVUse ScalarEvolution::getOrCreateAddRecExpr(ArrayRef<SCEVUse> Ops,
29992999 FoldingSetNodeID ID;
30003000 ID.AddInteger(scAddRecExpr);
30013001 for (SCEVUse Op : Ops)
3002- ID.AddPointer(Op);
3002+ ID.AddPointer(Op.getRawPointer() );
30033003 ID.AddPointer(L);
30043004 void *IP = nullptr;
30053005 SCEVAddRecExpr *S =
@@ -3022,7 +3022,7 @@ SCEVUse ScalarEvolution::getOrCreateMulExpr(ArrayRef<SCEVUse> Ops,
30223022 FoldingSetNodeID ID;
30233023 ID.AddInteger(scMulExpr);
30243024 for (SCEVUse Op : Ops)
3025- ID.AddPointer(Op);
3025+ ID.AddPointer(Op.getRawPointer() );
30263026 void *IP = nullptr;
30273027 SCEVMulExpr *S =
30283028 static_cast<SCEVMulExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP));
@@ -3422,8 +3422,8 @@ SCEVUse ScalarEvolution::getUDivExpr(SCEVUse LHS, SCEVUse RHS) {
34223422
34233423 FoldingSetNodeID ID;
34243424 ID.AddInteger(scUDivExpr);
3425- ID.AddPointer(LHS);
3426- ID.AddPointer(RHS);
3425+ ID.AddPointer(LHS.getRawPointer() );
3426+ ID.AddPointer(RHS.getRawPointer() );
34273427 void *IP = nullptr;
34283428 if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
34293429 return S;
@@ -3489,8 +3489,8 @@ SCEVUse ScalarEvolution::getUDivExpr(SCEVUse LHS, SCEVUse RHS) {
34893489 // already cached.
34903490 ID.clear();
34913491 ID.AddInteger(scUDivExpr);
3492- ID.AddPointer(LHS);
3493- ID.AddPointer(RHS);
3492+ ID.AddPointer(LHS.getRawPointer() );
3493+ ID.AddPointer(RHS.getRawPointer() );
34943494 IP = nullptr;
34953495 if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
34963496 return S;
@@ -3824,7 +3824,7 @@ SCEV *ScalarEvolution::findExistingSCEVInCache(SCEVTypes SCEVType,
38243824 FoldingSetNodeID ID;
38253825 ID.AddInteger(SCEVType);
38263826 for (SCEVUse Op : Ops)
3827- ID.AddPointer(Op);
3827+ ID.AddPointer(Op.getRawPointer() );
38283828 void *IP = nullptr;
38293829 return UniqueSCEVs.FindNodeOrInsertPos(ID, IP);
38303830}
@@ -3966,8 +3966,8 @@ SCEVUse ScalarEvolution::getMinMaxExpr(SCEVTypes Kind,
39663966 // already have one, otherwise create a new one.
39673967 FoldingSetNodeID ID;
39683968 ID.AddInteger(Kind);
3969- for (const SCEV * Op : Ops)
3970- ID.AddPointer(Op);
3969+ for (SCEVUse Op : Ops)
3970+ ID.AddPointer(Op.getRawPointer() );
39713971 void *IP = nullptr;
39723972 SCEVUse ExistingSCEV = UniqueSCEVs.FindNodeOrInsertPos(ID, IP);
39733973 if (ExistingSCEV)
@@ -4353,8 +4353,8 @@ ScalarEvolution::getSequentialMinMaxExpr(SCEVTypes Kind,
43534353 // already have one, otherwise create a new one.
43544354 FoldingSetNodeID ID;
43554355 ID.AddInteger(Kind);
4356- for (const SCEV * Op : Ops)
4357- ID.AddPointer(Op);
4356+ for (SCEVUse Op : Ops)
4357+ ID.AddPointer(Op.getRawPointer() );
43584358 void *IP = nullptr;
43594359 SCEVUse ExistingSCEV = UniqueSCEVs.FindNodeOrInsertPos(ID, IP);
43604360 if (ExistingSCEV)
@@ -14547,8 +14547,8 @@ ScalarEvolution::getComparePredicate(const ICmpInst::Predicate Pred,
1454714547 // Unique this node based on the arguments
1454814548 ID.AddInteger(SCEVPredicate::P_Compare);
1454914549 ID.AddInteger(Pred);
14550- ID.AddPointer(LHS);
14551- ID.AddPointer(RHS);
14550+ ID.AddPointer(LHS.getRawPointer() );
14551+ ID.AddPointer(RHS.getRawPointer() );
1455214552 void *IP = nullptr;
1455314553 if (const auto *S = UniquePreds.FindNodeOrInsertPos(ID, IP))
1455414554 return S;
@@ -14564,6 +14564,7 @@ const SCEVPredicate *ScalarEvolution::getWrapPredicate(
1456414564 FoldingSetNodeID ID;
1456514565 // Unique this node based on the arguments
1456614566 ID.AddInteger(SCEVPredicate::P_Wrap);
14567+ // TODO: Use SCEVUse
1456714568 ID.AddPointer(AR);
1456814569 ID.AddInteger(AddedFlags);
1456914570 void *IP = nullptr;
0 commit comments