
#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