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 |