[GHC] #8774: Transitivity of Auto-Specialization

GHC ghc-devs at haskell.org
Wed Sep 28 01:11:14 UTC 2016


#8774: Transitivity of Auto-Specialization
-------------------------------------+-------------------------------------
        Reporter:  crockeea          |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  7.6.3
      Resolution:                    |             Keywords:  Inlining
Operating System:  Linux             |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #5928, #8668,     |  Differential Rev(s):
  #8099                              |
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by crockeea):

 Replying to [comment:13 erikd]:
 > @crockeea Two quick questions:
 >
 > 1) The presence of the dictionary is inferred from case expression
 matching on `Foo.$fNumQux_$c+` right?

 Not quite sure what you're asking, but the dictionaries I see are the
 arguments to `Foo.$fNumQux_$c+`, namely `GHC.Num.$fNumInt` and
 `Data.Vector.Unboxed.Base.$fUnboxInt`.

 >
 > 2) What command line are you using to compile this. I'm still having a
 bit of trouble reproducing this even with ghc 7.6.3.
 >
 I'm compiling with `ghc-7.6.3 -ddump-simpl -O2 Main.hs`. With just the
 `INLINABLE` pragma on `Foo.plus`, this takes over a minute on my computer.
 With the `SPECIALIZE` pragma (with or without the `INLINABLE`), it
 completes in 3 seconds.

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


More information about the ghc-tickets mailing list