@@ -1044,7 +1044,7 @@ SCEVUse ScalarEvolution::getLosslessPtrToIntExpr(SCEVUse Op, unsigned Depth) {
10441044 // What would be an ID for such a SCEV cast expression?
10451045 FoldingSetNodeID ID;
10461046 ID.AddInteger(scPtrToInt);
1047- ID.AddPointer(Op);
1047+ ID.AddPointer(Op.getRawPointer() );
10481048
10491049 void *IP = nullptr;
10501050
@@ -1175,7 +1175,7 @@ SCEVUse ScalarEvolution::getTruncateExpr(SCEVUse Op, Type *Ty, unsigned Depth) {
11751175
11761176 FoldingSetNodeID ID;
11771177 ID.AddInteger(scTruncate);
1178- ID.AddPointer(Op);
1178+ ID.AddPointer(Op.getRawPointer() );
11791179 ID.AddPointer(Ty);
11801180 void *IP = nullptr;
11811181 if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
@@ -1496,8 +1496,8 @@ bool ScalarEvolution::proveNoWrapByVaryingStart(SCEVUse Start, SCEVUse Step,
14961496
14971497 FoldingSetNodeID ID;
14981498 ID.AddInteger(scAddRecExpr);
1499- ID.AddPointer(PreStart);
1500- ID.AddPointer(Step);
1499+ ID.AddPointer(PreStart.getRawPointer() );
1500+ ID.AddPointer(Step.getRawPointer() );
15011501 ID.AddPointer(L);
15021502 void *IP = nullptr;
15031503 const auto *PreAR =
@@ -1616,7 +1616,7 @@ SCEVUse ScalarEvolution::getZeroExtendExprImpl(SCEVUse Op, Type *Ty,
16161616 // computed a SCEV for this Op and Ty.
16171617 FoldingSetNodeID ID;
16181618 ID.AddInteger(scZeroExtend);
1619- ID.AddPointer(Op);
1619+ ID.AddPointer(Op.getRawPointer() );
16201620 ID.AddPointer(Ty);
16211621 void *IP = nullptr;
16221622 if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
@@ -1957,7 +1957,7 @@ SCEVUse ScalarEvolution::getSignExtendExprImpl(SCEVUse Op, Type *Ty,
19571957 // computed a SCEV for this Op and Ty.
19581958 FoldingSetNodeID ID;
19591959 ID.AddInteger(scSignExtend);
1960- ID.AddPointer(Op);
1960+ ID.AddPointer(Op.getRawPointer() );
19611961 ID.AddPointer(Ty);
19621962 void *IP = nullptr;
19631963 if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
@@ -2265,7 +2265,7 @@ SCEVUse ScalarEvolution::getAnyExtendExpr(SCEVUse Op, Type *Ty) {
22652265/// is also used as a check to avoid infinite recursion.
22662266static bool
22672267CollectAddOperandsWithScales(SmallDenseMap<const SCEV *, APInt, 16> &M,
2268- SmallVectorImpl<const SCEV * > &NewOps,
2268+ SmallVectorImpl<SCEVUse > &NewOps,
22692269 APInt &AccumulatedConstant,
22702270 ArrayRef<SCEVUse> Ops, const APInt &Scale,
22712271 ScalarEvolution &SE) {
@@ -2311,7 +2311,7 @@ CollectAddOperandsWithScales(SmallDenseMap<const SCEV *, APInt, 16> &M,
23112311 }
23122312 } else {
23132313 // An ordinary operand. Update the map.
2314- std::pair<DenseMap<const SCEV * , APInt>::iterator, bool> Pair =
2314+ std::pair<DenseMap<SCEVUse , APInt>::iterator, bool> Pair =
23152315 M.insert({Ops[i], Scale});
23162316 if (Pair.second) {
23172317 NewOps.push_back(Pair.first->first);
@@ -2768,7 +2768,7 @@ SCEVUse ScalarEvolution::getAddExpr(SmallVectorImpl<SCEVUse> &Ops,
27682768 // operands multiplied by constant values.
27692769 if (Idx < Ops.size() && isa<SCEVMulExpr>(Ops[Idx])) {
27702770 uint64_t BitWidth = getTypeSizeInBits(Ty);
2771- SmallDenseMap<const SCEV * , APInt, 16> M;
2771+ SmallDenseMap<SCEVUse , APInt, 16> M;
27722772 SmallVector<SCEVUse, 8> NewOps;
27732773 APInt AccumulatedConstant(BitWidth, 0);
27742774 if (CollectAddOperandsWithScales(M, NewOps, AccumulatedConstant,
@@ -3005,7 +3005,7 @@ SCEVUse ScalarEvolution::getOrCreateAddExpr(ArrayRef<SCEVUse> Ops,
30053005 FoldingSetNodeID ID;
30063006 ID.AddInteger(scAddExpr);
30073007 for (SCEVUse Op : Ops)
3008- ID.AddPointer(Op);
3008+ ID.AddPointer(Op.getRawPointer() );
30093009 void *IP = nullptr;
30103010 SCEVAddExpr *S =
30113011 static_cast<SCEVAddExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP));
@@ -3027,7 +3027,7 @@ SCEVUse ScalarEvolution::getOrCreateAddRecExpr(ArrayRef<SCEVUse> Ops,
30273027 FoldingSetNodeID ID;
30283028 ID.AddInteger(scAddRecExpr);
30293029 for (SCEVUse Op : Ops)
3030- ID.AddPointer(Op);
3030+ ID.AddPointer(Op.getRawPointer() );
30313031 ID.AddPointer(L);
30323032 void *IP = nullptr;
30333033 SCEVAddRecExpr *S =
@@ -3050,7 +3050,7 @@ SCEVUse ScalarEvolution::getOrCreateMulExpr(ArrayRef<SCEVUse> Ops,
30503050 FoldingSetNodeID ID;
30513051 ID.AddInteger(scMulExpr);
30523052 for (SCEVUse Op : Ops)
3053- ID.AddPointer(Op);
3053+ ID.AddPointer(Op.getRawPointer() );
30543054 void *IP = nullptr;
30553055 SCEVMulExpr *S =
30563056 static_cast<SCEVMulExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP));
@@ -3429,8 +3429,8 @@ SCEVUse ScalarEvolution::getUDivExpr(SCEVUse LHS, SCEVUse RHS) {
34293429
34303430 FoldingSetNodeID ID;
34313431 ID.AddInteger(scUDivExpr);
3432- ID.AddPointer(LHS);
3433- ID.AddPointer(RHS);
3432+ ID.AddPointer(LHS.getRawPointer() );
3433+ ID.AddPointer(RHS.getRawPointer() );
34343434 void *IP = nullptr;
34353435 if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
34363436 return S;
@@ -3496,8 +3496,8 @@ SCEVUse ScalarEvolution::getUDivExpr(SCEVUse LHS, SCEVUse RHS) {
34963496 // already cached.
34973497 ID.clear();
34983498 ID.AddInteger(scUDivExpr);
3499- ID.AddPointer(LHS);
3500- ID.AddPointer(RHS);
3499+ ID.AddPointer(LHS.getRawPointer() );
3500+ ID.AddPointer(RHS.getRawPointer() );
35013501 IP = nullptr;
35023502 if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
35033503 return S;
@@ -3847,7 +3847,7 @@ SCEV *ScalarEvolution::findExistingSCEVInCache(SCEVTypes SCEVType,
38473847 FoldingSetNodeID ID;
38483848 ID.AddInteger(SCEVType);
38493849 for (SCEVUse Op : Ops)
3850- ID.AddPointer(Op);
3850+ ID.AddPointer(Op.getRawPointer() );
38513851 void *IP = nullptr;
38523852 return UniqueSCEVs.FindNodeOrInsertPos(ID, IP);
38533853}
@@ -3974,8 +3974,8 @@ SCEVUse ScalarEvolution::getMinMaxExpr(SCEVTypes Kind,
39743974 // already have one, otherwise create a new one.
39753975 FoldingSetNodeID ID;
39763976 ID.AddInteger(Kind);
3977- for (const SCEV * Op : Ops)
3978- ID.AddPointer(Op);
3977+ for (SCEVUse Op : Ops)
3978+ ID.AddPointer(Op.getRawPointer() );
39793979 void *IP = nullptr;
39803980 SCEVUse ExistingSCEV = UniqueSCEVs.FindNodeOrInsertPos(ID, IP);
39813981 if (ExistingSCEV)
@@ -4359,8 +4359,8 @@ ScalarEvolution::getSequentialMinMaxExpr(SCEVTypes Kind,
43594359 // already have one, otherwise create a new one.
43604360 FoldingSetNodeID ID;
43614361 ID.AddInteger(Kind);
4362- for (const SCEV * Op : Ops)
4363- ID.AddPointer(Op);
4362+ for (SCEVUse Op : Ops)
4363+ ID.AddPointer(Op.getRawPointer() );
43644364 void *IP = nullptr;
43654365 SCEVUse ExistingSCEV = UniqueSCEVs.FindNodeOrInsertPos(ID, IP);
43664366 if (ExistingSCEV)
@@ -14685,8 +14685,8 @@ ScalarEvolution::getComparePredicate(const ICmpInst::Predicate Pred,
1468514685 // Unique this node based on the arguments
1468614686 ID.AddInteger(SCEVPredicate::P_Compare);
1468714687 ID.AddInteger(Pred);
14688- ID.AddPointer(LHS);
14689- ID.AddPointer(RHS);
14688+ ID.AddPointer(LHS.getRawPointer() );
14689+ ID.AddPointer(RHS.getRawPointer() );
1469014690 void *IP = nullptr;
1469114691 if (const auto *S = UniquePreds.FindNodeOrInsertPos(ID, IP))
1469214692 return S;
@@ -14702,6 +14702,7 @@ const SCEVPredicate *ScalarEvolution::getWrapPredicate(
1470214702 FoldingSetNodeID ID;
1470314703 // Unique this node based on the arguments
1470414704 ID.AddInteger(SCEVPredicate::P_Wrap);
14705+ // TODO: Use SCEVUse
1470514706 ID.AddPointer(AR);
1470614707 ID.AddInteger(AddedFlags);
1470714708 void *IP = nullptr;
0 commit comments