fix[next]: Fix type preservation in CSE #1736
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The common subexpression elimination uses typing information to decide what expressions can be extracted. However, while extracting it creates new nodes and uses the inline lambda pass, which did not preserve the types. This was observed in PMAP and is fixed in this PR on a best effort basis. Creating a minimal reproducible example is hard and since multiple of us are considering making typing information an integral part of the IR, e.g. by attaching the computation to the node instead of having a separate pass, which would solve the problem automatically no tests have been written.