Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix exponential copy expansion in Read-over-Write simplification #10

Open
Robbepop opened this issue May 11, 2018 · 0 comments
Open

Fix exponential copy expansion in Read-over-Write simplification #10

Robbepop opened this issue May 11, 2018 · 0 comments
Labels
A-simplifier Task operating on the stevia_simplifier crate in isolation. B-performance A task to improve performance (regression) of some part of the code base. D-hard A task that is considered to be hard to implement.

Comments

@Robbepop
Copy link
Owner

The current Read-over-Write simplification might expand its input exponentially.
This could impose significant performance penalties and should be avoided.
By the newly introduced SymbolProxy in Context proxy symbols can be generated to substitute to-be-copied expression trees temporarily. They can be inserted back into the expression tree at a later point where they can be processed in isolation to their former parent until they are merged back again.

The same procedure can and should be implemented for Eliminate-Array-Read and Eliminate-Array-Write simplifications.

@Robbepop Robbepop added A-simplifier Task operating on the stevia_simplifier crate in isolation. D-hard A task that is considered to be hard to implement. B-performance A task to improve performance (regression) of some part of the code base. labels Mar 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-simplifier Task operating on the stevia_simplifier crate in isolation. B-performance A task to improve performance (regression) of some part of the code base. D-hard A task that is considered to be hard to implement.
Projects
None yet
Development

No branches or pull requests

1 participant