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.