stevia
stevia copied to clipboard
Fix exponential copy expansion in Read-over-Write simplification
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.