@@ -758,42 +758,6 @@ module Ssa {
758758 ssaRefRank ( bb2 , i2 , v , _) = 1
759759 }
760760
761- /**
762- * Holds if the value defined at non-trivial SSA definition `def` can reach `read`
763- * without passing through any other read, but possibly through pseudo definitions
764- * and uncertain definitions.
765- */
766- deprecated
767- predicate firstUncertainRead ( TrackedDefinition def , AssignableRead read ) {
768- firstReadSameVar ( def , read )
769- or
770- exists ( TrackedVar v , TrackedDefinition redef , BasicBlock b1 , int i1 , BasicBlock b2 , int i2 |
771- redef instanceof UncertainDefinition or redef instanceof PseudoDefinition
772- |
773- adjacentVarRefs ( v , b1 , i1 , b2 , i2 ) and
774- definesAt ( def , b1 , i1 , v ) and
775- definesAt ( redef , b2 , i2 , v ) and
776- firstUncertainRead ( redef , read )
777- )
778- }
779-
780- /**
781- * INTERNAL: Use `AssignableRead.getANextUncertainRead()` instead.
782- */
783- deprecated
784- predicate adjacentReadPair ( AssignableRead read1 , AssignableRead read2 ) {
785- adjacentReadPairSameVar ( read1 , read2 )
786- or
787- exists ( TrackedVar v , TrackedDefinition def , BasicBlock bb1 , int i1 , BasicBlock bb2 , int i2 |
788- adjacentVarRefs ( v , bb1 , i1 , bb2 , i2 ) and
789- variableRead ( bb1 , i1 , v , read1 .getAControlFlowNode ( ) , _) and
790- definesAt ( def , bb2 , i2 , v ) and
791- firstUncertainRead ( def , read2 ) |
792- def instanceof UncertainDefinition or
793- def instanceof PseudoDefinition
794- )
795- }
796-
797761 private cached module Cached {
798762 /**
799763 * Holds if `read` is a last read of the non-trivial SSA definition `def`.
@@ -2146,47 +2110,6 @@ module Ssa {
21462110 lastRead ( this , result )
21472111 }
21482112
2149- /**
2150- * Gets a first uncertain read of the source variable underlying this
2151- * SSA definition. That is, a read that can be reached from this SSA definition
2152- * without passing through any other reads or SSA definitions, except for
2153- * phi nodes and uncertain updates. Example:
2154- *
2155- * ```
2156- * int Field;
2157- *
2158- * void SetField(int i) {
2159- * this.Field = i;
2160- * Use(this.Field);
2161- * if (i > 0)
2162- * this.Field = i - 1;
2163- * else if (i < 0)
2164- * SetField(1);
2165- * Use(this.Field);
2166- * Use(this.Field);
2167- * }
2168- * ```
2169- *
2170- * - The read of `i` on line 4 can be reached from the explicit SSA
2171- * definition (wrapping an implicit entry definition) on line 3.
2172- * - The reads of `i` on lines 6 and 7 are not the first reads of any SSA
2173- * definition.
2174- * - The read of `this.Field` on line 5 can be reached from the explicit SSA
2175- * definition on line 4.
2176- * - The read of `this.Field` on line 10 can be reached from the explicit SSA
2177- * definition on line 7, the implicit SSA definition on line 9, and the phi
2178- * node between lines 9 and 10.
2179- * - The read of `this.Field` on line 11 is not the first read of any SSA
2180- * definition.
2181- *
2182- * Subsequent uncertain reads can be found by following the steps defined by
2183- * `AssignableRead.getANextUncertainRead()`.
2184- */
2185- deprecated
2186- AssignableRead getAFirstUncertainRead ( ) {
2187- firstUncertainRead ( this , result )
2188- }
2189-
21902113 /**
21912114 * Gets a definition that ultimately defines this SSA definition and is
21922115 * not itself a pseudo node. Example:
@@ -2459,10 +2382,6 @@ module Ssa {
24592382 )
24602383 }
24612384
2462- override AssignableRead getAFirstUncertainRead ( ) {
2463- result = this .getARead ( )
2464- }
2465-
24662385 override string toString ( ) {
24672386 result = getToStringPrefix ( this ) + "SSA untracked def(" + getSourceVariable ( ) + ")"
24682387 }
0 commit comments