@@ -891,20 +891,20 @@ TEST(ConstantRange, MakeSatisfyingICmpRegion) {
891
891
ConstantRange (APInt (8 , 4 ), APInt (8 , -128 )));
892
892
}
893
893
894
- TEST (ConstantRange, MakeExactNoWrapRegion ) {
894
+ TEST (ConstantRange, MakeGuaranteedNoWrapRegion ) {
895
895
const int IntMin4Bits = 8 ;
896
896
const int IntMax4Bits = 7 ;
897
897
typedef OverflowingBinaryOperator OBO;
898
898
899
899
for (int Const : {0 , -1 , -2 , 1 , 2 , IntMin4Bits, IntMax4Bits}) {
900
900
APInt C (4 , Const, true /* = isSigned */ );
901
901
902
- auto NUWRegion = ConstantRange::makeExactNoWrapRegion (
902
+ auto NUWRegion = ConstantRange::makeGuaranteedNoWrapRegion (
903
903
Instruction::Add, C, OBO::NoUnsignedWrap);
904
904
905
905
EXPECT_FALSE (NUWRegion.isEmptySet ());
906
906
907
- auto NSWRegion = ConstantRange::makeExactNoWrapRegion (
907
+ auto NSWRegion = ConstantRange::makeGuaranteedNoWrapRegion (
908
908
Instruction::Add, C, OBO::NoSignedWrap);
909
909
910
910
EXPECT_FALSE (NSWRegion.isEmptySet ());
@@ -927,12 +927,12 @@ TEST(ConstantRange, MakeExactNoWrapRegion) {
927
927
for (int Const : {0 , -1 , -2 , 1 , 2 , IntMin4Bits, IntMax4Bits}) {
928
928
APInt C (4 , Const, true /* = isSigned */ );
929
929
930
- auto NUWRegion = ConstantRange::makeExactNoWrapRegion (
930
+ auto NUWRegion = ConstantRange::makeGuaranteedNoWrapRegion (
931
931
Instruction::Sub, C, OBO::NoUnsignedWrap);
932
932
933
933
EXPECT_FALSE (NUWRegion.isEmptySet ());
934
934
935
- auto NSWRegion = ConstantRange::makeExactNoWrapRegion (
935
+ auto NSWRegion = ConstantRange::makeGuaranteedNoWrapRegion (
936
936
Instruction::Sub, C, OBO::NoSignedWrap);
937
937
938
938
EXPECT_FALSE (NSWRegion.isEmptySet ());
@@ -952,102 +952,102 @@ TEST(ConstantRange, MakeExactNoWrapRegion) {
952
952
}
953
953
}
954
954
955
- auto NSWForAllValues = ConstantRange::makeExactNoWrapRegion (
955
+ auto NSWForAllValues = ConstantRange::makeGuaranteedNoWrapRegion (
956
956
Instruction::Add, ConstantRange (32 , /* isFullSet = */ true ),
957
957
OBO::NoSignedWrap);
958
958
EXPECT_TRUE (NSWForAllValues.isSingleElement () &&
959
959
NSWForAllValues.getSingleElement ()->isMinValue ());
960
960
961
- NSWForAllValues = ConstantRange::makeExactNoWrapRegion (
961
+ NSWForAllValues = ConstantRange::makeGuaranteedNoWrapRegion (
962
962
Instruction::Sub, ConstantRange (32 , /* isFullSet = */ true ),
963
963
OBO::NoSignedWrap);
964
964
EXPECT_TRUE (NSWForAllValues.isSingleElement () &&
965
965
NSWForAllValues.getSingleElement ()->isMaxValue ());
966
966
967
- auto NUWForAllValues = ConstantRange::makeExactNoWrapRegion (
967
+ auto NUWForAllValues = ConstantRange::makeGuaranteedNoWrapRegion (
968
968
Instruction::Add, ConstantRange (32 , /* isFullSet = */ true ),
969
969
OBO::NoUnsignedWrap);
970
970
EXPECT_TRUE (NUWForAllValues.isSingleElement () &&
971
971
NUWForAllValues.getSingleElement ()->isMinValue ());
972
972
973
- NUWForAllValues = ConstantRange::makeExactNoWrapRegion (
973
+ NUWForAllValues = ConstantRange::makeGuaranteedNoWrapRegion (
974
974
Instruction::Sub, ConstantRange (32 , /* isFullSet = */ true ),
975
975
OBO::NoUnsignedWrap);
976
976
EXPECT_TRUE (NUWForAllValues.isSingleElement () &&
977
977
NUWForAllValues.getSingleElement ()->isMaxValue ());
978
978
979
- EXPECT_TRUE (ConstantRange::makeExactNoWrapRegion (
979
+ EXPECT_TRUE (ConstantRange::makeGuaranteedNoWrapRegion (
980
980
Instruction::Add, APInt (32 , 0 ), OBO::NoUnsignedWrap).isFullSet ());
981
- EXPECT_TRUE (ConstantRange::makeExactNoWrapRegion (
981
+ EXPECT_TRUE (ConstantRange::makeGuaranteedNoWrapRegion (
982
982
Instruction::Add, APInt (32 , 0 ), OBO::NoSignedWrap).isFullSet ());
983
- EXPECT_TRUE (ConstantRange::makeExactNoWrapRegion (
983
+ EXPECT_TRUE (ConstantRange::makeGuaranteedNoWrapRegion (
984
984
Instruction::Sub, APInt (32 , 0 ), OBO::NoUnsignedWrap).isFullSet ());
985
- EXPECT_TRUE (ConstantRange::makeExactNoWrapRegion (
985
+ EXPECT_TRUE (ConstantRange::makeGuaranteedNoWrapRegion (
986
986
Instruction::Sub, APInt (32 , 0 ), OBO::NoSignedWrap).isFullSet ());
987
987
988
988
ConstantRange OneToFive (APInt (32 , 1 ), APInt (32 , 6 ));
989
- EXPECT_EQ (ConstantRange::makeExactNoWrapRegion (
989
+ EXPECT_EQ (ConstantRange::makeGuaranteedNoWrapRegion (
990
990
Instruction::Add, OneToFive, OBO::NoSignedWrap),
991
991
ConstantRange (APInt::getSignedMinValue (32 ),
992
992
APInt::getSignedMaxValue (32 ) - 4 ));
993
- EXPECT_EQ (ConstantRange::makeExactNoWrapRegion (
993
+ EXPECT_EQ (ConstantRange::makeGuaranteedNoWrapRegion (
994
994
Instruction::Add, OneToFive, OBO::NoUnsignedWrap),
995
995
ConstantRange (APInt::getMinValue (32 ), APInt::getMinValue (32 ) - 5 ));
996
- EXPECT_EQ (ConstantRange::makeExactNoWrapRegion (
996
+ EXPECT_EQ (ConstantRange::makeGuaranteedNoWrapRegion (
997
997
Instruction::Sub, OneToFive, OBO::NoSignedWrap),
998
998
ConstantRange (APInt::getSignedMinValue (32 ) + 5 ,
999
999
APInt::getSignedMinValue (32 )));
1000
- EXPECT_EQ (ConstantRange::makeExactNoWrapRegion (
1000
+ EXPECT_EQ (ConstantRange::makeGuaranteedNoWrapRegion (
1001
1001
Instruction::Sub, OneToFive, OBO::NoUnsignedWrap),
1002
1002
ConstantRange (APInt::getMinValue (32 ) + 5 , APInt::getMinValue (32 )));
1003
1003
1004
1004
ConstantRange MinusFiveToMinusTwo (APInt (32 , -5 ), APInt (32 , -1 ));
1005
- EXPECT_EQ (ConstantRange::makeExactNoWrapRegion (
1005
+ EXPECT_EQ (ConstantRange::makeGuaranteedNoWrapRegion (
1006
1006
Instruction::Add, MinusFiveToMinusTwo, OBO::NoSignedWrap),
1007
1007
ConstantRange (APInt::getSignedMinValue (32 ) + 5 ,
1008
1008
APInt::getSignedMinValue (32 )));
1009
- EXPECT_EQ (ConstantRange::makeExactNoWrapRegion (
1009
+ EXPECT_EQ (ConstantRange::makeGuaranteedNoWrapRegion (
1010
1010
Instruction::Add, MinusFiveToMinusTwo, OBO::NoUnsignedWrap),
1011
1011
ConstantRange (APInt (32 , 0 ), APInt (32 , 2 )));
1012
- EXPECT_EQ (ConstantRange::makeExactNoWrapRegion (
1012
+ EXPECT_EQ (ConstantRange::makeGuaranteedNoWrapRegion (
1013
1013
Instruction::Sub, MinusFiveToMinusTwo, OBO::NoSignedWrap),
1014
1014
ConstantRange (APInt::getSignedMinValue (32 ),
1015
1015
APInt::getSignedMaxValue (32 ) - 4 ));
1016
- EXPECT_EQ (ConstantRange::makeExactNoWrapRegion (
1016
+ EXPECT_EQ (ConstantRange::makeGuaranteedNoWrapRegion (
1017
1017
Instruction::Sub, MinusFiveToMinusTwo, OBO::NoUnsignedWrap),
1018
1018
ConstantRange (APInt::getMaxValue (32 ) - 1 ,
1019
1019
APInt::getMinValue (32 )));
1020
1020
1021
1021
ConstantRange MinusOneToOne (APInt (32 , -1 ), APInt (32 , 2 ));
1022
- EXPECT_EQ (ConstantRange::makeExactNoWrapRegion (
1022
+ EXPECT_EQ (ConstantRange::makeGuaranteedNoWrapRegion (
1023
1023
Instruction::Add, MinusOneToOne, OBO::NoSignedWrap),
1024
1024
ConstantRange (APInt::getSignedMinValue (32 ) + 1 ,
1025
1025
APInt::getSignedMinValue (32 ) - 1 ));
1026
- EXPECT_EQ (ConstantRange::makeExactNoWrapRegion (
1026
+ EXPECT_EQ (ConstantRange::makeGuaranteedNoWrapRegion (
1027
1027
Instruction::Add, MinusOneToOne, OBO::NoUnsignedWrap),
1028
1028
ConstantRange (APInt (32 , 0 ), APInt (32 , 1 )));
1029
- EXPECT_EQ (ConstantRange::makeExactNoWrapRegion (
1029
+ EXPECT_EQ (ConstantRange::makeGuaranteedNoWrapRegion (
1030
1030
Instruction::Sub, MinusOneToOne, OBO::NoSignedWrap),
1031
1031
ConstantRange (APInt::getSignedMinValue (32 ) + 1 ,
1032
1032
APInt::getSignedMinValue (32 ) - 1 ));
1033
- EXPECT_EQ (ConstantRange::makeExactNoWrapRegion (
1033
+ EXPECT_EQ (ConstantRange::makeGuaranteedNoWrapRegion (
1034
1034
Instruction::Sub, MinusOneToOne, OBO::NoUnsignedWrap),
1035
1035
ConstantRange (APInt::getMaxValue (32 ),
1036
1036
APInt::getMinValue (32 )));
1037
1037
1038
1038
ConstantRange One (APInt (32 , 1 ), APInt (32 , 2 ));
1039
- EXPECT_EQ (ConstantRange::makeExactNoWrapRegion (
1039
+ EXPECT_EQ (ConstantRange::makeGuaranteedNoWrapRegion (
1040
1040
Instruction::Add, One, OBO::NoSignedWrap),
1041
1041
ConstantRange (APInt::getSignedMinValue (32 ),
1042
1042
APInt::getSignedMaxValue (32 )));
1043
- EXPECT_EQ (ConstantRange::makeExactNoWrapRegion (
1043
+ EXPECT_EQ (ConstantRange::makeGuaranteedNoWrapRegion (
1044
1044
Instruction::Add, One, OBO::NoUnsignedWrap),
1045
1045
ConstantRange (APInt::getMinValue (32 ), APInt::getMaxValue (32 )));
1046
- EXPECT_EQ (ConstantRange::makeExactNoWrapRegion (
1046
+ EXPECT_EQ (ConstantRange::makeGuaranteedNoWrapRegion (
1047
1047
Instruction::Sub, One, OBO::NoSignedWrap),
1048
1048
ConstantRange (APInt::getSignedMinValue (32 ) + 1 ,
1049
1049
APInt::getSignedMinValue (32 )));
1050
- EXPECT_EQ (ConstantRange::makeExactNoWrapRegion (
1050
+ EXPECT_EQ (ConstantRange::makeGuaranteedNoWrapRegion (
1051
1051
Instruction::Sub, One, OBO::NoUnsignedWrap),
1052
1052
ConstantRange (APInt::getMinValue (32 ) + 1 , APInt::getMinValue (32 )));
1053
1053
}
@@ -1063,7 +1063,7 @@ void TestNoWrapRegionExhaustive(Instruction::BinaryOps BinOp,
1063
1063
return ;
1064
1064
1065
1065
ConstantRange NoWrap =
1066
- ConstantRange::makeExactNoWrapRegion (BinOp, CR2, NoWrapKind);
1066
+ ConstantRange::makeGuaranteedNoWrapRegion (BinOp, CR2, NoWrapKind);
1067
1067
ForeachNumInConstantRange (CR1, [&](const APInt &N1) {
1068
1068
bool NoOverflow = true ;
1069
1069
ForeachNumInConstantRange (CR2, [&](const APInt &N2) {
@@ -1075,7 +1075,7 @@ void TestNoWrapRegionExhaustive(Instruction::BinaryOps BinOp,
1075
1075
});
1076
1076
}
1077
1077
1078
- // Show that makeExactNoWrapRegion is precise if only one of
1078
+ // Show that makeGuaranteedNoWrapRegion is precise if only one of
1079
1079
// NoUnsignedWrap or NoSignedWrap is used.
1080
1080
TEST (ConstantRange, NoWrapRegionExhaustive) {
1081
1081
TestNoWrapRegionExhaustive (
@@ -1204,12 +1204,12 @@ TEST(ConstantRange, GetEquivalentICmp) {
1204
1204
EXPECT_EQ (RHS, APInt (32 , -1 ));
1205
1205
}
1206
1206
1207
- TEST (ConstantRange, MakeExactNoWrapRegionMulUnsignedSingleValue ) {
1207
+ TEST (ConstantRange, MakeGuaranteedNoWrapRegionMulUnsignedSingleValue ) {
1208
1208
typedef OverflowingBinaryOperator OBO;
1209
1209
1210
1210
for (uint64_t I = std::numeric_limits<uint8_t >::min ();
1211
1211
I <= std::numeric_limits<uint8_t >::max (); I++) {
1212
- auto Range = ConstantRange::makeExactNoWrapRegion (
1212
+ auto Range = ConstantRange::makeGuaranteedNoWrapRegion (
1213
1213
Instruction::Mul, ConstantRange (APInt (8 , I), APInt (8 , I + 1 )),
1214
1214
OBO::NoUnsignedWrap);
1215
1215
@@ -1222,12 +1222,12 @@ TEST(ConstantRange, MakeExactNoWrapRegionMulUnsignedSingleValue) {
1222
1222
}
1223
1223
}
1224
1224
1225
- TEST (ConstantRange, MakeExactNoWrapRegionMulSignedSingleValue ) {
1225
+ TEST (ConstantRange, MakeGuaranteedNoWrapRegionMulSignedSingleValue ) {
1226
1226
typedef OverflowingBinaryOperator OBO;
1227
1227
1228
1228
for (int64_t I = std::numeric_limits<int8_t >::min ();
1229
1229
I <= std::numeric_limits<int8_t >::max (); I++) {
1230
- auto Range = ConstantRange::makeExactNoWrapRegion (
1230
+ auto Range = ConstantRange::makeGuaranteedNoWrapRegion (
1231
1231
Instruction::Mul,
1232
1232
ConstantRange (APInt (8 , I, /* isSigned=*/ true ),
1233
1233
APInt (8 , I + 1 , /* isSigned=*/ true )),
@@ -1243,28 +1243,28 @@ TEST(ConstantRange, MakeExactNoWrapRegionMulSignedSingleValue) {
1243
1243
}
1244
1244
}
1245
1245
1246
- TEST (ConstantRange, MakeExactNoWrapRegionMulUnsignedRange ) {
1246
+ TEST (ConstantRange, MakeGuaranteedNoWrapRegionMulUnsignedRange ) {
1247
1247
typedef OverflowingBinaryOperator OBO;
1248
1248
1249
1249
for (uint64_t Lo = std::numeric_limits<uint8_t >::min ();
1250
1250
Lo <= std::numeric_limits<uint8_t >::max (); Lo++) {
1251
1251
for (uint64_t Hi = Lo; Hi <= std::numeric_limits<uint8_t >::max (); Hi++) {
1252
1252
EXPECT_EQ (
1253
- ConstantRange::makeExactNoWrapRegion (
1253
+ ConstantRange::makeGuaranteedNoWrapRegion (
1254
1254
Instruction::Mul, ConstantRange (APInt (8 , Lo), APInt (8 , Hi + 1 )),
1255
1255
OBO::NoUnsignedWrap),
1256
- ConstantRange::makeExactNoWrapRegion (
1256
+ ConstantRange::makeGuaranteedNoWrapRegion (
1257
1257
Instruction::Mul, ConstantRange (APInt (8 , Hi), APInt (8 , Hi + 1 )),
1258
1258
OBO::NoUnsignedWrap));
1259
1259
}
1260
1260
}
1261
1261
}
1262
1262
1263
- TEST (ConstantRange, MakeExactNoWrapRegionMulSignedRange ) {
1263
+ TEST (ConstantRange, MakeGuaranteedNoWrapRegionMulSignedRange ) {
1264
1264
typedef OverflowingBinaryOperator OBO;
1265
1265
1266
1266
int Lo = -12 , Hi = 16 ;
1267
- auto Range = ConstantRange::makeExactNoWrapRegion (
1267
+ auto Range = ConstantRange::makeGuaranteedNoWrapRegion (
1268
1268
Instruction::Mul,
1269
1269
ConstantRange (APInt (8 , Lo, /* isSigned=*/ true ),
1270
1270
APInt (8 , Hi + 1 , /* isSigned=*/ true )),
0 commit comments