Member predicate Ssa::Definition::getAnUltimateDefinition
Gets a definition that ultimately defines this SSA definition and is not itself a phi node. Example:
int Field;
void SetField(int i) {
this.Field = i;
Use(this.Field);
if (i > 0)
this.Field = i - 1;
else if (i < 0)
SetField(1);
Use(this.Field);
Use(this.Field);
}
- The explicit SSA definition (wrapping an implicit entry definition) of
i
on line 3 is defined in terms of itself. - The explicit SSA definitions of
this.Field
on lines 4 and 7 are defined in terms of themselves. - The implicit SSA definition of
this.Field
on line 9 is defined in terms of itself and the explicit definition on line 4. - The phi node between lines 9 and 10 is defined in terms of the explicit definition on line 4, the explicit definition on line 7, and the implicit definition on line 9.