@@ -212,63 +212,6 @@ private predicate hasVariableReadWithCapturedWrite(
212212 variableReadActualInOuterScope ( bb , i , v , scope )
213213}
214214
215- pragma [ noinline]
216- deprecated private predicate adjacentDefReadExt (
217- Definition def , BasicBlock bb1 , int i1 , BasicBlock bb2 , int i2 , SsaInput:: SourceVariable v
218- ) {
219- Impl:: adjacentDefReadExt ( def , _, bb1 , i1 , bb2 , i2 ) and
220- v = def .getSourceVariable ( )
221- }
222-
223- deprecated private predicate adjacentDefReachesReadExt (
224- Definition def , BasicBlock bb1 , int i1 , BasicBlock bb2 , int i2
225- ) {
226- exists ( SsaInput:: SourceVariable v | adjacentDefReadExt ( def , bb1 , i1 , bb2 , i2 , v ) |
227- def .definesAt ( v , bb1 , i1 )
228- or
229- SsaInput:: variableRead ( bb1 , i1 , v , true )
230- )
231- or
232- exists ( BasicBlock bb3 , int i3 |
233- adjacentDefReachesReadExt ( def , bb1 , i1 , bb3 , i3 ) and
234- SsaInput:: variableRead ( bb3 , i3 , _, false ) and
235- Impl:: adjacentDefReadExt ( def , _, bb3 , i3 , bb2 , i2 )
236- )
237- }
238-
239- deprecated private predicate adjacentDefReachesUncertainReadExt (
240- Definition def , BasicBlock bb1 , int i1 , BasicBlock bb2 , int i2
241- ) {
242- adjacentDefReachesReadExt ( def , bb1 , i1 , bb2 , i2 ) and
243- SsaInput:: variableRead ( bb2 , i2 , _, false )
244- }
245-
246- /** Same as `lastRefRedef`, but skips uncertain reads. */
247- pragma [ nomagic]
248- deprecated private predicate lastRefSkipUncertainReadsExt ( Definition def , BasicBlock bb , int i ) {
249- Impl:: lastRef ( def , bb , i ) and
250- not SsaInput:: variableRead ( bb , i , def .getSourceVariable ( ) , false )
251- or
252- exists ( BasicBlock bb0 , int i0 |
253- Impl:: lastRef ( def , bb0 , i0 ) and
254- adjacentDefReachesUncertainReadExt ( def , bb , i , bb0 , i0 )
255- )
256- }
257-
258- /**
259- * Holds if the read of `def` at `read` may be a last read. That is, `read`
260- * can either reach another definition of the underlying source variable or
261- * the end of the CFG scope, without passing through another non-pseudo read.
262- */
263- pragma [ nomagic]
264- deprecated predicate lastRead ( Definition def , VariableReadAccessCfgNode read ) {
265- exists ( Cfg:: BasicBlock bb , int i |
266- lastRefSkipUncertainReadsExt ( def , bb , i ) and
267- variableReadActual ( bb , i , _) and
268- read = bb .getNode ( i )
269- )
270- }
271-
272215cached
273216private module Cached {
274217 /**
0 commit comments