
#15754: Move free variable computation to after STG passes -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.8.1 Component: Compiler | Version: 8.6.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by sgraf): I was under the impression that because free vars are inherently part of the STG syntax (vs. some binder annotation like in Core), correct free variable information would be an invariant on STG terms. So the lambda lifting optimisation I implemented on STG (#9476) relies on correct free variable information being available (and makes sure to update it after the transformation). Instead of deferring computation of free variables, how about having other transformations maintain this particular invariant of STG syntax? Or introduce a `StgFV` pass that can be used by other passes if we really want to abandon that invariant, but then we could (should?) get rid of mention in syntax. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15754#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler