[GHC] #13390: Strict literal float-out during desugaring regresses T1969 at -O0

GHC ghc-devs at haskell.org
Sun May 7 01:42:40 UTC 2017


#13390: Strict literal float-out during desugaring regresses T1969 at -O0
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.4.1
       Component:  Compiler          |              Version:  8.0.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 dfeuer):

 [[Commentary/Compiler/Core2CorePipeline]] indicates that in desugaring we
 only inline "non-recursive bindings that are used only once or where the
 RHS is trivial". I don't see how to understand what Ben showed based on
 that. But if a little more inlining is happening for some reason, here's
 one potential story.

 Without floating, imagine that the (default-derived) method definitions
 are somehow inlined into the dictionary, and then `$dme` and `$dmd` are
 inlined. Then everything squashes down nicely.

 With floating, something else inexplicable seems to be happening: the
 default definitions inline into `$ce_a1ik` and `$cd_a1ib`, and somehow
 `$cc_a1i7` (which is now really small, but surprisingly non-trivial)
 inlines into them.

 Glancing at the notes and code for the gentle simplification, I do not
 understand why any of these inlinings are happening, but maybe someone
 else does. Or maybe I'm completely misinterpreting. I need to build both
 commits and dump inlinings.

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


More information about the ghc-tickets mailing list