Skip to content

New GHC fails to specialize imported function

I just installed the new Haskell platform for OS X.

It seems to have caused a major performance regression for a program I'm working on, making it well over 25x slower.

The culprit appears to be that the new GHC (7.10.2) fails to specialize an imported function. If I manually add a SPECIALIZE pragma, performance goes back to around what it used to be.

The code in question is located at https://github.com/wyager/HNet .

As it stands, the code takes about 30 seconds to run on my machine. With the previous haskell-platform, it only took about .9 seconds.

If I modify Operations.hs and uncomment the SPECIALIZE pragma, runtime goes down to about 1.1 seconds (still slower for some reason, but not awful).

To test, compile with -O2 (as the program makes heavy use of Data.Vector, which requires -fspec-constr for performance).

Trac metadata
Trac field Value
Version 7.10.2
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information