@@ -433,10 +433,7 @@ private predicate exprDependsOnDef(Expr e, RangeSsaDefinition srcDef, StackVaria
433
433
private predicate phiDependsOnDef (
434
434
RangeSsaDefinition phi , StackVariable v , RangeSsaDefinition srcDef , StackVariable srcVar
435
435
) {
436
- exists ( VariableAccess access , Expr guard |
437
- access = v .getAnAccess ( ) and
438
- phi .isGuardPhi ( access , guard , _)
439
- |
436
+ exists ( VariableAccess access , Expr guard | phi .isGuardPhi ( v , access , guard , _) |
440
437
exprDependsOnDef ( guard .( ComparisonOperation ) .getAnOperand ( ) , srcDef , srcVar ) or
441
438
exprDependsOnDef ( access , srcDef , srcVar )
442
439
)
@@ -1204,8 +1201,7 @@ private float boolConversionUpperBound(Expr expr) {
1204
1201
*/
1205
1202
private float getPhiLowerBounds ( StackVariable v , RangeSsaDefinition phi ) {
1206
1203
exists ( VariableAccess access , Expr guard , boolean branch , float defLB , float guardLB |
1207
- access = v .getAnAccess ( ) and
1208
- phi .isGuardPhi ( access , guard , branch ) and
1204
+ phi .isGuardPhi ( v , access , guard , branch ) and
1209
1205
lowerBoundFromGuard ( guard , access , guardLB , branch ) and
1210
1206
defLB = getFullyConvertedLowerBounds ( access )
1211
1207
|
@@ -1230,8 +1226,7 @@ private float getPhiLowerBounds(StackVariable v, RangeSsaDefinition phi) {
1230
1226
/** See comment for `getPhiLowerBounds`, above. */
1231
1227
private float getPhiUpperBounds ( StackVariable v , RangeSsaDefinition phi ) {
1232
1228
exists ( VariableAccess access , Expr guard , boolean branch , float defUB , float guardUB |
1233
- access = v .getAnAccess ( ) and
1234
- phi .isGuardPhi ( access , guard , branch ) and
1229
+ phi .isGuardPhi ( v , access , guard , branch ) and
1235
1230
upperBoundFromGuard ( guard , access , guardUB , branch ) and
1236
1231
defUB = getFullyConvertedUpperBounds ( access )
1237
1232
|
@@ -1493,8 +1488,7 @@ private predicate isNEPhi(
1493
1488
exists (
1494
1489
ComparisonOperation cmp , boolean branch , Expr linearExpr , Expr rExpr , float p , float q , float r
1495
1490
|
1496
- access .getTarget ( ) = v and
1497
- phi .isGuardPhi ( access , cmp , branch ) and
1491
+ phi .isGuardPhi ( v , access , cmp , branch ) and
1498
1492
eqOpWithSwapAndNegate ( cmp , linearExpr , rExpr , false , branch ) and
1499
1493
v .getUnspecifiedType ( ) instanceof IntegralOrEnumType and // Float `!=` is too imprecise
1500
1494
r = getValue ( rExpr ) .toFloat ( ) and
@@ -1503,8 +1497,7 @@ private predicate isNEPhi(
1503
1497
)
1504
1498
or
1505
1499
exists ( Expr op , boolean branch , Expr linearExpr , float p , float q |
1506
- access .getTarget ( ) = v and
1507
- phi .isGuardPhi ( access , op , branch ) and
1500
+ phi .isGuardPhi ( v , access , op , branch ) and
1508
1501
eqZeroWithNegate ( op , linearExpr , false , branch ) and
1509
1502
v .getUnspecifiedType ( ) instanceof IntegralOrEnumType and // Float `!` is too imprecise
1510
1503
linearAccess ( linearExpr , access , p , q ) and
@@ -1524,8 +1517,7 @@ private predicate isUnsupportedGuardPhi(Variable v, RangeSsaDefinition phi, Vari
1524
1517
or
1525
1518
eqZeroWithNegate ( cmp , _, false , branch )
1526
1519
|
1527
- access .getTarget ( ) = v and
1528
- phi .isGuardPhi ( access , cmp , branch ) and
1520
+ phi .isGuardPhi ( v , access , cmp , branch ) and
1529
1521
not isNEPhi ( v , phi , access , _)
1530
1522
)
1531
1523
}
0 commit comments