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 |