[GHC] #10844: CallStack should not be inlined

GHC ghc-devs at haskell.org
Wed Oct 5 10:34:27 UTC 2016


#10844: CallStack should not be inlined
-------------------------------------+-------------------------------------
        Reporter:  nomeata           |                Owner:  gridaphobe
            Type:  task              |               Status:  patch
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  7.10.2
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):  Phab:D1259
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by simonpj):

 > At this point the simplifier is in a bind because in order to fully
 inline everything, it would have to duplicate the "\n" string, and GHC
 presumably knows this is generally a bad idea.

 Yes, this is a key choice.  Look at `CoreSubst.exprIsLiteral_maybe`.  It
 calls `expandUnfolding_maybe`.  Look at `CoreSyn.expandUnfolding_maybe`.
 It expands the unfolding if `uf_expandable` is True.  That flag says if
 it's ok to expand an unfolding to make a RULE match.

 But in comment:20 I see "Expandable = True" for those top-level string
 literals.  So they should be visible to the rule matcher.

 Some link in this chain isn't working.  But I hope you can see the links
 now, so you can see what's not working?

 Simon

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10844#comment:24>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list