@@ -660,7 +660,7 @@ module RangeStage<
660660 * - `upper = false` : `v >= b + delta`
661661 */
662662 private predicate boundedSsa (
663- SemSsaVariable v , SemSsaReadPosition pos , SemBound b , D:: Delta delta , boolean upper ,
663+ SemSsaVariable v , SemBound b , D:: Delta delta , SemSsaReadPosition pos , boolean upper ,
664664 boolean fromBackEdge , D:: Delta origdelta , SemReason reason
665665 ) {
666666 exists ( SemExpr mid , D:: Delta d1 , D:: Delta d2 , SemReason r1 , SemReason r2 |
@@ -673,10 +673,13 @@ module RangeStage<
673673 )
674674 or
675675 exists ( D:: Delta d , SemReason r1 , SemReason r2 |
676- boundedSsa ( v , pos , b , d , upper , fromBackEdge , origdelta , r2 ) or
677- boundedPhi ( v , b , d , upper , fromBackEdge , origdelta , r2 )
676+ boundedSsa ( pragma [ only_bind_into ] ( v ) , pragma [ only_bind_into ] ( b ) , pragma [ only_bind_into ] ( d ) ,
677+ pragma [ only_bind_into ] ( pos ) , upper , fromBackEdge , origdelta , r2 )
678+ or
679+ boundedPhi ( pragma [ only_bind_into ] ( v ) , pragma [ only_bind_into ] ( b ) , pragma [ only_bind_into ] ( d ) ,
680+ upper , fromBackEdge , origdelta , r2 )
678681 |
679- unequalIntegralSsa ( v , pos , b , d , r1 ) and
682+ unequalIntegralSsa ( v , b , d , pos , r1 ) and
680683 (
681684 upper = true and delta = D:: fromFloat ( D:: toFloat ( d ) - 1 )
682685 or
@@ -694,7 +697,7 @@ module RangeStage<
694697 * Holds if `v != b + delta` at `pos` and `v` is of integral type.
695698 */
696699 private predicate unequalIntegralSsa (
697- SemSsaVariable v , SemSsaReadPosition pos , SemBound b , D:: Delta delta , SemReason reason
700+ SemSsaVariable v , SemBound b , D:: Delta delta , SemSsaReadPosition pos , SemReason reason
698701 ) {
699702 exists ( SemExpr e , D:: Delta d1 , D:: Delta d2 |
700703 unequalFlowStepIntegralSsa ( v , pos , e , d1 , reason ) and
@@ -746,7 +749,7 @@ module RangeStage<
746749 ) {
747750 edge .phiInput ( phi , inp ) and
748751 exists ( D:: Delta d , boolean fromBackEdge0 |
749- boundedSsa ( inp , edge , b , d , upper , fromBackEdge0 , origdelta , reason )
752+ boundedSsa ( inp , b , d , edge , upper , fromBackEdge0 , origdelta , reason )
750753 or
751754 boundedPhi ( inp , b , d , upper , fromBackEdge0 , origdelta , reason )
752755 or
@@ -1022,7 +1025,7 @@ module RangeStage<
10221025 reason = TSemNoReason ( )
10231026 or
10241027 exists ( SemSsaVariable v , SemSsaReadPositionBlock bb |
1025- boundedSsa ( v , bb , b , delta , upper , fromBackEdge , origdelta , reason ) and
1028+ boundedSsa ( v , b , delta , bb , upper , fromBackEdge , origdelta , reason ) and
10261029 e = v .getAUse ( ) and
10271030 bb .getBlock ( ) = e .getBasicBlock ( )
10281031 )
0 commit comments