diff options
author | Andreas Klebinger <klebinger.andreas@gmx.at> | 2022-11-09 19:16:09 +0100 |
---|---|---|
committer | Andreas Klebinger <klebinger.andreas@gmx.at> | 2022-11-09 19:16:19 +0100 |
commit | 9b9c89c7bdaf22b75f6295c3b9230c88bbd1b4c5 (patch) | |
tree | a5cd37b52b9bf227f41a59b40a4b350f3cb2f235 /compiler/GHC/Stg/Subst.hs | |
parent | 90c5abd4581b404f715e72ad55303e18d0c31d68 (diff) | |
download | haskell-wip/andreask/cmm_invariants.tar.gz |
Expand on the need to clone local binders.wip/andreask/cmm_invariants
Fixes #22402.
Diffstat (limited to 'compiler/GHC/Stg/Subst.hs')
-rw-r--r-- | compiler/GHC/Stg/Subst.hs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/compiler/GHC/Stg/Subst.hs b/compiler/GHC/Stg/Subst.hs index 0983abf7a1..e98f445b2f 100644 --- a/compiler/GHC/Stg/Subst.hs +++ b/compiler/GHC/Stg/Subst.hs @@ -12,6 +12,13 @@ import GHC.Utils.Outputable import GHC.Utils.Misc import GHC.Utils.Panic +-- TODO: This code might make folly of the work done in CorePrep where +-- we clone local ids in order to ensure *all* local binders are unique. +-- It's my understanding that here we use "the rapier"/uniqAway which makes up +-- uniques based on the ids in scope. Which can give the same unique to different +-- binders as long as they are in different scopes. A guarantee which isn't +-- strong enough for code generation in general. See Note [CorePrep Overview]. + -- | A renaming substitution from 'Id's to 'Id's. Like 'RnEnv2', but not -- maintaining pairs of substitutions. Like 'GHC.Core.Subst.Subst', but -- with the domain being 'Id's instead of entire 'CoreExpr'. |