Skip to content

Fix faulty substitutions in StgCse (#11532).

Andreas Klebinger requested to merge AndreasK/ghc:stgCseShadowing into master

substBndr should rename bindings which shadow existing ids.
However while it was renaming the bindings it was not adding proper substitutions for renamed bindings.

Instead of adding a substitution of the form old -> new for renamed bindings it mistakenly added old -> old if no replacement had taken place while adding none if old had been renamed.

As a byproduct this should improve performance, as we no longer add useless substitutions for unshadowed bindings.

Edited by Simon Peyton Jones

Merge request reports