@@ -1001,7 +1001,7 @@ SCEVUse ScalarEvolution::getLosslessPtrToIntExpr(SCEVUse Op, unsigned Depth) {
1001
1001
// What would be an ID for such a SCEV cast expression?
1002
1002
FoldingSetNodeID ID;
1003
1003
ID.AddInteger(scPtrToInt);
1004
- ID.AddPointer(Op);
1004
+ ID.AddPointer(Op.getRawPointer() );
1005
1005
1006
1006
void *IP = nullptr;
1007
1007
@@ -1132,7 +1132,7 @@ SCEVUse ScalarEvolution::getTruncateExpr(SCEVUse Op, Type *Ty, unsigned Depth) {
1132
1132
1133
1133
FoldingSetNodeID ID;
1134
1134
ID.AddInteger(scTruncate);
1135
- ID.AddPointer(Op);
1135
+ ID.AddPointer(Op.getRawPointer() );
1136
1136
ID.AddPointer(Ty);
1137
1137
void *IP = nullptr;
1138
1138
if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
@@ -1453,8 +1453,8 @@ bool ScalarEvolution::proveNoWrapByVaryingStart(SCEVUse Start, SCEVUse Step,
1453
1453
1454
1454
FoldingSetNodeID ID;
1455
1455
ID.AddInteger(scAddRecExpr);
1456
- ID.AddPointer(PreStart);
1457
- ID.AddPointer(Step);
1456
+ ID.AddPointer(PreStart.getRawPointer() );
1457
+ ID.AddPointer(Step.getRawPointer() );
1458
1458
ID.AddPointer(L);
1459
1459
void *IP = nullptr;
1460
1460
const auto *PreAR =
@@ -1573,7 +1573,7 @@ SCEVUse ScalarEvolution::getZeroExtendExprImpl(SCEVUse Op, Type *Ty,
1573
1573
// computed a SCEV for this Op and Ty.
1574
1574
FoldingSetNodeID ID;
1575
1575
ID.AddInteger(scZeroExtend);
1576
- ID.AddPointer(Op);
1576
+ ID.AddPointer(Op.getRawPointer() );
1577
1577
ID.AddPointer(Ty);
1578
1578
void *IP = nullptr;
1579
1579
if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
@@ -1914,7 +1914,7 @@ SCEVUse ScalarEvolution::getSignExtendExprImpl(SCEVUse Op, Type *Ty,
1914
1914
// computed a SCEV for this Op and Ty.
1915
1915
FoldingSetNodeID ID;
1916
1916
ID.AddInteger(scSignExtend);
1917
- ID.AddPointer(Op);
1917
+ ID.AddPointer(Op.getRawPointer() );
1918
1918
ID.AddPointer(Ty);
1919
1919
void *IP = nullptr;
1920
1920
if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
@@ -2220,7 +2220,7 @@ SCEVUse ScalarEvolution::getAnyExtendExpr(SCEVUse Op, Type *Ty) {
2220
2220
/// may be exposed. This helps getAddRecExpr short-circuit extra work in
2221
2221
/// the common case where no interesting opportunities are present, and
2222
2222
/// 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,
2224
2224
SmallVectorImpl<SCEVUse> &NewOps,
2225
2225
APInt &AccumulatedConstant,
2226
2226
ArrayRef<SCEVUse> Ops,
@@ -2268,7 +2268,7 @@ static bool CollectAddOperandsWithScales(DenseMap<const SCEV *, APInt> &M,
2268
2268
}
2269
2269
} else {
2270
2270
// 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 =
2272
2272
M.insert({Ops[i], Scale});
2273
2273
if (Pair.second) {
2274
2274
NewOps.push_back(Pair.first->first);
@@ -2740,7 +2740,7 @@ SCEVUse ScalarEvolution::getAddExpr(SmallVectorImpl<SCEVUse> &Ops,
2740
2740
// operands multiplied by constant values.
2741
2741
if (Idx < Ops.size() && isa<SCEVMulExpr>(Ops[Idx])) {
2742
2742
uint64_t BitWidth = getTypeSizeInBits(Ty);
2743
- DenseMap<const SCEV * , APInt> M;
2743
+ DenseMap<SCEVUse , APInt> M;
2744
2744
SmallVector<SCEVUse, 8> NewOps;
2745
2745
APInt AccumulatedConstant(BitWidth, 0);
2746
2746
if (CollectAddOperandsWithScales(M, NewOps, AccumulatedConstant,
@@ -2977,7 +2977,7 @@ SCEVUse ScalarEvolution::getOrCreateAddExpr(ArrayRef<SCEVUse> Ops,
2977
2977
FoldingSetNodeID ID;
2978
2978
ID.AddInteger(scAddExpr);
2979
2979
for (SCEVUse Op : Ops)
2980
- ID.AddPointer(Op);
2980
+ ID.AddPointer(Op.getRawPointer() );
2981
2981
void *IP = nullptr;
2982
2982
SCEVAddExpr *S =
2983
2983
static_cast<SCEVAddExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP));
@@ -2999,7 +2999,7 @@ SCEVUse ScalarEvolution::getOrCreateAddRecExpr(ArrayRef<SCEVUse> Ops,
2999
2999
FoldingSetNodeID ID;
3000
3000
ID.AddInteger(scAddRecExpr);
3001
3001
for (SCEVUse Op : Ops)
3002
- ID.AddPointer(Op);
3002
+ ID.AddPointer(Op.getRawPointer() );
3003
3003
ID.AddPointer(L);
3004
3004
void *IP = nullptr;
3005
3005
SCEVAddRecExpr *S =
@@ -3022,7 +3022,7 @@ SCEVUse ScalarEvolution::getOrCreateMulExpr(ArrayRef<SCEVUse> Ops,
3022
3022
FoldingSetNodeID ID;
3023
3023
ID.AddInteger(scMulExpr);
3024
3024
for (SCEVUse Op : Ops)
3025
- ID.AddPointer(Op);
3025
+ ID.AddPointer(Op.getRawPointer() );
3026
3026
void *IP = nullptr;
3027
3027
SCEVMulExpr *S =
3028
3028
static_cast<SCEVMulExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP));
@@ -3422,8 +3422,8 @@ SCEVUse ScalarEvolution::getUDivExpr(SCEVUse LHS, SCEVUse RHS) {
3422
3422
3423
3423
FoldingSetNodeID ID;
3424
3424
ID.AddInteger(scUDivExpr);
3425
- ID.AddPointer(LHS);
3426
- ID.AddPointer(RHS);
3425
+ ID.AddPointer(LHS.getRawPointer() );
3426
+ ID.AddPointer(RHS.getRawPointer() );
3427
3427
void *IP = nullptr;
3428
3428
if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
3429
3429
return S;
@@ -3489,8 +3489,8 @@ SCEVUse ScalarEvolution::getUDivExpr(SCEVUse LHS, SCEVUse RHS) {
3489
3489
// already cached.
3490
3490
ID.clear();
3491
3491
ID.AddInteger(scUDivExpr);
3492
- ID.AddPointer(LHS);
3493
- ID.AddPointer(RHS);
3492
+ ID.AddPointer(LHS.getRawPointer() );
3493
+ ID.AddPointer(RHS.getRawPointer() );
3494
3494
IP = nullptr;
3495
3495
if (SCEVUse S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
3496
3496
return S;
@@ -3824,7 +3824,7 @@ SCEV *ScalarEvolution::findExistingSCEVInCache(SCEVTypes SCEVType,
3824
3824
FoldingSetNodeID ID;
3825
3825
ID.AddInteger(SCEVType);
3826
3826
for (SCEVUse Op : Ops)
3827
- ID.AddPointer(Op);
3827
+ ID.AddPointer(Op.getRawPointer() );
3828
3828
void *IP = nullptr;
3829
3829
return UniqueSCEVs.FindNodeOrInsertPos(ID, IP);
3830
3830
}
@@ -3966,8 +3966,8 @@ SCEVUse ScalarEvolution::getMinMaxExpr(SCEVTypes Kind,
3966
3966
// already have one, otherwise create a new one.
3967
3967
FoldingSetNodeID ID;
3968
3968
ID.AddInteger(Kind);
3969
- for (const SCEV * Op : Ops)
3970
- ID.AddPointer(Op);
3969
+ for (SCEVUse Op : Ops)
3970
+ ID.AddPointer(Op.getRawPointer() );
3971
3971
void *IP = nullptr;
3972
3972
SCEVUse ExistingSCEV = UniqueSCEVs.FindNodeOrInsertPos(ID, IP);
3973
3973
if (ExistingSCEV)
@@ -4353,8 +4353,8 @@ ScalarEvolution::getSequentialMinMaxExpr(SCEVTypes Kind,
4353
4353
// already have one, otherwise create a new one.
4354
4354
FoldingSetNodeID ID;
4355
4355
ID.AddInteger(Kind);
4356
- for (const SCEV * Op : Ops)
4357
- ID.AddPointer(Op);
4356
+ for (SCEVUse Op : Ops)
4357
+ ID.AddPointer(Op.getRawPointer() );
4358
4358
void *IP = nullptr;
4359
4359
SCEVUse ExistingSCEV = UniqueSCEVs.FindNodeOrInsertPos(ID, IP);
4360
4360
if (ExistingSCEV)
@@ -14547,8 +14547,8 @@ ScalarEvolution::getComparePredicate(const ICmpInst::Predicate Pred,
14547
14547
// Unique this node based on the arguments
14548
14548
ID.AddInteger(SCEVPredicate::P_Compare);
14549
14549
ID.AddInteger(Pred);
14550
- ID.AddPointer(LHS);
14551
- ID.AddPointer(RHS);
14550
+ ID.AddPointer(LHS.getRawPointer() );
14551
+ ID.AddPointer(RHS.getRawPointer() );
14552
14552
void *IP = nullptr;
14553
14553
if (const auto *S = UniquePreds.FindNodeOrInsertPos(ID, IP))
14554
14554
return S;
@@ -14564,6 +14564,7 @@ const SCEVPredicate *ScalarEvolution::getWrapPredicate(
14564
14564
FoldingSetNodeID ID;
14565
14565
// Unique this node based on the arguments
14566
14566
ID.AddInteger(SCEVPredicate::P_Wrap);
14567
+ // TODO: Use SCEVUse
14567
14568
ID.AddPointer(AR);
14568
14569
ID.AddInteger(AddedFlags);
14569
14570
void *IP = nullptr;
0 commit comments