@@ -698,9 +698,9 @@ predicate outNodeHasAddressAndIndex(
698698 * Holds if `node` is the node that corresponds to the definition of `def`.
699699 */
700700predicate 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
702702) {
703- def .definesAt ( sv , bb , i , _ ) and
703+ def .definesAt ( sv , bb , i ) and
704704 (
705705 nodeHasOperand ( node , def .getValue ( ) .asOperand ( ) , def .getIndirectionIndex ( ) )
706706 or
@@ -1132,6 +1132,26 @@ class PhiNode extends SsaImpl::DefinitionExt {
11321132 final DefinitionExt getAnInput ( ) { this .hasInputFromBlock ( result , _, _, _, _) }
11331133}
11341134
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+
11351155/** An static single assignment (SSA) definition. */
11361156class DefinitionExt extends SsaImpl:: DefinitionExt {
11371157 private DefinitionExt getAPhiInputOrPriorDefinition ( ) { result = this .( PhiNode ) .getAnInput ( ) }
0 commit comments