| 194 | } |
| 195 | |
| 196 | pub(super) fn mid_block(&mut self) { |
| 197 | let Some(j) = self.join_stack.last_mut() else { return }; |
| 198 | // Save then-branch versions before restoring else baseline. |
| 199 | j.then = Some(self.ssa_versions.clone()); |
| 200 | let mut restored = j.backup.clone(); |
| 201 | for (name, &v) in &self.ssa_versions { |
| 202 | let e = restored.entry(name.clone()).or_insert(0); |
| 203 | *e = (*e).max(v); |
| 204 | } |
| 205 | self.ssa_versions = restored; |
| 206 | } |
| 207 | |
| 208 | pub(super) fn commit_block(&mut self) { |
| 209 | let Some(j) = self.join_stack.pop() else { return }; |