Huge performance regression of 7.0.2, 7.0.3 and HEAD over 7.0.1 and 6.12 (MonoLocalBinds)
Exploring ways to make show for Double
and Float
faster, I encountered a terrible performance regression. Time increased about 20-fold, allocation about 75-fold.
With 6.12.3 and 7.0.1, the new code is nearly twice as fast as the old and allocates less than a third. With 7.0.2, 7.0.3 and the HEAD (7.1.20110329), the new code is over ten times slower than the old and allocates more than twenty times as much.
In 7.0.3's core at least some local bindings appear as polymorphic functions which are inlined by 7.0.1. And indeed, compiling with -XMonoLocalBinds rectifies matters. Nevertheless, that shouldn't happen.
Trac metadata
Trac field | Value |
---|---|
Version | 7.0.3 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |