@@ -1044,7 +1044,7 @@ SCEVUse ScalarEvolution::getLosslessPtrToIntExpr(SCEVUse Op, unsigned Depth) {
1044
1044
// What would be an ID for such a SCEV cast expression?
1045
1045
FoldingSetNodeID ID;
1046
1046
ID.AddInteger(scPtrToInt);
1047
- ID.AddPointer(Op);
1047
+ ID.AddPointer(Op.getRawPointer() );
1048
1048
1049
1049
void *IP = nullptr;
1050
1050
@@ -1175,7 +1175,7 @@ SCEVUse ScalarEvolution::getTruncateExpr(SCEVUse Op, Type *Ty, unsigned Depth) {
1175
1175
1176
1176
FoldingSetNodeID ID;
1177
1177
ID.AddInteger(scTruncate);
1178
- ID.AddPointer(Op);
1178
+ ID.AddPointer(Op.getRawPointer() );
1179
1179
ID.AddPointer(Ty);
1180
1180
void *IP = nullptr;
1181
1181
if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
@@ -1496,8 +1496,8 @@ bool ScalarEvolution::proveNoWrapByVaryingStart(SCEVUse Start, SCEVUse Step,
1496
1496
1497
1497
FoldingSetNodeID ID;
1498
1498
ID.AddInteger(scAddRecExpr);
1499
- ID.AddPointer(PreStart);
1500
- ID.AddPointer(Step);
1499
+ ID.AddPointer(PreStart.getRawPointer() );
1500
+ ID.AddPointer(Step.getRawPointer() );
1501
1501
ID.AddPointer(L);
1502
1502
void *IP = nullptr;
1503
1503
const auto *PreAR =
@@ -1615,7 +1615,7 @@ SCEVUse ScalarEvolution::getZeroExtendExprImpl(SCEVUse Op, Type *Ty,
1615
1615
// computed a SCEV for this Op and Ty.
1616
1616
FoldingSetNodeID ID;
1617
1617
ID.AddInteger(scZeroExtend);
1618
- ID.AddPointer(Op);
1618
+ ID.AddPointer(Op.getRawPointer() );
1619
1619
ID.AddPointer(Ty);
1620
1620
void *IP = nullptr;
1621
1621
if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
@@ -1956,7 +1956,7 @@ SCEVUse ScalarEvolution::getSignExtendExprImpl(SCEVUse Op, Type *Ty,
1956
1956
// computed a SCEV for this Op and Ty.
1957
1957
FoldingSetNodeID ID;
1958
1958
ID.AddInteger(scSignExtend);
1959
- ID.AddPointer(Op);
1959
+ ID.AddPointer(Op.getRawPointer() );
1960
1960
ID.AddPointer(Ty);
1961
1961
void *IP = nullptr;
1962
1962
if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
@@ -2264,7 +2264,7 @@ SCEVUse ScalarEvolution::getAnyExtendExpr(SCEVUse Op, Type *Ty) {
2264
2264
/// is also used as a check to avoid infinite recursion.
2265
2265
static bool
2266
2266
CollectAddOperandsWithScales(SmallDenseMap<const SCEV *, APInt, 16> &M,
2267
- SmallVectorImpl<const SCEV * > &NewOps,
2267
+ SmallVectorImpl<SCEVUse > &NewOps,
2268
2268
APInt &AccumulatedConstant,
2269
2269
ArrayRef<SCEVUse> Ops, const APInt &Scale,
2270
2270
ScalarEvolution &SE) {
@@ -2310,7 +2310,7 @@ CollectAddOperandsWithScales(SmallDenseMap<const SCEV *, APInt, 16> &M,
2310
2310
}
2311
2311
} else {
2312
2312
// An ordinary operand. Update the map.
2313
- std::pair<DenseMap<const SCEV * , APInt>::iterator, bool> Pair =
2313
+ std::pair<DenseMap<SCEVUse , APInt>::iterator, bool> Pair =
2314
2314
M.insert({Ops[i], Scale});
2315
2315
if (Pair.second) {
2316
2316
NewOps.push_back(Pair.first->first);
@@ -2767,7 +2767,7 @@ SCEVUse ScalarEvolution::getAddExpr(SmallVectorImpl<SCEVUse> &Ops,
2767
2767
// operands multiplied by constant values.
2768
2768
if (Idx < Ops.size() && isa<SCEVMulExpr>(Ops[Idx])) {
2769
2769
uint64_t BitWidth = getTypeSizeInBits(Ty);
2770
- SmallDenseMap<const SCEV * , APInt, 16> M;
2770
+ SmallDenseMap<SCEVUse , APInt, 16> M;
2771
2771
SmallVector<SCEVUse, 8> NewOps;
2772
2772
APInt AccumulatedConstant(BitWidth, 0);
2773
2773
if (CollectAddOperandsWithScales(M, NewOps, AccumulatedConstant,
@@ -3004,7 +3004,7 @@ SCEVUse ScalarEvolution::getOrCreateAddExpr(ArrayRef<SCEVUse> Ops,
3004
3004
FoldingSetNodeID ID;
3005
3005
ID.AddInteger(scAddExpr);
3006
3006
for (SCEVUse Op : Ops)
3007
- ID.AddPointer(Op);
3007
+ ID.AddPointer(Op.getRawPointer() );
3008
3008
void *IP = nullptr;
3009
3009
SCEVAddExpr *S =
3010
3010
static_cast<SCEVAddExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP));
@@ -3026,7 +3026,7 @@ SCEVUse ScalarEvolution::getOrCreateAddRecExpr(ArrayRef<SCEVUse> Ops,
3026
3026
FoldingSetNodeID ID;
3027
3027
ID.AddInteger(scAddRecExpr);
3028
3028
for (SCEVUse Op : Ops)
3029
- ID.AddPointer(Op);
3029
+ ID.AddPointer(Op.getRawPointer() );
3030
3030
ID.AddPointer(L);
3031
3031
void *IP = nullptr;
3032
3032
SCEVAddRecExpr *S =
@@ -3049,7 +3049,7 @@ SCEVUse ScalarEvolution::getOrCreateMulExpr(ArrayRef<SCEVUse> Ops,
3049
3049
FoldingSetNodeID ID;
3050
3050
ID.AddInteger(scMulExpr);
3051
3051
for (SCEVUse Op : Ops)
3052
- ID.AddPointer(Op);
3052
+ ID.AddPointer(Op.getRawPointer() );
3053
3053
void *IP = nullptr;
3054
3054
SCEVMulExpr *S =
3055
3055
static_cast<SCEVMulExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP));
@@ -3428,8 +3428,8 @@ SCEVUse ScalarEvolution::getUDivExpr(SCEVUse LHS, SCEVUse RHS) {
3428
3428
3429
3429
FoldingSetNodeID ID;
3430
3430
ID.AddInteger(scUDivExpr);
3431
- ID.AddPointer(LHS);
3432
- ID.AddPointer(RHS);
3431
+ ID.AddPointer(LHS.getRawPointer() );
3432
+ ID.AddPointer(RHS.getRawPointer() );
3433
3433
void *IP = nullptr;
3434
3434
if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
3435
3435
return S;
@@ -3495,8 +3495,8 @@ SCEVUse ScalarEvolution::getUDivExpr(SCEVUse LHS, SCEVUse RHS) {
3495
3495
// already cached.
3496
3496
ID.clear();
3497
3497
ID.AddInteger(scUDivExpr);
3498
- ID.AddPointer(LHS);
3499
- ID.AddPointer(RHS);
3498
+ ID.AddPointer(LHS.getRawPointer() );
3499
+ ID.AddPointer(RHS.getRawPointer() );
3500
3500
IP = nullptr;
3501
3501
if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
3502
3502
return S;
@@ -3846,7 +3846,7 @@ SCEV *ScalarEvolution::findExistingSCEVInCache(SCEVTypes SCEVType,
3846
3846
FoldingSetNodeID ID;
3847
3847
ID.AddInteger(SCEVType);
3848
3848
for (SCEVUse Op : Ops)
3849
- ID.AddPointer(Op);
3849
+ ID.AddPointer(Op.getRawPointer() );
3850
3850
void *IP = nullptr;
3851
3851
return UniqueSCEVs.FindNodeOrInsertPos(ID, IP);
3852
3852
}
@@ -3973,8 +3973,8 @@ SCEVUse ScalarEvolution::getMinMaxExpr(SCEVTypes Kind,
3973
3973
// already have one, otherwise create a new one.
3974
3974
FoldingSetNodeID ID;
3975
3975
ID.AddInteger(Kind);
3976
- for (const SCEV * Op : Ops)
3977
- ID.AddPointer(Op);
3976
+ for (SCEVUse Op : Ops)
3977
+ ID.AddPointer(Op.getRawPointer() );
3978
3978
void *IP = nullptr;
3979
3979
SCEVUse ExistingSCEV = UniqueSCEVs.FindNodeOrInsertPos(ID, IP);
3980
3980
if (ExistingSCEV)
@@ -4358,8 +4358,8 @@ ScalarEvolution::getSequentialMinMaxExpr(SCEVTypes Kind,
4358
4358
// already have one, otherwise create a new one.
4359
4359
FoldingSetNodeID ID;
4360
4360
ID.AddInteger(Kind);
4361
- for (const SCEV * Op : Ops)
4362
- ID.AddPointer(Op);
4361
+ for (SCEVUse Op : Ops)
4362
+ ID.AddPointer(Op.getRawPointer() );
4363
4363
void *IP = nullptr;
4364
4364
SCEVUse ExistingSCEV = UniqueSCEVs.FindNodeOrInsertPos(ID, IP);
4365
4365
if (ExistingSCEV)
@@ -14684,8 +14684,8 @@ ScalarEvolution::getComparePredicate(const ICmpInst::Predicate Pred,
14684
14684
// Unique this node based on the arguments
14685
14685
ID.AddInteger(SCEVPredicate::P_Compare);
14686
14686
ID.AddInteger(Pred);
14687
- ID.AddPointer(LHS);
14688
- ID.AddPointer(RHS);
14687
+ ID.AddPointer(LHS.getRawPointer() );
14688
+ ID.AddPointer(RHS.getRawPointer() );
14689
14689
void *IP = nullptr;
14690
14690
if (const auto *S = UniquePreds.FindNodeOrInsertPos(ID, IP))
14691
14691
return S;
@@ -14701,6 +14701,7 @@ const SCEVPredicate *ScalarEvolution::getWrapPredicate(
14701
14701
FoldingSetNodeID ID;
14702
14702
// Unique this node based on the arguments
14703
14703
ID.AddInteger(SCEVPredicate::P_Wrap);
14704
+ // TODO: Use SCEVUse
14704
14705
ID.AddPointer(AR);
14705
14706
ID.AddInteger(AddedFlags);
14706
14707
void *IP = nullptr;
0 commit comments