@@ -1052,14 +1052,6 @@ private module Cached {
1052
1052
)
1053
1053
}
1054
1054
1055
- private predicate isConvertedBool ( Instruction instr ) {
1056
- instr .getResultIRType ( ) instanceof IRBooleanType
1057
- or
1058
- isConvertedBool ( instr .( ConvertInstruction ) .getUnary ( ) )
1059
- or
1060
- isConvertedBool ( instr .( BuiltinExpectCallInstruction ) .getCondition ( ) )
1061
- }
1062
-
1063
1055
/**
1064
1056
* Holds if `op == k` is `areEqual` given that `test` is equal to `value`.
1065
1057
*/
@@ -1206,56 +1198,12 @@ private module Cached {
1206
1198
}
1207
1199
}
1208
1200
1209
- /**
1210
- * Holds if `left == right + k` is `areEqual` if `cmp` evaluates to `value`,
1211
- * and `cmp` is an instruction that compares the value of
1212
- * `__builtin_expect(left == right + k, _)` to `0`.
1213
- */
1214
- private predicate builtin_expect_eq (
1215
- CompareValueNumber cmp , Operand left , Operand right , int k , boolean areEqual ,
1216
- AbstractValue value
1217
- ) {
1218
- exists ( BuiltinExpectCallValueNumber call , Instruction const , AbstractValue innerValue |
1219
- int_value ( const ) = 0 and
1220
- cmp .hasOperands ( call .getAUse ( ) , const .getAUse ( ) ) and
1221
- compares_eq ( call .getCondition ( ) , left , right , k , areEqual , innerValue )
1222
- |
1223
- cmp instanceof CompareNEValueNumber and
1224
- value = innerValue
1225
- or
1226
- cmp instanceof CompareEQValueNumber and
1227
- value .getDualValue ( ) = innerValue
1228
- )
1229
- }
1230
-
1231
1201
private predicate complex_eq (
1232
1202
ValueNumber cmp , Operand left , Operand right , int k , boolean areEqual , AbstractValue value
1233
1203
) {
1234
1204
sub_eq ( cmp , left , right , k , areEqual , value )
1235
1205
or
1236
1206
add_eq ( cmp , left , right , k , areEqual , value )
1237
- or
1238
- builtin_expect_eq ( cmp , left , right , k , areEqual , value )
1239
- }
1240
-
1241
- /**
1242
- * Holds if `op == k` is `areEqual` if `cmp` evaluates to `value`, and `cmp` is
1243
- * an instruction that compares the value of `__builtin_expect(op == k, _)` to `0`.
1244
- */
1245
- private predicate unary_builtin_expect_eq (
1246
- CompareValueNumber cmp , Operand op , int k , boolean areEqual , AbstractValue value
1247
- ) {
1248
- exists ( BuiltinExpectCallValueNumber call , Instruction const , AbstractValue innerValue |
1249
- int_value ( const ) = 0 and
1250
- cmp .hasOperands ( call .getAUse ( ) , const .getAUse ( ) ) and
1251
- unary_compares_eq ( call .getCondition ( ) , op , k , areEqual , innerValue )
1252
- |
1253
- cmp instanceof CompareNEValueNumber and
1254
- value = innerValue
1255
- or
1256
- cmp instanceof CompareEQValueNumber and
1257
- value .getDualValue ( ) = innerValue
1258
- )
1259
1207
}
1260
1208
1261
1209
private predicate unary_complex_eq (
@@ -1264,8 +1212,6 @@ private module Cached {
1264
1212
unary_sub_eq ( test , op , k , areEqual , value )
1265
1213
or
1266
1214
unary_add_eq ( test , op , k , areEqual , value )
1267
- or
1268
- unary_builtin_expect_eq ( test , op , k , areEqual , value )
1269
1215
}
1270
1216
1271
1217
/*
0 commit comments