Affects Version/s: None
Fix Version/s: None
Component/s: Code Generator
Currently the code generator contains code to calculate the best location to evaluate common sub expressions. The current scheme has some problems:
- It can take a pathological length of time
- There are some cases where it doesn't do as good a job as it could.
- Adding the no_alias_scope annotations can cause problems with other transformations.
The idea is to use a more dynamic method
- Associate an AliasBuilder with each function
- When an alias is required, add it to the alias builder in depth order. If it already exists then improve the evaluation location.
- when the function is finished, process the aliases in reverse order, generating the code one at a time.
The hope is that that it will address many of the current problems, particularly the pathological case mrhodes15.eclxml and jake40xx.