Member predicate Ssa::Definition::getAnUltimateDefinition
Gets a definition that ultimately defines this SSA definition and is not itself a phi node.
Example:
fn phi(b : bool) {
let mut x = 1; // defines x_0
println!("{}", x);
println!("{}", x + 1);
if b {
x = 2; // defines x_1
println!("{}", x);
println!("{}", x + 1);
} else {
x = 3; // defines x_2
println!("{}", x);
println!("{}", x + 1);
}
// defines x_3 = phi(x_1, x_2); ultimate definitions are x_1 and x_2
println!("{}", x);
}