| 179 | // Phi, but not for every Node. If the def goes dead, it is recursively |
| 180 | // killed, which may include 'this' Node. |
| 181 | Node delDef(int idx) { |
| 182 | unlock(); |
| 183 | Node old_def = in(idx); |
| 184 | if( old_def != null && // If the old def exists, remove a def->use edge |
| 185 | old_def.delUse(this) ) // If we removed the last use, the old def is now dead |
| 186 | old_def.kill(); // Kill old def |
| 187 | old_def.moveDepsToWorklist(); |
| 188 | Utils.del(_inputs, idx); |
| 189 | return this; |
| 190 | } |
| 191 | |
| 192 | /** |
| 193 | * Add a new def to an existing Node. Keep the edges correct by |