[GHC] #15754: Move free variable computation to after STG passes

GHC ghc-devs at haskell.org
Sun Oct 21 09:06:28 UTC 2018


#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


More information about the ghc-tickets mailing list