Completes the global value numbering for a `Block`, all of its predecessors having been already sealed. This method modifies the function's `Layout` by adding arguments to the `Block`s to take into account the Phi function placed by the SSA algorithm. Returns the list of newly created blocks for critical edge splitting.
(&mut self, block: Block, func: &mut Function)
| 434 | /// |
| 435 | /// Returns the list of newly created blocks for critical edge splitting. |
| 436 | pub fn seal_block(&mut self, block: Block, func: &mut Function) -> SideEffects { |
| 437 | debug_assert!( |
| 438 | !self.is_sealed(block), |
| 439 | "Attempting to seal {block} which is already sealed." |
| 440 | ); |
| 441 | self.seal_one_block(block, func); |
| 442 | mem::take(&mut self.side_effects) |
| 443 | } |
| 444 | |
| 445 | /// Completes the global value numbering for all unsealed `Block`s in `func`. |
| 446 | /// |