@@ -698,9 +698,9 @@ predicate outNodeHasAddressAndIndex(
698
698
* Holds if `node` is the node that corresponds to the definition of `def`.
699
699
*/
700
700
predicate defToNode (
701
- Node node , DefinitionExt def , SourceVariable sv , IRBlock bb , int i , boolean uncertain
701
+ Node node , Definition def , SourceVariable sv , IRBlock bb , int i , boolean uncertain
702
702
) {
703
- def .definesAt ( sv , bb , i , _ ) and
703
+ def .definesAt ( sv , bb , i ) and
704
704
(
705
705
nodeHasOperand ( node , def .getValue ( ) .asOperand ( ) , def .getIndirectionIndex ( ) )
706
706
or
@@ -1132,6 +1132,26 @@ class PhiNode extends SsaImpl::DefinitionExt {
1132
1132
final DefinitionExt getAnInput ( ) { this .hasInputFromBlock ( result , _, _, _, _) }
1133
1133
}
1134
1134
1135
+ /** An static single assignment (SSA) definition. */
1136
+ class Definition extends SsaImpl:: Definition {
1137
+ /**
1138
+ * INTERNAL: Do not use.
1139
+ */
1140
+ Node0Impl getValue ( ) { result = getDefImpl ( this ) .getValue ( ) }
1141
+
1142
+ /** Gets the indirection index of this definition. */
1143
+ int getIndirectionIndex ( ) { result = getDefImpl ( this ) .getIndirectionIndex ( ) }
1144
+
1145
+ /** Gets the indirection of this definition. */
1146
+ int getIndirection ( ) { result = getDefImpl ( this ) .getIndirection ( ) }
1147
+
1148
+ /**
1149
+ * Holds if this definition is guaranteed to totally overwrite the buffer
1150
+ * being written to.
1151
+ */
1152
+ predicate isCertain ( ) { getDefImpl ( this ) .isCertain ( ) }
1153
+ }
1154
+
1135
1155
/** An static single assignment (SSA) definition. */
1136
1156
class DefinitionExt extends SsaImpl:: DefinitionExt {
1137
1157
private DefinitionExt getAPhiInputOrPriorDefinition ( ) { result = this .( PhiNode ) .getAnInput ( ) }
0 commit comments