@@ -151,25 +151,24 @@ module Ssa {
151
151
152
152
cached
153
153
ControlFlowNode getAFirstRead ( ) {
154
- exists ( SsaInput:: BasicBlock bb1 , int i1 , SsaInput:: BasicBlock bb2 , int i2 |
155
- this .definesAt ( _, bb1 , i1 ) and
156
- SsaImpl:: adjacentDefRead ( this , bb1 , i1 , bb2 , i2 ) and
157
- result = bb2 .getNode ( i2 )
154
+ exists ( SsaInput:: BasicBlock bb , int i |
155
+ SsaImpl:: firstUse ( this , bb , i , true ) and
156
+ result = bb .getNode ( i )
158
157
)
159
158
}
160
159
161
160
cached
162
161
predicate adjacentReadPair ( ControlFlowNode read1 , ControlFlowNode read2 ) {
162
+ read1 = this .getARead ( ) and
163
163
exists ( SsaInput:: BasicBlock bb1 , int i1 , SsaInput:: BasicBlock bb2 , int i2 |
164
164
read1 = bb1 .getNode ( i1 ) and
165
- SsaInput:: variableRead ( bb1 , i1 , _, true ) and
166
- SsaImpl:: adjacentDefRead ( this , bb1 , i1 , bb2 , i2 ) and
165
+ SsaImpl:: adjacentUseUse ( bb1 , i1 , bb2 , i2 , _, true ) and
167
166
read2 = bb2 .getNode ( i2 )
168
167
)
169
168
}
170
169
171
170
cached
172
- predicate lastRefRedef ( SsaInput:: BasicBlock bb , int i , Definition next ) {
171
+ deprecated predicate lastRefRedef ( SsaInput:: BasicBlock bb , int i , Definition next ) {
173
172
SsaImpl:: lastRefRedef ( this , bb , i , next )
174
173
}
175
174
}
0 commit comments