llvm-project
5460a202 - [mlir][remove-dead-values] Replace appropriate operation results with poison (#181013)

Commit
67 days ago
[mlir][remove-dead-values] Replace appropriate operation results with poison (#181013) Before erasing the operation, replace all result values with live-uses by ub.poison values. This is important to maintain IR validity. For example, if we have an op with one of its results used by another op, erasing the op without replacing its corresponding result would leave us with a dangling operand in the user op. By replacing the result with a ub.poison value, we ensure that the user op still has a valid operand, even though it's a poison value which will be cleaned up later if it can be cleaned up. This keeps the IR valid for further simplification and canonicalization while fixing a related crash in the canonicalizer. Fixes https://github.com/llvm/llvm-project/issues/179944
Author
Parents
Loading