Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix localCSE where it does not common the eligible node
For the optimization level hot and above, we run two passes in localCSE. First one for the volatiles only and second one for non volatiles only. In case of the volatiles only pass, to make sure we common the volatile which are based on an indirection non volatile finals or non global autos/parm it marks such node available for commoning in volatile pass. Issue occurs, where it encounters first reference of such non volatile nodes and just adds it to the list of replaced nodes without replacing it. This causes an issue with the subsequent reference of such non volatiles which will be replaced with the available expression as node is already in the list of replaced nodes. This commit fixes the issue so that if it encounters finals or autos or parms in volatile pass which are candidate for commoning, it will replace it with available expression and then add it to replaced list. Fixes: eclipse-openj9/openj9#8637 Signed-off-by: Rahil Shah <[email protected]>
- Loading branch information