New pattern-match check can be non-performant
In my work in merging D808 (and originally pointed out by thomie), I ran into a peculiar bug: the new pattern-match check took gobs of memory (~10GB) to check !OptCoercion in the stage-2 compiler. My analysis got only as far as nailing the problem down to pmTraverse, which took 80% of the time, and got called roughly a gajillion times.
To reproduce, simply compile !OptCoercion (with -package ghc) and you'll see your memory usage explode.
So that you'll be able to build GHC until this is fixed, I've disable the pattern-match check in that file.
There is a good chance that this is caused by an interaction between the pattern-match check and the type=kind code. I'm happy to probe further, but I'd want George's help.
NB: This applies only after my patch is merged. Which should be today. For some value of today. Hopefully today's value of today.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.11 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | highest |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |