summaryrefslogtreecommitdiff
path: root/compiler/codeGen/CodeGen.lhs
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2011-11-26 21:47:39 +0000
committerSimon Peyton Jones <simonpj@microsoft.com>2011-11-26 21:47:39 +0000
commite99f323405a8398f0521686d87124453e85b599a (patch)
tree96a0b33463c1093363b33d078ec437d89a972a81 /compiler/codeGen/CodeGen.lhs
parent18aae18503442276e14a47eabf4786bc7210662e (diff)
downloadhaskell-e99f323405a8398f0521686d87124453e85b599a.tar.gz
Add missing cases in TcUnify.uUnfilledVars
These missing cases dealt with unifying a meta type variable with a skolem when the kinds match -- a pretty common case. The missing cases meant that instead of directly solving on the fly (which is easy in this situation) we were generating an equality constraint viat `utype_defer`. This isn't *wrong*, but it's a lot less efficient than it could be! All this arose from investigating #5631. This one change does this to the compiler allocation Before: 821,257,552 bytes allocated in the heap 94 MB total memory in use (0 MB lost due to fragmentation) MUT time 1.54s ( 1.67s elapsed) GC time 1.36s ( 1.60s elapsed) Total time 2.93s ( 3.27s elapsed) After: 424,244,124 bytes allocated in the heap 49 MB total memory in use (0 MB lost due to fragmentation) MUT time 0.64s ( 0.89s elapsed) GC time 0.83s ( 0.77s elapsed) Total time 1.47s ( 1.66s elapsed) Not bad for a 3-line change!
Diffstat (limited to 'compiler/codeGen/CodeGen.lhs')
0 files changed, 0 insertions, 0 deletions