@@ -1104,37 +1104,29 @@ private module SsaInput implements Ssa::InputSig<Location, IRCfg::BasicBlock> {
11041104 if use .isCertain ( ) then certain = true else certain = false
11051105 )
11061106 }
1107+
1108+ predicate ssaCachedStageRevRef ( ) { DataFlowIntegrationImpl:: ssaCachedStageRevRef2 ( ) }
11071109}
11081110
1109- /**
1110- * The final SSA predicates used for dataflow purposes.
1111- */
1112- cached
1113- module SsaCached {
1114- cached
1115- predicate ssaDefReachesRead ( SourceVariable v , Definition def , IRBlock bb , int i ) {
1116- SsaImpl:: ssaDefReachesRead ( v , def , bb , i )
1117- }
1111+ predicate ssaDefReachesRead ( SourceVariable v , Definition def , IRBlock bb , int i ) {
1112+ SsaImpl:: ssaDefReachesRead ( v , def , bb , i )
1113+ }
11181114
1119- cached
1120- predicate phiHasInputFromBlock ( PhiNode phi , Definition inp , IRBlock bb ) {
1121- SsaImpl:: phiHasInputFromBlock ( phi , inp , bb )
1122- }
1115+ predicate phiHasInputFromBlock ( PhiNode phi , Definition inp , IRBlock bb ) {
1116+ SsaImpl:: phiHasInputFromBlock ( phi , inp , bb )
1117+ }
11231118
1124- cached
1125- predicate uncertainWriteDefinitionInput ( Definition uncertain , Definition inp ) {
1126- SsaImpl:: uncertainWriteDefinitionInput ( uncertain , inp )
1127- }
1119+ predicate uncertainWriteDefinitionInput ( Definition uncertain , Definition inp ) {
1120+ SsaImpl:: uncertainWriteDefinitionInput ( uncertain , inp )
1121+ }
11281122
1129- cached
1130- predicate ssaDefReachesEndOfBlock ( IRBlock bb , Definition def ) {
1131- SsaImpl:: ssaDefReachesEndOfBlock ( bb , def , _)
1132- }
1123+ predicate ssaDefReachesEndOfBlock ( IRBlock bb , Definition def ) {
1124+ SsaImpl:: ssaDefReachesEndOfBlock ( bb , def , _)
1125+ }
11331126
1134- predicate variableRead = SsaInput:: variableRead / 4 ;
1127+ predicate variableRead = SsaInput:: variableRead / 4 ;
11351128
1136- predicate variableWrite = SsaInput:: variableWrite / 4 ;
1137- }
1129+ predicate variableWrite = SsaInput:: variableWrite / 4 ;
11381130
11391131/** Gets the `DefImpl` corresponding to `def`. */
11401132pragma [ nomagic]
@@ -1173,14 +1165,6 @@ private module DataFlowIntegrationInput implements SsaImpl::DataFlowIntegrationI
11731165 predicate hasCfgNode ( IRCfg:: BasicBlock bb , int i ) { bb .getInstruction ( i ) = this }
11741166 }
11751167
1176- Expr getARead ( SsaImpl:: Definition def ) {
1177- exists ( SourceVariable v , IRBlock bb , int i |
1178- ssaDefReachesRead ( v , def , bb , i ) and
1179- variableRead ( bb , i , v , true ) and
1180- result .hasCfgNode ( bb , i )
1181- )
1182- }
1183-
11841168 predicate ssaDefHasSource ( SsaImpl:: WriteDefinition def ) { none ( ) }
11851169
11861170 predicate allowFlowIntoUncertainDef ( SsaImpl:: UncertainWriteDefinition def ) { any ( ) }
@@ -1654,5 +1638,3 @@ class IndirectExplicitDefinition extends ExplicitDefinition {
16541638class DirectExplicitDefinition extends ExplicitDefinition {
16551639 DirectExplicitDefinition ( ) { this .getIndirectionIndex ( ) = 0 }
16561640}
1657-
1658- import SsaCached
0 commit comments